Re: Some strange behavior of git
- From
Thomas Gummerer <t.gummerer@gmail.com>
- Date
- Feb 25, 2016, 16:14 UTC
- Message-ID
- <20160225161409.GK1831@hank>
- In-Reply-To
- <56CED1F8.60601@ip-5.ru>
[Please keep everyone cc'd in the conversation, especially the mailing list. I added it back for now. Also please don't top post on the list]
On 02/25, Olga Pshenichnikova wrote:
Show 12 quoted lines
> No, it isn't empty, but I found the problem. > Problem was that I handled subdirectories structure in exclude file: > > design/dir1 > design/dir2 > > But > > design/dir3 wasn't ignored and wasn't controlled. > > So, my problem take place when some sub directory both isn't ignored AND > isn't controlled even if it isn't empty.
I think that's a bug, I think this directory should only be removed if -x is given. I haven't come up with a patch yet, but here's a test demonstrating the failure.
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh index 86ceb38..0961007 100755 --- a/t/t7300-clean.sh +++ b/t/t7300-clean.sh @@ -653,4 +653,13 @@ test_expect_success 'git clean -d respects pathspecs (pathspec is prefix of dir) test_path_is_dir foobar ' +test_expect_failure 'git clean -d does not clean ignored files in subdir' ' + mkdir -p sub/dir && + >sub/dir/file && + test_when_finished rm .gitignore && + echo sub/dir/ >.gitignore && + git clean -df sub && + test_path_is_file sub/dir/file +' + test_done > Thank you for response!