comparison hgext/evolve.py @ 1212:2c1b6e2ec59a

merge with stable
author Pierre-Yves David <pierre-yves.david@fb.com>
date Fri, 13 Mar 2015 10:49:02 -0700
parents 9523c027a240
children 7118996bdf43
comparison
equal deleted inserted replaced
1208:46a465fb2aee 1212:2c1b6e2ec59a
1420 # Create the new commit context 1420 # Create the new commit context
1421 repo.ui.status(_('computing new diff\n')) 1421 repo.ui.status(_('computing new diff\n'))
1422 files = set() 1422 files = set()
1423 copied = copies.pathcopies(prec, bumped) 1423 copied = copies.pathcopies(prec, bumped)
1424 precmanifest = prec.manifest() 1424 precmanifest = prec.manifest()
1425 for key, val in bumped.manifest().items(): 1425 # 3.3.2 needs a list.
1426 if precmanifest.pop(key, None) != val: 1426 # future 3.4 don't detect the size change during iteration
1427 # this is fishy
1428 for key, val in list(bumped.manifest().iteritems()):
1429 precvalue = precmanifest.get(key, None)
1430 if precvalue is not None:
1431 del precmanifest[key]
1432 if precvalue != val:
1427 files.add(key) 1433 files.add(key)
1428 files.update(precmanifest) # add missing files 1434 files.update(precmanifest) # add missing files
1429 # commit it 1435 # commit it
1430 if files: # something to commit! 1436 if files: # something to commit!
1431 def filectxfn(repo, ctx, path): 1437 def filectxfn(repo, ctx, path):
2517 def httpclient_pushobsmarkers(self, obsfile): 2523 def httpclient_pushobsmarkers(self, obsfile):
2518 """httpprotocol peer method 2524 """httpprotocol peer method
2519 (Cannot simply use _callpush as http is doing some special handling)""" 2525 (Cannot simply use _callpush as http is doing some special handling)"""
2520 self.requirecap('_evoext_pushobsmarkers_0', 2526 self.requirecap('_evoext_pushobsmarkers_0',
2521 _('push obsolete markers faster')) 2527 _('push obsolete markers faster'))
2522 ret, output = self._call('evoext_pushobsmarkers_0', data=obsfile) 2528 try:
2523 for l in output.splitlines(True): 2529 r = self._call('evoext_pushobsmarkers_0', data=obsfile)
2524 if l.strip(): 2530 vals = r.split('\n', 1)
2525 self.ui.status(_('remote: '), l) 2531 if len(vals) < 2:
2526 return ret 2532 raise error.ResponseError(_("unexpected response:"), r)
2533
2534 for l in vals[1].splitlines(True):
2535 if l.strip():
2536 self.ui.status(_('remote: '), l)
2537 return vals[0]
2538 except socket.error, err:
2539 if err.args[0] in (errno.ECONNRESET, errno.EPIPE):
2540 raise util.Abort(_('push failed: %s') % err.args[1])
2541 raise util.Abort(err.args[1])
2527 2542
2528 @eh.wrapfunction(localrepo.localrepository, '_restrictcapabilities') 2543 @eh.wrapfunction(localrepo.localrepository, '_restrictcapabilities')
2529 def local_pushobsmarker_capabilities(orig, repo, caps): 2544 def local_pushobsmarker_capabilities(orig, repo, caps):
2530 caps = orig(repo, caps) 2545 caps = orig(repo, caps)
2531 caps.add('_evoext_pushobsmarkers_0') 2546 caps.add('_evoext_pushobsmarkers_0')