diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2013-04-11 07:23:04 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2013-04-11 10:46:47 -0700 |
commit | f04f489f6b91213a1a6c4f7e88c8c83d43a68eeb (patch) | |
tree | 8ba0b8626ada89def11edffe8e887e698af08f65 /contrib | |
parent | remote-hg: redirect buggy mercurial output (diff) | |
download | tgif-f04f489f6b91213a1a6c4f7e88c8c83d43a68eeb.tar.xz |
remote-hg: split bookmark handling
Will be useful for remote bookmarks.
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'contrib')
-rwxr-xr-x | contrib/remote-helpers/git-remote-hg | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/contrib/remote-helpers/git-remote-hg b/contrib/remote-helpers/git-remote-hg index 874ccd4e23..73cd81228f 100755 --- a/contrib/remote-helpers/git-remote-hg +++ b/contrib/remote-helpers/git-remote-hg @@ -685,6 +685,8 @@ def parse_tag(parser): def do_export(parser): global parsed_refs, bmarks, peer + p_bmarks = [] + parser.next() for line in parser.each_block('done'): @@ -706,20 +708,9 @@ def do_export(parser): pass elif ref.startswith('refs/heads/'): bmark = ref[len('refs/heads/'):] - if bmark in bmarks: - old = bmarks[bmark].hex() - else: - old = '' - - 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): - print "error %s" % ref - continue - + 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, {}) @@ -731,6 +722,26 @@ def do_export(parser): if peer: parser.repo.push(peer, force=False) + # handle bookmarks + for bmark, node in p_bmarks: + ref = 'refs/heads/' + bmark + + if bmark in bmarks: + old = bmarks[bmark].hex() + else: + old = '' + + 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): + print "error %s" % ref + continue + + print "ok %s" % ref + print def fix_path(alias, repo, orig_url): |