Hacker News new | ask | show | jobs
by xentac 5263 days ago
Git and Mercurial both suffer from this "problem". Because manifests/trees must have contents (file hashes) to exist, you can't track an empty folder.

I suppose git's tree objects could point to the empty tree to record an empty folder, but most of the git code is comparing file blobs not trees.

2 comments

In git, we solve this problem by sticking a .gitignore file in any directories we want to be part of the repo, but without the contents (cache folders, user-generated data destinations, etc.)

How do you get around this in mercurial?

It's usually .gitkeep from what I've seen. .gitignore usually lives in the repo root.
> How do you get around this in mercurial?

Same (with a .empty or .keep file).

Git's tree structure can certainly encode an empty directory, the problem is the index file can't.