Mercurial > hg
view tests/test-purge @ 7177:09ed32b79656
mq: Fix --qrefresh --short to work with --exclude and --include
pmezard expects
hg qref -s -X b
to apply the -X to the list of files in the patch, and thus remove b from the
patch.
That's how it worked before f7fc5f5ecd62. That change seemed sensible, but it
wasn't...
mpm says
(17:22:30) pmezard_: kiilerix1: do you mean that -X should be forbidden with -s ?
(17:22:54) pmezard_: kiilerix1: and --include too
(17:23:03) mpm: No because you should be able to say hg qref -s foo* -X foo-bar
so mpm expects
hg qref -s -X b *
to apply the -X to the list of files in the working directory, and thus don't
include b in the patch
This patch tries to make both usecases work by creating a matchfn which uses
the include/excludes but not the filelist.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 19 Oct 2008 16:31:24 +0200 |
parents | 55c71226eceb |
children | b777dd8f7836 |
line wrap: on
line source
#!/bin/sh cat <<EOF >> $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 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 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 % skip ignored files if --all not specified touch ignored hg purge -p hg purge -v ls hg purge -p --all hg purge -v --all ls 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 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