Re: [RFC PATCH] Re: Empty directories...
- From
David Kastrup <dak@gnu.org>
- Date
- Jul 23, 2007, 07:45 UTC
- Message-ID
- <86bqe3va08.fsf@lola.quinscape.zz>
- In-Reply-To
- <85ps2jeju9.fsf@lola.goethe.zz>
David Kastrup <dak@gnu.org> writes:
Show 20 quoted lines
> Addition: I was thinking so much of my implementation and its > semantics that I did not consider one possibility that you might mean > here: > > When adding a/b, always also add a (and the whole hierarchy above it) > automatically as sticky. Namely disallow unsticky directories in the > repository at all. That would mean that > > git-add a/b;git-commit -m x;git-rm a/b;git-commit -m x > > might not be a noop if a was not in the repository previously: it > would cause a to stay around sticky until removed. With all other > schemes, however, it would cause a to be removed "on behalf of the > user" even if the user intended it to stay around. > > Indeed, this scheme might by far be the easiest to understand. > Having no autoremoval at all in levels higher than the deleted level > is something that people might easily understand: delayed removal > just does not happen anymore, and git never deletes a directory > unless told to.
And of course, it would be a nuisance for people managing a patch-based workflow. But those can actually easily set the repository preferences differently, and even find -type d -empty -delete is not too hard to do. So it would even be feasible as default.
But I think that in practice, the "track only what has been added recursively" approach is a good default. And since patches without dir information never add anything recursively, it would mostly keep the directories clean.
-- David Kastrup