##// END OF EJS Templates
revset: make descendants() lazier...
revset: make descendants() lazier Previously descendants() would force the provided subset to become a set. In the case of revsets like '(%ld::) - (%ld)' (as used by histedit) this would force the '- (%ld)' set to be evaluated, which produced a set containing every commit in the repo (except %ld). This takes 0.6s on large repos. This changes descendants to trust the subset to implement __contains__ efficiently, which improves the above revset to 0.16s. Shaving 0.4 seconds off of histedit. revset #27: (20000::) - (20000) 0) obsolete feature not enabled but 54243 markers found! ! wall 0.023640 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) 1) obsolete feature not enabled but 54243 markers found! ! wall 0.019589 comb 0.020000 user 0.020000 sys 0.000000 (best of 100) This commit removes the final revset related perf hotspot from histedit. Combined with the previous two patches, they shave a little over 3 seconds off histedit on large repos.

File last commit:

r21947:b081decd stable
r22449:da05fe01 default
Show More
test-resolve.t
63 lines | 1.2 KiB | text/troff | Tads3Lexer
test that a commit clears the merge state.
$ hg init repo
$ cd repo
$ echo foo > file
$ hg commit -Am 'add file'
adding file
$ echo bar >> file
$ hg commit -Am 'append bar'
create a second head
$ hg up -C 0
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ echo baz >> file
$ hg commit -Am 'append baz'
created new head
failing merge
$ hg merge --tool=internal:fail
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon
[1]
resolve -l should contain an unresolved entry
$ hg resolve -l
U file
resolving an unknown path emits a warning
$ hg resolve -m does-not-exist
arguments do not match paths that need resolving
resolve the failure
$ echo resolved > file
$ hg resolve -m file
(no more unresolved files)
$ hg commit -m 'resolved'
resolve -l should be empty
$ hg resolve -l
resolve -m should abort since no merge in progress
$ hg resolve -m
abort: resolve command not applicable when not merging
[255]
test crashed merge with empty mergestate
$ mkdir .hg/merge
$ touch .hg/merge/state
resolve -l, should be empty
$ hg resolve -l
$ cd ..