From 9be68804bae9833a4749377e05bfaebf7d64f2b1 Mon Sep 17 00:00:00 2001 From: Max Audron Date: Tue, 8 Apr 2025 16:48:57 +0200 Subject: only checkout repo if clean --- src/repo/mod.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/repo/mod.rs') diff --git a/src/repo/mod.rs b/src/repo/mod.rs index 538bf31..480a486 100644 --- a/src/repo/mod.rs +++ b/src/repo/mod.rs @@ -8,8 +8,8 @@ use tracing::error; use crate::forge::Project; mod aggregate; -mod repostate; mod git; +mod repostate; pub use aggregate::*; pub use repostate::*; @@ -47,6 +47,8 @@ pub enum RepoError { NoLocalRepo, #[error("local git repo does not have a remote")] NoRemoteFound, + #[error("no head found")] + NoHead, #[error("could not determine default branch based on remote HEAD")] NoDefaultBranch, #[error("repo is not checked out")] @@ -65,6 +67,10 @@ pub enum RepoError { pub enum LocalRepoState { #[error("operation in progress: {0:?}")] InProgress(gix::state::InProgress), + #[error("currently checked out branch is not default")] + NonDefaultBranch, + #[error("{0} unpushed commits")] + UnpushedCommits(usize), #[error("head is detached")] DetachedHead, #[error("head is unborn")] -- cgit v1.2.3