##// END OF EJS Templates
smartset: use native set operations as fast paths...
smartset: use native set operations as fast paths For set operations like "&" and "-", where we know both basesets have their sets ready, and the first set is sorted, use the native Python set operations as a fast path. Note: "+" is not optimized as that will break the ordering. This leads to noticeable improvements on performance: revset | before | after | delta ---------------------------------------------------------------- draft() & draft() & draft() & draft() | 776 | 477 | -39% draft() + draft() + draft() + draft() | 2849 | 2864 | draft() - draft() + draft() - draft() | 943 | 240 | -75% draft() - draft() - draft() - draft() | 557 | 197 | -64% (time measured in microseconds)

File last commit:

r25472:4d2b9b30 default
r31020:2d1bf840 default
Show More
test-mq-symlinks.t
111 lines | 1.7 KiB | text/troff | Tads3Lexer
#require symlink
$ echo "[extensions]" >> $HGRCPATH
$ echo "mq=" >> $HGRCPATH
$ hg init
$ hg qinit
$ hg qnew base.patch
$ echo aaa > a
$ echo bbb > b
$ echo ccc > c
$ hg add a b c
$ hg qrefresh
$ readlink.py a
a -> a not a symlink
test replacing a file with a symlink
$ hg qnew symlink.patch
$ rm a
$ ln -s b a
$ hg qrefresh --git
$ readlink.py a
a -> b
$ hg qpop
popping symlink.patch
now at: base.patch
$ hg qpush
applying symlink.patch
now at: symlink.patch
$ readlink.py a
a -> b
test updating a symlink
$ rm a
$ ln -s c a
$ hg qnew --git -f updatelink
$ readlink.py a
a -> c
$ hg qpop
popping updatelink
now at: symlink.patch
$ hg qpush --debug
applying updatelink
patching file a
committing files:
a
committing manifest
committing changelog
now at: updatelink
$ readlink.py a
a -> c
$ hg st
test replacing a symlink with a file
$ ln -s c s
$ hg add s
$ hg qnew --git -f addlink
$ rm s
$ echo sss > s
$ hg qnew --git -f replacelinkwithfile
$ hg qpop
popping replacelinkwithfile
now at: addlink
$ hg qpush
applying replacelinkwithfile
now at: replacelinkwithfile
$ cat s
sss
$ hg st
test symlink removal
$ hg qnew removesl.patch
$ hg rm a
$ hg qrefresh --git
$ hg qpop
popping removesl.patch
now at: replacelinkwithfile
$ hg qpush
applying removesl.patch
now at: removesl.patch
$ hg st -c
C b
C c
C s
replace broken symlink with another broken symlink
$ ln -s linka linka
$ hg add linka
$ hg qnew link
$ hg mv linka linkb
$ rm linkb
$ ln -s linkb linkb
$ hg qnew movelink
$ hg qpop
popping movelink
now at: link
$ hg qpush
applying movelink
now at: movelink
$ readlink.py linkb
linkb -> linkb