Mercurial > hg
view tests/test-manifest.t @ 38971:ee97f7a677f3
linelog: optimize replacelines
The optimization to avoid calling `annotate` inside `replacelines` is significant
for practical use patterns.
Before this patch:
hg perflinelogedits
! wall 6.778478 comb 6.710000 user 6.700000 sys 0.010000 (best of 3)
After this patch:
hg perflinelogedits
! wall 0.136573 comb 0.140000 user 0.130000 sys 0.010000 (best of 63)
Differential Revision: https://phab.mercurial-scm.org/D4150
author | Jun Wu <quark@fb.com> |
---|---|
date | Tue, 07 Aug 2018 17:22:33 -0700 |
parents | ece3f2d0bbd9 |
children | 89630d0b3e23 |
line wrap: on
line source
Source bundle was generated with the following script: # hg init # echo a > a # ln -s a l # hg ci -Ama -d'0 0' # mkdir b # echo a > b/a # chmod +x b/a # hg ci -Amb -d'1 0' $ hg init $ hg unbundle "$TESTDIR/bundles/test-manifest.hg" adding changesets adding manifests adding file changes added 2 changesets with 3 changes to 3 files new changesets b73562a03cfe:5bdc995175ba (run 'hg update' to get a working copy) The next call is expected to return nothing: $ hg manifest $ hg co 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg manifest a b/a l $ hg files -vr . 2 a 2 x b/a 1 l l $ hg files -r . -X b a l $ hg files -T '{path} {size} {flags}\n' a 2 b/a 2 x l 1 l $ hg files -T '{path} {node|shortest}\n' -r. a 5bdc b/a 5bdc l 5bdc $ hg manifest -v 644 a 755 * b/a 644 @ l $ hg manifest -T '{path} {rev}\n' a 1 b/a 1 l 1 $ hg manifest --debug b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 a b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 755 * b/a 047b75c6d7a3ef6a2243bd0e99f94f6ea6683597 644 @ l $ hg manifest -r 0 a l $ hg manifest -r 1 a b/a l $ hg manifest -r tip a b/a l $ hg manifest tip a b/a l $ hg manifest --all a b/a l The next two calls are expected to abort: $ hg manifest -r 2 abort: unknown revision '2'! [255] $ hg manifest -r tip tip abort: please specify just one revision [255]