contrib/convert-repo
changeset 4062 516f883e3d79
parent 4047 705d0792dbf2
child 4082 6b2909e84203
equal deleted inserted replaced
4061:40030c1b6bc6 4062:516f883e3d79
   357         c = commit(parents=parents, date=date, author=author, desc=message)
   357         c = commit(parents=parents, date=date, author=author, desc=message)
   358         return c
   358         return c
   359 
   359 
   360     def gettags(self):
   360     def gettags(self):
   361         tags = {}
   361         tags = {}
   362         for f in os.listdir(self.path + "/refs/tags"):
   362         fh = os.popen('git-ls-remote --tags "%s" 2>/dev/null' % self.path)
   363             try:
   363         prefix = 'refs/tags/'
   364                 h = file(self.path + "/refs/tags/" + f).read().strip()
   364         for line in fh:
   365                 c = self.catfile(h, "tag") # read the commit hash
   365             line = line.strip()
   366                 h = c.splitlines()[0].split()[1]
   366             if not line.endswith("^{}"):
   367                 tags[f] = h
   367                 continue
   368             except:
   368             node, tag = line.split(None, 1)
   369                 pass
   369             if not tag.startswith(prefix):
       
   370                 continue
       
   371             tag = tag[len(prefix):-3]
       
   372             tags[tag] = node
       
   373 
   370         return tags
   374         return tags
   371 
   375 
   372 class convert_mercurial:
   376 class convert_mercurial:
   373     def __init__(self, path):
   377     def __init__(self, path):
   374         self.path = path
   378         self.path = path