Julien Cretel creó el elegantegitdagspaquete para generar fácilmente gráficos educativos de git, que estoy usando actualmente para crear materiales educativos y de referencia para mi equipo.
Cuando hablo de bifurcaciones en algún contexto, me gusta agregar un "torcedura" al gráfico para reforzar visualmente la idea de que una rama representa una línea de desarrollo y que otros trabajos podrían continuar al mismo tiempo.
¿Existe una manera limpia de decirle a gitdags/TikZ que desplace un nodo verticalmente como este?
Respuesta1
No sé si esto cuenta como "limpiador" (y tampoco conozco el gitdags
paquete) pero de todos modos:
\documentclass[tikz,border=5]{standalone}
\usepackage{gitdags}
\tikzgraphsset{%
nudge/.style={/tikz/shift={#1}},
nudge down/.style={nudge=(270:#1)},
nudge down/.default=1
}
\begin{document}
\begin{tikzpicture}
\gitDAG[grow right sep = 2em]{
{[nodes=placeholder commits] "..."} -- A -- B -- C --
{[nudge down]
D -- E;
}
};
\end{tikzpicture}
\end{document}
Respuesta2
Mi solución actual, utilizada para generar el gráfico en la pregunta, es crear un nodo invisible a lo largo de la rama maestra, lo que fuerza al nodo D
a pasar a la siguiente fila:
\gitDAG[grow right sep = 2em]{
{[nodes=placeholder commits] "..." } -- A -- B -- C -- {
"" [placeholder];
D [>opacity=0.75] -- E;
}
};
El "" [placeholder];
bit crea el nodo invisible después C
de la rama maestra; D
representa una línea paralela de desarrollo y por lo tanto está alineada verticalmente con el nodo invisible.
Este truco hace el trabajo pero parece muy complicado, especialmente porque tenemos que restablecer la opacidad del borde cuando terminamos ( [>opacity=0.75]
). Sin este reinicio, los nodos D
y E
se representarán, pero sus bordes no.