subrepo: correctly add newline for git subrepo diffs stable
authorMathias De Maré <mathias.demare@gmail.com>
Wed, 21 Jan 2015 21:47:27 +0100
branchstable
changeset 23938 de519517f597
parent 23937 fd5b9417d315
child 23939 33d1b81c6ef0
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.
mercurial/subrepo.py
tests/test-subrepo-git.t
--- 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):
--- 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