91 lines
4.2 KiB
XML
91 lines
4.2 KiB
XML
<svg viewBox="0 0 280 280" xmlns="http://www.w3.org/2000/svg" role="img" aria-labelledby="mark-title-levcs">
|
|
<title id="mark-title-levcs">A federated commit graph: multiple peer roots connected by signed edges, with no privileged origin.</title>
|
|
<desc>Frontmatter mark for the essay "LeVCS: A Distributed Version Control System".</desc>
|
|
|
|
<g fill="none" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round">
|
|
|
|
<!-- Outer roundel -->
|
|
<circle cx="140" cy="140" r="128" stroke-width="0.6"/>
|
|
|
|
<!-- Three peer roots, equally weighted, at 90, 210, 330 degrees on r=78.
|
|
Each is the source of its own commit chain that intersects with the others.
|
|
Identity sigil (small filled square) inside each root marks
|
|
"identity in the protocol". -->
|
|
|
|
<!-- Root A: top -->
|
|
<circle cx="140" cy="62" r="9" stroke-width="1.2"/>
|
|
<rect x="136.5" y="58.5" width="7" height="7" fill="currentColor" stroke="none"/>
|
|
|
|
<!-- Root B: lower-left -->
|
|
<circle cx="72.4" cy="179" r="9" stroke-width="1.2"/>
|
|
<rect x="68.9" y="175.5" width="7" height="7" fill="currentColor" stroke="none"/>
|
|
|
|
<!-- Root C: lower-right -->
|
|
<circle cx="207.6" cy="179" r="9" stroke-width="1.2"/>
|
|
<rect x="204.1" y="175.5" width="7" height="7" fill="currentColor" stroke="none"/>
|
|
|
|
<!-- Commits along each chain. Each root spawns a chain of 3 commits walking
|
|
toward the center along its inward radial. Commits are small open circles. -->
|
|
|
|
<!-- Chain A: from top root walking down toward (140, 140). 3 commits. -->
|
|
<g stroke-width="0.9">
|
|
<line x1="140" y1="71" x2="140" y2="89"/>
|
|
<line x1="140" y1="98" x2="140" y2="116"/>
|
|
<line x1="140" y1="125" x2="140" y2="131"/>
|
|
</g>
|
|
<circle cx="140" cy="93.5" r="3.4" stroke-width="0.9"/>
|
|
<circle cx="140" cy="120.5" r="3.4" stroke-width="0.9"/>
|
|
|
|
<!-- Chain B: from lower-left root, walking toward center along the
|
|
radial. Direction vector = (1, -1)/sqrt(2). Step ~13.5 along the line.
|
|
B is at (72.4, 179); center at (140, 140); distance ~78. Step inward. -->
|
|
<g stroke-width="0.9">
|
|
<line x1="79.8" y1="174.4" x2="95.4" y2="165.5"/>
|
|
<line x1="103" y1="160.6" x2="118.6" y2="151.7"/>
|
|
<line x1="126.2" y1="146.8" x2="131.8" y2="143.6"/>
|
|
</g>
|
|
<circle cx="99.2" cy="163.05" r="3.4" stroke-width="0.9"/>
|
|
<circle cx="122.4" cy="149.25" r="3.4" stroke-width="0.9"/>
|
|
|
|
<!-- Chain C: from lower-right root, walking toward center.
|
|
C at (207.6, 179); direction = (-1, -1)/sqrt(2). -->
|
|
<g stroke-width="0.9">
|
|
<line x1="200.2" y1="174.4" x2="184.6" y2="165.5"/>
|
|
<line x1="177" y1="160.6" x2="161.4" y2="151.7"/>
|
|
<line x1="153.8" y1="146.8" x2="148.2" y2="143.6"/>
|
|
</g>
|
|
<circle cx="180.8" cy="163.05" r="3.4" stroke-width="0.9"/>
|
|
<circle cx="157.6" cy="149.25" r="3.4" stroke-width="0.9"/>
|
|
|
|
<!-- Confluence point: a small open square at the geometric center where the
|
|
three chains meet. This is the merge: cascading, format-aware, but does
|
|
not collapse history — the chains remain distinct above. -->
|
|
<rect x="135.5" y="135.5" width="9" height="9" stroke-width="1.2"/>
|
|
|
|
<!-- Cross-edges: peer-to-peer references between the three chains.
|
|
These are the federation edges — direct refs between commits on different
|
|
chains, not routed through any hub. Drawn as dashed thin lines. -->
|
|
<g stroke-width="0.5" stroke-dasharray="2 3" opacity="0.75">
|
|
<!-- A's first commit ↔ C's first commit -->
|
|
<path d="M 143 92 Q 168 110 178 161"/>
|
|
<!-- A's first commit ↔ B's first commit -->
|
|
<path d="M 137 92 Q 112 110 102 161"/>
|
|
<!-- B's second ↔ C's second -->
|
|
<path d="M 122 149 L 158 149" stroke-dasharray="2 3"/>
|
|
</g>
|
|
|
|
<!-- Signature ticks: short hash marks on each chain's middle-segment,
|
|
indicating signed history (BLAKE3). One small tick perpendicular to each
|
|
chain segment. -->
|
|
<g stroke-width="0.7">
|
|
<!-- Chain A tick: between commits 1 and 2 -->
|
|
<line x1="146" y1="107" x2="150" y2="107"/>
|
|
<!-- Chain B tick -->
|
|
<line x1="111.4" y1="160.0" x2="113.8" y2="156.8"/>
|
|
<!-- Chain C tick -->
|
|
<line x1="168.6" y1="160.0" x2="166.2" y2="156.8"/>
|
|
</g>
|
|
|
|
</g>
|
|
</svg>
|