Fossil SCM

Gave Users A thru E human names, and humanized their story a bit in the branching.wiki article.

wyoung 2019-06-21 13:19 trunk
Commit 2ac5bc3c3000288b9660a8b06393a6a2830a126b3f412e81f1c04987a7bb0cac
--- www/branch06.graphml
+++ www/branch06.graphml
@@ -19,14 +19,14 @@
1919
<y:TableNode configuration="YED_TABLE_NODE">
2020
<y:Geometry height="470.0" width="487.0" x="-208.0" y="-1933.666015625"/>
2121
<y:Fill color="#ECF5FF" color2="#0042F440" transparent="false"/>
2222
<y:BorderStyle color="#000000" type="line" width="1.0"/>
2323
<y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="290.259765625" x="98.3701171875" xml:space="preserve" y="4.0">Varying User Views of Fossil Repository</y:NodeLabel>
24
- <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.103515625" x="3.0" xml:space="preserve" y="63.9482421875">User A<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_0" inside="true"/></y:ModelParameter></y:NodeLabel>
25
- <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="40.7265625" x="3.0" xml:space="preserve" y="174.63671875">User B<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_1" inside="true"/></y:ModelParameter></y:NodeLabel>
26
- <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.126953125" x="3.0" xml:space="preserve" y="283.4365234375">User C<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_2" inside="true"/></y:ModelParameter></y:NodeLabel>
27
- <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.8125" x="3.0" xml:space="preserve" y="393.09375">User D<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_3" inside="true"/></y:ModelParameter></y:NodeLabel>
24
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="29.822265625" x="3.0" xml:space="preserve" y="70.0888671875">Alan<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_0" inside="true"/></y:ModelParameter></y:NodeLabel>
25
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="32.833984375" x="3.0" xml:space="preserve" y="178.5830078125">Betty<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_1" inside="true"/></y:ModelParameter></y:NodeLabel>
26
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="44.91015625" x="3.0" xml:space="preserve" y="282.044921875">Charlie<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_2" inside="true"/></y:ModelParameter></y:NodeLabel>
27
+ <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.8125" x="3.0" xml:space="preserve" y="390.09375">Darlene<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_3" inside="true"/></y:ModelParameter></y:NodeLabel>
2828
<y:StyleProperties>
2929
<y:Property class="java.awt.Color" name="yed.table.section.color" value="#7192b2"/>
3030
<y:Property class="java.lang.Double" name="yed.table.header.height" value="24.0"/>
3131
<y:Property class="java.awt.Color" name="yed.table.lane.color.main" value="#c4d7ed"/>
3232
<y:Property class="java.awt.Color" name="yed.table.lane.color.alternating" value="#abc8e2"/>
3333
--- www/branch06.graphml
+++ www/branch06.graphml
@@ -19,14 +19,14 @@
19 <y:TableNode configuration="YED_TABLE_NODE">
20 <y:Geometry height="470.0" width="487.0" x="-208.0" y="-1933.666015625"/>
21 <y:Fill color="#ECF5FF" color2="#0042F440" transparent="false"/>
22 <y:BorderStyle color="#000000" type="line" width="1.0"/>
23 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="290.259765625" x="98.3701171875" xml:space="preserve" y="4.0">Varying User Views of Fossil Repository</y:NodeLabel>
24 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.103515625" x="3.0" xml:space="preserve" y="63.9482421875">User A<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_0" inside="true"/></y:ModelParameter></y:NodeLabel>
25 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="40.7265625" x="3.0" xml:space="preserve" y="174.63671875">User B<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_1" inside="true"/></y:ModelParameter></y:NodeLabel>
26 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.126953125" x="3.0" xml:space="preserve" y="283.4365234375">User C<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_2" inside="true"/></y:ModelParameter></y:NodeLabel>
27 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="42.8125" x="3.0" xml:space="preserve" y="393.09375">User D<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_3" inside="true"/></y:ModelParameter></y:NodeLabel>
28 <y:StyleProperties>
29 <y:Property class="java.awt.Color" name="yed.table.section.color" value="#7192b2"/>
30 <y:Property class="java.lang.Double" name="yed.table.header.height" value="24.0"/>
31 <y:Property class="java.awt.Color" name="yed.table.lane.color.main" value="#c4d7ed"/>
32 <y:Property class="java.awt.Color" name="yed.table.lane.color.alternating" value="#abc8e2"/>
33
--- www/branch06.graphml
+++ www/branch06.graphml
@@ -19,14 +19,14 @@
19 <y:TableNode configuration="YED_TABLE_NODE">
20 <y:Geometry height="470.0" width="487.0" x="-208.0" y="-1933.666015625"/>
21 <y:Fill color="#ECF5FF" color2="#0042F440" transparent="false"/>
22 <y:BorderStyle color="#000000" type="line" width="1.0"/>
23 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="15" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="21.666015625" horizontalTextPosition="center" iconTextGap="4" modelName="internal" modelPosition="t" textColor="#000000" verticalTextPosition="bottom" visible="true" width="290.259765625" x="98.3701171875" xml:space="preserve" y="4.0">Varying User Views of Fossil Repository</y:NodeLabel>
24 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="29.822265625" x="3.0" xml:space="preserve" y="70.0888671875">Alan<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_0" inside="true"/></y:ModelParameter></y:NodeLabel>
25 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="32.833984375" x="3.0" xml:space="preserve" y="178.5830078125">Betty<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_1" inside="true"/></y:ModelParameter></y:NodeLabel>
26 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="44.91015625" x="3.0" xml:space="preserve" y="282.044921875">Charlie<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_2" inside="true"/></y:ModelParameter></y:NodeLabel>
27 <y:NodeLabel alignment="center" autoSizePolicy="content" fontFamily="Dialog" fontSize="12" fontStyle="plain" hasBackgroundColor="false" hasLineColor="false" height="18.1328125" horizontalTextPosition="center" iconTextGap="4" modelName="custom" rotationAngle="270.0" textColor="#000000" verticalTextPosition="bottom" visible="true" width="48.8125" x="3.0" xml:space="preserve" y="390.09375">Darlene<y:LabelModel><y:RowNodeLabelModel offset="3.0"/></y:LabelModel><y:ModelParameter><y:RowNodeLabelModelParameter horizontalPosition="0.0" id="row_3" inside="true"/></y:ModelParameter></y:NodeLabel>
28 <y:StyleProperties>
29 <y:Property class="java.awt.Color" name="yed.table.section.color" value="#7192b2"/>
30 <y:Property class="java.lang.Double" name="yed.table.header.height" value="24.0"/>
31 <y:Property class="java.awt.Color" name="yed.table.lane.color.main" value="#c4d7ed"/>
32 <y:Property class="java.awt.Color" name="yed.table.lane.color.alternating" value="#abc8e2"/>
33
+15 -15
--- www/branch06.svg
+++ www/branch06.svg
@@ -8,20 +8,20 @@
88
</clipPath>
99
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
1010
<path d="M-223 -1949 L294 -1949 L294 -1448 L-223 -1448 L-223 -1949 Z"/>
1111
</clipPath>
1212
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
13
- <path d="M121.3857 -18 L121.3857 499 L-379.6143 499 L-379.6143 -18 L121.3857 -18 Z"/>
13
+ <path d="M115.2451 -18 L115.2451 499 L-385.7549 499 L-385.7549 -18 L115.2451 -18 Z"/>
1414
</clipPath>
1515
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
16
- <path d="M230.6973 -18 L230.6973 499 L-270.3027 499 L-270.3027 -18 L230.6973 -18 Z"/>
16
+ <path d="M226.751 -18 L226.751 499 L-274.249 499 L-274.249 -18 L226.751 -18 Z"/>
1717
</clipPath>
1818
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
19
- <path d="M340.8975 -18 L340.8975 499 L-160.1025 499 L-160.1025 -18 L340.8975 -18 Z"/>
19
+ <path d="M342.2891 -18 L342.2891 499 L-158.7109 499 L-158.7109 -18 L342.2891 -18 Z"/>
2020
</clipPath>
2121
<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
22
- <path d="M451.2402 -18 L451.2402 499 L-49.7598 499 L-49.7598 -18 L451.2402 -18 Z"/>
22
+ <path d="M454.2402 -18 L454.2402 499 L-46.7598 499 L-46.7598 -18 L454.2402 -18 Z"/>
2323
</clipPath>
2424
</defs>
2525
<g fill="rgb(236,245,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="rgb(236,245,255)">
2626
<path d="M-208 -1933.666 L-208 -1903.666 L279 -1903.666 L279 -1933.666 Z" stroke="none" clip-path="url(#clipPath2)"/>
2727
<rect x="-208" width="487" height="440" y="-1903.666" clip-path="url(#clipPath2)" stroke="none"/>
@@ -44,21 +44,21 @@
4444
<rect fill="none" x="-208" width="487" height="111" y="-1574.666" clip-path="url(#clipPath2)"/>
4545
</g>
4646
<g font-size="15px" stroke-linecap="butt" transform="matrix(1,0,0,1,223,1949)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
4747
<text x="-107.6299" xml:space="preserve" y="-1913.1641" clip-path="url(#clipPath2)" stroke="none">Varying User Views of Fossil Repository</text>
4848
</g>
49
- <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,121.3857)" stroke-linecap="butt">
50
- <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath3)" stroke="none">User A</text>
51
- </g>
52
- <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,230.6973)" stroke-linecap="butt">
53
- <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath4)" stroke="none">User B</text>
54
- </g>
55
- <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,340.8975)" stroke-linecap="butt">
56
- <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath5)" stroke="none">User C</text>
57
- </g>
58
- <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,451.2402)" stroke-linecap="butt">
59
- <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath6)" stroke="none">User D</text>
49
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,115.2451)" stroke-linecap="butt">
50
+ <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath3)" stroke="none">Alan</text>
51
+ </g>
52
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,226.751)" stroke-linecap="butt">
53
+ <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath4)" stroke="none">Betty</text>
54
+ </g>
55
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,342.2891)" stroke-linecap="butt">
56
+ <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath5)" stroke="none">Charlie</text>
57
+ </g>
58
+ <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,454.2402)" stroke-linecap="butt">
59
+ <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath6)" stroke="none">Darlene</text>
6060
</g>
6161
<g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="white">
6262
<circle r="15" clip-path="url(#clipPath2)" cx="-157" cy="-1760.666" stroke="none"/>
6363
</g>
6464
<g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke-linecap="butt">
6565
--- www/branch06.svg
+++ www/branch06.svg
@@ -8,20 +8,20 @@
8 </clipPath>
9 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
10 <path d="M-223 -1949 L294 -1949 L294 -1448 L-223 -1448 L-223 -1949 Z"/>
11 </clipPath>
12 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
13 <path d="M121.3857 -18 L121.3857 499 L-379.6143 499 L-379.6143 -18 L121.3857 -18 Z"/>
14 </clipPath>
15 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
16 <path d="M230.6973 -18 L230.6973 499 L-270.3027 499 L-270.3027 -18 L230.6973 -18 Z"/>
17 </clipPath>
18 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
19 <path d="M340.8975 -18 L340.8975 499 L-160.1025 499 L-160.1025 -18 L340.8975 -18 Z"/>
20 </clipPath>
21 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
22 <path d="M451.2402 -18 L451.2402 499 L-49.7598 499 L-49.7598 -18 L451.2402 -18 Z"/>
23 </clipPath>
24 </defs>
25 <g fill="rgb(236,245,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="rgb(236,245,255)">
26 <path d="M-208 -1933.666 L-208 -1903.666 L279 -1903.666 L279 -1933.666 Z" stroke="none" clip-path="url(#clipPath2)"/>
27 <rect x="-208" width="487" height="440" y="-1903.666" clip-path="url(#clipPath2)" stroke="none"/>
@@ -44,21 +44,21 @@
44 <rect fill="none" x="-208" width="487" height="111" y="-1574.666" clip-path="url(#clipPath2)"/>
45 </g>
46 <g font-size="15px" stroke-linecap="butt" transform="matrix(1,0,0,1,223,1949)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
47 <text x="-107.6299" xml:space="preserve" y="-1913.1641" clip-path="url(#clipPath2)" stroke="none">Varying User Views of Fossil Repository</text>
48 </g>
49 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,121.3857)" stroke-linecap="butt">
50 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath3)" stroke="none">User A</text>
51 </g>
52 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,230.6973)" stroke-linecap="butt">
53 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath4)" stroke="none">User B</text>
54 </g>
55 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,340.8975)" stroke-linecap="butt">
56 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath5)" stroke="none">User C</text>
57 </g>
58 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,451.2402)" stroke-linecap="butt">
59 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath6)" stroke="none">User D</text>
60 </g>
61 <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="white">
62 <circle r="15" clip-path="url(#clipPath2)" cx="-157" cy="-1760.666" stroke="none"/>
63 </g>
64 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke-linecap="butt">
65
--- www/branch06.svg
+++ www/branch06.svg
@@ -8,20 +8,20 @@
8 </clipPath>
9 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
10 <path d="M-223 -1949 L294 -1949 L294 -1448 L-223 -1448 L-223 -1949 Z"/>
11 </clipPath>
12 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
13 <path d="M115.2451 -18 L115.2451 499 L-385.7549 499 L-385.7549 -18 L115.2451 -18 Z"/>
14 </clipPath>
15 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
16 <path d="M226.751 -18 L226.751 499 L-274.249 499 L-274.249 -18 L226.751 -18 Z"/>
17 </clipPath>
18 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
19 <path d="M342.2891 -18 L342.2891 499 L-158.7109 499 L-158.7109 -18 L342.2891 -18 Z"/>
20 </clipPath>
21 <clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
22 <path d="M454.2402 -18 L454.2402 499 L-46.7598 499 L-46.7598 -18 L454.2402 -18 Z"/>
23 </clipPath>
24 </defs>
25 <g fill="rgb(236,245,255)" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="rgb(236,245,255)">
26 <path d="M-208 -1933.666 L-208 -1903.666 L279 -1903.666 L279 -1933.666 Z" stroke="none" clip-path="url(#clipPath2)"/>
27 <rect x="-208" width="487" height="440" y="-1903.666" clip-path="url(#clipPath2)" stroke="none"/>
@@ -44,21 +44,21 @@
44 <rect fill="none" x="-208" width="487" height="111" y="-1574.666" clip-path="url(#clipPath2)"/>
45 </g>
46 <g font-size="15px" stroke-linecap="butt" transform="matrix(1,0,0,1,223,1949)" text-rendering="geometricPrecision" font-family="sans-serif" shape-rendering="geometricPrecision" stroke-miterlimit="1.45">
47 <text x="-107.6299" xml:space="preserve" y="-1913.1641" clip-path="url(#clipPath2)" stroke="none">Varying User Views of Fossil Repository</text>
48 </g>
49 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,115.2451)" stroke-linecap="butt">
50 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath3)" stroke="none">Alan</text>
51 </g>
52 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,226.751)" stroke-linecap="butt">
53 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath4)" stroke="none">Betty</text>
54 </g>
55 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,342.2891)" stroke-linecap="butt">
56 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath5)" stroke="none">Charlie</text>
57 </g>
58 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" shape-rendering="geometricPrecision" font-family="sans-serif" transform="matrix(-0,-1,1,-0,18,454.2402)" stroke-linecap="butt">
59 <text x="2" xml:space="preserve" y="13.6016" clip-path="url(#clipPath6)" stroke="none">Darlene</text>
60 </g>
61 <g fill="white" text-rendering="geometricPrecision" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke="white">
62 <circle r="15" clip-path="url(#clipPath2)" cx="-157" cy="-1760.666" stroke="none"/>
63 </g>
64 <g text-rendering="geometricPrecision" stroke-miterlimit="1.45" stroke-width="2" shape-rendering="geometricPrecision" transform="matrix(1,0,0,1,223,1949)" stroke-linecap="butt">
65
+36 -27
--- www/branching.wiki
+++ www/branching.wiki
@@ -388,53 +388,62 @@
388388
indefinite, unified future. This is all happening on some long-lived,
389389
shared working branch, such as trunk, though it could be anything else
390390
that matches those same qualifiers. Each user makes only one check-in,
391391
shaded light gray.
392392
393
-User A sets the stage for this problem by creating a fork from check-in
394
-1 as check-in 3. Whether what happens as a result is User A's fault
395
-depends on why and how that fork occurred. We'll come back to that
396
-point later. For now, you can ignore the how and why of it.
393
+Alan sets the stage for this problem by creating a fork from check-in 1
394
+as check-in 3. This has consequences which will occur regardless of how
395
+that fork was created, so we can ignore the "how" here. <i>Why</i> that
396
+fork was created will matter in [#post-mortem|the <i>post mortem</i>
397
+below], but we can ignore that for now, too.
397398
398
-User B is sync'd with the same view of the repository as User A, so her
399
-check-in goes in as a child of the forked check-in 3, that being the
399
+Betty is sync'd with the same view of the repository as Alan, so her
400
+check-in goes in as a child of the fork-creating check-in 3, that being the
400401
latest check-in on the branch at the time.
401402
402
-Meanwhile, User C went offline after syncing his repo with check-in 2 as
403
+Meanwhile, Charlie went offline after syncing his repo with check-in 2 as
403404
the latest on that branch. When he checks his changes in, it is as a
404
-child of 2, not of 4, because User C doesn't know about 3 & 4 yet. Since
405
-he does this at an absolute wall clock time <i>after</i> Users A and B
406
-made their check-ins, when User C comes back online and pushes his
407
-changes to the master repository — and learns about check-ins 3 and 4 at
408
-the same time, during Fossil sync — User C inadvertently revives the
405
+child of 2, not of 4, because Charlie doesn't know about check-ins 3 & 4 yet.
406
+He does this at an absolute wall clock time <i>after</i> Alan and Betty
407
+made their check-ins, so when Charlie comes back online and pushes his
408
+check-in 5 to the master repository and learns about check-ins 3 and 4
409
+during Fossil sync, Charlie inadvertently revives the
409410
other side of the fork.
410411
411
-User D sees all of this, because she comes along after Users A thru C
412
+Darlene sees all of this, because she comes along after Alan, Betty, and Charlie
412413
made their check-ins and pushed them to the master repository. Perhaps
413
-User D is switching a working directory to this forked branch, or
414
-perhaps User D is opening a Fossil repo clone into a new working
415
-directory. Regardless, it happens after User C pushed his check-in 5 to
416
-the master repo, so User D sees that as the latest on the branch,
414
+Darlene is switching a working directory to this forked branch, or
415
+perhaps Darlene is opening a Fossil repo clone into a new working
416
+directory. Regardless, it happens after Charlie pushed his check-in 5 to
417
+the master repo, so Darlene sees that as the latest on the branch,
417418
causing her work to be saved as a child of check-in 5, not of check-in
418
-4, as it would if User C didn't come back online and sync before User D
419
+4, as it would if Charlie didn't come back online and sync before Darlene
419420
showed up.
421
+
422
+<h3 id="post-mortem">Post Mortem</h3>
420423
421424
The end result of all of this is that everyone makes only one check-in,
422425
but half of the check-ins are on one side of the fork, and half are on
423
-the other. Some future User E who shows up can end up on either side of
424
-the fork. If User E shows up with the state of the repository as drawn
425
-above, they'll end up on the top side of the fork, because check-in 6 is
426
-the latest, but if User A or B makes a seventh check-in to that branch
427
-first, it will be as a child of check-in 4, and because it's the latest,
428
-User E will end up on the bottom side of the fork instead.
426
+the other. A future user — his mother calls him Edward, but please call him Eddie —
427
+can then show up and end up on <i>either</i> side of
428
+the fork. If Eddie shows up with the state of the repository as drawn
429
+above, he'll end up on the top side of the fork, because check-in 6 is
430
+the latest, but if Alan or Betty makes a seventh check-in to that branch
431
+first, it will be as a child of check-in 4 since that's the version in
432
+their local check-out directories. Since that check-in 7 will then be the latest,
433
+Eddie will end up on the bottom side of the fork instead.
429434
430435
In all of this, realize that neither side of the fork is obviously
431436
"correct." Every participant was doing the right thing by their own
432
-lights at the time they made their lone check-in. We can only blame User
433
-A for creating the fork if they did so on purpose, as by passing
437
+lights at the time they made their lone check-in. We can only blame
438
+the consequences of creating the fork on Alan
439
+if he did so on purpose, as by passing
434440
"--allow-fork" when creating a check-in on a shared working branch. If
435
-the fork was created inadvertently, it's no one's fault.
441
+the fork was created inadvertently, it's no one's fault.
442
+
443
+(Or, perhaps it is <i>everyone's</i> fault for using a DVCS while having
444
+an unrealistic expectation that forks should never occur.)
436445
437446
This is why forks on shared working branches are bad, which is why
438447
Fossil tries so hard to avoid them, and why it warns you about it when
439448
they do occur.
440449
441450
--- www/branching.wiki
+++ www/branching.wiki
@@ -388,53 +388,62 @@
388 indefinite, unified future. This is all happening on some long-lived,
389 shared working branch, such as trunk, though it could be anything else
390 that matches those same qualifiers. Each user makes only one check-in,
391 shaded light gray.
392
393 User A sets the stage for this problem by creating a fork from check-in
394 1 as check-in 3. Whether what happens as a result is User A's fault
395 depends on why and how that fork occurred. We'll come back to that
396 point later. For now, you can ignore the how and why of it.
 
