diff: disable diff.noprefix option for diffstat (issue5759) stable
authorYuya Nishihara <yuya@tcha.org>
Sun, 17 Dec 2017 18:43:05 +0900
branchstable
changeset 35007 058c725925e3
parent 35006 0279c2267d00
child 35008 f39cf992216f
child 35458 786289423e97
diff: disable diff.noprefix option for diffstat (issue5759) We could use patch.diffhunks() instead of patch.diff() to get filenames without parsing patch content, but that isn't always possible because we sometimes feed raw patch data to patch.diffstat().
mercurial/cmdutil.py
tests/test-diffstat.t
--- a/mercurial/cmdutil.py	Sun Dec 17 18:28:15 2017 +0900
+++ b/mercurial/cmdutil.py	Sun Dec 17 18:43:05 2017 +0900
@@ -1514,7 +1514,7 @@
                     match.uipath(matchroot), uirelroot))
 
     if stat:
-        diffopts = diffopts.copy(context=0)
+        diffopts = diffopts.copy(context=0, noprefix=False)
         width = 80
         if not ui.plain():
             width = ui.termwidth()
--- a/tests/test-diffstat.t	Sun Dec 17 18:28:15 2017 +0900
+++ b/tests/test-diffstat.t	Sun Dec 17 18:43:05 2017 +0900
@@ -69,6 +69,57 @@
    file with spaces |  Bin 
    1 files changed, 0 insertions(+), 0 deletions(-)
 
+Filename without "a/" or "b/" (issue5759):
+
+  $ hg diff --config 'diff.noprefix=1' -c1 --stat --git
+   a |  3 +++
+   1 files changed, 3 insertions(+), 0 deletions(-)
+  $ hg diff --config 'diff.noprefix=1' -c2 --stat --git
+   c |  Bin 
+   d |    0 
+   2 files changed, 0 insertions(+), 0 deletions(-)
+
+  $ hg log --config 'diff.noprefix=1' -r '1:' -p --stat --git
+  changeset:   1:3a95b07bb77f
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     appenda
+  
+   a |  3 +++
+   1 files changed, 3 insertions(+), 0 deletions(-)
+  
+  diff --git a a
+  --- a
+  +++ a
+  @@ -211,3 +211,6 @@
+   a
+   a
+   a
+  +a
+  +a
+  +a
+  
+  changeset:   2:c60a6c753773
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     createb
+  
+   c |  Bin 
+   d |    0 
+   2 files changed, 0 insertions(+), 0 deletions(-)
+  
+  diff --git c c
+  new file mode 100644
+  index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..f76dd238ade08917e6712764a16a22005a50573d
+  GIT binary patch
+  literal 1
+  Ic${MZ000310RR91
+  
+  diff --git d d
+  new file mode 100644
+  
+
 diffstat within directories:
 
   $ hg rm -f 'file with spaces'