remote-hg: add support for tag objects

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Felipe Contreras committed Apr 22, 2013 at 16:55 UTC 299789c22c9676f6fed77716c7a177e49940d389
1 file changed +7 -3
contrib/remote-helpers/git-remote-hg
+7 -3
@@ -722,7 +722,7 @@ def parse_tag(parser):
722 data = parser.get_data()
723 parser.next()
724
725 - # nothing to do
725 + parsed_tags[name] = (tagger, data)
726
727 def do_export(parser):
728 global parsed_refs, bmarks, peer
@@ -758,9 +758,11 @@ def do_export(parser):
758 continue
759 elif ref.startswith('refs/tags/'):
760 tag = ref[len('refs/tags/'):]
761 + author, msg = parsed_tags.get(tag, (None, None))
762 if mode == 'git':
762 - msg = 'Added tag %s for changeset %s' % (tag, hghex(node[:6]));
763 - parser.repo.tag([tag], node, msg, False, None, {})
763 + if not msg:
764 + msg = 'Added tag %s for changeset %s' % (tag, hghex(node[:6]));
765 + parser.repo.tag([tag], node, msg, False, author[0], {})
766 else:
767 parser.repo.tag([tag], node, None, True, None, {})
768 print "ok %s" % ref
@@ -815,6 +817,7 @@ def main(args):
817 global marks, blob_marks, parsed_refs
818 global peer, mode, bad_mail, bad_name
819 global track_branches, force_push, is_tmp
820 + global parsed_tags
821
822 alias = args[1]
823 url = args[2]
@@ -857,6 +860,7 @@ def main(args):
860 blob_marks = {}
861 parsed_refs = {}
862 marks = None
863 + parsed_tags = {}
864
865 repo = get_repo(url, alias)
866 prefix = 'refs/hg/%s' % alias