Gitdag でオフセット ブランチを作成するクリーンな方法はありますか?

Gitdag でオフセット ブランチを作成するクリーンな方法はありますか?

ジュリアン・クレテルはエレガントなギットダグス教育用の 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];非表示のノードを作成します。これは開発の平行線を表し、非表示のノードと垂直に揃えられます。CD

このトリックは目的を達成しますが、非常にハックっぽい感じがします。特に、完了したらエッジの不透明度をリセットする必要があるためです ( [>opacity=0.75])。このリセットを行わないと、ノードDとノードはEレンダリングされますが、エッジはレンダリングされません。

関連情報