##// END OF EJS Templates
phabricator: warn if unable to amend, instead of aborting after posting...
phabricator: warn if unable to amend, instead of aborting after posting There was a divergence in behavior here between obsolete and strip based amending. I first noticed the abort when testing outside of the test harness, but then had trouble recreating it here after reverting the code changes. It turns out, strip based amend was successfully amending the public commit after it was posted! It looks like the protection is in the `commit --amend` command, not in the underlying code that it calls. I considered doing a preflight check and aborting. But the locks are only acquired at the end, if amending, and this is too large a section of code to be wrapped in a maybe-it's-held-or-not context manager for my tastes. Additionally, some people do post-push reviews, and amending is the default behavior, so they shouldn't see a misleading error message. The lack of a 'Differential Revision' entry in the commit message breaks a {phabreview} test, so it had to be partially conditionalized.

File last commit:

r40403:824b687f default
r41198:0101a35d default
Show More
test-remove.t
544 lines | 18.1 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
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 21 state clean, options -Av
Nicolas Dumazet
tests: unify test-remove
r12099
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 $ remove -Av 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
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 22 state modified, options -Av
Nicolas Dumazet
tests: unify test-remove
r12099
$ echo b >> foo
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 $ remove -Av 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
removing test/foo
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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
removing test/foo
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
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 dir, options -Av
Nicolas Dumazet
tests: unify test-remove
r12099
$ rm test/bar
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 $ remove -Av test
\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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
not removing test/foo: file still exists
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 exit code: 1
R test/bar
./foo
./test/foo
\r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
dir, options -A <dir>
$ rm test/bar
Nicolas Dumazet
tests: unify test-remove
r12099 $ 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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
pavanpc@fb.com
remove: print message for each file in verbose mode only while using `-A` (BC)...
r35120 exit code: 1
R test/bar
./foo
./test/foo
\r (no-eol) (esc)
updating [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
without any files/dirs, options -A
$ rm test/bar
$ remove -A
\r (no-eol) (esc)
skipping [=====================> ] 1/2\r (no-eol) (esc)
skipping [===========================================>] 2/2\r (no-eol) (esc)
\r (no-eol) (esc)
\r (no-eol) (esc)
deleting [===========================================>] 1/1\r (no-eol) (esc)
\r (no-eol) (esc)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing test/bar
removing test/foo
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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing issue1861/b/c/y
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)
Matt Harbison
tests: remove (glob) annotations that were only for '\' matches...
r35394 removing d1/a
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]
Sushil khanchi
remove: add dry-run functionality
r37168
test dry-run for remove
$ hg init testdryrun
$ cd testdryrun
$ echo a>a
$ hg ci -qAm1
$ hg remove a -nv
\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)
removing a
Boris Feld
remove: add a label for messages about removed files...
r39125 $ hg remove a -nv --color debug
\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)
Yuya Nishihara
addremove: add "ui." prefix to message color keys...
r40403 [ui.addremove.removed ui.status|removing a]
Sushil khanchi
remove: add dry-run functionality
r37168 $ hg diff
$ cat >> .hg/hgrc <<EOF
> [extensions]
> largefiles=
> EOF
$ echo 'B as largefile' > B
$ hg add --large B
$ hg ci -m "B"
$ hg remove B -nv
removing B
$ hg st
$ cd ..