]> code.delx.au - gnu-emacs/commitdiff
Improve 'make change-history' prereq tests
authorPaul Eggert <eggert@cs.ucla.edu>
Sun, 12 Apr 2015 17:21:59 +0000 (10:21 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sun, 12 Apr 2015 17:40:41 +0000 (10:40 -0700)
* Makefile.in (gen_origin): Fix to match what's in the master branch.
(no-ChangeLog, master-branch-is-current): New rules.
(change-history): Depend on them, to avoid similar future problems.
Escape the local-variables string to pacify Emacs when editing
Makefile.in.

Makefile.in

index 9f235d5680ac857f8c7a4fa914e886a276d89cc8..0830ddaf8ca3ed809ce9258c566c3b45de23709a 100644 (file)
@@ -1088,7 +1088,7 @@ bootstrap: bootstrap-clean
        $(MAKE) all
 
 # The newest revision that should not appear in the generated ChangeLog.
-gen_origin = 2cdbb8983dd49ce5c31c74b26f740bcb3e5a4c5d
+gen_origin = 3311ace9c54a50b83a838e2eb7fa9565176e0c4f
 # Convert git commit log to ChangeLog file.  make-dist uses this.
 .PHONY: ChangeLog change-history unchanged-history-files
 ChangeLog:
@@ -1101,16 +1101,20 @@ ChangeLog:
 CHANGELOG_HISTORY_INDEX_MAX = 1
 CHANGELOG_N = ChangeLog.$(CHANGELOG_HISTORY_INDEX_MAX)
 
-# Check that history-relevant files match what's in the repository.
-# Otherwise, 'make change-history' might mess up the ChangeLog history files.
+# Check that we are in a good state for changing history.
+no-ChangeLog:
+       test ! -f ChangeLog
+master-branch-is-current:
+       git branch | grep -q '^\* master$$'
 unchanged-history-files:
        x=$$(git diff-files --name-only $(CHANGELOG_N) Makefile.in) && \
          test -z "$$x"
 
 # Copy newer commit messages to the start of the ChangeLog history file,
 # and consider them to be older.
-change-history: ChangeLog unchanged-history-files
-       (sed '/^;; Local Variables:/,$$d' <ChangeLog && cat $(CHANGELOG_N)) \
+change-history: no-ChangeLog master-branch-is-current unchanged-history-files \
+  ChangeLog
+       (sed '/^;; [L]ocal Variables:/,$$d' <ChangeLog && cat $(CHANGELOG_N)) \
          >$(CHANGELOG_N).tmp
        new_origin=$$(git log --pretty=format:%H HEAD^!) && \
        sed 's/^\(gen_origin *= *\).*/\1'"$$new_origin/" \