view tests/test-remove @ 10300:c437745f50ec

run-tests: split tests/blacklist in tests/blacklists/* Following discussions with Gilles Morris [1], it seems that it is preferable to use several blacklist files in a blacklists/ directory. It is easier to add an unversioned file for experiments than modifying a tracked file. Also fall back to a simpler syntax, giving up ConfigParser, now that section names are not needed anymore. And allow --blacklist parameter to be a complete path, instead of only one of the filenames contained in tests/blacklists/ [1] http://www.selenic.com/pipermail/mercurial-devel/2009-December/017317.html
author Nicolas Dumazet <nicdumz.commits@gmail.com>
date Thu, 10 Dec 2009 17:21:31 +0900
parents 1f665246dab3
children 07ac2a560fce
line wrap: on
line source

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

echo % file not managed
remove foo

hg add foo
hg commit -m1

# the table cases

echo % 00 state added, options none
echo b > bar
hg add bar
remove bar

echo % 01 state clean, options none
remove foo

echo % 02 state modified, options none
echo b >> foo
remove foo

echo % 03 state missing, options none
rm foo
remove foo

echo % 10 state added, options -f
echo b > bar
hg add bar
remove -f bar
rm bar

echo % 11 state clean, options -f
remove -f foo

echo % 12 state modified, options -f
echo b >> foo
remove -f foo

echo % 13 state missing, options -f
rm foo
remove -f foo

echo % 20 state added, options -A
echo b > bar
hg add bar
remove -A bar

echo % 21 state clean, options -A
remove -A foo

echo % 22 state modified, options -A
echo b >> foo
remove -A foo

echo % 23 state missing, options -A
rm foo
remove -A foo

echo % 30 state added, options -Af
echo b > bar
hg add bar
remove -Af bar
rm bar

echo % 31 state clean, options -Af
remove -Af foo

echo % 32 state modified, options -Af
echo b >> foo
remove -Af foo

echo % 33 state missing, options -Af
rm foo
remove -Af foo

# test some directory stuff

mkdir test
echo a > test/foo
echo b > test/bar
hg ci -Am2

echo % dir, options none
rm test/bar
remove test

echo % dir, options -f
rm test/bar
remove -f test

echo % dir, options -A
rm test/bar
remove -A test

echo % dir, options -Af
rm test/bar
remove -Af test

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