subrepo: don't pass the outer repo's --rev or --branch to subrepo incoming() stable
authorMatt Harbison <matt_harbison@yahoo.com>
Mon, 27 Apr 2015 21:34:23 -0400
branchstable
changeset 24876 b5513ee85dd8
parent 24875 5135c2be6959
child 24877 cc497780eaf9
subrepo: don't pass the outer repo's --rev or --branch to subrepo incoming() When passing a --rev, 'hg incoming -S' previously suffered from the same output truncation or abort that was fixed for 'hg outgoing -S' in the previous patch, for the same reasons. Unlike push, subrepos are currently only pulled when the outer repo is updated, not when the outer repo is pulled. That makes matching 'hg pull' behavior impossible. Listing all incoming csets in the subrepo seems like the most useful behavior, and is consistent with 'hg outgoing -S'.
mercurial/subrepo.py
tests/test-subrepo.t
--- a/mercurial/subrepo.py	Mon Apr 27 21:15:25 2015 -0400
+++ b/mercurial/subrepo.py	Mon Apr 27 21:34:23 2015 -0400
@@ -881,6 +881,10 @@
 
     @annotatesubrepoerror
     def incoming(self, ui, source, opts):
+        if 'rev' in opts or 'branch' in opts:
+            opts = copy.copy(opts)
+            opts.pop('rev', None)
+            opts.pop('branch', None)
         return hg.incoming(ui, self._repo, _abssource(self._repo, False), opts)
 
     @annotatesubrepoerror
--- a/tests/test-subrepo.t	Mon Apr 27 21:15:25 2015 -0400
+++ b/tests/test-subrepo.t	Mon Apr 27 21:34:23 2015 -0400
@@ -689,6 +689,24 @@
 
 should pull t
 
+  $ hg incoming -S -r `hg log -r tip -T "{node|short}"`
+  comparing with $TESTTMP/t (glob)
+  no changes found
+  comparing with $TESTTMP/t/s
+  searching for changes
+  no changes found
+  comparing with $TESTTMP/t/s/ss
+  searching for changes
+  no changes found
+  comparing with $TESTTMP/t/t
+  searching for changes
+  changeset:   5:52c0adc0515a
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     13
+  
+
   $ hg up
   pulling subrepo t from $TESTTMP/t/t
   searching for changes