summaryrefslogtreecommitdiff
path: root/admin/admin.el
diff options
context:
space:
mode:
authorStefan Kangas <stefan@marxist.se>2021-12-27 02:44:27 +0100
committerStefan Kangas <stefan@marxist.se>2021-12-27 20:39:10 +0100
commit0fb55c8776d75d08da626f84ca5570da7e95391e (patch)
treee9726b54f9854813ed8810bc47b4bbb2970861a7 /admin/admin.el
parent85cb4f419b2e7c3b53b42d50d4c0c588931d02c6 (diff)
downloademacs-0fb55c8776d75d08da626f84ca5570da7e95391e.tar.gz
admin.el: Move etc/NEWS to etc/NEWS.NN in one commit
This should preserve git history better for git blame, etc. * admin/admin.el (admin-git-command): New variable. (set-version): Move etc/NEWS to etc/NEWS.NN and prompt to commit it immediately. (Bug#52420)
Diffstat (limited to 'admin/admin.el')
-rw-r--r--admin/admin.el13
1 files changed, 12 insertions, 1 deletions
diff --git a/admin/admin.el b/admin/admin.el
index ad4208beef0..c1bdb13df96 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -88,6 +88,9 @@ Optional argument DATE is the release date, default today."
(kill-buffer)
(message "No need to update `%s'" file)))
+(defvar admin-git-command (executable-find "git")
+ "The `git' program to use.")
+
(defun set-version (root version)
"Set Emacs version to VERSION in relevant files under ROOT.
Root must be the root of an Emacs source tree."
@@ -96,6 +99,8 @@ Root must be the root of an Emacs source tree."
(read-string "Version number: " emacs-version)))
(unless (file-exists-p (expand-file-name "src/emacs.c" root))
(user-error "%s doesn't seem to be the root of an Emacs source tree" root))
+ (unless admin-git-command
+ (user-error "Could not find git; please install git and move NEWS manually"))
(message "Setting version numbers...")
;; There's also a "version 3" (standing for GPLv3) at the end of
;; `README', but since `set-version-in-file' only replaces the first
@@ -157,7 +162,13 @@ Root must be the root of an Emacs source tree."
Documentation changes might not have been completed!"))))
(when (and majorbump
(not (file-exists-p oldnewsfile)))
- (rename-file newsfile oldnewsfile)
+ (call-process admin-git-command nil nil nil
+ "mv" newsfile oldnewsfile)
+ (when (y-or-n-p "Commit move of NEWS file?")
+ (call-process admin-git-command nil nil nil
+ "commit" "-m" (format "; Move etc/%s to etc/%s"
+ (file-name-nondirectory newsfile)
+ (file-name-nondirectory oldnewsfile))))
(find-file oldnewsfile) ; to prompt you to commit it
(copy-file oldnewsfile newsfile)
(with-temp-buffer