# HG changeset patch # User Jun Wu # Date 1503866357 25200 # Node ID 5707bfe04deb953cd4d031c2ff099ac6a2bff6d2 # Parent fb672eac2702c019b92bf6cd83be2cc84a83fcf4 record: fix revert -i for lines without newline (issue5651) This is a regression caused by 66117dae87f9. Code prior to 66117dae87f9 seems to miss the "\ No newline at end of file" line. Differential Revision: https://phab.mercurial-scm.org/D528 diff -r fb672eac2702 -r 5707bfe04deb mercurial/patch.py --- a/mercurial/patch.py Tue Aug 15 23:23:55 2017 -0700 +++ b/mercurial/patch.py Sun Aug 27 13:39:17 2017 -0700 @@ -972,7 +972,7 @@ that, swap fromline/toline and +/- signs while keep other things unchanged. """ - m = {'+': '-', '-': '+'} + m = {'+': '-', '-': '+', '\\': '\\'} hunk = ['%s%s' % (m[l[0]], l[1:]) for l in self.hunk] return recordhunk(self.header, self.toline, self.fromline, self.proc, self.before, hunk, self.after) diff -r fb672eac2702 -r 5707bfe04deb tests/test-revert-interactive.t --- a/tests/test-revert-interactive.t Tue Aug 15 23:23:55 2017 -0700 +++ b/tests/test-revert-interactive.t Sun Aug 27 13:39:17 2017 -0700 @@ -460,3 +460,40 @@ forget added file newfile (Yn)? y $ hg status ? newfile + +When a line without EOL is selected during "revert -i" (issue5651) + + $ cat <> $HGRCPATH + > [experimental] + > %unset revertalternateinteractivemode + > EOF + + $ hg init $TESTTMP/revert-i-eol + $ cd $TESTTMP/revert-i-eol + $ echo 0 > a + $ hg ci -qAm 0 + $ printf 1 >> a + $ hg ci -qAm 1 + $ cat a + 0 + 1 (no-eol) + + $ hg revert -ir'.^' < y + > y + > EOF + reverting a + diff --git a/a b/a + 1 hunks, 1 lines changed + examine changes to 'a'? [Ynesfdaq?] y + + @@ -1,1 +1,2 @@ + 0 + +1 + \ No newline at end of file + revert this change to 'a'? [Ynesfdaq?] y + + $ cat a + 0 + + $ cd ..