put the checking logic here

This commit is contained in:
Jeff Carr 2025-01-30 11:27:48 -06:00
parent 387f69631b
commit d01cb1c9d7
1 changed files with 31 additions and 13 deletions

View File

@ -1,27 +1,45 @@
package gitpb package gitpb
import ( import (
"fmt"
"github.com/go-cmd/cmd" "github.com/go-cmd/cmd"
"go.wit.com/log" "go.wit.com/log"
) )
func (rs *Repo) MergeUserToDevel() (*cmd.Status, error) { func (r *Repo) MergeToDevel() (*cmd.Status, error) {
startbranch := rs.GetCurrentBranchName() r.Reload()
devel := rs.GetDevelBranchName() if r.GetCurrentBranchName() != r.GetDevelBranchName() {
user := rs.GetUserBranchName() return nil, fmt.Errorf("repo not on devel branch")
}
if r.CheckDirty() {
return nil, fmt.Errorf("repo is dirty")
}
devel := r.GetDevelBranchName()
user := r.GetUserBranchName()
log.Info("MergeUserToDevel() checking out", devel, "started on", startbranch, "merge", user) log.Info("MergeToDevel() merging from", user, "into", devel)
var all [][]string cmd := []string{"git", "merge", user}
all = append(all, []string{"git", "checkout", devel}) result, err := r.RunQuiet(cmd)
all = append(all, []string{"git", "merge", user}) if err != nil {
all = append(all, []string{"git", "push"}) log.Log(WARN, "MergeToDevel() failed", r.GetFullPath())
if result, err := rs.RunStrictAll(all); err != nil {
log.Log(WARN, "MergeUserToDevel() failed", rs.GetFullPath())
return result, err return result, err
} }
return nil, nil
if !r.IsBranchRemote(devel) {
// devel branch is not remote. do not try 'git push'
return result, nil
}
// it seems like we have write access. lets find out!
cmd = []string{"git", "push"}
result, err = r.RunQuiet(cmd)
if err != nil {
log.Log(WARN, "MergeToDevel() failed", r.GetFullPath())
return result, err
}
return result, nil
} }
func (rs *Repo) MergeDevelToMaster() (*cmd.Status, error) { func (rs *Repo) MergeDevelToMaster() (*cmd.Status, error) {