--- a/hgext/drophack.py Thu Mar 05 10:52:01 2015 -0800
+++ b/hgext/drophack.py Fri Mar 13 10:49:02 2015 -0700
@@ -150,7 +150,7 @@
stripmarker(ui, repo, markers)
# strip the changeset
with timed(ui, 'strip nodes'):
- repair.strip(ui, repo, allnodes, backup="all", topic='drophack')
+ repair.strip(ui, repo, list(allnodes), backup="all", topic='drophack')
finally:
lockmod.release(lock, wlock)
--- a/hgext/evolve.py Thu Mar 05 10:52:01 2015 -0800
+++ b/hgext/evolve.py Fri Mar 13 10:49:02 2015 -0700
@@ -1422,8 +1422,14 @@
files = set()
copied = copies.pathcopies(prec, bumped)
precmanifest = prec.manifest()
- for key, val in bumped.manifest().items():
- if precmanifest.pop(key, None) != val:
+ # 3.3.2 needs a list.
+ # future 3.4 don't detect the size change during iteration
+ # this is fishy
+ for key, val in list(bumped.manifest().iteritems()):
+ precvalue = precmanifest.get(key, None)
+ if precvalue is not None:
+ del precmanifest[key]
+ if precvalue != val:
files.add(key)
files.update(precmanifest) # add missing files
# commit it
@@ -2519,11 +2525,20 @@
(Cannot simply use _callpush as http is doing some special handling)"""
self.requirecap('_evoext_pushobsmarkers_0',
_('push obsolete markers faster'))
- ret, output = self._call('evoext_pushobsmarkers_0', data=obsfile)
- for l in output.splitlines(True):
- if l.strip():
- self.ui.status(_('remote: '), l)
- return ret
+ try:
+ r = self._call('evoext_pushobsmarkers_0', data=obsfile)
+ vals = r.split('\n', 1)
+ if len(vals) < 2:
+ raise error.ResponseError(_("unexpected response:"), r)
+
+ for l in vals[1].splitlines(True):
+ if l.strip():
+ self.ui.status(_('remote: '), l)
+ return vals[0]
+ except socket.error, err:
+ if err.args[0] in (errno.ECONNRESET, errno.EPIPE):
+ raise util.Abort(_('push failed: %s') % err.args[1])
+ raise util.Abort(err.args[1])
@eh.wrapfunction(localrepo.localrepository, '_restrictcapabilities')
def local_pushobsmarker_capabilities(orig, repo, caps):