# HG changeset patch # User Yuya Nishihara # Date 2017-12-17 09:43:05 # Node ID 058c725925e33d70020f590dc44b94e945205c61 # Parent 0279c2267d00afce7ce69ada6c520a0b06597569 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(). diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1514,7 +1514,7 @@ def diffordiffstat(ui, repo, diffopts, n 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() diff --git a/tests/test-diffstat.t b/tests/test-diffstat.t --- a/tests/test-diffstat.t +++ b/tests/test-diffstat.t @@ -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'