summaryrefslogtreecommitdiff
path: root/repo.merge.go
diff options
context:
space:
mode:
Diffstat (limited to 'repo.merge.go')
-rw-r--r--repo.merge.go33
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()