Radish alpha
r
rad:z39mP9rQAaGmERfUMPULfPUi473tY
Radicle terminal user interface
Radicle
Git
bin: Improve brain loading / creating
Erik Kundt committed 1 year ago
commit a31ca0cd664c547cf0635f5c17e2d9ffaf5b95ba
parent cf44bb8
2 files changed +22 -12
modified bin/commands/patch.rs
@@ -314,18 +314,7 @@ mod interface {
            None => patch.latest(),
        };

-
        let brain = if let Ok(b) = Brain::load(patch_id.into(), signer.public_key(), repo.raw()) {
-
            log::info!(
-
                "Loaded existing brain {} for patch {}",
-
                b.head().id(),
-
                &patch_id
-
            );
-
            b
-
        } else {
-
            let base = repo.raw().find_commit((*revision.base()).into())?;
-
            Brain::new(patch_id.into(), signer.public_key(), base, repo.raw())?
-
        };
-

+
        let brain = Brain::load_or_new(patch_id, &revision, repo.raw(), &signer)?;
        let builder = ReviewBuilder::new(patch_id.into(), &signer, &repo);
        let queue = builder.queue(&brain, &revision)?;

modified bin/commands/patch/review/builder.rs
@@ -362,6 +362,27 @@ impl<'a> Brain<'a> {
        })
    }

+
    pub fn load_or_new<G: Signer>(
+
        patch: PatchId,
+
        revision: &Revision,
+
        repo: &'a git::raw::Repository,
+
        signer: &'a G,
+
    ) -> Result<Self, git::raw::Error> {
+
        let brain = if let Ok(b) = Brain::load(patch.into(), signer.public_key(), repo) {
+
            log::info!(
+
                "Loaded existing brain {} for patch {}",
+
                b.head().id(),
+
                &patch
+
            );
+
            b
+
        } else {
+
            let base = repo.find_commit((*revision.base()).into())?;
+
            Brain::new(patch.into(), signer.public_key(), base, repo)?
+
        };
+

+
        Ok(brain)
+
    }
+

    /// Accept changes to the brain.
    pub fn accept(
        &mut self,