equal
deleted
inserted
replaced
263 if key in filetags: |
263 if key in filetags: |
264 n, h = filetags[key] |
264 n, h = filetags[key] |
265 h.append(n) |
265 h.append(n) |
266 filetags[key] = (bin_n, h) |
266 filetags[key] = (bin_n, h) |
267 |
267 |
268 for k, nh in filetags.items(): |
268 for k, nh in filetags.iteritems(): |
269 if k not in globaltags: |
269 if k not in globaltags: |
270 globaltags[k] = nh |
270 globaltags[k] = nh |
271 tagtypes[k] = tagtype |
271 tagtypes[k] = tagtype |
272 continue |
272 continue |
273 |
273 |
299 except IOError: |
299 except IOError: |
300 pass |
300 pass |
301 |
301 |
302 self.tagscache = {} |
302 self.tagscache = {} |
303 self._tagstypecache = {} |
303 self._tagstypecache = {} |
304 for k,nh in globaltags.items(): |
304 for k, nh in globaltags.iteritems(): |
305 n = nh[0] |
305 n = nh[0] |
306 if n != nullid: |
306 if n != nullid: |
307 self.tagscache[k] = n |
307 self.tagscache[k] = n |
308 self._tagstypecache[k] = tagtypes[k] |
308 self._tagstypecache[k] = tagtypes[k] |
309 self.tagscache['tip'] = self.changelog.tip() |
309 self.tagscache['tip'] = self.changelog.tip() |
341 return [item for item in ret if item] |
341 return [item for item in ret if item] |
342 |
342 |
343 def tagslist(self): |
343 def tagslist(self): |
344 '''return a list of tags ordered by revision''' |
344 '''return a list of tags ordered by revision''' |
345 l = [] |
345 l = [] |
346 for t, n in self.tags().items(): |
346 for t, n in self.tags().iteritems(): |
347 try: |
347 try: |
348 r = self.changelog.rev(n) |
348 r = self.changelog.rev(n) |
349 except: |
349 except: |
350 r = -2 # sort to the beginning of the list if unknown |
350 r = -2 # sort to the beginning of the list if unknown |
351 l.append((r, t, n)) |
351 l.append((r, t, n)) |
353 |
353 |
354 def nodetags(self, node): |
354 def nodetags(self, node): |
355 '''return the tags associated with a node''' |
355 '''return the tags associated with a node''' |
356 if not self.nodetagscache: |
356 if not self.nodetagscache: |
357 self.nodetagscache = {} |
357 self.nodetagscache = {} |
358 for t, n in self.tags().items(): |
358 for t, n in self.tags().iteritems(): |
359 self.nodetagscache.setdefault(n, []).append(t) |
359 self.nodetagscache.setdefault(n, []).append(t) |
360 return self.nodetagscache.get(node, []) |
360 return self.nodetagscache.get(node, []) |
361 |
361 |
362 def _branchtags(self, partial, lrev): |
362 def _branchtags(self, partial, lrev): |
363 tiprev = len(self) - 1 |
363 tiprev = len(self) - 1 |
386 |
386 |
387 self._branchtags(partial, lrev) |
387 self._branchtags(partial, lrev) |
388 |
388 |
389 # the branch cache is stored on disk as UTF-8, but in the local |
389 # the branch cache is stored on disk as UTF-8, but in the local |
390 # charset internally |
390 # charset internally |
391 for k, v in partial.items(): |
391 for k, v in partial.iteritems(): |
392 self.branchcache[util.tolocal(k)] = v |
392 self.branchcache[util.tolocal(k)] = v |
393 self._ubranchcache = partial |
393 self._ubranchcache = partial |
394 return self.branchcache |
394 return self.branchcache |
395 |
395 |
396 def _readbranchcache(self): |
396 def _readbranchcache(self): |
1754 if r == next_rev[0]: |
1754 if r == next_rev[0]: |
1755 # If the last rev we looked at was the one just previous, |
1755 # If the last rev we looked at was the one just previous, |
1756 # we only need to see a diff. |
1756 # we only need to see a diff. |
1757 deltamf = mnfst.readdelta(mnfstnode) |
1757 deltamf = mnfst.readdelta(mnfstnode) |
1758 # For each line in the delta |
1758 # For each line in the delta |
1759 for f, fnode in deltamf.items(): |
1759 for f, fnode in deltamf.iteritems(): |
1760 f = changedfiles.get(f, None) |
1760 f = changedfiles.get(f, None) |
1761 # And if the file is in the list of files we care |
1761 # And if the file is in the list of files we care |
1762 # about. |
1762 # about. |
1763 if f is not None: |
1763 if f is not None: |
1764 # Get the changenode this manifest belongs to |
1764 # Get the changenode this manifest belongs to |