check branch differences
This commit is contained in:
parent
9cc9b9bc87
commit
e127f53bd4
|
@ -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)
|
||||
|
|
|
@ -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")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue