look for out of date remote branches

This commit is contained in:
Jeff Carr 2025-09-11 05:18:19 -05:00
parent 7d60a495ca
commit 33c585f4cf
2 changed files with 27 additions and 1 deletions

View File

@ -54,12 +54,30 @@ func (repo *Repo) Reload() error {
}
}
repo.VerifyRemoteAndLocalBranches(repo.GetDevelBranchName())
repo.VerifyRemoteAndLocalBranches(repo.GetMasterBranchName())
// LastUpdate should always be the newest time
repo.Times.LastUpdate = timestamppb.New(time.Now())
repo.ValidateUTF8()
return nil
}
func (repo *Repo) VerifyRemoteAndLocalBranches(bname string) bool {
if !repo.IsBranchRemote(bname) {
return true
}
lh := repo.GetLocalHash(bname)
rh := repo.GetRemoteHash(bname)
if lh == rh {
// log.Info(r.FullPath, "local devel == remote devel", lh, rh)
return true
} else {
log.Info(repo.FullPath, bname, "local != remote", lh, rh)
}
return false
}
func (repo *Repo) SetDevelBranchName(bname string) {
repo.DevelBranchName = bname
}

View File

@ -58,7 +58,15 @@ func (r *Repo) MergeToMaster() (*cmd.Status, error) {
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")
lh := r.GetLocalHash("devel")
rh := r.GetRemoteHash("devel")
if lh == rh {
// log.Info(r.FullPath, "local devel == remote devel", lh, rh)
} else {
log.Info(r.FullPath, "local devel != remote devel", lh, rh)
}
log.Info("can't merge to master on read only() repos. trying anyway")
// return nil, fmt.Errorf("can't merge to master on read only() repos")
}
if r.CheckDirty() {
return nil, fmt.Errorf("repo is dirty")