For example, here's the causal graph of changes made to git's Makefile:
https://josephg.com/git-makefile.dt.svg
Having a nicer way to render these graphs (and especially show them in the browser) would be delightful!
For example, here's the causal graph of changes made to git's Makefile:
https://josephg.com/git-makefile.dt.svg
Having a nicer way to render these graphs (and especially show them in the browser) would be delightful!
I always wished I could invent some domain-specific heuristics to lay out the graph automatically but never took the time to.
Manually moving nodes actually worked fairly well for our use case, but it made a mess of text diffs when e.g. nodes were inserted and the position of all subsequent nodes shifted, so as a consequence we had to invent ways to visually diff graphs. Maybe the improved automatic layout would have been easier after all.
However, this algorithm is designed specifically for trees. I'm not sure whether I could manage to make it work on DAGs (Directed Acyclic Graphs). It would require some rewrites of the aesthetic rules and designing a new algorithm.
That being said, those edges of course sometimes just won't fit nicely into the general layout. And which edges are "tree" edges and which are "non-tree" edges can of course be debatable. If a graph is very much not a tree, this can be somewhat random, but it works very well for graphs that are mostly trees.