--- a/hgext/evolve.py Sat Apr 11 00:10:10 2015 -0400
+++ b/hgext/evolve.py Mon Apr 20 14:21:38 2015 +0200
@@ -19,8 +19,8 @@
- improves some aspect of the early implementation in Mercurial core
'''
-__version__ = '5.1.2'
-testedwith = '3.3.3'
+__version__ = '5.1.3'
+testedwith = '3.3.3 3.4-rc'
buglink = 'http://bz.selenic.com/'
import sys, os
@@ -2110,8 +2110,9 @@
@eh.wrapcommand('commit')
def commitwrapper(orig, ui, repo, *arg, **kwargs):
if kwargs.get('amend', False):
- lock = None
+ wlock = lock = None
else:
+ wlock = repo.wlock()
lock = repo.lock()
try:
obsoleted = kwargs.get('obsolete', [])
@@ -2135,6 +2136,8 @@
finally:
if lock is not None:
lock.release()
+ if wlock is not None:
+ wlock.release()
@eh.wrapcommand('strip', extension='strip', opts=[
('', 'bundle', None, _("delete the commit entirely and move it to a "
@@ -2333,8 +2336,10 @@
kwargs['rev'] = []
obsoleted = kwargs.setdefault('obsolete', [])
- lock = repo.lock()
+ wlock = lock = None
try:
+ wlock = repo.wlock()
+ lock = repo.lock()
if kwargs.get('old_obsolete'):
if kwargs.get('continue'):
obsoleted.extend(repo.opener.read('graftstate').splitlines())
@@ -2349,7 +2354,7 @@
return commitwrapper(orig, ui, repo,*revs, **kwargs)
finally:
- lock.release()
+ lockmod.release(lock, wlock)
@eh.extsetup
def oldevolveextsetup(ui):
@@ -2742,20 +2747,28 @@
if getattr(exchange, '_getbundleobsmarkerpart', None) is not None:
@eh.wrapfunction(exchange, '_getbundleobsmarkerpart')
- def _getbundleobsmarkerpart(orig, bundler, repo, source, heads=None, common=None,
- bundlecaps=None, **kwargs):
+ def _getbundleobsmarkerpart(orig, bundler, repo, source, **kwargs):
if 'evo_obscommon' not in kwargs:
- return orig(bundler, repo, source, heads, common, bundlecaps, **kwargs)
-
+ return orig(bundler, repo, source, **kwargs)
+
+ heads = kwargs.get('heads')
if kwargs.get('obsmarkers', False):
if heads is None:
heads = repo.heads()
obscommon = kwargs.get('evo_obscommon', ())
+ assert obscommon
obsset = repo.set('::%ln - ::%ln', heads, obscommon)
subset = [c.node() for c in obsset]
markers = repo.obsstore.relevantmarkers(subset)
exchange.buildobsmarkerspart(bundler, markers)
+ @eh.uisetup
+ def installgetbundlepartgen(ui):
+ origfunc = exchange.getbundle2partsmapping['obsmarkers']
+ def newfunc(*args, **kwargs):
+ return _getbundleobsmarkerpart(origfunc, *args, **kwargs)
+ exchange.getbundle2partsmapping['obsmarkers'] = newfunc
+
@eh.wrapfunction(exchange, '_pullobsolete')
def _pullobsolete(orig, pullop):