Hacker News new | past | comments | ask | show | jobs | submit login

Something that could work with git is to use a map.


    (a1 a2 (b1 b2))

    parent  child
    root    list1
    list1   a1
    list1   a2
    list1   list2
    list2   b1
    list2   b2
It should work with diff too if the ids are preserved.

That's exactly how you store a tree in a relational database. Every row has a parent_id column. This language isn't just a tree though, it's a graph, so you would need a row per edge instead of a row per node. It would work with git as long as it's kept in sorted order and doesn't grow extremely large, but it isn't nice to view or edit directly; you would want a graph query language to interact with it.

That would work as long as the author isn't seriously abusing reader macros in the serialized format :).

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