--- a/mercurial/subrepo.py Wed Dec 21 23:56:15 2011 +0100
+++ b/mercurial/subrepo.py Thu Sep 29 17:20:04 2011 +0200
@@ -303,7 +303,7 @@
"""merge currently-saved state with the new state."""
raise NotImplementedError
- def push(self, force):
+ def push(self, opts):
"""perform whatever action is analogous to 'hg push'
This may be a no-op on some systems.
@@ -519,19 +519,23 @@
else:
mergefunc()
- def push(self, force):
+ def push(self, opts):
+ force = opts.get('force')
+ newbranch = opts.get('new_branch')
+ ssh = opts.get('ssh')
+
# push subrepos depth-first for coherent ordering
c = self._repo['']
subs = c.substate # only repos that are committed
for s in sorted(subs):
- if not c.sub(s).push(force):
+ if not c.sub(s).push(opts):
return False
dsturl = _abssource(self._repo, True)
self._repo.ui.status(_('pushing subrepo %s to %s\n') %
(subrelpath(self), dsturl))
- other = hg.peer(self._repo.ui, {}, dsturl)
- return self._repo.push(other, force)
+ other = hg.peer(self._repo.ui, {'ssh': ssh}, dsturl)
+ return self._repo.push(other, force, newbranch=newbranch)
def outgoing(self, ui, dest, opts):
return hg.outgoing(ui, self._repo, _abssource(self._repo, True), opts)
@@ -731,7 +735,7 @@
if _updateprompt(self._ui, self, dirty, self._wcrev(), new):
self.get(state, False)
- def push(self, force):
+ def push(self, opts):
# push is a no-op for SVN
return True
@@ -1025,7 +1029,9 @@
else:
mergefunc()
- def push(self, force):
+ def push(self, opts):
+ force = opts.get('force')
+
if not self._state[1]:
return True
if self._gitmissing():