From 9cc9b9bc8733a02e5e9de88a7a3ffb6672aa345c Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 9 Feb 2025 16:48:45 -0600 Subject: [PATCH] detect more devel branch problems --- branches.go | 8 ++++++++ reloadRepoState.go | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/branches.go b/branches.go index e6d0570..192e4e3 100644 --- a/branches.go +++ b/branches.go @@ -40,6 +40,10 @@ func (repo *Repo) ExistsUserBranch() bool { // todo: actually use .git/config return true } + if repo.Exists(filepath.Join(".git/refs/remote/origin", branchname)) { + // todo: actually use .git/config + return true + } return false } @@ -53,6 +57,10 @@ func (repo *Repo) ExistsDevelBranch() bool { // todo: actually use .git/config return true } + if repo.Exists(filepath.Join(".git/refs/remote/origin", branchname)) { + // todo: actually use .git/config + return true + } return false } diff --git a/reloadRepoState.go b/reloadRepoState.go index b6cb20a..a946e2d 100644 --- a/reloadRepoState.go +++ b/reloadRepoState.go @@ -34,6 +34,16 @@ func (repo *Repo) setRepoState() { } } if repo.GetDevelVersion() != repo.GetMasterVersion() { + if !repo.ExistsDevelBranch() { + // there is no devel branch. you are safe to proceed + repo.State = "no devel branch" + return + } + if !repo.IsLocalBranch(repo.GetDevelBranchName()) { + // the remote devel branch exists but is not checked out + repo.State = "devel not checked out" + return + } b1 := repo.countDiffObjects(repo.GetMasterBranchName(), repo.GetDevelBranchName()) if b1 == 0 { repo.State = "merge to main"