[PATCH] convert/hg.py: preserve tags
Dean Roehrich
Dean.Roehrich at sun.com
Thu Mar 27 11:33:35 CDT 2008
While using convert to do incremental cvs->hg conversions I noticed
that my hg repo could lose its existing tags.
Dean
# HG changeset patch
# User dean.roehrich at sun.com
# Date 1206635501 18000
# Node ID e865ff0d4c5e655e9747135d1be71308c49afdac
# Parent 1e4ddc9ac9f7abbaeaefc79995fc6abc8e43236f
convert/hg.py: preserve existing tags
diff -r 1e4ddc9ac9f7 -r e865ff0d4c5e hgext/convert/hg.py
--- a/hgext/convert/hg.py Mon Mar 24 18:05:30 2008 -0500
+++ b/hgext/convert/hg.py Thu Mar 27 11:31:41 2008 -0500
@@ -167,19 +167,25 @@
return parent
return p2
+ def gettags(self):
+ tags = [t for t in self.repo.tagslist() if t[0] != 'tip']
+ return dict([(name, hex(node)) for name, node in tags])
+
def puttags(self, tags):
- try:
- old = self.repo.wfile(".hgtags").read()
- oldlines = old.splitlines(1)
- oldlines.sort()
- except:
- oldlines = []
+ oldlines = []
+ new_tags = {}
+ before_tags = self.gettags()
+ for tag in before_tags.keys():
+ new_tags[tag] = before_tags[tag]
+ oldlines.append("%s %s\n" % (new_tags[tag], tag))
+ oldlines.sort()
k = tags.keys()
- k.sort()
newlines = []
for tag in k:
- newlines.append("%s %s\n" % (tags[tag], tag))
+ new_tags[tag] = tags[tag]
+ for tag in new_tags.keys():
+ newlines.append("%s %s\n" % (new_tags[tag], tag))
newlines.sort()
More information about the Mercurial-devel
mailing list