397
398 User B is sync'd with the same view of the repository as User A, so her
399 check-in goes in as a child of the forked check-in 3, that being the
400 latest check-in on the branch at the time.
401
402 Meanwhile, User C went offline after syncing his repo with check-in 2 as
403 the latest on that branch. When he checks his changes in, it is as a
404 child of 2, not of 4, because User C doesn't know about 3 & 4 yet. Since
405 he does this at an absolute wall clock time <i>after</i> Users A and B
406 made their check-ins, when User C comes back online and pushes his
407 changes to the master repository — and learns about check-ins 3 and 4 at
408 the same time, during Fossil sync — User C inadvertently revives the
409 other side of the fork.
410
411 User D sees all of this, because she comes along after Users A thru C
412 made their check-ins and pushed them to the master repository. Perhaps
413 User D is switching a working directory to this forked branch, or
414 perhaps User D is opening a Fossil repo clone into a new working
415 directory. Regardless, it happens after User C pushed his check-in 5 to
416 the master repo, so User D sees that as the latest on the branch,
417 causing her work to be saved as a child of check-in 5, not of check-in
418 4, as it would if User C didn't come back online and sync before User D
419 showed up.
 
 
420
421 The end result of all of this is that everyone makes only one check-in,
422 but half of the check-ins are on one side of the fork, and half are on
423 the other. Some future User E who shows up can end up on either side of
424 the fork. If User E shows up with the state of the repository as drawn
425 above, they'll end up on the top side of the fork, because check-in 6 is
426 the latest, but if User A or B makes a seventh check-in to that branch
427 first, it will be as a child of check-in 4, and because it's the latest,
428 User E will end up on the bottom side of the fork instead.
 
 
429
430 In all of this, realize that neither side of the fork is obviously
431 "correct." Every participant was doing the right thing by their own
432 lights at the time they made their lone check-in. We can only blame User
433 A for creating the fork if they did so on purpose, as by passing
 
