Mercurial > hg
view tests/test-diffstat.t @ 14087:f3d585c9b042
graphmod: restore generator nature of dagwalker
9966c95b8c4f introduced the ability to walk the DAG
given arbitrary revisions, but changed the behaviour of
it to return a list of all nodes (and create a changectx
for each one) rather than doing it lazily.
This has a pretty significant impact on performance for large
repositories (tested on CPython repo, with output disabled):
$ time hg glog
real 0m2.642s
user 0m2.560s
sys 0m0.080s
Before 9966c95b8c4f:
$ time hg glog
real 0m0.143s
user 0m0.112s
sys 0m0.032s
And after this fix:
$ time hg glog
real 0m0.213s
user 0m0.184s
sys 0m0.028s
author | Idan Kamara <idankk86@gmail.com> |
---|---|
date | Sat, 30 Apr 2011 15:10:58 +0300 |
parents | 104c9ed93fc5 |
children | cbe13e6bdc34 |
line wrap: on
line source
$ hg init repo $ cd repo $ i=0; while [ "$i" -lt 213 ]; do echo a >> a; i=`expr $i + 1`; done $ hg add a Wide diffstat: $ hg diff --stat a | 213 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 213 insertions(+), 0 deletions(-) diffstat width: $ COLUMNS=24 hg diff --config ui.interactive=true --stat a | 213 ++++++++++++++ 1 files changed, 213 insertions(+), 0 deletions(-) $ hg ci -m adda $ cat >> a <<EOF > a > a > a > EOF Narrow diffstat: $ hg diff --stat a | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) $ hg ci -m appenda $ printf '\0' > b $ hg add b Binary diffstat: $ hg diff --stat b | 0 1 files changed, 0 insertions(+), 0 deletions(-) Binary git diffstat: $ hg diff --stat --git b | Bin 1 files changed, 0 insertions(+), 0 deletions(-) $ hg ci -m createb $ printf '\0' > "file with spaces" $ hg add "file with spaces" Filename with spaces diffstat: $ hg diff --stat file with spaces | 0 1 files changed, 0 insertions(+), 0 deletions(-) Filename with spaces git diffstat: $ hg diff --stat --git file with spaces | Bin 1 files changed, 0 insertions(+), 0 deletions(-)