From 1e279075dca09066ac5c6556b86beeff5f195fb9 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Mon, 16 May 2016 18:46:00 -0500 Subject: [PATCH] Add compatibility for Mercurial v3.2 Signed-off-by: Felipe Contreras --- git-remote-hg | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/git-remote-hg b/git-remote-hg index c10b37b..a0d9086 100755 --- a/git-remote-hg +++ b/git-remote-hg @@ -430,7 +430,12 @@ def get_repo(url, alias): peer = hg.peer(repo.ui, {}, url) except: die('Repository error') - repo.pull(peer, heads=None, force=True) + + if check_version(3, 0): + from mercurial import exchange + exchange.pull(repo, peer, heads=None, force=True) + else: + repo.pull(peer, heads=None, force=True) updatebookmarks(repo, peer) @@ -803,7 +808,10 @@ def parse_commit(parser): def getfilectx(repo, memctx, f): of = files[f] if 'deleted' in of: - raise IOError + if check_version(3, 2): + return None + else: + raise IOError if 'ctx' in of: return of['ctx'] is_exec = of['mode'] == 'x' @@ -1036,7 +1044,9 @@ def push_unsafe(repo, remote, parsed_refs, p_revs): if not checkheads(repo, remote, p_revs): return None - if check_version(3, 0): + if check_version(3, 2): + cg = changegroup.getchangegroup(repo, 'push', heads=list(p_revs), common=common) + elif check_version(3, 0): cg = changegroup.getbundle(repo, 'push', heads=list(p_revs), common=common) else: cg = repo.getbundle('push', heads=list(p_revs), common=common)