diff options
| author | Glenn Morris | 2017-12-12 21:58:38 -0500 |
|---|---|---|
| committer | Glenn Morris | 2017-12-12 21:58:38 -0500 |
| commit | 8c91d31beab0234e8a187864df46af543022c656 (patch) | |
| tree | 5e8bc381f73554660eb1f26a8e90c42ce32239a4 /admin/gitmerge.el | |
| parent | 8e78d49765993bbbb93d42b0530f5ffaa4e759f4 (diff) | |
| download | emacs-8c91d31beab0234e8a187864df46af543022c656.tar.gz emacs-8c91d31beab0234e8a187864df46af543022c656.zip | |
Fix gitmerge handling of automatic conflict reslution
* admin/gitmerge.el (gitmerge-resolve): Reenable NEWS handling.
(gitmerge-resolve-unmerged): Commit after successful resolution.
(gitmerge-commit): New function, extracted from gitmerge-maybe-resume.
(gitmerge-maybe-resume): Use gitmerge-commit.
Diffstat (limited to 'admin/gitmerge.el')
| -rw-r--r-- | admin/gitmerge.el | 23 |
1 files changed, 12 insertions, 11 deletions
diff --git a/admin/gitmerge.el b/admin/gitmerge.el index eddc72e679c..13d92ac92bc 100644 --- a/admin/gitmerge.el +++ b/admin/gitmerge.el | |||
| @@ -316,11 +316,7 @@ Returns non-nil if conflicts remain." | |||
| 316 | (gitmerge-emacs-version gitmerge--from)))) | 316 | (gitmerge-emacs-version gitmerge--from)))) |
| 317 | (file-exists-p temp) | 317 | (file-exists-p temp) |
| 318 | (or noninteractive | 318 | (or noninteractive |
| 319 | (and | 319 | (y-or-n-p "Try to fix NEWS conflict? "))) |
| 320 | (y-or-n-p "Try to fix NEWS conflict? ") | ||
| 321 | ;; FIXME | ||
| 322 | (y-or-n-p "This is buggy, really try? ") | ||
| 323 | ))) | ||
| 324 | (let ((relfile (file-name-nondirectory file)) | 320 | (let ((relfile (file-name-nondirectory file)) |
| 325 | (tempfile (make-temp-file "gitmerge"))) | 321 | (tempfile (make-temp-file "gitmerge"))) |
| 326 | (unwind-protect | 322 | (unwind-protect |
| @@ -431,7 +427,9 @@ Throw an user-error if we cannot resolve automatically." | |||
| 431 | (setq conflicted t) | 427 | (setq conflicted t) |
| 432 | ;; Mark as resolved | 428 | ;; Mark as resolved |
| 433 | (call-process "git" nil t nil "add" file))) | 429 | (call-process "git" nil t nil "add" file))) |
| 434 | (when conflicted | 430 | (if (not conflicted) |
| 431 | (and files (not (gitmerge-commit)) | ||
| 432 | (error "Error committing resolution - fix it manually")) | ||
| 435 | (with-current-buffer (get-buffer-create gitmerge-warning-buffer) | 433 | (with-current-buffer (get-buffer-create gitmerge-warning-buffer) |
| 436 | (erase-buffer) | 434 | (erase-buffer) |
| 437 | (insert "For the following files, conflicts could\n" | 435 | (insert "For the following files, conflicts could\n" |
| @@ -457,6 +455,12 @@ Throw an user-error if we cannot resolve automatically." | |||
| 457 | "diff" "--name-only") | 455 | "diff" "--name-only") |
| 458 | (zerop (buffer-size)))) | 456 | (zerop (buffer-size)))) |
| 459 | 457 | ||
| 458 | (defun gitmerge-commit () | ||
| 459 | "Commit, and return non-nil if it succeeds." | ||
| 460 | (with-current-buffer (get-buffer-create gitmerge-output-buffer) | ||
| 461 | (erase-buffer) | ||
| 462 | (eq 0 (call-process "git" nil t nil "commit" "--no-edit")))) | ||
| 463 | |||
| 460 | (defun gitmerge-maybe-resume () | 464 | (defun gitmerge-maybe-resume () |
| 461 | "Check if we have to resume a merge. | 465 | "Check if we have to resume a merge. |
| 462 | If so, add no longer conflicted files and commit." | 466 | If so, add no longer conflicted files and commit." |
| @@ -478,11 +482,8 @@ If so, add no longer conflicted files and commit." | |||
| 478 | (gitmerge-resolve-unmerged) | 482 | (gitmerge-resolve-unmerged) |
| 479 | ;; Commit the merge. | 483 | ;; Commit the merge. |
| 480 | (when mergehead | 484 | (when mergehead |
| 481 | (with-current-buffer (get-buffer-create gitmerge-output-buffer) | 485 | (or (gitmerge-commit) |
| 482 | (erase-buffer) | 486 | (error "Git error during merge - fix it manually"))) |
| 483 | (unless (zerop (call-process "git" nil t nil | ||
| 484 | "commit" "--no-edit")) | ||
| 485 | (error "Git error during merge - fix it manually")))) | ||
| 486 | ;; Successfully resumed. | 487 | ;; Successfully resumed. |
| 487 | t)))) | 488 | t)))) |
| 488 | 489 | ||