aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorGlenn Morris2017-12-01 22:03:05 -0500
committerGlenn Morris2017-12-01 22:03:05 -0500
commit7c95819de0bb351e77449877cb6899444a99d0c1 (patch)
treea11b4bfab34659261e986f67f038d14032f8d452 /admin
parent52097314c1a160be622dfcf9f40c33190a90be88 (diff)
downloademacs-7c95819de0bb351e77449877cb6899444a99d0c1.tar.gz
emacs-7c95819de0bb351e77449877cb6899444a99d0c1.zip
Don't hard-code gitmerge.el's default merge branch
* admin/gitmerge.el (gitmerge-default-branch): Make it a variable, defaulting to nil. (gitmerge-emacs-version, gitmerge-default-branch): New functions. (gitmerge): Guess the branch to merge from.
Diffstat (limited to 'admin')
-rw-r--r--admin/gitmerge.el22
1 files changed, 19 insertions, 3 deletions
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index e9e033517d0..3c65b0e6951 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -67,8 +67,9 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
67 '((t (:strike-through t))) 67 '((t (:strike-through t)))
68 "Face for skipped commits.") 68 "Face for skipped commits.")
69 69
70(defconst gitmerge-default-branch "origin/emacs-26" 70(defvar gitmerge-default-branch nil
71 "Default for branch that should be merged.") 71 "Default for branch that should be merged.
72If nil, the function `gitmerge-default-branch' guesses.")
72 73
73(defconst gitmerge-buffer "*gitmerge*" 74(defconst gitmerge-buffer "*gitmerge*"
74 "Working buffer for gitmerge.") 75 "Working buffer for gitmerge.")
@@ -103,6 +104,21 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
103(defvar gitmerge--commits nil) 104(defvar gitmerge--commits nil)
104(defvar gitmerge--from nil) 105(defvar gitmerge--from nil)
105 106
107(defun gitmerge-emacs-version (&optional branch)
108 "Return the major version of Emacs, optionally in BRANCH."
109 (with-temp-buffer
110 (if (not branch)
111 (insert-file-contents "configure.ac")
112 (call-process "git" nil t nil "show" (format "%s:configure.ac" branch))
113 (goto-char (point-min)))
114 (re-search-forward "^AC_INIT([^,]+, \\([0-9]+\\)\\.")
115 (string-to-number (match-string 1))))
116
117(defun gitmerge-default-branch ()
118 "Default for branch that should be merged; eg \"origin/emacs-26\"."
119 (or gitmerge-default-branch
120 (format "origin/emacs-%s" (1- (gitmerge-emacs-version)))))
121
106(defun gitmerge-get-sha1 () 122(defun gitmerge-get-sha1 ()
107 "Get SHA1 from commit at point." 123 "Get SHA1 from commit at point."
108 (save-excursion 124 (save-excursion
@@ -497,7 +513,7 @@ Branch FROM will be prepended to the list."
497 (if (gitmerge-maybe-resume) 513 (if (gitmerge-maybe-resume)
498 'resume 514 'resume
499 (completing-read "Merge branch: " (gitmerge-get-all-branches) 515 (completing-read "Merge branch: " (gitmerge-get-all-branches)
500 nil t gitmerge-default-branch)))))) 516 nil t (gitmerge-default-branch)))))))
501 (let ((default-directory (vc-git-root default-directory))) 517 (let ((default-directory (vc-git-root default-directory)))
502 (if (eq from 'resume) 518 (if (eq from 'resume)
503 (progn 519 (progn