434 "--allow-fork" when creating a check-in on a shared working branch. If
435 the fork was created inadvertently, it's no one's fault.
 
 
 
436
437 This is why forks on shared working branches are bad, which is why
438 Fossil tries so hard to avoid them, and why it warns you about it when
439 they do occur.
440
441
--- www/branching.wiki
+++ www/branching.wiki
@@ -388,53 +388,62 @@
388 indefinite, unified future. This is all happening on some long-lived,
389 shared working branch, such as trunk, though it could be anything else
390 that matches those same qualifiers. Each user makes only one check-in,
391 shaded light gray.
392
393 Alan sets the stage for this problem by creating a fork from check-in 1
394 as check-in 3. This has consequences which will occur regardless of how
395 that fork was created, so we can ignore the "how" here. <i>Why</i> that
396 fork was created will matter in [#post-mortem|the <i>post mortem</i>
397 below], but we can ignore that for now, too.
398
399 Betty is sync'd with the same view of the repository as Alan, so her
400 check-in goes in as a child of the fork-creating check-in 3, that being the
401 latest check-in on the branch at the time.
402
403 Meanwhile, Charlie went offline after syncing his repo with check-in 2 as
404 the latest on that branch. When he checks his changes in, it is as a
405 child of 2, not of 4, because Charlie doesn't know about check-ins 3 & 4 yet.
406 He does this at an absolute wall clock time <i>after</i> Alan and Betty
407 made their check-ins, so when Charlie comes back online and pushes his
408 check-in 5 to the master repository and learns about check-ins 3 and 4
409 during Fossil sync, Charlie inadvertently revives the
410 other side of the fork.
411
412 Darlene sees all of this, because she comes along after Alan, Betty, and Charlie
413 made their check-ins and pushed them to the master repository. Perhaps
414 Darlene is switching a working directory to this forked branch, or
415 perhaps Darlene is opening a Fossil repo clone into a new working
416 directory. Regardless, it happens after Charlie pushed his check-in 5 to
417 the master repo, so Darlene sees that as the latest on the branch,
418 causing her work to be saved as a child of check-in 5, not of check-in
419 4, as it would if Charlie didn't come back online and sync before Darlene
420 showed up.
421
422 <h3 id="post-mortem">Post Mortem</h3>
423
424 The end result of all of this is that everyone makes only one check-in,
425 but half of the check-ins are on one side of the fork, and half are on
426 the other. A future user — his mother calls him Edward, but please call him Eddie —
427 can then show up and end up on <i>either</i> side of
428 the fork. If Eddie shows up with the state of the repository as drawn
429 above, he'll end up on the top side of the fork, because check-in 6 is
430 the latest, but if Alan or Betty makes a seventh check-in to that branch
431 first, it will be as a child of check-in 4 since that's the version in
432 their local check-out directories. Since that check-in 7 will then be the latest,
433 Eddie will end up on the bottom side of the fork instead.
434
435 In all of this, realize that neither side of the fork is obviously
436 "correct." Every participant was doing the right thing by their own
437 lights at the time they made their lone check-in. We can only blame
438 the consequences of creating the fork on Alan
439 if he did so on purpose, as by passing
440 "--allow-fork" when creating a check-in on a shared working branch. If
441 the fork was created inadvertently, it's no one's fault.
442
443 (Or, perhaps it is <i>everyone's</i> fault for using a DVCS while having
444 an unrealistic expectation that forks should never occur.)
445
446 This is why forks on shared working branches are bad, which is why
447 Fossil tries so hard to avoid them, and why it warns you about it when
448 they do occur.
449
450

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button