Есть ли простой способ создания смещенных веток в gitdags?

Есть ли простой способ создания смещенных веток в gitdags?

Жюльен Кретель создал элегантныйгитдагипакет для простого создания образовательных Git-графов, который я в настоящее время использую для создания образовательных и справочных материалов для своей команды.

При обсуждении ветвления в каком-либо контексте я люблю добавлять «изгиб» к графику, чтобы визуально усилить идею о том, что ветвь представляет собой линию развития и что другая работа может продолжаться параллельно.

Граф Git с веткой «перегиб»

Есть ли простой способ указать gitdags/TikZ сместить узел по вертикали, как здесь?

решение1

Я не знаю, можно ли это считать «чище» (и я также не знаю, что это за упаковка gitdags), но в любом случае:

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

введите описание изображения здесь

решение2

Мое текущее решение, используемое для создания графика в вопросе, заключается в создании невидимого узла вдоль главной ветви, который перемещает узел Dна следующую строку:

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

Бит "" [placeholder];создает невидимый узел после Cглавной ветви; Dпредставляет собой параллельную линию развития и, следовательно, вертикально совмещен с невидимым узлом.

Этот трюк выполняет работу, но кажется очень хакерским, особенно потому, что нам нужно сбросить непрозрачность края, когда мы закончим ( [>opacity=0.75]). Без этого сброса узлы Dи Eбудут визуализированы, но их края — нет.

Связанный контент