comparison mercurial/localrepo.py @ 8851:52cf210d0046

tags: simplify rev handling
author Matt Mackall <mpm@selenic.com>
date Thu, 18 Jun 2009 20:50:33 -0500
parents 9db1c8e1cf17
children a81652fcaf6b
comparison
equal deleted inserted replaced
8850:9db1c8e1cf17 8851:52cf210d0046
293 def tagnodes(): 293 def tagnodes():
294 last = {} 294 last = {}
295 ret = [] 295 ret = []
296 for node in reversed(self.heads()): 296 for node in reversed(self.heads()):
297 c = self[node] 297 c = self[node]
298 rev = c.rev()
299 try: 298 try:
300 fnode = c.filenode('.hgtags') 299 fnode = c.filenode('.hgtags')
301 except error.LookupError: 300 except error.LookupError:
302 continue 301 continue
303 ret.append((rev, node, fnode)) 302 ret.append((node, fnode))
304 if fnode in last: 303 if fnode in last:
305 ret[last[fnode]] = None 304 ret[last[fnode]] = None
306 last[fnode] = len(ret) - 1 305 last[fnode] = len(ret) - 1
307 return [item for item in ret if item] 306 return [item for item in ret if item]
308 307
309 # read the tags file from each head, ending with the tip 308 # read the tags file from each head, ending with the tip
310 f = None 309 f = None
311 for rev, node, fnode in tagnodes(): 310 for node, fnode in tagnodes():
312 f = (f and f.filectx(fnode) or 311 f = (f and f.filectx(fnode) or
313 self.filectx('.hgtags', fileid=fnode)) 312 self.filectx('.hgtags', fileid=fnode))
314 readtags(f.data().splitlines(), f, "global") 313 readtags(f.data().splitlines(), f, "global")
315 314
316 try: 315 try: