Mercurial > hg
view tests/test-contrib-perf.t @ 28600:0d6137891114
graphmod: allow for different styles for different edge types
Rather than draw all edges as solid lines, allow for using different styles for
different edge types. For example you could use dotted lines for edges that
do not connect to a parent, and dashed lines when connecting to a grandparent
(implying missing nodes in between).
For example, setting the following configuration:
[ui]
graphstyle.grandparent = :
graphstyle.missing = .
would result in a graph like this:
o changeset: 32:d06dffa21a31
|\ parent: 27:886ed638191b
| : parent: 31:621d83e11f67
| :
o : changeset: 31:621d83e11f67
|\: parent: 21:d42a756af44d
| : parent: 30:6e11cd4b648f
| :
o : changeset: 30:6e11cd4b648f
|\ \ parent: 28:44ecd0b9ae99
| . : parent: 29:cd9bb2be7593
| . :
o . : changeset: 28:44ecd0b9ae99
|\ \ \ parent: 1:6db2ef61d156
| . . : parent: 26:7f25b6c2f0b9
| . . :
o . . : changeset: 26:7f25b6c2f0b9
|\ \ \ \ parent: 18:1aa84d96232a
| | . . : parent: 25:91da8ed57247
| | . . :
| o-----+ changeset: 25:91da8ed57247
| | . . : parent: 21:d42a756af44d
| | . . : parent: 24:a9c19a3d96b7
| | . . :
| o . . : changeset: 24:a9c19a3d96b7
| |\ \ \ \ parent: 0:e6eb3150255d
| | . . . : parent: 23:a01cddf0766d
| | . . . :
| o---+ . : changeset: 23:a01cddf0766d
| | . . . : parent: 1:6db2ef61d156
| | . . . : parent: 22:e0d9cccacb5d
| | . . . :
| o-------+ changeset: 22:e0d9cccacb5d
| . . . . : parent: 18:1aa84d96232a
|/ / / / / parent: 21:d42a756af44d
| . . . :
| . . . o changeset: 21:d42a756af44d
| . . . |\ parent: 19:31ddc2c1573b
| . . . | | parent: 20:d30ed6450e32
| . . . | |
+-+-------o changeset: 20:d30ed6450e32
| . . . | parent: 0:e6eb3150255d
| . . . | parent: 18:1aa84d96232a
| . . . |
| . . . o changeset: 19:31ddc2c1573b
| . . . .\ parent: 15:1dda3f72782d
| . . . . | parent: 17:44765d7c06e0
| . . . . |
o---+---+ | changeset: 18:1aa84d96232a
. . . . | parent: 1:6db2ef61d156
/ / / / / parent: 15:1dda3f72782d
. . . . .
Edge styles can be altered by setting the following one-character config options::
[ui]
graphstyle.parent = |
graphstyle.grandparent = :
graphstyle.missing = .
The default configuration leaves all 3 types set to |, leaving graph styles
unaffected.
This is part of the work towards moving smartlog upstream; currently smartlog
injects extra nodes into the graph to indicate grandparent relationships (nodes
elided).
author | Martijn Pieters <mjpieters@fb.com> |
---|---|
date | Sat, 19 Mar 2016 16:46:15 -0700 |
parents | 11f2e496bdc9 |
children | 3c9066ed557c |
line wrap: on
line source
#require test-repo Set vars: $ CONTRIBDIR="$TESTDIR/../contrib" Prepare repo: $ hg init $ echo this is file a > a $ hg add a $ hg commit -m first $ echo adding to file a >> a $ hg commit -m second $ echo adding more to file a >> a $ hg commit -m third $ hg up -r 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ echo merge-this >> a $ hg commit -m merge-able created new head $ hg up -r 2 1 files updated, 0 files merged, 0 files removed, 0 files unresolved perfstatus $ cat >> $HGRCPATH << EOF > [extensions] > perfstatusext=$CONTRIBDIR/perf.py > [perf] > presleep=0 > stub=on > parentscount=1 > EOF $ hg help perfstatusext perfstatusext extension - helper extension to measure performance list of commands: perfaddremove (no help text available) perfancestors (no help text available) perfancestorset (no help text available) perfannotate (no help text available) perfbranchmap benchmark the update of a branchmap perfcca (no help text available) perfchangeset (no help text available) perfctxfiles (no help text available) perfdiffwd Profile diff of working directory changes perfdirfoldmap (no help text available) perfdirs (no help text available) perfdirstate (no help text available) perfdirstatedirs (no help text available) perfdirstatefoldmap (no help text available) perfdirstatewrite (no help text available) perffncacheencode (no help text available) perffncacheload (no help text available) perffncachewrite (no help text available) perfheads (no help text available) perfindex (no help text available) perfloadmarkers benchmark the time to parse the on-disk markers for a repo perflog (no help text available) perflookup (no help text available) perflrucachedict (no help text available) perfmanifest (no help text available) perfmergecalculate (no help text available) perfmoonwalk benchmark walking the changelog backwards perfnodelookup (no help text available) perfparents (no help text available) perfpathcopies (no help text available) perfrawfiles (no help text available) perfrevlog Benchmark reading a series of revisions from a revlog. perfrevlogrevision Benchmark obtaining a revlog revision. perfrevrange (no help text available) perfrevset benchmark the execution time of a revset perfstartup (no help text available) perfstatus (no help text available) perftags (no help text available) perftemplating (no help text available) perfvolatilesets benchmark the computation of various volatile set perfwalk (no help text available) (use "hg help -v perfstatusext" to show built-in aliases and global options) $ hg perfaddremove $ hg perfancestors $ hg perfancestorset 2 $ hg perfannotate a $ hg perfbranchmap $ hg perfcca $ hg perfchangeset 2 $ hg perfctxfiles 2 $ hg perfdiffwd $ hg perfdirfoldmap $ hg perfdirs $ hg perfdirstate $ hg perfdirstatedirs $ hg perfdirstatefoldmap $ hg perfdirstatewrite $ hg perffncacheencode $ hg perffncacheload $ hg perffncachewrite $ hg perfheads $ hg perfindex $ hg perfloadmarkers $ hg perflog $ hg perflookup 2 $ hg perflrucache $ hg perfmanifest 2 $ hg perfmergecalculate -r 3 $ hg perfmoonwalk $ hg perfnodelookup 2 $ hg perfpathcopies 1 2 $ hg perfrawfiles 2 $ hg perfrevlog .hg/store/data/a.i $ hg perfrevlogrevision -m 0 $ hg perfrevrange $ hg perfrevset 'all()' $ hg perfstartup $ hg perfstatus $ hg perftags $ hg perftemplating $ hg perfvolatilesets $ hg perfwalk $ hg perfparents