mercurial/localrepo.py
changeset 4274 f38f90a177dc
parent 4270 cd7b36b7869c
parent 4272 fe7f38dda34b
child 4276 cb6107f78b92
equal deleted inserted replaced
4271:94bb953b43e5 4274:f38f90a177dc
   287                     continue
   287                     continue
   288                 if bin_n not in self.changelog.nodemap:
   288                 if bin_n not in self.changelog.nodemap:
   289                     warn(_("tag '%s' refers to unknown node") % key)
   289                     warn(_("tag '%s' refers to unknown node") % key)
   290                     continue
   290                     continue
   291 
   291 
   292                 h = {}
   292                 h = []
   293                 if key in filetags:
   293                 if key in filetags:
   294                     n, h = filetags[key]
   294                     n, h = filetags[key]
   295                     h[n] = True
   295                     h.append(n)
   296                 filetags[key] = (bin_n, h)
   296                 filetags[key] = (bin_n, h)
   297 
   297 
   298             for k,nh in filetags.items():
   298             for k,nh in filetags.items():
   299                 if k not in globaltags:
   299                 if k not in globaltags:
   300                     globaltags[k] = nh
   300                     globaltags[k] = nh
   306                 an, ah = nh
   306                 an, ah = nh
   307                 bn, bh = globaltags[k]
   307                 bn, bh = globaltags[k]
   308                 if bn != an and an in bh and \
   308                 if bn != an and an in bh and \
   309                    (bn not in ah or len(bh) > len(ah)):
   309                    (bn not in ah or len(bh) > len(ah)):
   310                     an = bn
   310                     an = bn
   311                 ah.update(bh)
   311                 ah.append([n for n in bh if n not in ah])
   312                 globaltags[k] = an, ah
   312                 globaltags[k] = an, ah
   313 
   313 
   314         # read the tags file from each head, ending with the tip
   314         # read the tags file from each head, ending with the tip
   315         f = None
   315         f = None
   316         for rev, node, fnode in self._hgtagsnodes():
   316         for rev, node, fnode in self._hgtagsnodes():