Elijah Newren <newren@xxxxxxxxx> writes: >> Doesn't this series also change the behavior of e.g.: >> >> cd contrib/subtree >> git rm -r ../subtree > > Yes, of course! > > Before: > > $ cd contrib/subtree > $ git rm -r -q ../subtree/ > $ ls -ld ../subtree/ > ls: cannot access '../subtree/': No such file or directory > $ git status --porcelain > fatal: Unable to read current working directory: No such file or directory > $ git checkout HEAD ../subtree/ > fatal: Unable to read current working directory: No such file or directory > > After: > > $ cd contrib/subtree > $ git rm -r -q ../subtree/ > $ ls -ld ../subtree/ > drwxrwxr-x. 1 newren newren 0 Nov 23 19:18 ../subtree/ > $ git status --porcelain > D contrib/subtree/.gitignore > D contrib/subtree/COPYING > D contrib/subtree/INSTALL > D contrib/subtree/Makefile > D contrib/subtree/README > D contrib/subtree/git-subtree.sh > D contrib/subtree/git-subtree.txt > D contrib/subtree/t/Makefile > D contrib/subtree/t/t7900-subtree.sh > D contrib/subtree/todo > $ git checkout HEAD ../subtree/ > Updated 10 paths from c557be478e > > Very nice fix, don't you think? Not necessarily. Devil's advocate hat on. Because you used "ls -ld" in your illustration, we cannot see what happened to contrib/subtree/t/ directory, but presumably that one is gone. Now, after this, if we "git commit", making contrib/subtree directory truly unnecessary, nothing reminds us that we need to remove it manually with "rmdir" or "git clean -d", no? With the "before" behaviour, the user still can go back to the top level of the repository by going back to the directory the user was in before typing "cd contrib/subtree", by saying "cd -" and "git status" and everything else would just work, including not having to worry about remembering to clean an empty directory contrib/subtree that is no longer needed.