# HG changeset patch # User Pierre-Yves David # Date 1426268942 25200 # Node ID 2c1b6e2ec59addcc8ee490adfdf684b5d44e3dc1 # Parent 46a465fb2aeed25138daed9e6b47faf464c20f2e# Parent 9523c027a240fe4ed5d9bb1afdd9960f66c9ba0c merge with stable diff -r 46a465fb2aee -r 2c1b6e2ec59a hgext/drophack.py --- 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) diff -r 46a465fb2aee -r 2c1b6e2ec59a hgext/evolve.py --- 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):