#!/bin/sh cat <> $HGRCPATH [extensions] hgext.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