Mercurial > hg > mercurial-source
changeset 23950:de519517f597 stable
subrepo: correctly add newline for git subrepo diffs
Previously, git subrepo diffs did not have a newline at the end.
This caused multiple subrepo diffs to be joined on the same line.
Additionally, the command prompt after the diff still contained
a part of the diff.
author | Mathias De Maré <mathias.demare@gmail.com> |
---|---|
date | Wed, 21 Jan 2015 21:47:27 +0100 |
parents | fd5b9417d315 |
children | 33d1b81c6ef0 |
files | mercurial/subrepo.py tests/test-subrepo-git.t |
diffstat | 2 files changed, 14 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/subrepo.py +++ b/mercurial/subrepo.py @@ -1648,13 +1648,17 @@ if match.anypats(): return #No support for include/exclude yet + output = "" if match.always(): - ui.write(self._gitcommand(cmd)) + output += self._gitcommand(cmd) + '\n' elif match.files(): for f in match.files(): - ui.write(self._gitcommand(cmd + [f])) + output += self._gitcommand(cmd + [f]) + '\n' elif match(gitprefix): #Subrepo is matched - ui.write(self._gitcommand(cmd)) + output += self._gitcommand(cmd) + '\n' + + if output.strip(): + ui.write(output) @annotatesubrepoerror def revert(self, substate, *pats, **opts):
--- a/tests/test-subrepo-git.t +++ b/tests/test-subrepo-git.t @@ -112,7 +112,7 @@ @@ -1,2 +1,3 @@ g gg - +ggg (no-eol) + +ggg $ hg commit --subrepos -m ggg committing subrepository s $ hg debugsub @@ -695,7 +695,7 @@ +woopwoop + +foo - +bar (no-eol) + +bar $ hg commit --subrepos -m "Added foobar" committing subrepository s @@ -717,7 +717,7 @@ +woopwoop + +foo - +bar (no-eol) + +bar check output when only diffing the subrepository $ hg diff -c . --subrepos s @@ -730,7 +730,7 @@ +woopwoop + +foo - +bar (no-eol) + +bar check output when diffing something else $ hg diff -c . --subrepos .hgsubstate --nodates @@ -760,7 +760,7 @@ --- /dev/null +++ b/s/barfoo @@ -0,0 +1 @@ - +foo (no-eol) + +foo $ hg diff --subrepos s/foobar diff --git a/s/foobar b/s/foobar index 8a5a5e2..bd5812a 100644 @@ -771,7 +771,7 @@ +woop woop foo - bar (no-eol) + bar execute a diffstat the output contains a regex, because git 1.7.10 and 1.7.11 @@ -779,7 +779,7 @@ $ hg diff --subrepos --stat \s*barfoo |\s*1 + (re) \s*foobar |\s*2 +- (re) - 2 files changed, 2 insertions\(\+\), 1 deletions?\(-\) \(no-eol\) (re) + 2 files changed, 2 insertions\(\+\), 1 deletions?\(-\) (re) ensure adding include/exclude ignores the subrepo $ hg diff --subrepos -I s/foobar