test-purge
140 lines
| 2.5 KiB
| text/plain
|
TextLexer
/ tests / test-purge
|
r4145 | #!/bin/sh | ||
cat <<EOF >> $HGRCPATH | ||||
[extensions] | ||||
|
r4311 | hgext.purge= | ||
|
r4145 | EOF | ||
echo % init | ||||
hg init t | ||||
cd t | ||||
echo % setup | ||||
echo r1 > r1 | ||||
hg ci -qAmr1 -d'0 0' | ||||
mkdir directory | ||||
echo r2 > directory/r2 | ||||
hg ci -qAmr2 -d'1 0' | ||||
echo 'ignored' > .hgignore | ||||
hg ci -qAmr3 -d'2 0' | ||||
echo % delete an empty directory | ||||
mkdir empty_dir | ||||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
echo % delete an untracked directory | ||||
mkdir untracked_dir | ||||
touch untracked_dir/untracked_file1 | ||||
touch untracked_dir/untracked_file2 | ||||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
echo % delete an untracked file | ||||
touch untracked_file | ||||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
echo % delete an untracked file in a tracked directory | ||||
touch directory/untracked_file | ||||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
echo % delete nested directories | ||||
mkdir -p untracked_directory/nested_directory | ||||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
|
r4155 | echo % delete nested directories from a subdir | ||
mkdir -p untracked_directory/nested_directory | ||||
cd directory | ||||
hg purge -p | ||||
hg purge -v | ||||
cd .. | ||||
ls | ||||
echo % delete only part of the tree | ||||
mkdir -p untracked_directory/nested_directory | ||||
touch directory/untracked_file | ||||
cd directory | ||||
hg purge -p ../untracked_directory | ||||
hg purge -v ../untracked_directory | ||||
cd .. | ||||
ls | ||||
ls directory/untracked_file | ||||
rm directory/untracked_file | ||||
|
r4691 | echo % skip ignored files if --all not specified | ||
|
r4145 | touch ignored | ||
hg purge -p | ||||
hg purge -v | ||||
ls | ||||
|
r4691 | hg purge -p --all | ||
hg purge -v --all | ||||
ls | ||||
|
r4310 | |||
echo % abort with missing files until we support name mangling filesystems | ||||
touch untracked_file | ||||
rm r1 | ||||
# hide error messages to avoid changing the output when the text changes | ||||
hg purge -p 2> /dev/null | ||||
if [ $? -ne 0 ]; then | ||||
echo "refused to run" | ||||
fi | ||||
if [ -f untracked_file ]; then | ||||
echo "untracked_file still around" | ||||
fi | ||||
hg purge -p --force | ||||
hg purge -v 2> /dev/null | ||||
if [ $? -ne 0 ]; then | ||||
echo "refused to run" | ||||
fi | ||||
if [ -f untracked_file ]; then | ||||
echo "untracked_file still around" | ||||
fi | ||||
hg purge -v --force | ||||
hg revert --all --quiet | ||||
ls | ||||
|
r4463 | |||
|
r5517 | echo '% tracked file in ignored directory (issue621)' | ||
echo directory >> .hgignore | ||||
hg ci -m 'ignore directory' | ||||
touch untracked_file | ||||
hg purge -p | ||||
hg purge -v | ||||
|
r4463 | echo % skip excluded files | ||
touch excluded_file | ||||
hg purge -p -X excluded_file | ||||
hg purge -v -X excluded_file | ||||
ls | ||||
rm excluded_file | ||||
echo % skip files in excluded dirs | ||||
mkdir excluded_dir | ||||
touch excluded_dir/file | ||||
hg purge -p -X excluded_dir | ||||
hg purge -v -X excluded_dir | ||||
ls | ||||
ls excluded_dir | ||||
rm -R excluded_dir | ||||
echo % skip excluded empty dirs | ||||
mkdir excluded_dir | ||||
hg purge -p -X excluded_dir | ||||
hg purge -v -X excluded_dir | ||||
ls | ||||
rmdir excluded_dir | ||||
echo % skip patterns | ||||
mkdir .svn | ||||
touch .svn/foo | ||||
mkdir directory/.svn | ||||
touch directory/.svn/foo | ||||
hg purge -p -X .svn -X '*/.svn' | ||||
hg purge -p -X re:.*.svn | ||||