# HG changeset patch # User Matt Mackall # Date 1245376190 18000 # Node ID 9db1c8e1cf17150c23f667479fa5d1f648cf4a9c # Parent 80cc4b1a62d01a450cb162f261bb75f4904ee236 tags: fold in _hgtagsnodes diff -r 80cc4b1a62d0 -r 9db1c8e1cf17 mercurial/localrepo.py --- a/mercurial/localrepo.py Tue May 19 16:49:54 2009 +0900 +++ b/mercurial/localrepo.py Thu Jun 18 20:49:50 2009 -0500 @@ -290,9 +290,25 @@ globaltags[k] = an, ah tagtypes[k] = tagtype + def tagnodes(): + last = {} + ret = [] + for node in reversed(self.heads()): + c = self[node] + rev = c.rev() + try: + fnode = c.filenode('.hgtags') + except error.LookupError: + continue + ret.append((rev, node, fnode)) + if fnode in last: + ret[last[fnode]] = None + last[fnode] = len(ret) - 1 + return [item for item in ret if item] + # read the tags file from each head, ending with the tip f = None - for rev, node, fnode in self._hgtagsnodes(): + for rev, node, fnode in tagnodes(): f = (f and f.filectx(fnode) or self.filectx('.hgtags', fileid=fnode)) readtags(f.data().splitlines(), f, "global") @@ -328,22 +344,6 @@ return self._tagstypecache.get(tagname) - def _hgtagsnodes(self): - last = {} - ret = [] - for node in reversed(self.heads()): - c = self[node] - rev = c.rev() - try: - fnode = c.filenode('.hgtags') - except error.LookupError: - continue - ret.append((rev, node, fnode)) - if fnode in last: - ret[last[fnode]] = None - last[fnode] = len(ret) - 1 - return [item for item in ret if item] - def tagslist(self): '''return a list of tags ordered by revision''' l = []