Mercurial > public > mercurial-scm > hg
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: |