Mercurial > hg
view tests/test-contrib-perf.t @ 31499:31d2ddfd338c
color: sync text attributes and buffered text output on Windows (issue5508)
I originally noticed that log output wasn't being colored after 3a4c0905f357,
but there were other complications too. With a bunch of untracked files, only
the first 1K of characters were colored pink, and the rest were normal white. A
single modified file at the top would also be colored pink.
Line buffering and full buffering are treated as the same thing in Windows [1],
meaning the stream is either buffered or not. I can't find any explicit
documentation to say stdout is unbuffered by default when attached to a console
(but some internet postings indicated that is the case[2]). Therefore, it seems
that explicit flushes are better than just not reopening stdout.
NB: pager is now on by default, and needs to be disabled to see any color on
Windows.
[1] https://msdn.microsoft.com/en-us/library/86cebhfs(v=vs.140).aspx
[2] https://sourceforge.net/p/mingw/mailman/message/27121137/
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 19 Mar 2017 12:44:45 -0400 |
parents | 5a9e4dc8e4fd |
children | be8a866a2c44 |
line wrap: on
line source
#require test-repo Set vars: $ . "$TESTDIR/helpers-testrepo.sh" $ 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) perfbdiff benchmark a bdiff between revisions perfbranchmap benchmark the update of a branchmap perfcca (no help text available) perfchangegroupchangelog Benchmark producing a changelog group for a changegroup. 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. perfrevlogchunks Benchmark operations on revlog chunks. 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) perfwrite microbenchmark ui.write (use 'hg help -v perfstatusext' to show built-in aliases and global options) $ hg perfaddremove $ hg perfancestors $ hg perfancestorset 2 $ hg perfannotate a $ hg perfbdiff -c 1 $ hg perfbdiff --alldata 1 $ hg perfbranchmap $ hg perfcca $ hg perfchangegroupchangelog $ 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 perfrevlogchunks -c $ hg perfrevrange $ hg perfrevset 'all()' $ hg perfstartup $ hg perfstatus $ hg perftags $ hg perftemplating $ hg perfvolatilesets $ hg perfwalk $ hg perfparents Check perf.py for historical portability $ cd "$TESTDIR/.." $ (hg files -r 1.2 glob:mercurial/*.c glob:mercurial/*.py; > hg files -r tip glob:mercurial/*.c glob:mercurial/*.py) | > "$TESTDIR"/check-perf-code.py contrib/perf.py