summaryrefslogtreecommitdiff
path: root/admin/gitmerge.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2017-12-18 19:38:25 -0500
committerGlenn Morris <rgm@gnu.org>2017-12-18 19:38:25 -0500
commit1e89864f92b3e1f29592ae914cf6fccce40d49d2 (patch)
treeb00bfa77972997ce4dc862d38ef0c56f6c9f5b37 /admin/gitmerge.el
parent91031a2cfd6b6a3b17c0f8724fd5cccf7c32ed5b (diff)
downloademacs-1e89864f92b3e1f29592ae914cf6fccce40d49d2.tar.gz
Make gitmerge usable in batch mode
* admin/gitmerge.el (gitmerge-missing): Add progress messages. (gitmerge-maybe-resume): In batch mode, never resume. (gitmerge): Handle batch mode.
Diffstat (limited to 'admin/gitmerge.el')
-rw-r--r--admin/gitmerge.el15
1 files changed, 11 insertions, 4 deletions
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index 5e7d8c3e33f..efb7d08501c 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -198,6 +198,7 @@ Will detect a default set of skipped revision by looking at
cherry mark and search for `gitmerge-skip-regexp'. The result is
a list with entries of the form (SHA1 . SKIP), where SKIP denotes
if and why this commit should be skipped."
+ (message "Finding missing commits...")
(let (commits)
;; Go through the log and remember all commits that match
;; `gitmerge-skip-regexp' or are marked by --cherry-mark.
@@ -220,6 +221,7 @@ if and why this commit should be skipped."
(when (re-search-forward gitmerge-skip-regexp nil t)
(setcdr (car commits) "R"))))))
(delete-region (point) (point-max))))
+ (message "Finding missing commits...done")
(nreverse commits)))
(defun gitmerge-setup-log-buffer (commits from)
@@ -474,7 +476,7 @@ If so, add no longer conflicted files and commit."
(not (gitmerge-repo-clean)))
(user-error "Repository is not clean"))
(when statusexist
- (if (not (y-or-n-p "Resume merge? "))
+ (if (or noninteractive (not (y-or-n-p "Resume merge? ")))
(progn
(delete-file gitmerge-status-file)
;; No resume.
@@ -540,8 +542,12 @@ Branch FROM will be prepended to the list."
(list
(if (gitmerge-maybe-resume)
'resume
- (completing-read "Merge branch: " (gitmerge-get-all-branches)
- nil t (gitmerge-default-branch)))))))
+ (if noninteractive
+ (or (pop command-line-args-left)
+ (gitmerge-default-branch))
+ (completing-read "Merge branch: "
+ (gitmerge-get-all-branches)
+ nil t (gitmerge-default-branch))))))))
(let ((default-directory (vc-git-root default-directory)))
(if (eq from 'resume)
(progn
@@ -563,7 +569,8 @@ Branch FROM will be prepended to the list."
"(C) Detected backport (cherry-mark), (R) Log matches "
"regexp, (M) Manually picked\n\n")
(gitmerge-mode)
- (pop-to-buffer (current-buffer))))))
+ (pop-to-buffer (current-buffer))
+ (if noninteractive (gitmerge-start-merge))))))
(defun gitmerge-start-merge ()
(interactive)