Sé que el historial en Git se almacena en una estructura de datos llamada DAG. He oído hablar de DFS y sé que está relacionado de alguna manera.¿Cómo funciona 'git loggraph' o 'hg graphlog'?
Tengo curiosidad, ¿cómo los programas tales como git log --graph
o hg graphlog
dibujan la historia? Siempre pensé que era bastante complicado dibujar los carriles y todo de una manera tan agradable.
¿Podría alguien escribir algún pseudo código que lo demuestre?
nota: Intenté buscar el código de Git o hg, pero es muy difícil de seguir y tener una idea general de lo que está sucediendo.
Aquí está Git's [graph.c] (http://git.kernel.org/?p=git/git.git;a=blob;f=graph.c) para referencia. –
Publique una versión simplificada (pero bien especificada) del problema "cómo mostrar un DAG como un gráfico de texto" como una pregunta SO y etiquetarlo como 'code-golf'. Obtendrá muchas soluciones inteligentes, en Python, Ruby, C, Perl ... Puede solicitar a las personas que publiquen su código original no incluido en el juego de golf, así como su versión de "exprimir hasta el último personaje". – MatrixFrog
Además, Git [API de historial de gráficos] (http://www.kernel.org/pub/software/scm/git/docs/technical/api-history-graph.html) es útil. –