##// 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:

r29963:e824de57 default
r31020:2d1bf840 default
Show More
test-remove.t
465 lines | 15.4 KiB | text/troff | Tads3Lexer
Nicolas Dumazet
tests: unify test-remove
r12099 $ remove() {
> hg rm $@
Simon Heimberg
tests: do not skip code-checking on some whole files...
r19381 > echo "exit code: $?"
Nicolas Dumazet
tests: unify test-remove
r12099 > hg st
> # do not use ls -R, which recurses in .hg subdirs on Mac OS X 10.5
> find . -name .hg -prune -o -type f -print | sort
> hg up -C
> }
timeless
tests: include progress for test-remove
r28606 $ cat >> $HGRCPATH <<EOF
> [progress]
> disable=False
> assume-tty = 1
> delay = 0
> # set changedelay really large so we don't see nested topics
> changedelay = 30000
> format = topic bar number
> refresh = 0
> width = 60
> EOF
Nicolas Dumazet
tests: unify test-remove
r12099 $ hg init a
$ cd a
$ echo a > foo
file not managed
$ remove foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 not removing foo: file is untracked
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 ? foo
./foo
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg add foo
$ hg commit -m1
the table cases
00 state added, options none
$ echo b > bar
$ hg add bar
$ remove bar
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
timeless
remove: specify hg in added warning
r29963 not removing bar: file has been marked for add (use 'hg forget' to undo add)
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 A bar
./bar
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
01 state clean, options none
$ remove foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
? bar
./bar
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
02 state modified, options none
$ echo b >> foo
$ remove foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 not removing foo: file is modified (use -f to force removal)
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 M foo
? bar
./bar
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
03 state missing, options none
$ rm foo
$ remove foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
? bar
./bar
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
10 state added, options -f
$ echo b > bar
$ hg add bar
$ remove -f bar
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 ? bar
./bar
./foo
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm bar
11 state clean, options -f
$ remove -f foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
12 state modified, options -f
$ echo b >> foo
$ remove -f foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
13 state missing, options -f
$ rm foo
$ remove -f foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
20 state added, options -A
$ echo b > bar
$ hg add bar
$ remove -A bar
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning...
r18053 not removing bar: file still exists
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 A bar
./bar
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
21 state clean, options -A
$ remove -A foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning...
r18053 not removing foo: file still exists
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 ? bar
./bar
./foo
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
22 state modified, options -A
$ echo b >> foo
$ remove -A foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning...
r18053 not removing foo: file still exists
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 M foo
? bar
./bar
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
23 state missing, options -A
$ rm foo
$ remove -A foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
? bar
./bar
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
30 state added, options -Af
$ echo b > bar
$ hg add bar
$ remove -Af bar
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 ? bar
./bar
./foo
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ rm bar
31 state clean, options -Af
$ remove -Af foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
32 state modified, options -Af
$ echo b >> foo
$ remove -Af foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
33 state missing, options -Af
$ rm foo
$ remove -Af foo
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
test some directory stuff
$ mkdir test
$ echo a > test/foo
$ echo b > test/bar
$ hg ci -Am2
adding test/bar
adding test/foo
dir, options none
$ rm test/bar
$ remove test
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [=====================> ] 1/2\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 removing test/bar (glob)
removing test/foo (glob)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R test/bar
R test/foo
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dir, options -f
$ rm test/bar
$ remove -f test
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [=====================> ] 1/2\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 removing test/bar (glob)
removing test/foo (glob)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R test/bar
R test/foo
./foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
dir, options -A
$ rm test/bar
$ remove -A test
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
skipping [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
timeless
remove: queue warnings until after status messages (issue5140) (API)...
r28607 removing test/bar (glob)
Mads Kiilerich
rm: drop misleading 'use -f' hint for the rm --after 'not removing' warning...
r18053 not removing test/foo: file still exists (glob)
Martin Geisler
merge with stable
r12130 exit code: 1
Nicolas Dumazet
tests: unify test-remove
r12099 R test/bar
./foo
./test/foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dir, options -Af
$ rm test/bar
$ remove -Af test
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [=====================> ] 1/2\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 removing test/bar (glob)
removing test/foo (glob)
Martin Geisler
merge with stable
r12130 exit code: 0
Nicolas Dumazet
tests: unify test-remove
r12099 R test/bar
R test/foo
./foo
./test/foo
timeless
tests: include progress for test-remove
r28606 \r (no-eol) (esc)
updating [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
Nicolas Dumazet
tests: unify test-remove
r12099 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
test remove dropping empty trees (issue1861)
$ mkdir -p issue1861/b/c
$ echo x > issue1861/x
$ echo y > issue1861/b/c/y
$ hg ci -Am add
adding issue1861/b/c/y
adding issue1861/x
$ hg rm issue1861/b
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Mads Kiilerich
tests: make (glob) on windows accept \ instead of /...
r15447 removing issue1861/b/c/y (glob)
Nicolas Dumazet
tests: unify test-remove
r12099 $ hg ci -m remove
$ ls issue1861
x
Adrian Buehlmann
test-remove-new: integrate into test-remove.t
r16904
test that commit does not crash if the user removes a newly added file
$ touch f1
$ hg add f1
$ rm f1
$ hg ci -A -mx
removing f1
nothing changed
[1]
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
Matt Mackall
remove: don't return error on directories with tracked files...
r17848 handling of untracked directories and missing files
$ mkdir d1
$ echo a > d1/a
$ hg rm --after d1
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
remove: don't return error on directories with tracked files...
r17848 not removing d1: no tracked files
[1]
$ hg add d1/a
$ rm d1/a
$ hg rm --after d1
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Adrian Buehlmann
test-remove: fix \ vs. / issues on Windows...
r17861 removing d1/a (glob)
Matt Harbison
test-remove: drop a useless Windows specific conditional...
r28889
Adrian Buehlmann
test-remove: adapt to differing error message on Windows...
r17862 $ hg rm --after nosuch
nosuch: * (glob)
timeless
remove: add progress support
r28608 \r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Mackall
remove: don't return error on directories with tracked files...
r17848 [1]