Browse Source

models/pull: treat all errors as conflict (#4265)

If there is a misdetection, log shows everything.
pull/1983/merge
Unknwon 8 years ago
parent
commit
c3cde864f8
No known key found for this signature in database
GPG Key ID: 25B575AE3213B2B3
  1. 18
      models/pull.go

18
models/pull.go

@ -329,12 +329,6 @@ func (pr *PullRequest) Merge(doer *User, baseGitRepo *git.Repository) (err error
return nil return nil
} }
// patchConflicts is a list of conflit description from Git.
var patchConflicts = []string{
"fatal:",
"error:",
}
// testPatch checks if patch can be merged to base repository without conflit. // testPatch checks if patch can be merged to base repository without conflit.
// FIXME: make a mechanism to clean up stable local copies. // FIXME: make a mechanism to clean up stable local copies.
func (pr *PullRequest) testPatch() (err error) { func (pr *PullRequest) testPatch() (err error) {
@ -370,15 +364,9 @@ func (pr *PullRequest) testPatch() (err error) {
fmt.Sprintf("testPatch (git apply --check): %d", pr.BaseRepo.ID), fmt.Sprintf("testPatch (git apply --check): %d", pr.BaseRepo.ID),
"git", "apply", "--check", patchPath) "git", "apply", "--check", patchPath)
if err != nil { if err != nil {
for i := range patchConflicts { log.Trace("PullRequest[%d].testPatch (apply): has conflit\n%s", pr.ID, stderr)
if strings.Contains(stderr, patchConflicts[i]) { pr.Status = PULL_REQUEST_STATUS_CONFLICT
log.Trace("PullRequest[%d].testPatch (apply): has conflit\n%s", pr.ID, stderr) return nil
pr.Status = PULL_REQUEST_STATUS_CONFLICT
return nil
}
}
return fmt.Errorf("git apply --check: %v - %s", err, stderr)
} }
return nil return nil
} }

Loading…
Cancel
Save