Patchwork crecord: properly handle files with No newline at eof (issue5268)

login
register
mail settings
Submitter timeless
Date Sept. 2, 2016, 8:17 p.m.
Message ID <68a20f02785b24f08b13.1472847427@gcc2-power8.osuosl.org>
Download mbox | patch
Permalink /patch/16538/
State Accepted
Headers show

Comments

timeless - Sept. 2, 2016, 8:17 p.m.
# HG changeset patch
# User timeless <timeless@mozdev.org>
# Date 1472847337 0
#      Fri Sep 02 20:15:37 2016 +0000
# Node ID 68a20f02785b24f08b13e21ffc9e2a05031b07f8
# Parent  f148bfa40489269be2e48046734f81065129847a
# Available At https://bitbucket.org/timeless/mercurial-crew
#              hg pull https://bitbucket.org/timeless/mercurial-crew -r 68a20f02785b
crecord: properly handle files with No newline at eof (issue5268)

Yes, this bug was a single character with the wrong case...
Yuya Nishihara - Sept. 5, 2016, 2:15 p.m.
On Fri, 02 Sep 2016 20:17:07 +0000, timeless wrote:
> # HG changeset patch
> # User timeless <timeless@mozdev.org>
> # Date 1472847337 0
> #      Fri Sep 02 20:15:37 2016 +0000
> # Node ID 68a20f02785b24f08b13e21ffc9e2a05031b07f8
> # Parent  f148bfa40489269be2e48046734f81065129847a
> # Available At https://bitbucket.org/timeless/mercurial-crew
> #              hg pull https://bitbucket.org/timeless/mercurial-crew -r 68a20f02785b
> crecord: properly handle files with No newline at eof (issue5268)
> 
> Yes, this bug was a single character with the wrong case...

I never thought it was. Queued for stable, thanks!

Patch

diff -r f148bfa40489 -r 68a20f02785b mercurial/crecord.py
--- a/mercurial/crecord.py	Tue Jul 05 09:37:07 2016 +0200
+++ b/mercurial/crecord.py	Fri Sep 02 20:15:37 2016 +0000
@@ -387,7 +387,7 @@ 
 
         contextlen = (len(self.before) + len(self.after) +
                       removedconvertedtocontext)
-        if self.after and self.after[-1] == '\\ no newline at end of file\n':
+        if self.after and self.after[-1] == '\\ No newline at end of file\n':
             contextlen -= 1
         fromlen = contextlen + self.removed
         tolen = contextlen + self.added
diff -r f148bfa40489 -r 68a20f02785b tests/test-commit-interactive-curses.t
--- a/tests/test-commit-interactive-curses.t	Tue Jul 05 09:37:07 2016 +0200
+++ b/tests/test-commit-interactive-curses.t	Fri Sep 02 20:15:37 2016 +0000
@@ -9,6 +9,21 @@ 
   > crecordtest = testModeCommands
   > EOF
 
+Record with noeol at eof (issue5268)
+  $ hg init noeol
+  $ cd noeol
+  $ printf '0' > a
+  $ printf '0\n' > b
+  $ hg ci -Aqm initial
+  $ printf '1\n0' > a
+  $ printf '1\n0\n' > b
+  $ cat <<EOF >testModeCommands
+  > c
+  > EOF
+  $ HGEDITOR="\"sh\" \"`pwd`/editor.sh\"" hg commit  -i -m "add hunks" -d "0 0"
+  $ cd ..
+
+Normal repo
   $ hg init a
   $ cd a