25 This is a standalone function to help extensions to wrap it.""" |
25 This is a standalone function to help extensions to wrap it.""" |
26 assert not repo.changelog.filteredrevs |
26 assert not repo.changelog.filteredrevs |
27 hideable = hideablerevs(repo) |
27 hideable = hideablerevs(repo) |
28 blockers = [] |
28 blockers = [] |
29 if hideable: |
29 if hideable: |
|
30 # We use cl to avoid recursive lookup from repo[xxx] |
30 cl = repo.changelog |
31 cl = repo.changelog |
31 firsthideable = min(hideable) |
32 firsthideable = min(hideable) |
32 revs = cl.revs(start=firsthideable) |
33 revs = cl.revs(start=firsthideable) |
33 tofilter = repo.revs( |
34 tofilter = repo.revs( |
34 '(%ld) and children(%ld)', list(revs), list(hideable)) |
35 '(%ld) and children(%ld)', list(revs), list(hideable)) |
35 blockers = [r for r in tofilter if r not in hideable] |
36 blockers = [r for r in tofilter if r not in hideable] |
36 for par in repo[None].parents(): |
37 for par in repo[None].parents(): |
37 blockers.append(par.rev()) |
38 blockers.append(par.rev()) |
38 for bm in repo._bookmarks.values(): |
39 for bm in repo._bookmarks.values(): |
39 blockers.append(repo[bm].rev()) |
40 blockers.append(cl.rev(bm)) |
40 tags = {} |
41 tags = {} |
41 tagsmod.readlocaltags(repo.ui, repo, tags, {}) |
42 tagsmod.readlocaltags(repo.ui, repo, tags, {}) |
42 if tags: |
43 if tags: |
43 blockers.extend(repo[t[0]].rev() for t in tags.values()) |
44 blockers.extend(cl.rev(t[0]) for t in tags.values()) |
44 return blockers |
45 return blockers |
45 |
46 |
46 def computehidden(repo): |
47 def computehidden(repo): |
47 """compute the set of hidden revision to filter |
48 """compute the set of hidden revision to filter |
48 |
49 |