summaryrefslogtreecommitdiff
path: root/tests/test-remove.t
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-remove.t')
-rw-r--r--tests/test-remove.t268
1 files changed, 268 insertions, 0 deletions
diff --git a/tests/test-remove.t b/tests/test-remove.t
new file mode 100644
index 0000000..f67146e
--- /dev/null
+++ b/tests/test-remove.t
@@ -0,0 +1,268 @@
+ $ remove() {
+ > hg rm $@
+ > echo "exit code: $?" # no-check-code
+ > 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
+ > }
+
+ $ hg init a
+ $ cd a
+ $ echo a > foo
+
+file not managed
+
+ $ remove foo
+ not removing foo: file is untracked
+ exit code: 1
+ ? 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
+ not removing bar: file has been marked for add (use forget to undo)
+ exit code: 1
+ A bar
+ ./bar
+ ./foo
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+01 state clean, options none
+
+ $ remove foo
+ exit code: 0
+ R foo
+ ? bar
+ ./bar
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+02 state modified, options none
+
+ $ echo b >> foo
+ $ remove foo
+ not removing foo: file is modified (use -f to force removal)
+ exit code: 1
+ M foo
+ ? bar
+ ./bar
+ ./foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+03 state missing, options none
+
+ $ rm foo
+ $ remove foo
+ exit code: 0
+ R foo
+ ? bar
+ ./bar
+ 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
+ exit code: 0
+ ? 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
+ exit code: 0
+ R foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+12 state modified, options -f
+
+ $ echo b >> foo
+ $ remove -f foo
+ exit code: 0
+ R foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+13 state missing, options -f
+
+ $ rm foo
+ $ remove -f foo
+ exit code: 0
+ R foo
+ 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
+ not removing bar: file still exists (use -f to force removal)
+ exit code: 1
+ A bar
+ ./bar
+ ./foo
+ 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+21 state clean, options -A
+
+ $ remove -A foo
+ not removing foo: file still exists (use -f to force removal)
+ exit code: 1
+ ? 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
+ not removing foo: file still exists (use -f to force removal)
+ exit code: 1
+ M foo
+ ? bar
+ ./bar
+ ./foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+23 state missing, options -A
+
+ $ rm foo
+ $ remove -A foo
+ exit code: 0
+ R foo
+ ? bar
+ ./bar
+ 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
+ exit code: 0
+ ? 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
+ exit code: 0
+ R foo
+ ./foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+32 state modified, options -Af
+
+ $ echo b >> foo
+ $ remove -Af foo
+ exit code: 0
+ R foo
+ ./foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+33 state missing, options -Af
+
+ $ rm foo
+ $ remove -Af foo
+ exit code: 0
+ R foo
+ 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
+ removing test/bar (glob)
+ removing test/foo (glob)
+ exit code: 0
+ R test/bar
+ R test/foo
+ ./foo
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+dir, options -f
+
+ $ rm test/bar
+ $ remove -f test
+ removing test/bar (glob)
+ removing test/foo (glob)
+ exit code: 0
+ R test/bar
+ R test/foo
+ ./foo
+ 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+dir, options -A
+
+ $ rm test/bar
+ $ remove -A test
+ not removing test/foo: file still exists (use -f to force removal) (glob)
+ removing test/bar (glob)
+ exit code: 1
+ R test/bar
+ ./foo
+ ./test/foo
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+dir, options -Af
+
+ $ rm test/bar
+ $ remove -Af test
+ removing test/bar (glob)
+ removing test/foo (glob)
+ exit code: 0
+ R test/bar
+ R test/foo
+ ./foo
+ ./test/foo
+ 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
+ removing issue1861/b/c/y (glob)
+ $ hg ci -m remove
+ $ ls issue1861
+ x
+
+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]
+
+ $ cd ..