subrepo: propagate and catch push failures stable
authorMatt Mackall <mpm@selenic.com>
Fri, 30 Apr 2010 18:32:18 -0500
branchstable
changeset 11067 49e14ec67144
parent 11066 26abd91d9e84
child 11068 a375d1777594
subrepo: propagate and catch push failures
mercurial/commands.py
mercurial/subrepo.py
--- a/mercurial/commands.py	Mon Apr 26 20:13:14 2010 +0900
+++ b/mercurial/commands.py	Fri Apr 30 18:32:18 2010 -0500
@@ -2453,7 +2453,8 @@
     c = repo['']
     subs = c.substate # only repos that are committed
     for s in sorted(subs):
-        c.sub(s).push(opts.get('force'))
+        if not c.sub(s).push(opts.get('force')):
+            return False
 
     r = repo.push(other, opts.get('force'), revs=revs)
     return r == 0
--- a/mercurial/subrepo.py	Mon Apr 26 20:13:14 2010 +0900
+++ b/mercurial/subrepo.py	Fri Apr 30 18:32:18 2010 -0500
@@ -258,12 +258,13 @@
         c = self._repo['']
         subs = c.substate # only repos that are committed
         for s in sorted(subs):
-            c.sub(s).push(force)
+            if not c.sub(s).push(force):
+                return False
 
         self._repo.ui.status(_('pushing subrepo %s\n') % self._path)
         dsturl = _abssource(self._repo, True)
         other = hg.repository(self._repo.ui, dsturl)
-        self._repo.push(other, force)
+        return self._repo.push(other, force)
 
 class svnsubrepo(object):
     def __init__(self, ctx, path, state):