diffstat: support filenames with whitespaces on renames
authorNavaneeth Suresh <navaneeths1998@gmail.com>
Sat, 26 Jan 2019 13:14:21 +0530
changeset 41401 4a33a6bf2b52
parent 41400 4a409c19831f
child 41402 4f0aca2b8c21
diffstat: support filenames with whitespaces on renames This is a follow-up patch to D5628. `line.split()` cannot get filenames with whitespaces as mentioned by @yuja. This patch replaces `split()` method with `slice`. Corresponding tests were also added. Differential Revision: https://phab.mercurial-scm.org/D5709
mercurial/patch.py
tests/test-diffstat.t
--- a/mercurial/patch.py	Mon Jan 21 23:08:31 2019 -0800
+++ b/mercurial/patch.py	Sat Jan 26 13:14:21 2019 +0530
@@ -2806,9 +2806,9 @@
               line.startswith('Binary file')):
             isbinary = True
         elif line.startswith('rename from'):
-            filename = line.split()[-1]
+            filename = line[12:]
         elif line.startswith('rename to'):
-            filename += ' => %s' % line.split()[-1]
+            filename += ' => %s' % line[10:]
     addresult()
     return results
 
--- a/tests/test-diffstat.t	Mon Jan 21 23:08:31 2019 -0800
+++ b/tests/test-diffstat.t	Sat Jan 26 13:14:21 2019 +0530
@@ -255,3 +255,19 @@
   $ hg diff --stat --git
    a => b |  0 
    1 files changed, 0 insertions(+), 0 deletions(-)
+-- filename may contain whitespaces
+  $ echo > c
+  $ hg ci -Am 'add c'
+  adding c
+  $ hg mv c 'new c'
+  $ hg diff --git
+  diff --git a/c b/new c
+  rename from c
+  rename to new c
+  $ hg diff --stat
+   c     |  1 -
+   new c |  1 +
+   2 files changed, 1 insertions(+), 1 deletions(-)
+  $ hg diff --stat --git
+   c => new c |  0 
+   1 files changed, 0 insertions(+), 0 deletions(-)