3 ms·
In a version control system, a commit might have an arbitrary number of parents. Furthermore a single commit might have an arbitrary number of relationships to
by catalogia 7y ago
In a version control system, a commit might have an arbitrary number of parents. Furthermore a single commit might have an arbitrary number of relationships to another commit (e.g. parents can also be grandparents, etc) Trying to reason about such a system as multiple-hierarchies will have you reasoning about a potentially huge number of hierarchies if the graph is well connected. I think it's more straight forward to reason about the system as a single graph, rather than a huge set of spanning trees.
- wenc 7y ago> I think it's more straight forward to reason about the system as a single graph, So I'm still not sure I totally get the objection -- please help me out here. In my mind, multiple hierarchies are represented by a single graph. When one reasons about the system, one will naturally only consider single hierarchies at a time for simplicity. The way to do this is center yourself on a node at a time, and then from that vantage point, traverse the node in different directions. In the system, each edge belongs to only 3 categories: P ("parent", directed), A ("associate", undirected), S ("source", directed). We're only considering hierarchies, so we'll restrict ourselves to "P". Each node can have an arbitrary number of relationships with other nodes. A family and work relationship could look like this. You -P-> your kid 1 You -P-> your kid 2 Mother -P-> You, Sister Father -P-> You, Sister Boss -P-> You Boss -P-> Colleague Company President -P-> Boss Company -P-> Company President Seems to me it should be easy to reason about multiple parents in different contexts -- they all belong in the same graph. Wikipedia sort of does this with its Categories box at the bottom of every page, but Wikipedia only has one kind of relationship category: P.