diff options
| author | Glenn Morris | 2017-12-01 22:03:05 -0500 |
|---|---|---|
| committer | Glenn Morris | 2017-12-01 22:03:05 -0500 |
| commit | 7c95819de0bb351e77449877cb6899444a99d0c1 (patch) | |
| tree | a11b4bfab34659261e986f67f038d14032f8d452 /admin | |
| parent | 52097314c1a160be622dfcf9f40c33190a90be88 (diff) | |
| download | emacs-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.el | 22 |
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. |
| 72 | If 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 |