Mercurial > hg
view tests/test-merge5.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 | bc13e17067d9 |
children | 610873cf064a |
line wrap: on
line source
$ hg init $ echo This is file a1 > a $ echo This is file b1 > b $ hg add a b $ hg commit -m "commit #0" $ echo This is file b22 > b $ hg commit -m "comment #1" $ hg update 0 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ rm b $ hg commit -A -m "comment #2" removing b created new head $ hg update 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg update abort: crosses branches (merge branches or use --check to force update) [255] $ hg update -c 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ mv a c In theory, we shouldn't need the "-y" below, but it prevents this test from hanging when "hg update" erroneously prompts the user for "keep or delete". Should abort: $ hg update -y 1 abort: crosses branches (merge branches or use --clean to discard changes) [255] $ mv c a Should succeed: $ hg update -y 1 1 files updated, 0 files merged, 0 files removed, 0 files unresolved