私はGitの履歴がDAGというデータ構造に格納されていることを知っています。私はDFSについて聞いたことがあり、それは多少関連していることを知っています。'git log --graph'または 'hg graphlog'はどのように動作しますか?
私は好奇心が強いです。git log --graph
やhg graphlog
などのプログラムはどのようにして歴史を描きますか?私はいつも車線やそのすべてを素敵なやり方で描くことはかなり複雑だと思っていました。
誰かがそれを実証する疑似コードを書くことができますか?
注:私はGitまたはhgのコードを見てみましたが、何が起こっているのかについての一般的な考えを追跡するのは非常に難しいです。
Gitの[graph.c](http://git.kernel.org/?p=git/git.git;a=blob;f=graph.c)を参考にしてください。 –
SOの質問として「DAGをテキストグラフとして表示する方法」の問題を簡略化して(しかし、よく指定された)バージョンに投稿し、 'code-golf'としてタグ付けします。 Python、Ruby、C、Perlなど、多くの巧妙なソリューションを手に入れることができます。オリジナルのゴルフ以外のコードや「最後のすべてのキャラクターを搾取する」バージョンを投稿するように人々に依頼するかもしれません。 – MatrixFrog
Gitの[history graph API](http://www.kernel.org/pub/software/scm/git/docs/technical/api-history-graph.html)も便利です。 –