use std::cmp::Ordering; use std::collections::BTreeSet; use std::collections::HashSet; use std::ffi::OsString; use std::str::FromStr; use std::time; use anyhow::{anyhow, Context as _}; use radicle::node; use radicle::node::address::Store; use radicle::node::sync; use radicle::node::sync::fetch::SuccessfulOutcome; use radicle::node::{AliasStore, Handle as _, Node, Seed, SyncStatus}; use radicle::prelude::{NodeId, Profile, RepoId}; use radicle::storage::ReadRepository; use radicle::storage::RefUpdate; use radicle::storage::{ReadStorage, RemoteRepository}; use radicle_term::Element; use crate::node::SyncReporting; use crate::node::SyncSettings; use crate::terminal as term; use crate::terminal::args::{Args, Error, Help}; use crate::terminal::format::Author; use crate::terminal::{Table, TableOptions}; pub const HELP: Help = Help { name: "sync", description: "Sync repositories to the network", version: env!("RADICLE_VERSION"), usage: r#" Usage rad sync [--fetch | --announce] [] [