From 0ff1b61770f42921d68b488f0ec3756d5477bc78 Mon Sep 17 00:00:00 2001 From: Felipe Contreras Date: Thu, 11 Apr 2013 07:23:05 -0500 Subject: [PATCH] remote-hg: refactor export No functional changes. Signed-off-by: Felipe Contreras Signed-off-by: Junio C Hamano --- contrib/remote-helpers/git-remote-hg | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 73cd81228f..3ceec8502f 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -9,7 +9,7 @@ # Then you can clone with: # git clone hg::/path/to/mercurial/repo/ -from mercurial import hg, ui, bookmarks, context, util, encoding +from mercurial import hg, ui, bookmarks, context, util, encoding, node import re import sys @@ -60,6 +60,9 @@ def hgmode(mode): m = { '100755': 'x', '120000': 'l' } return m.get(mode, '') +def hghex(node): + return hg.node.hex(node) + def get_config(config): cmd = ['git', 'config', '--get', config] process = subprocess.Popen(cmd, stdout=subprocess.PIPE) @@ -705,19 +708,18 @@ def do_export(parser): for ref, node in parsed_refs.iteritems(): if ref.startswith('refs/heads/branches'): - pass + print "ok %s" % ref elif ref.startswith('refs/heads/'): bmark = ref[len('refs/heads/'):] p_bmarks.append((bmark, node)) - # handle below continue elif ref.startswith('refs/tags/'): tag = ref[len('refs/tags/'):] parser.repo.tag([tag], node, None, True, None, {}) + print "ok %s" % ref else: # transport-helper/fast-export bugs continue - print "ok %s" % ref if peer: parser.repo.push(peer, force=False) @@ -725,6 +727,7 @@ def do_export(parser): # handle bookmarks for bmark, node in p_bmarks: ref = 'refs/heads/' + bmark + new = hghex(node) if bmark in bmarks: old = bmarks[bmark].hex() @@ -733,10 +736,11 @@ def do_export(parser): if bmark == 'master' and 'master' not in parser.repo._bookmarks: # fake bookmark - print "ok %s" % ref - continue - - if not bookmarks.pushbookmark(parser.repo, bmark, old, node): + pass + elif bookmarks.pushbookmark(parser.repo, bmark, old, new): + # updated locally + pass + else: print "error %s" % ref continue -- 2.11.4.GIT