# HG changeset patch # User Nicolas Dumazet # Date 1283161844 -32400 # Node ID 9bab9ee901e81e45588ff18e6cf82a6df0a58625 # Parent 8f258dd4ed027827004e9f1fcdb1948478cfbbe7 tests: unify test-purge diff -r 8f258dd4ed02 -r 9bab9ee901e8 tests/test-purge --- a/tests/test-purge Mon Aug 30 18:47:02 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -#!/bin/sh - -cat <> $HGRCPATH -[extensions] -purge = -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 -touch untracked_file_readonly -python < /dev/null -hg st - -hg purge -p -hg purge -v 2> /dev/null -hg st - -hg purge -v -hg revert --all --quiet -hg st -a - -echo '% tracked file in ignored directory (issue621)' -echo directory >> .hgignore -hg ci -m 'ignore directory' -touch untracked_file -hg purge -p -hg purge -v - -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 diff -r 8f258dd4ed02 -r 9bab9ee901e8 tests/test-purge.out --- a/tests/test-purge.out Mon Aug 30 18:47:02 2010 +0900 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -% init -% setup -% delete an empty directory -empty_dir -Removing directory empty_dir -directory -r1 -% delete an untracked directory -untracked_dir/untracked_file1 -untracked_dir/untracked_file2 -Removing file untracked_dir/untracked_file1 -Removing file untracked_dir/untracked_file2 -Removing directory untracked_dir -directory -r1 -% delete an untracked file -untracked_file -untracked_file_readonly -Removing file untracked_file -Removing file untracked_file_readonly -directory -r1 -% delete an untracked file in a tracked directory -directory/untracked_file -Removing file directory/untracked_file -directory -r1 -% delete nested directories -untracked_directory/nested_directory -Removing directory untracked_directory/nested_directory -Removing directory untracked_directory -directory -r1 -% delete nested directories from a subdir -untracked_directory/nested_directory -Removing directory untracked_directory/nested_directory -Removing directory untracked_directory -directory -r1 -% delete only part of the tree -untracked_directory/nested_directory -Removing directory untracked_directory/nested_directory -Removing directory untracked_directory -directory -r1 -directory/untracked_file -% skip ignored files if --all not specified -directory -ignored -r1 -ignored -Removing file ignored -directory -r1 -% abort with missing files until we support name mangling filesystems -untracked_file -! r1 -? untracked_file -untracked_file -Removing file untracked_file -! r1 -% tracked file in ignored directory (issue621) -untracked_file -Removing file untracked_file -% skip excluded files -directory -excluded_file -r1 -% skip files in excluded dirs -directory -excluded_dir -r1 -file -% skip excluded empty dirs -directory -excluded_dir -r1 -% skip patterns diff -r 8f258dd4ed02 -r 9bab9ee901e8 tests/test-purge.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-purge.t Mon Aug 30 18:50:44 2010 +0900 @@ -0,0 +1,216 @@ + $ cat <> $HGRCPATH + > [extensions] + > purge = + > EOF + +init + + $ hg init t + $ cd t + +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' + +delete an empty directory + + $ mkdir empty_dir + $ hg purge -p + empty_dir + $ hg purge -v + Removing directory empty_dir + $ ls + directory + r1 + +delete an untracked directory + + $ mkdir untracked_dir + $ touch untracked_dir/untracked_file1 + $ touch untracked_dir/untracked_file2 + $ hg purge -p + untracked_dir/untracked_file1 + untracked_dir/untracked_file2 + $ hg purge -v + Removing file untracked_dir/untracked_file1 + Removing file untracked_dir/untracked_file2 + Removing directory untracked_dir + $ ls + directory + r1 + +delete an untracked file + + $ touch untracked_file + $ touch untracked_file_readonly + $ python < import os, stat + > f= 'untracked_file_readonly' + > os.chmod(f, stat.S_IMODE(os.stat(f).st_mode) & ~stat.S_IWRITE) + > EOF + $ hg purge -p + untracked_file + untracked_file_readonly + $ hg purge -v + Removing file untracked_file + Removing file untracked_file_readonly + $ ls + directory + r1 + +delete an untracked file in a tracked directory + + $ touch directory/untracked_file + $ hg purge -p + directory/untracked_file + $ hg purge -v + Removing file directory/untracked_file + $ ls + directory + r1 + +delete nested directories + + $ mkdir -p untracked_directory/nested_directory + $ hg purge -p + untracked_directory/nested_directory + $ hg purge -v + Removing directory untracked_directory/nested_directory + Removing directory untracked_directory + $ ls + directory + r1 + +delete nested directories from a subdir + + $ mkdir -p untracked_directory/nested_directory + $ cd directory + $ hg purge -p + untracked_directory/nested_directory + $ hg purge -v + Removing directory untracked_directory/nested_directory + Removing directory untracked_directory + $ cd .. + $ ls + directory + r1 + +delete only part of the tree + + $ mkdir -p untracked_directory/nested_directory + $ touch directory/untracked_file + $ cd directory + $ hg purge -p ../untracked_directory + untracked_directory/nested_directory + $ hg purge -v ../untracked_directory + Removing directory untracked_directory/nested_directory + Removing directory untracked_directory + $ cd .. + $ ls + directory + r1 + $ ls directory/untracked_file + directory/untracked_file + $ rm directory/untracked_file + +skip ignored files if --all not specified + + $ touch ignored + $ hg purge -p + $ hg purge -v + $ ls + directory + ignored + r1 + $ hg purge -p --all + ignored + $ hg purge -v --all + Removing file ignored + $ ls + directory + r1 + +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 + untracked_file + $ hg st + ! r1 + ? untracked_file + + $ hg purge -p + untracked_file + $ hg purge -v 2> /dev/null + Removing file untracked_file + $ hg st + ! r1 + + $ hg purge -v + $ hg revert --all --quiet + $ hg st -a + +tracked file in ignored directory (issue621) + + $ echo directory >> .hgignore + $ hg ci -m 'ignore directory' + $ touch untracked_file + $ hg purge -p + untracked_file + $ hg purge -v + Removing file untracked_file + +skip excluded files + + $ touch excluded_file + $ hg purge -p -X excluded_file + $ hg purge -v -X excluded_file + $ ls + directory + excluded_file + r1 + $ rm excluded_file + +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 + directory + excluded_dir + r1 + $ ls excluded_dir + file + $ rm -R excluded_dir + +skip excluded empty dirs + + $ mkdir excluded_dir + $ hg purge -p -X excluded_dir + $ hg purge -v -X excluded_dir + $ ls + directory + excluded_dir + r1 + $ rmdir excluded_dir + +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