Show More
@@ -51,7 +51,7 b' def perftags(ui, repo):' | |||
|
51 | 51 | def t(): |
|
52 | 52 | repo.changelog = mercurial.changelog.changelog(repo.sopener) |
|
53 | 53 | repo.manifest = mercurial.manifest.manifest(repo.sopener) |
|
54 |
repo.tags |
|
|
54 | repo._tags = None | |
|
55 | 55 | return len(repo.tags()) |
|
56 | 56 | timer(t) |
|
57 | 57 |
@@ -89,8 +89,14 b' class localrepository(repo.repository):' | |||
|
89 | 89 | self.sjoin = self.store.join |
|
90 | 90 | self.opener.createmode = self.store.createmode |
|
91 | 91 | |
|
92 | self.tagscache = None | |
|
93 | self._tagstypecache = None | |
|
92 | # These two define the set of tags for this repository. _tags | |
|
93 | # maps tag name to node; _tagtypes maps tag name to 'global' or | |
|
94 | # 'local'. (Global tags are defined by .hgtags across all | |
|
95 | # heads, and local tags are defined in .hg/localtags.) They | |
|
96 | # constitute the in-memory cache of tags. | |
|
97 | self._tags = None | |
|
98 | self._tagtypes = None | |
|
99 | ||
|
94 | 100 | self.branchcache = None |
|
95 | 101 | self._ubranchcache = None # UTF-8 version of branchcache |
|
96 | 102 | self._branchcachetip = None |
@@ -160,8 +166,8 b' class localrepository(repo.repository):' | |||
|
160 | 166 | fp.write('\n') |
|
161 | 167 | for name in names: |
|
162 | 168 | m = munge and munge(name) or name |
|
163 |
if self._tag |
|
|
164 |
old = self.tags |
|
|
169 | if self._tagtypes and name in self._tagtypes: | |
|
170 | old = self._tags.get(name, nullid) | |
|
165 | 171 | fp.write('%s %s\n' % (hex(old), m)) |
|
166 | 172 | fp.write('%s %s\n' % (hex(node), m)) |
|
167 | 173 | fp.close() |
@@ -233,10 +239,10 b' class localrepository(repo.repository):' | |||
|
233 | 239 | |
|
234 | 240 | def tags(self): |
|
235 | 241 | '''return a mapping of tag to node''' |
|
236 |
if self.tags |
|
|
237 |
(self.tags |
|
|
242 | if self._tags is None: | |
|
243 | (self._tags, self._tagtypes) = self._findtags() | |
|
238 | 244 | |
|
239 |
return self.tags |
|
|
245 | return self._tags | |
|
240 | 246 | |
|
241 | 247 | def _findtags(self): |
|
242 | 248 | '''Do the hard work of finding tags. Return a pair of dicts |
@@ -353,7 +359,7 b' class localrepository(repo.repository):' | |||
|
353 | 359 | |
|
354 | 360 | self.tags() |
|
355 | 361 | |
|
356 |
return self._tag |
|
|
362 | return self._tagtypes.get(tagname) | |
|
357 | 363 | |
|
358 | 364 | def tagslist(self): |
|
359 | 365 | '''return a list of tags ordered by revision''' |
@@ -691,8 +697,8 b' class localrepository(repo.repository):' | |||
|
691 | 697 | for a in "changelog manifest".split(): |
|
692 | 698 | if a in self.__dict__: |
|
693 | 699 | delattr(self, a) |
|
694 |
self.tags |
|
|
695 |
self._tag |
|
|
700 | self._tags = None | |
|
701 | self._tagtypes = None | |
|
696 | 702 | self.nodetagscache = None |
|
697 | 703 | self.branchcache = None |
|
698 | 704 | self._ubranchcache = None |
@@ -114,7 +114,7 b' class statichttprepository(localrepo.loc' | |||
|
114 | 114 | |
|
115 | 115 | self.manifest = manifest.manifest(self.sopener) |
|
116 | 116 | self.changelog = changelog.changelog(self.sopener) |
|
117 |
self.tags |
|
|
117 | self._tags = None | |
|
118 | 118 | self.nodetagscache = None |
|
119 | 119 | self.encodepats = None |
|
120 | 120 | self.decodepats = None |
General Comments 0
You need to be logged in to leave comments.
Login now