git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] remote-hg: getbundle changed in mercurial 3.0

From
William Giokas <1007380@gmail.com>
Date
May 13, 2014, 19:12 UTC
Message-ID
<1400008359-18267-1-git-send-email-1007380@gmail.com>

In mercurial 3.0, getbundle was moved to the changegroup module, and gained a new argument. Due to this we cannot simply start using getbundle(...) imported from either one unconditionally, as that would cause errors in mercurial 3.0 without changing the syntax, and errors in mercurial <3.0 if we do change it.

The try:except block at the beginning of git-remote-hg.py tries first to import mercurial.changegroup.getbundle, and if that fails we set the function 'getbundle' to work correctly with mercurial.repo.getbundle by removing the first argument.

Signed-off-by: William Giokas <1007380@gmail.com>
---

I have tested this briefly with mercurial 3.0, but have not yet really run through its paces. The tests that are included in next do pass with mercurial 3.0.

 git-remote-hg.py | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/git-remote-hg.py b/git-remote-hg.py
index 34cda02..3dc9e11 100755
--- a/git-remote-hg.py
+++ b/git-remote-hg.py
@@ -14,6 +14,13 @@
 
 from mercurial import hg, ui, bookmarks, context, encoding, node, error, extensions, discovery, util
 
+try:
+    from mercurial.changegroup import getbundle
+
+except ImportError:
+    def getbundle(__empty__, **kwargs):
+        return repo.getbundle(**kwargs)
+
 import re
 import sys
 import os
@@ -985,7 +992,7 @@ def push_unsafe(repo, remote, parsed_refs, p_revs):
     if not checkheads(repo, remote, p_revs):
         return None
 
-    cg = repo.getbundle('push', heads=list(p_revs), common=common)
+    cg = getbundle(repo, 'push', heads=list(p_revs), common=common)
 
     unbundle = remote.capable('unbundle')
     if unbundle:
-- 
2.0.0.rc3
Next: William Giokas
Message 1 of 5 in “remote-hg: getbundle changed in mercurial 3.0”
  1. remote-hg: getbundle changed in mercurial 3.0William Giokas, May 13, 2014
  2. remote-hg: getbundle changed in mercurial 3.0William Giokas, May 13, 2014
  3. Junio C HamanoMay 13, 2014
  4. Junio C HamanoMay 13, 2014
  5. Felipe ContrerasMay 13, 2014

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.