91 lines
2.4 KiB
Go
91 lines
2.4 KiB
Go
package main
|
|
|
|
import (
|
|
"path/filepath"
|
|
|
|
"go.wit.com/lib/protobuf/gitpb"
|
|
"go.wit.com/log"
|
|
)
|
|
|
|
func doVerifyDevel() error {
|
|
me.found = new(gitpb.Repos)
|
|
all := me.forge.Repos.SortByFullPath()
|
|
for all.Scan() {
|
|
repo := all.Next()
|
|
if repo.IsDirty() {
|
|
log.Info(repo.GetGoPath(), "is dirty")
|
|
continue
|
|
}
|
|
if repo.GetDevelBranchName() == "" {
|
|
continue
|
|
}
|
|
if repo.GetMasterBranchName() != repo.GetCurrentBranchName() {
|
|
log.Info(repo.GetGoPath(), "is not on master branch")
|
|
continue
|
|
}
|
|
|
|
// check if devel branch exists in remote repo
|
|
devel := repo.GetDevelBranchName()
|
|
if argv.Verbose {
|
|
log.Printf("Start clean devel branch: %s %s\n", repo.GetGoPath(), devel)
|
|
}
|
|
|
|
if repo.Exists(filepath.Join(".git/refs/remotes/origin", devel)) {
|
|
// todo: actually use .git/config
|
|
if err := doCleanDevelRepo(repo); err != nil {
|
|
log.Info(repo.GetGoPath(), "verify clean failed")
|
|
}
|
|
// can not continue
|
|
continue
|
|
}
|
|
// devel branch is only local
|
|
/*
|
|
devname := repo.GetDevelBranchName()
|
|
if err := requiresGitPush(repo, devname); err != nil {
|
|
log.Info(repo.GetGoPath(), "is out of sync with upstream")
|
|
return err
|
|
}
|
|
*/
|
|
}
|
|
return nil
|
|
}
|
|
|
|
/*
|
|
err = fmt.Errorf("examineBranch() branch differs. patch diff len == 0. PROBABLY DELETE BRANCH %s", repo.CurrentTag.Refname)
|
|
log.Info(err)
|
|
cmd := repo.ConstructGitDiffLog(repo.CurrentTag.Refname, repo.GetMasterBranchName())
|
|
if argv.Clean.Examine.Fix == nil {
|
|
log.Info(repo.GetGoPath(), cmd)
|
|
} else {
|
|
if _, err := repo.RunVerbose(cmd); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
cmd = repo.ConstructGitDiffLog(repo.GetMasterBranchName(), repo.CurrentTag.Refname)
|
|
if argv.Clean.Examine.Fix == nil {
|
|
log.Info(repo.GetGoPath(), cmd)
|
|
} else {
|
|
if _, err := repo.RunVerbose(cmd); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
cmd = []string{"git", "branch", "-D", repo.CurrentTag.Refname}
|
|
log.Info(repo.GetGoPath(), "TRY THIS:", cmd)
|
|
if argv.Clean.Examine.Fix == nil {
|
|
log.Info(repo.GetGoPath(), "TODO: CHECK REMOTE BRANCH DOES NOT EXIST", repo.CurrentTag.Refname)
|
|
repo.RunVerbose([]string{"ls", "-l", ".git/refs/remotes/origin"})
|
|
} else {
|
|
log.Info(repo.GetGoPath(), "TODO: CHECK REMOTE BRANCH DOES NOT EXIST", repo.CurrentTag.Refname)
|
|
if _, err := repo.RunVerbose(cmd); err != nil {
|
|
return err
|
|
} else {
|
|
return nil
|
|
}
|
|
}
|
|
return err
|
|
}
|
|
err = fmt.Errorf("examineBranch() branch differs, but not sure how to fix it yet == %d", len(dcount))
|
|
log.Info(err)
|
|
return nil
|
|
*/
|