summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-02-13 23:39:07 -0600
committerJeff Carr <[email protected]>2025-02-13 23:39:07 -0600
commite127f53bd42684eedf0f6fa6284ac1eeeb7df561 (patch)
treef839fd045c5f4c183ebe79141d5778fff23dd399
parent9cc9b9bc8733a02e5e9de88a7a3ffb6672aa345c (diff)
check branch differencesv0.0.75
-rw-r--r--reloadRepoState.go13
-rw-r--r--repo.merge.go5
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")
}