Existe uma maneira limpa de criar ramificações de deslocamento no gitdags?

Existe uma maneira limpa de criar ramificações de deslocamento no gitdags?

Julien Cretel criou o elegantegitdagspacote para gerar facilmente gráficos git educacionais, que estou usando atualmente para criar materiais educacionais e de referência para minha equipe.

Ao discutir a ramificação em algum contexto, gosto de adicionar uma “torção” ao gráfico para reforçar visualmente a ideia de que uma ramificação representa uma linha de desenvolvimento e que outro trabalho pode continuar simultaneamente

Gráfico Git com branch “kink”

Existe uma maneira limpa de dizer ao gitdags/TikZ para compensar um nó verticalmente como este?

Responder1

Não sei se isso conta como "limpador" (e também não conheço o gitdagspacote), mas enfim:

\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}

insira a descrição da imagem aqui

Responder2

Minha solução atual, usada para gerar o gráfico da questão, é criar um nó invisível ao longo do branch master, que força o nó Dpara a próxima linha:

\gitDAG[grow right sep = 2em]{
  {[nodes=placeholder commits] "..." } -- A -- B -- C -- {
    "" [placeholder];
    D [>opacity=0.75] -- E;
  }
};

O "" [placeholder];bit cria o nó invisível após Co ramo mestre; Drepresenta uma linha paralela de desenvolvimento e, portanto, está alinhada verticalmente com o nó invisível.

Esse truque dá conta do recado, mas parece muito complicado, especialmente porque precisamos redefinir a opacidade da borda quando terminarmos ( [>opacity=0.75]). Sem essa redefinição, os nós De Eserão renderizados, mas suas arestas não.

informação relacionada