# HG changeset patch # User Nicolas Dumazet # Date 2010-08-30 04:02:54 # Node ID 54c9549ccb224b5f3f60fa10316aa6970ece4372 # Parent 12108d7f2ce136ada691bf2c73f422c753e8aaf4 tests: unify test-remove diff --git a/tests/test-remove.out b/tests/test-remove.out deleted file mode 100644 --- a/tests/test-remove.out +++ /dev/null @@ -1,118 +0,0 @@ -% file not managed -not removing foo: file is untracked -? foo -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 00 state added, options none -not removing bar: file has been marked for add (use -f to force removal) -A bar -./bar -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 01 state clean, options none -R foo -? bar -./bar -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 02 state modified, options none -not removing foo: file is modified (use -f to force removal) -M foo -? bar -./bar -./foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 03 state missing, options none -R foo -? bar -./bar -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 10 state added, options -f -? bar -./bar -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 11 state clean, options -f -R foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 12 state modified, options -f -R foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 13 state missing, options -f -R foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 20 state added, options -A -not removing bar: file still exists (use -f to force removal) -A bar -./bar -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 21 state clean, options -A -not removing foo: file still exists (use -f to force removal) -? bar -./bar -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 22 state modified, options -A -not removing foo: file still exists (use -f to force removal) -M foo -? bar -./bar -./foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 23 state missing, options -A -R foo -? bar -./bar -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 30 state added, options -Af -? bar -./bar -./foo -0 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 31 state clean, options -Af -R foo -./foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 32 state modified, options -Af -R foo -./foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% 33 state missing, options -Af -R foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -adding test/bar -adding test/foo -% dir, options none -removing test/bar -removing test/foo -R test/bar -R test/foo -./foo -2 files updated, 0 files merged, 0 files removed, 0 files unresolved -% dir, options -f -removing test/bar -removing test/foo -R test/bar -R test/foo -./foo -2 files updated, 0 files merged, 0 files removed, 0 files unresolved -% dir, options -A -not removing test/foo: file still exists (use -f to force removal) -removing test/bar -R test/bar -./foo -./test/foo -1 files updated, 0 files merged, 0 files removed, 0 files unresolved -% dir, options -Af -removing test/bar -removing test/foo -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) -adding issue1861/b/c/y -adding issue1861/x -removing issue1861/b/c/y -x diff --git a/tests/test-remove b/tests/test-remove.t old mode 100755 new mode 100644 rename from tests/test-remove rename to tests/test-remove.t --- a/tests/test-remove +++ b/tests/test-remove.t @@ -1,119 +1,234 @@ -#!/bin/sh + $ remove() { + > hg rm $@ + > 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 -remove() { - hg rm $@ - 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 -} +file not managed -hg init a -cd a -echo a > foo + $ remove foo + not removing foo: file is untracked + ? 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 % file not managed -remove foo + $ echo b > bar + $ hg add bar + $ remove bar + not removing bar: file has been marked for add (use -f to force removal) + A bar + ./bar + ./foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -hg add foo -hg commit -m1 - -# the table cases +01 state clean, options none -echo % 00 state added, options none -echo b > bar -hg add bar -remove bar + $ remove foo + R foo + ? bar + ./bar + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +02 state modified, options none -echo % 01 state clean, options none -remove foo + $ echo b >> foo + $ remove foo + not removing foo: file is modified (use -f to force removal) + M foo + ? bar + ./bar + ./foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +03 state missing, options none -echo % 02 state modified, options none -echo b >> foo -remove foo + $ rm foo + $ remove foo + R foo + ? bar + ./bar + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +10 state added, options -f -echo % 03 state missing, options none -rm foo -remove foo + $ echo b > bar + $ hg add bar + $ remove -f bar + ? bar + ./bar + ./foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ rm bar -echo % 10 state added, options -f -echo b > bar -hg add bar -remove -f bar -rm bar +11 state clean, options -f + + $ remove -f foo + R foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +12 state modified, options -f -echo % 11 state clean, options -f -remove -f foo + $ echo b >> foo + $ remove -f foo + R foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +13 state missing, options -f -echo % 12 state modified, options -f -echo b >> foo -remove -f foo + $ rm foo + $ remove -f foo + R foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +20 state added, options -A -echo % 13 state missing, options -f -rm foo -remove -f foo + $ echo b > bar + $ hg add bar + $ remove -A bar + not removing bar: file still exists (use -f to force removal) + A bar + ./bar + ./foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % 20 state added, options -A -echo b > bar -hg add bar -remove -A bar +21 state clean, options -A + + $ remove -A foo + not removing foo: file still exists (use -f to force removal) + ? bar + ./bar + ./foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + +22 state modified, options -A -echo % 21 state clean, options -A -remove -A foo + $ echo b >> foo + $ remove -A foo + not removing foo: file still exists (use -f to force removal) + M foo + ? bar + ./bar + ./foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % 22 state modified, options -A -echo b >> foo -remove -A foo +23 state missing, options -A -echo % 23 state missing, options -A -rm foo -remove -A foo + $ rm foo + $ remove -A foo + R foo + ? bar + ./bar + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + +30 state added, options -Af -echo % 30 state added, options -Af -echo b > bar -hg add bar -remove -Af bar -rm bar + $ echo b > bar + $ hg add bar + $ remove -Af bar + ? bar + ./bar + ./foo + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ rm bar -echo % 31 state clean, options -Af -remove -Af foo +31 state clean, options -Af + + $ remove -Af foo + R foo + ./foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % 32 state modified, options -Af -echo b >> foo -remove -Af foo +32 state modified, options -Af + + $ echo b >> foo + $ remove -Af foo + R foo + ./foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % 33 state missing, options -Af -rm foo -remove -Af foo +33 state missing, options -Af -# test some directory stuff + $ rm foo + $ remove -Af foo + 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 + $ mkdir test + $ echo a > test/foo + $ echo b > test/bar + $ hg ci -Am2 + adding test/bar + adding test/foo + +dir, options none -echo % dir, options none -rm test/bar -remove test + $ rm test/bar + $ remove test + removing test/bar + removing test/foo + R test/bar + R test/foo + ./foo + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + +dir, options -f -echo % dir, options -f -rm test/bar -remove -f test + $ rm test/bar + $ remove -f test + removing test/bar + removing test/foo + R test/bar + R test/foo + ./foo + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + +dir, options -A -echo % dir, options -A -rm test/bar -remove -A test + $ rm test/bar + $ remove -A test + not removing test/foo: file still exists (use -f to force removal) + removing test/bar + R test/bar + ./foo + ./test/foo + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved -echo % dir, options -Af -rm test/bar -remove -Af test +dir, options -Af -echo '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 -hg rm issue1861/b -hg ci -m remove -ls issue1861 + $ rm test/bar + $ remove -Af test + removing test/bar + removing test/foo + 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 + $ hg ci -m remove + $ ls issue1861 + x