diff options
| author | Jeff Carr <[email protected]> | 2025-07-07 23:07:12 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-07-07 23:07:12 -0500 |
| commit | 807049f6c7b319caa60a20f53221bcb81b1168d9 (patch) | |
| tree | b41be536704a1202d7d8134eeba265c7b4226cc4 | |
| parent | 86e513d845acc63b7d3371aaa41ce7d19603f473 (diff) | |
add 'forge merge master'v0.22.123
| -rw-r--r-- | doFind.go | 10 | ||||
| -rw-r--r-- | doGui.go | 1 | ||||
| -rw-r--r-- | doPull.go | 30 | ||||
| -rw-r--r-- | main.go | 7 |
4 files changed, 47 insertions, 1 deletions
@@ -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() @@ -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) @@ -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 +} @@ -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?")) } |
