Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Whenever I hear these proclamations, I always wonder what a 'source tree' would look like in a non-hierarchical file system.


A non hierarchical file system is not a file system in which hierarchies cannot be represented. A source tree could be represented by using relative paths within the project as tags.

Obviously, there are some issues that would have to be resolved. For instance, you would have a have some kind of uniqueness notion for tags in order to simulate current hierarchical file systems, or two paths in the traditional sense might be the same. Since not all tags would have such uniqueness constraints, there would also have to be some kind of tag type (or property type), and at that point we're getting awfully close to what databases do.


There's no reason you can't have both on a system. Traditional hierarchical for the uses where it makes sense (eg systems software, application code and resources) and this alternative for user data.


Your source wouldn't need to be stored in a tree, necessarily. Files in your source code could be tagged with the module name they belong to.


True, but what about when you have multiple copies of the same source tree? (though I guess this could be less of an issue of everything was using a dvcs)


Git e.g. solves that by addressing via content hash. Which is more or less inevitable for non-hierarchical storage, since that's one of the few ways you can disambiguate.


The thing is, wood trees don't share (or trade) leaves, but abstract trees can.


No, they can't share leaves. Trees are acyclic by definition - no leaf may have more than one parent.

Present-day hierarchical file systems are digraphs, not trees.


Yes, digraphs are much more flexible. Present-day wood trees -really, really cannot- share leaves.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: