# HG changeset patch # User Alexis S. L. Carvalho # Date 1173213950 10800 # Node ID 4c714ed245d6b168674df955fd325acaa2fc68bd # Parent 15cd36db423084e5fbffd8db63946513686882a5 purge.py: fix invocation of statwalk diff -r 15cd36db4230 -r 4c714ed245d6 contrib/purge/purge.py --- a/contrib/purge/purge.py Tue Feb 27 09:05:36 2007 +0100 +++ b/contrib/purge/purge.py Tue Mar 06 17:45:50 2007 -0300 @@ -49,9 +49,10 @@ directories = [] files = [] - for src, f, st in repo.dirstate.statwalk(files=dirs, ignored=True, - directories=True): - if src == 'd': + roots, match, anypats = util.cmdmatcher(repo.root, repo.getcwd(), dirs) + for src, f, st in repo.dirstate.statwalk(files=roots, match=match, + ignored=True, directories=True): + if src == 'd': directories.append(f) elif src == 'f' and f not in repo.dirstate: files.append(f) diff -r 15cd36db4230 -r 4c714ed245d6 tests/test-purge --- a/tests/test-purge Tue Feb 27 09:05:36 2007 +0100 +++ b/tests/test-purge Tue Mar 06 17:45:50 2007 -0300 @@ -50,6 +50,25 @@ hg purge -v ls +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 + echo % delete ignored files touch ignored hg purge -p diff -r 15cd36db4230 -r 4c714ed245d6 tests/test-purge.out --- a/tests/test-purge.out Tue Feb 27 09:05:36 2007 +0100 +++ b/tests/test-purge.out Tue Mar 06 17:45:50 2007 -0300 @@ -29,6 +29,19 @@ 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 % delete ignored files ignored Removing file ignored