diff options
Diffstat (limited to 'repo.merge.go')
| -rw-r--r-- | repo.merge.go | 33 |
1 files changed, 13 insertions, 20 deletions
diff --git a/repo.merge.go b/repo.merge.go index 1b07558..3bdc3c5 100644 --- a/repo.merge.go +++ b/repo.merge.go @@ -9,12 +9,16 @@ import ( func (r *Repo) MergeToDevel() (*cmd.Status, error) { r.ReloadCheck() - if r.GetCurrentBranchName() != r.GetDevelBranchName() { - return nil, fmt.Errorf("repo not on devel branch") - } if r.CheckDirty() { return nil, fmt.Errorf("repo is dirty") } + if r.GetCurrentBranchName() != r.GetUserBranchName() { + return nil, fmt.Errorf("repo is not on user branch") + } + if err := r.CheckoutDevelError(); err != nil { + log.Info("CheckoutDevelError()", err) + return nil, err + } devel := r.GetDevelBranchName() user := r.GetUserBranchName() @@ -47,27 +51,16 @@ func (r *Repo) MergeToDevel() (*cmd.Status, error) { func (r *Repo) MergeToMaster() (*cmd.Status, error) { r.ReloadCheck() - if r.GetCurrentBranchName() != r.GetMasterBranchName() { - return nil, fmt.Errorf("repo not on master branch") + if r.GetCurrentBranchName() != r.GetDevelBranchName() { + return nil, fmt.Errorf("repo is not on devel branch") } - /* - if r.GetReadOnly() { - r.ReloadCheck() // rescan the repo - // master branch is read only. you can not git push - lh := r.GetLocalHash("devel") - rh := r.GetRemoteHash("devel") - if lh == rh { - // log.Info(r.FullPath, "local devel == remote devel", lh, rh) - } else { - log.Info(r.FullPath, "local devel != remote devel", lh, rh) - } - log.Info("can't merge to master on read only() repos. trying anyway") - // return nil, fmt.Errorf("can't merge to master on read only() repos") - } - */ if r.CheckDirty() { return nil, fmt.Errorf("repo is dirty") } + if err := r.CheckoutMasterError(); err != nil { + log.Info("CheckoutMasterError()", err) + return nil, err + } master := r.GetMasterBranchName() devel := r.GetDevelBranchName() |
