|
|
@ -221,11 +221,12 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle |
|
|
|
os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm) |
|
|
|
os.MkdirAll(path.Dir(tmpBasePath), os.ModePerm) |
|
|
|
defer os.RemoveAll(path.Dir(tmpBasePath)) |
|
|
|
defer os.RemoveAll(path.Dir(tmpBasePath)) |
|
|
|
|
|
|
|
|
|
|
|
// Clone the base repository to the defined temporary directory.
|
|
|
|
// Clone the base repository to the defined temporary directory,
|
|
|
|
|
|
|
|
// and checks out to base branch directly.
|
|
|
|
var stderr string |
|
|
|
var stderr string |
|
|
|
if _, stderr, err = process.ExecTimeout(5*time.Minute, |
|
|
|
if _, stderr, err = process.ExecTimeout(5*time.Minute, |
|
|
|
fmt.Sprintf("PullRequest.Merge (git clone): %s", tmpBasePath), |
|
|
|
fmt.Sprintf("PullRequest.Merge (git clone): %s", tmpBasePath), |
|
|
|
"git", "clone", baseGitRepo.Path, tmpBasePath); err != nil { |
|
|
|
"git", "clone", "-b", pr.BaseBranch, baseGitRepo.Path, tmpBasePath); err != nil { |
|
|
|
return fmt.Errorf("git clone: %s", stderr) |
|
|
|
return fmt.Errorf("git clone: %s", stderr) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -253,13 +254,6 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository, mergeStyle |
|
|
|
switch mergeStyle { |
|
|
|
switch mergeStyle { |
|
|
|
case MERGE_STYLE_REGULAR: // Create merge commit
|
|
|
|
case MERGE_STYLE_REGULAR: // Create merge commit
|
|
|
|
|
|
|
|
|
|
|
|
// Check out the base branch to be operated on.
|
|
|
|
|
|
|
|
if _, stderr, err = process.ExecDir(-1, tmpBasePath, |
|
|
|
|
|
|
|
fmt.Sprintf("PullRequest.Merge (git checkout): %s", tmpBasePath), |
|
|
|
|
|
|
|
"git", "checkout", pr.BaseBranch); err != nil { |
|
|
|
|
|
|
|
return fmt.Errorf("git checkout '%s': %s", pr.BaseBranch, stderr) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Merge changes from head branch.
|
|
|
|
// Merge changes from head branch.
|
|
|
|
if _, stderr, err = process.ExecDir(-1, tmpBasePath, |
|
|
|
if _, stderr, err = process.ExecDir(-1, tmpBasePath, |
|
|
|
fmt.Sprintf("PullRequest.Merge (git merge --no-ff --no-commit): %s", tmpBasePath), |
|
|
|
fmt.Sprintf("PullRequest.Merge (git merge --no-ff --no-commit): %s", tmpBasePath), |
|
|
|