changeset 30811:cf1e15f91c90

templatekw: force noprefix=False to insure diffstat consistency (issue4755) The result of diffstatdata should not depend on having noprefix set or not, as was reported in issue 4755. Forcing noprefix to false on call makes sure the parser receives the diff in the correct format and returns the proper result. Another way to fix this would have been to change the regular expressions in path.diffstatdata(), but that would have introduced many unecessary special cases.
author Matthieu Laneuville <mlaneuville@protonmail.com>
date Thu, 12 Jan 2017 21:06:55 +0900
parents df5d3734b3df
children 98bfce9bd5e5
files mercurial/templatekw.py tests/test-import.t
diffstat 2 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templatekw.py	Fri Jan 13 10:11:37 2017 -0800
+++ b/mercurial/templatekw.py	Thu Jan 12 21:06:55 2017 +0900
@@ -299,7 +299,7 @@
     """String. Statistics of changes with the following format:
     "modified files: +added/-removed lines"
     """
-    stats = patch.diffstatdata(util.iterlines(ctx.diff()))
+    stats = patch.diffstatdata(util.iterlines(ctx.diff(noprefix=False)))
     maxname, maxtotal, adds, removes, binary = patch.diffstatsum(stats)
     return '%s: +%s/-%s' % (len(stats), adds, removes)
 
--- a/tests/test-import.t	Fri Jan 13 10:11:37 2017 -0800
+++ b/tests/test-import.t	Thu Jan 12 21:06:55 2017 +0900
@@ -1517,6 +1517,13 @@
   |
   o  initial [Babar] 2: +8/-0
   
+Adding those config options should not change the output of diffstat. Bugfix #4755.
+
+  $ hg log -r . --template '{diffstat}\n'
+  1: +1/-0
+  $ hg log -r . --template '{diffstat}\n' --config diff.git=1 \
+  >   --config diff.noprefix=1
+  1: +1/-0
 
 Importing with some success and some errors: