def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=(), **kwargs): if isinstance(remote, gitrepo.gitrepo): # transaction manager is present in Mercurial >= 3.3 try: trmanager = getattr(exchange, 'transactionmanager') except AttributeError: trmanager = None pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) if trmanager: pullop.trmanager = trmanager(repo, 'pull', remote.url()) wlock = repo.wlock() lock = repo.lock() try: pullop.cgresult = repo.githandler.fetch(remote.path, heads) if trmanager: pullop.trmanager.close() else: pullop.closetransaction() return pullop finally: if trmanager: pullop.trmanager.release() else: pullop.releasetransaction() lock.release() wlock.release() else: return orig(repo, remote, heads, force, bookmarks=bookmarks, **kwargs)
def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=()): if isinstance(remote, gitrepo.gitrepo): # transaction manager is present in Mercurial >= 3.3 try: trmanager = getattr(exchange, 'transactionmanager') except AttributeError: trmanager = None pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) if trmanager: pullop.trmanager = trmanager(repo, 'pull', remote.url()) lock = repo.lock() try: pullop.cgresult = repo.githandler.fetch(remote.path, heads) if trmanager: pullop.trmanager.close() else: pullop.closetransaction() return pullop finally: if trmanager: pullop.trmanager.release() else: pullop.releasetransaction() lock.release() else: return orig(repo, remote, heads, force, bookmarks=bookmarks)
def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=(), **kwargs): if isinstance(remote, gitrepo): pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) pullop.trmanager = exchange.transactionmanager(repo, b'pull', remote.url()) with repo.wlock(), repo.lock(), pullop.trmanager: pullop.cgresult = repo.githandler.fetch(remote, heads) return pullop else: return orig( repo, remote, heads=heads, force=force, bookmarks=bookmarks, **kwargs, )
def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=(), **kwargs): capable = getattr(remote, 'capable', lambda x: False) if capable('subversion'): # transaction manager is present in Mercurial >= 3.3 try: trmanager = getattr(exchange, 'transactionmanager') except AttributeError: trmanager = None pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) if trmanager: pullop.trmanager = trmanager(repo, 'pull', remote.url()) try: pullop.cgresult = pull(repo, remote, heads, force) return pullop finally: if trmanager: pullop.trmanager.release() else: pullop.releasetransaction() else: return orig(repo, remote, heads, force, bookmarks=bookmarks, **kwargs)
def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=()): if isinstance(remote, gitrepo.gitrepo): pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) lock = repo.lock() try: pullop.cgresult = repo.githandler.fetch(remote.path, heads) pullop.closetransaction() return pullop finally: pullop.releasetransaction() lock.release() else: return orig(repo, remote, heads, force, bookmarks=bookmarks)
def exchangepull(orig, repo, remote, heads=None, force=False, bookmarks=()): capable = getattr(remote, 'capable', lambda x: False) if capable('subversion'): # transaction manager is present in Mercurial >= 3.3 try: trmanager = getattr(exchange, 'transactionmanager') except AttributeError: trmanager = None pullop = exchange.pulloperation(repo, remote, heads, force, bookmarks=bookmarks) if trmanager: pullop.trmanager = trmanager(repo, 'pull', remote.url()) try: pullop.cgresult = pull(repo, remote, heads, force) return pullop finally: if trmanager: pullop.trmanager.release() else: pullop.releasetransaction() else: return orig(repo, remote, heads, force, bookmarks=bookmarks)