Blob Blame History Raw
From a1f98d69de202d21fd6589d6e3df513f48a7159e Mon Sep 17 00:00:00 2001
From: Petr Stodulka <pstodulk@redhat.com>
Date: Mon, 28 Nov 2016 23:30:37 +0100
Subject: [PATCH 2/2] Fix remote push error because of incompatibility with
 mercurial v4.0.

---
 git-remote-hg | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/git-remote-hg b/git-remote-hg
index 1749d43..cc033d1 100755
--- a/git-remote-hg
+++ b/git-remote-hg
@@ -1064,11 +1064,15 @@ def push_unsafe(repo, remote, parsed_refs, p_revs):
     fci = discovery.findcommonincoming
     commoninc = fci(repo, remote, force=force)
     common, _, remoteheads = commoninc
+    fco = discovery.findcommonoutgoing
+    outgoing = fco(repo, remote, onlyheads=list(p_revs), commoninc=commoninc, force=force)
 
     if not checkheads(repo, remote, p_revs):
         return None
 
-    if check_version(3, 2):
+    if check_version(4, 0):
+        cg = changegroup.getlocalchangegroup(repo, 'push', outgoing)
+    elif 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)
-- 
2.5.5