this use case may be a little awkward but this is the behavior I see:

I have a repository which has a couple of untracked directories which can also
include git repositories. No submodules, though.
I used 'git clean -xdf' on the top level of this repo to remove everything
untracked in it - including the git repositories in sub-directories.

Since using git 1.8.0 the clean operation seems to be 'broken', as output
indicates all those questionable sub directories are removed - just as in prior
git versions - but in fact they remain untouched and are _not_ removed.

I attached a shell script creating a hierarchy to reproduce the issue.
Executing the script creates the git repo 'repo.git' with a couple of tracked
and untracked dirs/files and two more git repositories within the first one.

If you cd into repo.git and execute 'git clean -xdf' I see the following output:
        Removing repo2.git/
        Removing untracked_dir/

But the directories remain intact when using git 1.8.0.
With git it works as I expected and removes the directories. I'm pretty
sure the 1.7.x versions did the same, but it's no longer installed here.

I can see that this behavior may partially be intended, but the tool output
should match its actions. So, either the directories should be removed, or the
output should state, that they are not removed for what reason whatsoever, IMHO


mkdir repo.git
cd repo.git
git init
echo foo > tracked_file1
git add tracked_file1
mkdir tracked_dir
echo foo > tracked_dir/tracked_file2
git add tracked_dir/tracked_file2
git commit -m "Adding tracked files"
mkdir repo2.git
echo foo > repo2.git/tracked_file3
mkdir -p untracked_dir/repo3.git
echo foo > untracked_dir/repo3.git/tracked_file4
cd repo2.git
git init
git add tracked_file3
git commit -m "Adding file to subrepo1"
cd ../untracked_dir/repo3.git
git init
git add tracked_file4
git commit -m "Adding file to subrepo2"
cd ../..

Reply via email to