Mercurial > hg
view tests/test-issue322.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 | b63f6422d2a7 |
children |
line wrap: on
line source
http://mercurial.selenic.com/bts/issue322 File replaced with directory: $ hg init a $ cd a $ echo a > a $ hg commit -Ama adding a $ rm a $ mkdir a $ echo a > a/a Should fail - would corrupt dirstate: $ hg add a/a abort: file 'a' in dirstate clashes with 'a/a' [255] $ cd .. Directory replaced with file: $ hg init c $ cd c $ mkdir a $ echo a > a/a $ hg commit -Ama adding a/a $ rm -r a $ echo a > a Should fail - would corrupt dirstate: $ hg add a abort: directory 'a' already in dirstate [255] $ cd .. Directory replaced with file: $ hg init d $ cd d $ mkdir b $ mkdir b/c $ echo a > b/c/d $ hg commit -Ama adding b/c/d $ rm -r b $ echo a > b Should fail - would corrupt dirstate: $ hg add b abort: directory 'b' already in dirstate [255]