[PATCH 2 of 2] commit: fix unmodified message detection for the "--- >8 ----" magic

Yuya Nishihara yuya at tcha.org
Fri Jan 6 09:30:25 EST 2017


# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1483710604 -32400
#      Fri Jan 06 22:50:04 2017 +0900
# Node ID d19726fc559971501161eba3552f96a93a3a5c25
# Parent  b5247f031aed69bb2f7c6a3a8d1c9b076a7384d5
commit: fix unmodified message detection for the "--- >8 ----" magic

We need the raw editortext to be compared with the templatetext.

diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -2771,14 +2771,15 @@ def commitforceeditor(repo, ctx, subs, f
 
     editortext = repo.ui.edit(committext, ctx.user(), ctx.extra(),
                         editform=editform, pending=pending)
+    text = editortext
 
     # strip away anything below this special string (used for editors that want
     # to display the diff)
-    stripbelow = re.search(_linebelow, editortext, flags=re.MULTILINE)
+    stripbelow = re.search(_linebelow, text, flags=re.MULTILINE)
     if stripbelow:
-        editortext = editortext[:stripbelow.start()]
-
-    text = re.sub("(?m)^HG:.*(\n|$)", "", editortext)
+        text = text[:stripbelow.start()]
+
+    text = re.sub("(?m)^HG:.*(\n|$)", "", text)
     os.chdir(olddir)
 
     if finishdesc:
diff --git a/tests/test-commit.t b/tests/test-commit.t
--- a/tests/test-commit.t
+++ b/tests/test-commit.t
@@ -712,6 +712,9 @@ test that text below the --- >8 --- spec
   > EOF
   $ echo foo2 > foo2
   $ hg add foo2
+  $ HGEDITOR="sh $TESTTMP/notouching.sh" hg ci
+  abort: commit message unchanged
+  [255]
   $ HGEDITOR="sh $TESTTMP/lowercaseline.sh" hg ci
   first line
   HG: this is customized commit template


More information about the Mercurial-devel mailing list