summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2025-07-07 23:07:12 -0500
committerJeff Carr <[email protected]>2025-07-07 23:07:12 -0500
commit807049f6c7b319caa60a20f53221bcb81b1168d9 (patch)
treeb41be536704a1202d7d8134eeba265c7b4226cc4
parent86e513d845acc63b7d3371aaa41ce7d19603f473 (diff)
add 'forge merge master'v0.22.123
-rw-r--r--doFind.go10
-rw-r--r--doGui.go1
-rw-r--r--doPull.go30
-rw-r--r--main.go7
4 files changed, 47 insertions, 1 deletions
diff --git a/doFind.go b/doFind.go
index a6d4720..8c4acea 100644
--- a/doFind.go
+++ b/doFind.go
@@ -167,10 +167,18 @@ func findReposWithPatches() *gitpb.Repos {
continue
}
- // this is an old test to see if the current 'last tag' is accurate and should be removed
+ // ignore read-only repos for checks below here
if me.forge.Config.IsReadOnly(repo.GetGoPath()) {
continue
}
+
+ // show anything that differs between 'devel' & 'master' branches
+ if repo.GetDevelVersion() != repo.GetMasterVersion() {
+ found.AppendByGoPath(repo)
+ continue
+ }
+
+ // this is an old test to see if the current 'last tag' is accurate and should be removed
if repo.GetLastTag() != repo.GetMasterVersion() {
found.AppendByGoPath(repo)
repo.FindLastTag()
diff --git a/doGui.go b/doGui.go
index fc92115..380506c 100644
--- a/doGui.go
+++ b/doGui.go
@@ -273,6 +273,7 @@ func findMergeToDevel() *gitpb.Repos {
log.Printf("devel branch check. %d total repos. (%d ok) (%d not on devel branch) (%s)\n", total, count, nope, shell.FormatDuration(time.Since(now)))
return found
}
+
func findMergeToMaster() *gitpb.Repos {
found := new(gitpb.Repos)
diff --git a/doPull.go b/doPull.go
index 6e341b2..fe581cb 100644
--- a/doPull.go
+++ b/doPull.go
@@ -168,3 +168,33 @@ func doMergeDevel() (*gitpb.Repos, error) {
}
return done, err
}
+
+func doMergeMaster() (*gitpb.Repos, error) {
+ var err error
+ done := gitpb.NewRepos()
+ found := findMergeToMaster()
+ for repo := range found.IterAll() {
+ if repo.CheckDirty() {
+ log.Info("repo is dirty", repo.GetGoPath())
+ continue
+ }
+
+ log.Info("Starting merge on", repo.GetGoPath())
+ if repo.CheckoutMaster() {
+ log.Info("checkout devel failed", repo.GetGoPath())
+ err = fmt.Errorf("checkout devel failed")
+ break
+ }
+
+ if _, err := repo.MergeToMaster(); err != nil {
+ log.Info("merge from user failed", repo.GetGoPath(), err)
+ err = fmt.Errorf("merge from user failed")
+ // log.Info(strings.Join(r.Stdout, "\n"))
+ // log.Info(strings.Join(r.Stderr, "\n"))
+ break
+ }
+
+ done.Append(repo)
+ }
+ return done, err
+}
diff --git a/main.go b/main.go
index daa545d..22ec51a 100644
--- a/main.go
+++ b/main.go
@@ -146,6 +146,13 @@ func main() {
}
okExit("devel merge ok")
}
+
+ if argv.Merge.Master != nil {
+ if _, err := doMergeMaster(); err != nil {
+ badExit(err)
+ }
+ okExit("master merge ok")
+ }
badExit(fmt.Errorf("merge what?"))
}