I know that the history in Git is stored in a data structure called a DAG. I\'ve heard about DFS and know it\'s somewhat related.
I\'m curious, how do programs such
First, one obtains a list of commits (as with git rev-list), and parents of each commit. A "column reservation list" is kept in memory.
For each commit then:
Example showing output of git-forest on aufs2-util with an extra commit to have more than one branch).
With lookahead, one can anticipate how far down the merge point will be and squeeze the wood between two columns to give a more aesthetically pleasing result.