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().
This commit is contained in:
Yuya Nishihara 2017-12-17 18:43:05 +09:00
parent e6f35d04b2
commit 3985a8fdb4
2 changed files with 52 additions and 1 deletions

View File

@ -1514,7 +1514,7 @@ def diffordiffstat(ui, repo, diffopts, node1, node2, match,
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()

View File

@ -69,6 +69,57 @@ Filename with spaces git diffstat:
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'