From bab03875d20859e047f9ae2b3e406c64fd79fc64 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 5 Jan 2025 03:22:04 -0600 Subject: [PATCH 1/2] a simple get DevelHash() --- gitTag.common.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 gitTag.common.go diff --git a/gitTag.common.go b/gitTag.common.go new file mode 100644 index 0000000..64cef8f --- /dev/null +++ b/gitTag.common.go @@ -0,0 +1,15 @@ +package gitpb + +func (repo *Repo) DevelHash() string { + brname := repo.GetDevelBranchName() + refname := "refs/heads/" + brname + all := repo.Tags.All() + for all.Scan() { + tag := all.Next() + // log.Info("repo tag", tag.GetHash(), tag.GetRefname()) + if tag.GetRefname() == refname { + return tag.GetHash() + } + } + return "" +} From 22b157f6d7a269bd592c5d907ca2e8c0d189928e Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 5 Jan 2025 12:02:54 -0600 Subject: [PATCH 2/2] add merge things --- repo.merge.go | 44 ++++++++++++++++++++++++++++++++++++++++++++ shell.go | 23 +++++++++++++++++++++++ 2 files changed, 67 insertions(+) create mode 100644 repo.merge.go diff --git a/repo.merge.go b/repo.merge.go new file mode 100644 index 0000000..9507459 --- /dev/null +++ b/repo.merge.go @@ -0,0 +1,44 @@ +package gitpb + +import ( + "github.com/go-cmd/cmd" + "go.wit.com/log" +) + +func (rs *Repo) MergeUserToDevel() (*cmd.Status, error) { + startbranch := rs.GetCurrentBranchName() + devel := rs.GetDevelBranchName() + user := rs.GetUserBranchName() + + log.Info("MergeUserToDevel() checking out", devel, "started on", startbranch, "merge", user) + + var all [][]string + all = append(all, []string{"git", "checkout", devel}) + all = append(all, []string{"git", "merge", user}) + all = append(all, []string{"git", "push"}) + + if result, err := rs.RunStrictAll(all); err != nil { + log.Log(GITPBWARN, "MergeUserToDevel() failed", rs.GetFullPath()) + return result, err + } + return nil, nil +} + +func (rs *Repo) MergeDevelToMaster() (*cmd.Status, error) { + startbranch := rs.GetCurrentBranchName() + devel := rs.GetDevelBranchName() + main := rs.GetMasterBranchName() + + log.Info("MergeDevelToMaster() checking out", main, "started on", startbranch, "merge", devel) + + var all [][]string + all = append(all, []string{"git", "checkout", main}) + all = append(all, []string{"git", "merge", devel}) + all = append(all, []string{"git", "push"}) + + if result, err := rs.RunStrictAll(all); err != nil { + log.Log(GITPBWARN, "MergeDevelToMaster() failed", rs.GetFullPath()) + return result, err + } + return nil, nil +} diff --git a/shell.go b/shell.go index c9ea1ed..15fab39 100644 --- a/shell.go +++ b/shell.go @@ -65,6 +65,19 @@ func (repo *Repo) StrictRun(cmd []string) error { return nil } +func (repo *Repo) RunStrictNew(cmd []string) (*cmd.Status, error) { + result := repo.RunQuiet(cmd) + if result.Error != nil { + log.Warn(repo.GetGoPath(), cmd, "wow. golang is cool. an os.Error:", result.Error) + return &result, result.Error + } + if result.Exit != 0 { + log.Warn(cmd, "failed with", result.Exit) + return &result, errors.New(fmt.Sprint(cmd, "failed with", result.Exit)) + } + return nil, nil +} + func (repo *Repo) Exists(filename string) bool { if repo == nil { return false @@ -121,3 +134,13 @@ func (repo *Repo) RunAll(all [][]string) bool { } return true } + +func (repo *Repo) RunStrictAll(all [][]string) (*cmd.Status, error) { + for _, cmd := range all { + log.Log(GITPBWARN, "doAll() RUNNING: cmd =", cmd) + if result, err := repo.RunStrictNew(cmd); err != nil { + return result, err + } + } + return nil, nil +}