From e127f53bd42684eedf0f6fa6284ac1eeeb7df561 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 13 Feb 2025 23:39:07 -0600 Subject: [PATCH] check branch differences --- reloadRepoState.go | 13 +------------ repo.merge.go | 5 +++++ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/reloadRepoState.go b/reloadRepoState.go index a946e2d..7707c42 100644 --- a/reloadRepoState.go +++ b/reloadRepoState.go @@ -6,17 +6,6 @@ import ( "go.wit.com/log" ) -// count all objects only in branch1 -func (repo *Repo) countDiffObjects(branch1, branch2 string) int { - cmd := repo.ConstructGitDiffLog(branch1, branch2) - r, err := repo.RunVerboseOnError(cmd) - if err != nil { - return -1 - } - // log.Info("countDiffObjects()", cmd, len(r.Stdout), strings.Join(r.Stdout, " ")) - return len(r.Stdout) -} - func (repo *Repo) setRepoState() { if repo == nil { return @@ -44,7 +33,7 @@ func (repo *Repo) setRepoState() { repo.State = "devel not checked out" return } - b1 := repo.countDiffObjects(repo.GetMasterBranchName(), repo.GetDevelBranchName()) + b1 := repo.CountDiffObjects(repo.GetMasterBranchName(), repo.GetDevelBranchName()) if b1 == 0 { repo.State = "merge to main" // log.Info("master vs devel count is normal b1 == 0", b1) diff --git a/repo.merge.go b/repo.merge.go index 441585a..20bc5b0 100644 --- a/repo.merge.go +++ b/repo.merge.go @@ -55,6 +55,11 @@ func (r *Repo) MergeToMaster() (*cmd.Status, error) { if r.GetCurrentBranchName() != r.GetMasterBranchName() { return nil, fmt.Errorf("repo not on master branch") } + if r.GetReadOnly() { + r.Reload() // rescan the repo + // master branch is read only. you can not git push + return nil, fmt.Errorf("can't merge to master on read only() repos") + } if r.CheckDirty() { return nil, fmt.Errorf("repo is dirty") }