Mercurial > hg
comparison mercurial/localrepo.py @ 3439:a7ef6b6cc311
branchtags: use changectx
setting self.branchcache on entry avoids recursions in lookup
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Tue, 17 Oct 2006 22:09:56 -0500 |
parents | d0459ec1455d |
children | 0f1fd9854cdc |
comparison
equal
deleted
inserted
replaced
3438:b17f9d3eda74 | 3439:a7ef6b6cc311 |
---|---|
291 | 291 |
292 def branchtags(self): | 292 def branchtags(self): |
293 if self.branchcache != None: | 293 if self.branchcache != None: |
294 return self.branchcache | 294 return self.branchcache |
295 | 295 |
296 self.branchcache = {} | 296 self.branchcache = {} # avoid recursion in changectx |
297 | 297 |
298 try: | 298 try: |
299 f = self.opener("branches.cache") | 299 f = self.opener("branches.cache") |
300 last, lrev = f.readline().rstrip().split(" ", 1) | 300 last, lrev = f.readline().rstrip().split(" ", 1) |
301 last, lrev = bin(last), int(lrev) | 301 last, lrev = bin(last), int(lrev) |
308 last, lrev = nullid, -1 | 308 last, lrev = nullid, -1 |
309 lrev = self.changelog.rev(last) | 309 lrev = self.changelog.rev(last) |
310 | 310 |
311 tip = self.changelog.count() - 1 | 311 tip = self.changelog.count() - 1 |
312 if lrev != tip: | 312 if lrev != tip: |
313 for r in range(lrev + 1, tip + 1): | 313 for r in xrange(lrev + 1, tip + 1): |
314 n = self.changelog.node(r) | 314 c = self.changectx(r) |
315 c = self.changelog.read(n) | 315 b = c.branch() |
316 b = c[5].get("branch") | |
317 if b: | 316 if b: |
318 self.branchcache[b] = n | 317 self.branchcache[b] = c.node() |
319 self._writebranchcache() | 318 self._writebranchcache() |
320 | 319 |
321 return self.branchcache | 320 return self.branchcache |
322 | 321 |
323 def _writebranchcache(self): | 322 def _writebranchcache(self): |