Example #1
0
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)
Example #2
0
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)
Example #3
0
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,
        )
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)