From 68aca5dd65b08a41c96b1841bf106f14108fdf70 Mon Sep 17 00:00:00 2001 From: Alexis Sellier Date: Mon, 27 Feb 2023 18:27:52 +0100 Subject: [PATCH] cli: Don't fork if we already have a fork --- radicle-cli/src/commands/clone.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/radicle-cli/src/commands/clone.rs b/radicle-cli/src/commands/clone.rs index 5679b30e..99d71f61 100644 --- a/radicle-cli/src/commands/clone.rs +++ b/radicle-cli/src/commands/clone.rs @@ -195,16 +195,16 @@ pub fn clone( } } } + // TODO: Warn if no seeds were found, and we might be checking out stale data. } - // TODO: Warn if no seeds were found, and we might be checking out stale data. - // If we don't have the project locally, even after attempting to fetch, - // there's nothing we can do. - if !storage.contains(&id)? { + let Ok(repository) = storage.repository(id) else { + // If we don't have the project locally, even after attempting to fetch, + // there's nothing we can do. return Err(CloneError::NotFound(id)); - } + }; - // Create a local fork of the project, under our own id. - { + // Create a local fork of the project, under our own id, unless we have one already. + if repository.remote(signer.public_key()).is_err() { let mut spinner = term::spinner(format!( "Forking under {}..", term::format::tertiary(term::format::node(&me)) @@ -223,7 +223,7 @@ pub fn clone( } } - let doc = storage.repository(id)?.identity_of(&me)?; + let doc = repository.identity_of(&me)?; let proj = doc.project()?; let path = Path::new(proj.name());