[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] master 7c95819 2/3: Don't hard-code gitmerge.el's default
From: |
Glenn Morris |
Subject: |
[Emacs-diffs] master 7c95819 2/3: Don't hard-code gitmerge.el's default merge branch |
Date: |
Fri, 1 Dec 2017 22:07:03 -0500 (EST) |
branch: master
commit 7c95819de0bb351e77449877cb6899444a99d0c1
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>
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.
---
admin/gitmerge.el | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/admin/gitmerge.el b/admin/gitmerge.el
index e9e0335..3c65b0e 100644
--- a/admin/gitmerge.el
+++ b/admin/gitmerge.el
@@ -67,8 +67,9 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
'((t (:strike-through t)))
"Face for skipped commits.")
-(defconst gitmerge-default-branch "origin/emacs-26"
- "Default for branch that should be merged.")
+(defvar gitmerge-default-branch nil
+ "Default for branch that should be merged.
+If nil, the function `gitmerge-default-branch' guesses.")
(defconst gitmerge-buffer "*gitmerge*"
"Working buffer for gitmerge.")
@@ -103,6 +104,21 @@ re-?generate\\|bump version\\|from trunk\\|Auto-commit"
(defvar gitmerge--commits nil)
(defvar gitmerge--from nil)
+(defun gitmerge-emacs-version (&optional branch)
+ "Return the major version of Emacs, optionally in BRANCH."
+ (with-temp-buffer
+ (if (not branch)
+ (insert-file-contents "configure.ac")
+ (call-process "git" nil t nil "show" (format "%s:configure.ac" branch))
+ (goto-char (point-min)))
+ (re-search-forward "^AC_INIT([^,]+, \\([0-9]+\\)\\.")
+ (string-to-number (match-string 1))))
+
+(defun gitmerge-default-branch ()
+ "Default for branch that should be merged; eg \"origin/emacs-26\"."
+ (or gitmerge-default-branch
+ (format "origin/emacs-%s" (1- (gitmerge-emacs-version)))))
+
(defun gitmerge-get-sha1 ()
"Get SHA1 from commit at point."
(save-excursion
@@ -497,7 +513,7 @@ Branch FROM will be prepended to the list."
(if (gitmerge-maybe-resume)
'resume
(completing-read "Merge branch: " (gitmerge-get-all-branches)
- nil t gitmerge-default-branch))))))
+ nil t (gitmerge-default-branch)))))))
(let ((default-directory (vc-git-root default-directory)))
(if (eq from 'resume)
(progn