making safety checks
This commit is contained in:
parent
d01cb1c9d7
commit
32a5530129
|
@ -28,6 +28,7 @@ func (r *Repo) MergeToDevel() (*cmd.Status, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if !r.IsBranchRemote(devel) {
|
if !r.IsBranchRemote(devel) {
|
||||||
|
r.Reload() // rescan the repo
|
||||||
// devel branch is not remote. do not try 'git push'
|
// devel branch is not remote. do not try 'git push'
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
@ -36,27 +37,44 @@ func (r *Repo) MergeToDevel() (*cmd.Status, error) {
|
||||||
cmd = []string{"git", "push"}
|
cmd = []string{"git", "push"}
|
||||||
result, err = r.RunQuiet(cmd)
|
result, err = r.RunQuiet(cmd)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Log(WARN, "MergeToDevel() failed", r.GetFullPath())
|
log.Log(WARN, "GitPushToDevel() failed", r.GetFullPath())
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
|
r.Reload() // rescan the repo
|
||||||
return result, nil
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (rs *Repo) MergeDevelToMaster() (*cmd.Status, error) {
|
func (r *Repo) MergeToMaster() (*cmd.Status, error) {
|
||||||
startbranch := rs.GetCurrentBranchName()
|
r.Reload()
|
||||||
devel := rs.GetDevelBranchName()
|
ro := r.GetReadOnly()
|
||||||
main := rs.GetMasterBranchName()
|
log.Info("ro is", ro, "for", r.GetGoPath())
|
||||||
|
return nil, nil
|
||||||
|
|
||||||
log.Info("MergeDevelToMaster() checking out", main, "started on", startbranch, "merge", devel)
|
if r.GetCurrentBranchName() != r.GetMasterBranchName() {
|
||||||
|
return nil, fmt.Errorf("repo not on master branch")
|
||||||
|
}
|
||||||
|
if r.CheckDirty() {
|
||||||
|
return nil, fmt.Errorf("repo is dirty")
|
||||||
|
}
|
||||||
|
master := r.GetMasterBranchName()
|
||||||
|
devel := r.GetDevelBranchName()
|
||||||
|
|
||||||
var all [][]string
|
log.Info("MergeToMaster() merging from", devel, "into", master)
|
||||||
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 {
|
cmd := []string{"git", "merge", devel}
|
||||||
log.Log(WARN, "MergeDevelToMaster() failed", rs.GetFullPath())
|
result, err := r.RunQuiet(cmd)
|
||||||
|
if err != nil {
|
||||||
|
log.Log(WARN, "MergeToMaster() failed", r.GetFullPath())
|
||||||
return result, err
|
return result, err
|
||||||
}
|
}
|
||||||
return nil, 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, "GitPushToMaster() failed", r.GetFullPath())
|
||||||
|
return result, err
|
||||||
|
}
|
||||||
|
r.Reload() // rescan the repo
|
||||||
|
return result, nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue