emacs-diffs
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]