From: Junio C Hamano Date: Tue, 20 Jul 2010 20:34:21 GMT Subject: Re: [PATCH 2/2] Add test for git clean -e. Message-ID: <7vmxtllwoi.fsf@alter.siamese.dyndns.org> In-Reply-To: Jared Hance writes: > Signed-off-by: Jared Hance > --- > t/t7300-clean.sh | 16 ++++++++++++++++ > 1 files changed, 16 insertions(+), 0 deletions(-) > > diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh > index 7d8ed68..3a43571 100755 > --- a/t/t7300-clean.sh > +++ b/t/t7300-clean.sh > @@ -438,4 +438,20 @@ test_expect_success 'force removal of nested git work tree' ' > ! test -d bar > ' > > +test_expect_success 'git clean -e' ' > + rm -fr repo && > + mkdir repo && > + ( > + cd repo && > + git init && > + touch 1 2 3 known && > + git add known && > + git clean -f -e 1 -e 2 && > + test -e 1 && > + test -e 2 && > + ! (test -e 3) && > + test -e known > + ) > +' This is a good start but it doesn't seem to test possible interactions with entries in .gitignore file(s) in the working tree. Do we care? What should happen when a path "path": (1) is marked to be ignored in .gitignore and -e "path" is also given; (2) is marked not to be ignored (i.e. "!path") in .gitignore but -e "path" is given; (3) is marked to be ignored in .gitignore but -e "!path" is given; (4) is marked not to be ignored in .gitignore and -e "!path" is also given; (5) perhaps other combinations like "!path" in a/.gitignore, and -e "a/path" from the command line. What does the code actually do?