gitdags에서 오프셋 분기를 만드는 깔끔한 방법이 있습니까?

gitdags에서 오프셋 분기를 만드는 깔끔한 방법이 있습니까?

Julien Cretel이 우아함을 창조했습니다.gitdags현재 팀을 위한 교육 및 참고 자료를 만드는 데 사용하고 있는 교육용 Git 그래프를 쉽게 생성하기 위한 패키지입니다.

어떤 맥락에서 분기를 논의할 때 저는 분기가 개발 라인을 나타내고 다른 작업이 동시에 계속될 수 있다는 아이디어를 시각적으로 강화하기 위해 그래프에 "꼬임"을 추가하는 것을 좋아합니다.

"kink" 분기가 있는 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렌더링되지만 가장자리는 렌더링되지 않습니다.

관련 정보