( I don't know which mail is the best to reply to and I probably missed something in the thread, so bear with me if I'm repeating anything. ) David. Reconsider "tracking" all directories and what that would give, compared to explicitly tracking specific ones and the requires magic entries. Say we have a config setting that tells git never to remove empty trees. Linus patches could be a start for representing trees in the index. As an optimization the index could prune trees from the index if they contain things as long as the index *effectively* remembers all trees. Using the patches again we could add empty directories to the index and remove them. No directory would be removed automatically, except maybe by a merge. We would probably have only a few empty directories and new unexpected ones would only pop up when we remove all blobs from one. Git status could tell us about them so we will not forget them. It could even tell us about "new" empty directories, which is probably the most important thing you'd want to know. Forgetting to untrack an empty directory would not be a big deal. Whether to retain empty trees or not should be a repository policy, but an all or nothing setting. -- robin - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html