equal
deleted
inserted
replaced
286 cl = repo.changelog |
286 cl = repo.changelog |
287 # Faster than using ctx.obsolete() |
287 # Faster than using ctx.obsolete() |
288 obsrevs = obsolete.getrevs(repo, b'obsolete') |
288 obsrevs = obsolete.getrevs(repo, b'obsolete') |
289 # collect new branch entries |
289 # collect new branch entries |
290 newbranches = {} |
290 newbranches = {} |
|
291 new_closed = set() |
291 obs_ignored = set() |
292 obs_ignored = set() |
292 getbranchinfo = repo.revbranchcache().branchinfo |
293 getbranchinfo = repo.revbranchcache().branchinfo |
293 max_rev = -1 |
294 max_rev = -1 |
294 for r in revgen: |
295 for r in revgen: |
295 max_rev = max(max_rev, r) |
296 max_rev = max(max_rev, r) |
299 obs_ignored.add(r) |
300 obs_ignored.add(r) |
300 continue |
301 continue |
301 branch, closesbranch = getbranchinfo(r) |
302 branch, closesbranch = getbranchinfo(r) |
302 newbranches.setdefault(branch, []).append(r) |
303 newbranches.setdefault(branch, []).append(r) |
303 if closesbranch: |
304 if closesbranch: |
304 self._closednodes.add(cl.node(r)) |
305 new_closed.add(r) |
305 if max_rev < 0: |
306 if max_rev < 0: |
306 msg = "running branchcache.update without revision to update" |
307 msg = "running branchcache.update without revision to update" |
307 raise error.ProgrammingError(msg) |
308 raise error.ProgrammingError(msg) |
308 |
309 |
309 # Delay fetching the topological heads until they are needed. |
310 # Delay fetching the topological heads until they are needed. |
389 ancestors = set(cl.ancestors(uncertain, floorrev)) |
390 ancestors = set(cl.ancestors(uncertain, floorrev)) |
390 bheadset -= ancestors |
391 bheadset -= ancestors |
391 if bheadset: |
392 if bheadset: |
392 self[branch] = [cl.node(rev) for rev in sorted(bheadset)] |
393 self[branch] = [cl.node(rev) for rev in sorted(bheadset)] |
393 |
394 |
|
395 self._closednodes.update(cl.node(rev) for rev in new_closed) |
|
396 |
394 duration = util.timer() - starttime |
397 duration = util.timer() - starttime |
395 repo.ui.log( |
398 repo.ui.log( |
396 b'branchcache', |
399 b'branchcache', |
397 b'updated %s in %.4f seconds\n', |
400 b'updated %s in %.4f seconds\n', |
398 _branchcachedesc(repo), |
401 _branchcachedesc(repo), |