changeset 1175:d6296f901fc7 stable

push: update push logic to match mercurial upstream Commit e10000369b47 in upstream Mercurial changed the checkpush function signature. So we need to update hgsubversion accordingly. Ran the tests against the tip of the hg repo, against a version of hg from January before the exchange module, and against a version of hg after pushoperations was added but before checkpush used it, and the tests passed in all cases.
author Durham Goode <durham@fb.com>
date Wed, 09 Apr 2014 16:17:13 -0700 (2014-04-09)
parents 61d4fb78370b
children 97a064e2075d
files hgsubversion/wrappers.py
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/hgsubversion/wrappers.py
+++ b/hgsubversion/wrappers.py
@@ -180,7 +180,14 @@ def push(repo, dest, force, revs):
     cmdutil.bailifchanged(repo)
     checkpush = getattr(repo, 'checkpush', None)
     if checkpush:
-        checkpush(force, revs)
+        try:
+            # The checkpush function changed as of e10000369b47 in mercurial
+            from mercurial.exchange import pushoperation
+            pushop = pushoperation(repo, dest, force, revs, False)
+            checkpush(pushop)
+        except (ImportError, TypeError):
+            checkpush(force, revs)
+
     ui = repo.ui
     old_encoding = util.swap_out_encoding()