Mercurial > hg
changeset 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 |
files | mercurial/graphmod.py tests/test-glog-topological.t |
diffstat | 2 files changed, 61 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/graphmod.py Thu Sep 04 18:19:32 2014 +0200 +++ b/mercurial/graphmod.py Fri Nov 14 17:37:59 2014 +0000 @@ -199,6 +199,9 @@ lowestrev = revs.min() gpcache = {} + if repo.ui.configbool('experimental', 'graph-topological', False): + revs = list(groupbranchiter(revs, repo.changelog.parentrevs)) + for rev in revs: ctx = repo[rev] parents = sorted(set([p.rev() for p in ctx.parents()
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-glog-topological.t Fri Nov 14 17:37:59 2014 +0000 @@ -0,0 +1,58 @@ +This test file aims at test topological iteration and the various configuration it can has. + + $ cat >> $HGRCPATH << EOF + > [ui] + > logtemplate={rev}\n + > EOF + +On this simple example, all topological branch are displayed in turn until we +can finally display 0. this implies skipping from 8 to 3 and coming back to 7 +later. + + $ hg init test01 + $ cd test01 + $ hg unbundle $TESTDIR/bundles/remote.hg + adding changesets + adding manifests + adding file changes + added 9 changesets with 7 changes to 4 files (+1 heads) + (run 'hg heads' to see heads, 'hg merge' to merge) + + $ hg log -G + o 8 + | + | o 7 + | | + | o 6 + | | + | o 5 + | | + | o 4 + | | + o | 3 + | | + o | 2 + | | + o | 1 + |/ + o 0 + + $ hg --config experimental.graph-topological=1 log -G + o 8 + | + o 3 + | + o 2 + | + o 1 + | + | o 7 + | | + | o 6 + | | + | o 5 + | | + | o 4 + |/ + o 0 +