convert-repo: linearize the tag commit
authorMatt Mackall <mpm@selenic.com>
Wed, 05 Oct 2005 19:25:45 -0700
changeset 1387 0c7e8d345564
parent 1386 a1040345fdda
child 1388 5eb2d3c54165
convert-repo: linearize the tag commit
contrib/convert-repo
--- a/contrib/convert-repo	Wed Oct 05 17:11:06 2005 -0700
+++ b/contrib/convert-repo	Wed Oct 05 19:25:45 2005 -0700
@@ -160,6 +160,7 @@
             date = "%s 0" % int(time.mktime(time.gmtime()))
             self.repo.rawcommit([".hgtags"], "update tags", "convert-repo",
                                 date, self.repo.changelog.tip(), hg.nullid)
+            return hg.hex(self.repo.changelog.tip())
 
 class convert:
     def __init__(self, source, dest, mapfile):
@@ -269,7 +270,11 @@
             if v in self.map:
                 ctags[k] = self.map[v]
 
-        self.dest.puttags(ctags)
+        if ctags:
+            nrev = self.dest.puttags(ctags)
+            # write another hash correspondence to override the previous
+            # one so we don't end up with extra tag heads
+            file(self.mapfile, "a").write("%s %s\n" % (c, nrev))
 
 gitpath, hgpath, mapfile = sys.argv[1:]
 if os.path.isdir(gitpath + "/.git"):