# HG changeset patch # User Mathias De Maré # Date 1421873247 -3600 # Node ID de519517f597abd733961a8c549074eecb6c0ab3 # Parent fd5b9417d315ca85b197c588c0697e556c4a4683 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. diff -r fd5b9417d315 -r de519517f597 mercurial/subrepo.py --- a/mercurial/subrepo.py Thu Jan 22 00:10:26 2015 +0900 +++ b/mercurial/subrepo.py Wed Jan 21 21:47:27 2015 +0100 @@ -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): diff -r fd5b9417d315 -r de519517f597 tests/test-subrepo-git.t --- a/tests/test-subrepo-git.t Thu Jan 22 00:10:26 2015 +0900 +++ b/tests/test-subrepo-git.t Wed Jan 21 21:47:27 2015 +0100 @@ -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