Mercurial > hg
comparison mercurial/graphmod.py @ 23565:996c01bfbec4
graphlog: add a way to test the 'groupbranchiter' function
We add an experimental config option to use the topological sorting. I first
tried to hook the 'groupbranchiter' function in the 'sort' revset but this was useless
because graphlog enforces revision number sorting :(
As the goal is to advance on the topological iteration logic, I see this
experimental option as a good way to move forward.
We have to use turn the iterator into a list because the graphlog is apparently
not ready for pure iterator input yet.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Fri, 14 Nov 2014 17:37:59 +0000 |
parents | f7ce0837eefd |
children | fee7a30cfdf5 |
comparison
equal
deleted
inserted
replaced
23564:f7ce0837eefd | 23565:996c01bfbec4 |
---|---|
197 | 197 |
198 cl = repo.changelog | 198 cl = repo.changelog |
199 lowestrev = revs.min() | 199 lowestrev = revs.min() |
200 gpcache = {} | 200 gpcache = {} |
201 | 201 |
202 if repo.ui.configbool('experimental', 'graph-topological', False): | |
203 revs = list(groupbranchiter(revs, repo.changelog.parentrevs)) | |
204 | |
202 for rev in revs: | 205 for rev in revs: |
203 ctx = repo[rev] | 206 ctx = repo[rev] |
204 parents = sorted(set([p.rev() for p in ctx.parents() | 207 parents = sorted(set([p.rev() for p in ctx.parents() |
205 if p.rev() in revs])) | 208 if p.rev() in revs])) |
206 mpars = [p.rev() for p in ctx.parents() if | 209 mpars = [p.rev() for p in ctx.parents() if |