view docs/figures/figure-sg10.svg @ 6935:954d7ea5cd67 stable tip

stack: when stack base is obsolete, pick any successor, even if at random There are situations when s0 is obsolete and we also cannot pick just one successor for it to use in stack. In such a case, let's pick the "latest" successor from the first set. We're assuming that obsutil.successorssets() returns data in the same order (it should, since it makes sure to sort data internally). Keeping that in mind, while the successor picked for s0 by this code is not based on any sort of sophisticated logic, it should nonetheless be the same every time. This patch is probably not going to completely break anything that was previously working fine, because the previous behavior was to just abort with an exception.
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 16 Nov 2024 17:01:02 +0400
parents 0d1893c1044c
children
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.40.1 (20161225.0304)
 -->
<!-- Title: Mercurial graph Pages: 1 -->
<svg width="826pt" height="332pt"
 viewBox="0.00 0.00 826.00 332.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 328)">
<title>Mercurial graph</title>
<!-- 0 -->
<g id="node1" class="node">
<title>0</title>
<polygon fill="none" stroke="#000000" stroke-width="4" points="72,-324 0,-324 0,-288 72,-288 72,-324"/>
<text text-anchor="middle" x="36" y="-302.3" font-family="mono" font-size="14.00" fill="#000000">0:0dc9</text>
</g>
<!-- 1 -->
<g id="node2" class="node">
<title>1</title>
<polygon fill="none" stroke="#000000" stroke-width="4" points="216,-324 144,-324 144,-288 216,-288 216,-324"/>
<text text-anchor="middle" x="180" y="-302.3" font-family="mono" font-size="14.00" fill="#000000">1:7b49</text>
</g>
<!-- 0&#45;&gt;1 -->
<g id="edge1" class="edge">
<title>0&#45;&gt;1</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M72.3373,-306C90.9973,-306 113.9327,-306 133.8329,-306"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="133.9241,-309.5001 143.924,-306 133.924,-302.5001 133.9241,-309.5001"/>
</g>
<!-- 2 -->
<g id="node3" class="node">
<title>2</title>
<polygon fill="none" stroke="#000000" stroke-width="4" points="360,-324 288,-324 288,-288 360,-288 360,-324"/>
<text text-anchor="middle" x="324" y="-302.3" font-family="mono" font-size="14.00" fill="#000000">2:9d21</text>
</g>
<!-- 1&#45;&gt;2 -->
<g id="edge2" class="edge">
<title>1&#45;&gt;2</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M216.3373,-306C234.9973,-306 257.9327,-306 277.8329,-306"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="277.9241,-309.5001 287.924,-306 277.924,-302.5001 277.9241,-309.5001"/>
</g>
<!-- 3 -->
<g id="node4" class="node">
<title>3</title>
<polygon fill="none" stroke="#000000" stroke-width="4" points="504,-324 432,-324 432,-288 504,-288 504,-324"/>
<text text-anchor="middle" x="468" y="-302.3" font-family="mono" font-size="14.00" fill="#000000">3:dd15</text>
</g>
<!-- 2&#45;&gt;3 -->
<g id="edge3" class="edge">
<title>2&#45;&gt;3</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M360.3373,-306C378.9973,-306 401.9327,-306 421.8329,-306"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="421.9241,-309.5001 431.924,-306 421.924,-302.5001 421.9241,-309.5001"/>
</g>
<!-- 4 -->
<g id="node5" class="node">
<title>4</title>
<polygon fill="none" stroke="#000000" stroke-width="2" points="648,-324 576,-324 576,-288 648,-288 648,-324"/>
<text text-anchor="middle" x="612" y="-302.3" font-family="mono" font-size="14.00" fill="#000000">4:b2be</text>
</g>
<!-- 3&#45;&gt;4 -->
<g id="edge4" class="edge">
<title>3&#45;&gt;4</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M504.3373,-306C522.9973,-306 545.9327,-306 565.8329,-306"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="565.9241,-309.5001 575.924,-306 565.924,-302.5001 565.9241,-309.5001"/>
</g>
<!-- 5 -->
<g id="node6" class="node">
<title>5</title>
<polygon fill="none" stroke="#000000" stroke-width="2" points="648,-180 576,-180 576,-144 648,-144 648,-180"/>
<text text-anchor="middle" x="612" y="-158.3" font-family="mono" font-size="14.00" fill="#000000">5:541f</text>
</g>
<!-- 3&#45;&gt;5 -->
<g id="edge5" class="edge">
<title>3&#45;&gt;5</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M486.2377,-287.7623C511.6646,-262.3354 557.8747,-216.1253 586.6431,-187.3569"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="589.3142,-189.6356 593.9104,-180.0896 584.3644,-184.6858 589.3142,-189.6356"/>
</g>
<!-- 6 -->
<g id="node7" class="node">
<title>6</title>
<polygon fill="none" stroke="#000000" stroke-width="2" points="648,-36 576,-36 576,0 648,0 648,-36"/>
<text text-anchor="middle" x="612" y="-14.3" font-family="mono" font-size="14.00" fill="#000000">6:e3a5</text>
</g>
<!-- 3&#45;&gt;6 -->
<g id="edge6" class="edge">
<title>3&#45;&gt;6</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M477.0078,-287.9843C501.5046,-238.9909 569.4407,-103.1186 598.5153,-44.9694"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="601.6539,-46.5184 602.9956,-36.0089 595.3929,-43.3879 601.6539,-46.5184"/>
</g>
<!-- 7 -->
<g id="node8" class="node">
<title>7</title>
<polygon fill="none" stroke="#000000" stroke-width="2" points="792,-108 720,-108 720,-72 792,-72 792,-108"/>
<text text-anchor="middle" x="756" y="-86.3" font-family="mono" font-size="14.00" fill="#000000">7:aa82</text>
</g>
<!-- 3&#45;&gt;7 -->
<g id="edge7" class="edge">
<title>3&#45;&gt;7</title>
<path fill="none" stroke="#000000" stroke-width="2" d="M503.3193,-287.8752C542.8036,-266.8509 607.7858,-229.9307 658,-190 686.3425,-167.4619 714.8841,-137.2922 733.7957,-116.0045"/>
<polygon fill="#000000" stroke="#000000" stroke-width="2" points="736.5806,-118.1376 740.5518,-108.3152 731.322,-113.5173 736.5806,-118.1376"/>
</g>
<!-- 4&#45;&gt;5 -->
<g id="edge9" class="edge">
<title>4&#45;&gt;5</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-dasharray="5,2" d="M612,-279.7351C612,-250.8541 612,-205.2198 612,-180.0896"/>
<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="612" cy="-283.7623" rx="4" ry="4"/>
</g>
<!-- 4&#45;&gt;6 -->
<g id="edge8" class="edge">
<title>4&#45;&gt;6</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-dasharray="5,2" d="M625.3853,-280.468C636.6169,-257.5116 651.7909,-222.5014 658,-190 662.6703,-165.5532 662.6703,-158.4468 658,-134 651.089,-97.8245 633.0717,-58.541 621.7462,-36.23"/>
<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="623.5304" cy="-284.19" rx="4" ry="4"/>
</g>
<!-- 5&#45;&gt;7 -->
<g id="edge10" class="edge">
<title>5&#45;&gt;7</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-dasharray="5,2" d="M655.7235,-140.1383C676.2619,-129.869 700.45,-117.775 719.924,-108.038"/>
<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="651.915" cy="-142.0425" rx="4" ry="4"/>
</g>
<!-- 6&#45;&gt;7 -->
<g id="edge11" class="edge">
<title>6&#45;&gt;7</title>
<path fill="none" stroke="#000000" stroke-width="2" stroke-dasharray="5,2" d="M655.7235,-39.8617C676.2619,-50.131 700.45,-62.225 719.924,-71.962"/>
<ellipse fill="#000000" stroke="#000000" stroke-width="2" cx="651.915" cy="-37.9575" rx="4" ry="4"/>
</g>
<!-- T7 -->
<g id="node9" class="node">
<title>T7</title>
<text text-anchor="start" x="702" y="-237.8" font-family="mono" font-style="italic" font-size="14.00" fill="#000000">final, single</text>
<text text-anchor="start" x="718.5" y="-223.8" font-family="mono" font-style="italic" font-size="14.00" fill="#000000">successor</text>
</g>
<!-- T7&#45;&gt;7 -->
<g id="edge12" class="edge">
<title>T7&#45;&gt;7</title>
<path fill="none" stroke="#c0c0c0" stroke-width="2" d="M756,-215.7623C756,-191.201 756,-147.2474 756,-118.3541"/>
<polygon fill="#c0c0c0" stroke="#c0c0c0" stroke-width="2" points="759.5001,-118.0896 756,-108.0896 752.5001,-118.0897 759.5001,-118.0896"/>
</g>
</g>
</svg>