hgbook

changeset 112:2fcead053b7a

More. Concept. Fun.
author Bryan O'Sullivan <bos@serpentine.com>
date Mon Nov 13 13:21:29 2006 -0800 (2006-11-13)
parents 34b8b7a15ea1
children a0f57b3e677e
files en/Makefile en/concepts.tex en/revlog.svg
line diff
     1.1 --- a/en/Makefile	Fri Nov 10 15:32:33 2006 -0800
     1.2 +++ b/en/Makefile	Mon Nov 13 13:21:29 2006 -0800
     1.3 @@ -25,6 +25,7 @@
     1.4  	kdiff3.png \
     1.5  	metadata.svg \
     1.6  	mq-stack.svg \
     1.7 +	revlog.svg \
     1.8  	snapshot.svg \
     1.9  	tour-history.svg \
    1.10  	tour-merge-conflict.svg \
     2.1 --- a/en/concepts.tex	Fri Nov 10 15:32:33 2006 -0800
     2.2 +++ b/en/concepts.tex	Mon Nov 13 13:21:29 2006 -0800
     2.3 @@ -12,6 +12,10 @@
     2.4  the software is doing when I perform a revision control task, I'm less
     2.5  likely to be surprised by its behaviour.
     2.6  
     2.7 +In this chapter, we'll initially cover the core concepts behind
     2.8 +Mercurial's design, then continue to discuss some of the interesting
     2.9 +details of its implementation.
    2.10 +
    2.11  \section{Mercurial's historical record}
    2.12  
    2.13  \subsection{Tracking the history of a single file}
    2.14 @@ -174,19 +178,23 @@
    2.15  the next key frame is received.  Also, the accumulation of encoding
    2.16  errors restarts anew with each key frame.
    2.17  
    2.18 -\subsection{Strong integrity}
    2.19 +\subsection{Identification and strong integrity}
    2.20  
    2.21  Along with delta or snapshot information, a revlog entry contains a
    2.22  cryptographic hash of the data that it represents.  This makes it
    2.23  difficult to forge the contents of a revision, and easy to detect
    2.24 -accidental corruption.  The hash that Mercurial uses is SHA-1, which
    2.25 -is 160 bits long.  Although all revision data is hashed, the changeset
    2.26 +accidental corruption.  
    2.27 +
    2.28 +Hashes provide more than a mere check against corruption; they are
    2.29 +used as the identifiers for revisions.  The changeset identification
    2.30  hashes that you see as an end user are from revisions of the
    2.31 -changelog.  Manifest and file hashes are only used behind the scenes.
    2.32 -
    2.33 -Mercurial checks these hashes when retrieving file revisions and when
    2.34 -pulling changes from a repository.  If it encounters an integrity
    2.35 -problem, it will complain and stop whatever it's doing.
    2.36 +changelog.  Although filelogs and the manifest also use hashes,
    2.37 +Mercurial only uses these behind the scenes.
    2.38 +
    2.39 +Mercurial verifies that hashes are correct when it retrieves file
    2.40 +revisions and when it pulls changes from another repository.  If it
    2.41 +encounters an integrity problem, it will complain and stop whatever
    2.42 +it's doing.
    2.43  
    2.44  In addition to the effect it has on retrieval efficiency, Mercurial's
    2.45  use of periodic snapshots makes it more robust against partial data
    2.46 @@ -220,6 +228,35 @@
    2.47  amount of data that Mercurial needs to read, which yields large
    2.48  performance improvements compared to other revision control systems.
    2.49  
    2.50 +\section{Revision history, branching,
    2.51 +  and merging}
    2.52 +
    2.53 +Every entry in a Mercurial revlog knows the identity of its immediate
    2.54 +ancestor revision, usually referred to as its \emph{parent}.  In fact,
    2.55 +a revision contains room for not one parent, but two.  Mercurial uses
    2.56 +a special hash, called the ``null ID'', to represent the idea ``there
    2.57 +is no parent here''.  This hash is simply a string of zeroes.
    2.58 +
    2.59 +In figure~\ref{fig:concepts:revlog}, you can see an example of the
    2.60 +conceptual structure of a revlog.  Filelogs, manifests, and changelogs
    2.61 +all have this same structure; they differ only in the kind of data
    2.62 +stored in each delta or snapshot.
    2.63 +
    2.64 +The first revision in a revlog (at the bottom of the image) has the
    2.65 +null ID in both of its parent slots.  For a ``normal'' revision, its
    2.66 +first parent slot contains the ID of its parent revision, and its
    2.67 +second contains the null ID, indicating that the revision has only one
    2.68 +real parent.  Any two revisions that have the same parent ID are
    2.69 +branches.  A revision that represents a merge between branches has two
    2.70 +normal revision IDs in its parent slots.
    2.71 +
    2.72 +\begin{figure}[ht]
    2.73 +  \centering
    2.74 +  \grafix{revlog}
    2.75 +  \caption{}
    2.76 +  \label{fig:concepts:revlog}
    2.77 +\end{figure}
    2.78 +
    2.79  \section{Other interesting design features}
    2.80  
    2.81  In the sections above, I've tried to highlight some of the most
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/en/revlog.svg	Mon Nov 13 13:21:29 2006 -0800
     3.3 @@ -0,0 +1,1155 @@
     3.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     3.5 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
     3.6 +<svg
     3.7 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
     3.8 +   xmlns:cc="http://web.resource.org/cc/"
     3.9 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    3.10 +   xmlns:svg="http://www.w3.org/2000/svg"
    3.11 +   xmlns="http://www.w3.org/2000/svg"
    3.12 +   xmlns:xlink="http://www.w3.org/1999/xlink"
    3.13 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    3.14 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    3.15 +   width="744.09448819"
    3.16 +   height="1052.3622047"
    3.17 +   id="svg2"
    3.18 +   sodipodi:version="0.32"
    3.19 +   inkscape:version="0.44.1"
    3.20 +   sodipodi:docbase="/home/bos/hg/hgbook/en"
    3.21 +   sodipodi:docname="revlog.svg">
    3.22 +  <defs
    3.23 +     id="defs4">
    3.24 +    <marker
    3.25 +       inkscape:stockid="Arrow1Mend"
    3.26 +       orient="auto"
    3.27 +       refY="0.0"
    3.28 +       refX="0.0"
    3.29 +       id="Arrow1Mend"
    3.30 +       style="overflow:visible;">
    3.31 +      <path
    3.32 +         id="path4852"
    3.33 +         d="M 0.0,0.0 L 5.0,-5.0 L -12.5,0.0 L 5.0,5.0 L 0.0,0.0 z "
    3.34 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
    3.35 +         transform="scale(0.4) rotate(180) translate(10,0)" />
    3.36 +    </marker>
    3.37 +    <linearGradient
    3.38 +       id="linearGradient3092">
    3.39 +      <stop
    3.40 +         style="stop-color:#44436f;stop-opacity:1;"
    3.41 +         offset="0"
    3.42 +         id="stop3094" />
    3.43 +      <stop
    3.44 +         style="stop-color:#abade5;stop-opacity:1;"
    3.45 +         offset="1"
    3.46 +         id="stop3096" />
    3.47 +    </linearGradient>
    3.48 +    <linearGradient
    3.49 +       inkscape:collect="always"
    3.50 +       xlink:href="#linearGradient3092"
    3.51 +       id="linearGradient3118"
    3.52 +       gradientUnits="userSpaceOnUse"
    3.53 +       x1="176.16635"
    3.54 +       y1="405.21934"
    3.55 +       x2="417.11935"
    3.56 +       y2="405.21934" />
    3.57 +    <linearGradient
    3.58 +       inkscape:collect="always"
    3.59 +       xlink:href="#linearGradient3092"
    3.60 +       id="linearGradient3120"
    3.61 +       gradientUnits="userSpaceOnUse"
    3.62 +       x1="176.16635"
    3.63 +       y1="405.21934"
    3.64 +       x2="417.11935"
    3.65 +       y2="405.21934" />
    3.66 +    <linearGradient
    3.67 +       inkscape:collect="always"
    3.68 +       xlink:href="#linearGradient3092"
    3.69 +       id="linearGradient3129"
    3.70 +       gradientUnits="userSpaceOnUse"
    3.71 +       x1="176.16635"
    3.72 +       y1="405.21934"
    3.73 +       x2="417.11935"
    3.74 +       y2="405.21934"
    3.75 +       gradientTransform="translate(-0.928574,-1.428574)" />
    3.76 +    <linearGradient
    3.77 +       inkscape:collect="always"
    3.78 +       xlink:href="#linearGradient3092"
    3.79 +       id="linearGradient3133"
    3.80 +       gradientUnits="userSpaceOnUse"
    3.81 +       x1="176.16635"
    3.82 +       y1="405.21934"
    3.83 +       x2="417.11935"
    3.84 +       y2="405.21934"
    3.85 +       gradientTransform="translate(-0.928574,-1.428574)" />
    3.86 +    <linearGradient
    3.87 +       inkscape:collect="always"
    3.88 +       xlink:href="#linearGradient3092"
    3.89 +       id="linearGradient3708"
    3.90 +       gradientUnits="userSpaceOnUse"
    3.91 +       gradientTransform="matrix(0.423343,0,0,0.423343,138.874,-67.01732)"
    3.92 +       x1="175.23776"
    3.93 +       y1="509.98154"
    3.94 +       x2="416.29077"
    3.95 +       y2="297.49997" />
    3.96 +    <linearGradient
    3.97 +       inkscape:collect="always"
    3.98 +       xlink:href="#linearGradient3092"
    3.99 +       id="linearGradient5164"
   3.100 +       gradientUnits="userSpaceOnUse"
   3.101 +       gradientTransform="matrix(0.423343,0,0,0.423343,198.249,247.4358)"
   3.102 +       x1="175.23776"
   3.103 +       y1="509.98154"
   3.104 +       x2="416.29077"
   3.105 +       y2="297.49997" />
   3.106 +    <linearGradient
   3.107 +       inkscape:collect="always"
   3.108 +       xlink:href="#linearGradient3092"
   3.109 +       id="linearGradient5584"
   3.110 +       gradientUnits="userSpaceOnUse"
   3.111 +       gradientTransform="matrix(0.423343,0,0,0.423343,143.9081,371.2915)"
   3.112 +       x1="175.23776"
   3.113 +       y1="509.98154"
   3.114 +       x2="416.29077"
   3.115 +       y2="297.49997" />
   3.116 +    <linearGradient
   3.117 +       inkscape:collect="always"
   3.118 +       xlink:href="#linearGradient3092"
   3.119 +       id="linearGradient5784"
   3.120 +       gradientUnits="userSpaceOnUse"
   3.121 +       gradientTransform="matrix(0.423343,0,0,0.423343,76.37397,152.137)"
   3.122 +       x1="175.23776"
   3.123 +       y1="509.98154"
   3.124 +       x2="416.29077"
   3.125 +       y2="297.49997" />
   3.126 +    <linearGradient
   3.127 +       inkscape:collect="always"
   3.128 +       xlink:href="#linearGradient3092"
   3.129 +       id="linearGradient5786"
   3.130 +       gradientUnits="userSpaceOnUse"
   3.131 +       gradientTransform="matrix(0.423343,0,0,0.423343,198.249,152.137)"
   3.132 +       x1="175.23776"
   3.133 +       y1="509.98154"
   3.134 +       x2="416.29077"
   3.135 +       y2="297.49997" />
   3.136 +    <linearGradient
   3.137 +       inkscape:collect="always"
   3.138 +       xlink:href="#linearGradient3092"
   3.139 +       id="linearGradient5895"
   3.140 +       gradientUnits="userSpaceOnUse"
   3.141 +       gradientTransform="matrix(0.423343,0,0,0.423343,198.0215,261.7142)"
   3.142 +       x1="175.23776"
   3.143 +       y1="509.98154"
   3.144 +       x2="416.29077"
   3.145 +       y2="297.49997" />
   3.146 +    <linearGradient
   3.147 +       inkscape:collect="always"
   3.148 +       xlink:href="#linearGradient3092"
   3.149 +       id="linearGradient5958"
   3.150 +       gradientUnits="userSpaceOnUse"
   3.151 +       gradientTransform="matrix(0.423343,0,0,0.423343,137.1978,42.55987)"
   3.152 +       x1="175.23776"
   3.153 +       y1="509.98154"
   3.154 +       x2="416.29077"
   3.155 +       y2="297.49997" />
   3.156 +  </defs>
   3.157 +  <sodipodi:namedview
   3.158 +     id="base"
   3.159 +     pagecolor="#ffffff"
   3.160 +     bordercolor="#666666"
   3.161 +     borderopacity="1.0"
   3.162 +     gridtolerance="10000"
   3.163 +     guidetolerance="10"
   3.164 +     objecttolerance="10"
   3.165 +     inkscape:pageopacity="0.0"
   3.166 +     inkscape:pageshadow="2"
   3.167 +     inkscape:zoom="0.64"
   3.168 +     inkscape:cx="566.02368"
   3.169 +     inkscape:cy="688.16826"
   3.170 +     inkscape:document-units="px"
   3.171 +     inkscape:current-layer="layer1"
   3.172 +     inkscape:window-width="906"
   3.173 +     inkscape:window-height="620"
   3.174 +     inkscape:window-x="29"
   3.175 +     inkscape:window-y="79"
   3.176 +     inkscape:connector-spacing="11" />
   3.177 +  <metadata
   3.178 +     id="metadata7">
   3.179 +    <rdf:RDF>
   3.180 +      <cc:Work
   3.181 +         rdf:about="">
   3.182 +        <dc:format>image/svg+xml</dc:format>
   3.183 +        <dc:type
   3.184 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
   3.185 +      </cc:Work>
   3.186 +    </rdf:RDF>
   3.187 +  </metadata>
   3.188 +  <g
   3.189 +     inkscape:label="Layer 1"
   3.190 +     inkscape:groupmode="layer"
   3.191 +     id="layer1">
   3.192 +    <rect
   3.193 +       y="168.74846"
   3.194 +       x="211.58516"
   3.195 +       height="89.506805"
   3.196 +       width="101.60232"
   3.197 +       id="rect3068"
   3.198 +       style="fill:url(#linearGradient5958);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.199 +    <g
   3.200 +       id="g3215"
   3.201 +       transform="matrix(0.423343,0,0,0.423343,137.1977,42.55985)">
   3.202 +      <rect
   3.203 +         y="447.71451"
   3.204 +         x="299.67859"
   3.205 +         height="48.571426"
   3.206 +         width="103.14286"
   3.207 +         id="rect2899"
   3.208 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.209 +      <text
   3.210 +         id="text2903"
   3.211 +         y="464.8139"
   3.212 +         x="308.89639"
   3.213 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.214 +         xml:space="preserve"><tspan
   3.215 +           y="464.8139"
   3.216 +           x="308.89639"
   3.217 +           sodipodi:role="line"
   3.218 +           id="tspan2905">Second parent</tspan></text>
   3.219 +      <text
   3.220 +         id="text2907"
   3.221 +         y="485.50256"
   3.222 +         x="308.20175"
   3.223 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.224 +         xml:space="preserve"><tspan
   3.225 +           style="font-family:Courier"
   3.226 +           y="485.50256"
   3.227 +           x="308.20175"
   3.228 +           id="tspan2909"
   3.229 +           sodipodi:role="line">32bf9a5f22c0</tspan></text>
   3.230 +    </g>
   3.231 +    <g
   3.232 +       id="g3250"
   3.233 +       transform="matrix(0.423343,0,0,0.423343,137.1977,42.55986)">
   3.234 +      <rect
   3.235 +         y="311.28598"
   3.236 +         x="188.6071"
   3.237 +         height="48.571426"
   3.238 +         width="103.14286"
   3.239 +         id="rect2936"
   3.240 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.241 +      <text
   3.242 +         id="text2940"
   3.243 +         y="328.38538"
   3.244 +         x="197.82495"
   3.245 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.246 +         xml:space="preserve"><tspan
   3.247 +           y="328.38538"
   3.248 +           x="197.82495"
   3.249 +           sodipodi:role="line"
   3.250 +           id="tspan2942">Revision hash</tspan></text>
   3.251 +      <text
   3.252 +         id="text2944"
   3.253 +         y="349.07404"
   3.254 +         x="197.13031"
   3.255 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.256 +         xml:space="preserve"><tspan
   3.257 +           style="font-family:Courier"
   3.258 +           y="349.07404"
   3.259 +           x="197.13031"
   3.260 +           id="tspan2946"
   3.261 +           sodipodi:role="line">34b8b7a15ea1</tspan></text>
   3.262 +    </g>
   3.263 +    <g
   3.264 +       id="g3243"
   3.265 +       transform="matrix(0.423343,0,0,0.423343,137.6664,43.91853)">
   3.266 +      <rect
   3.267 +         y="363.07654"
   3.268 +         x="187.5"
   3.269 +         height="75"
   3.270 +         width="213.85715"
   3.271 +         id="rect2950"
   3.272 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.273 +      <text
   3.274 +         id="text2958"
   3.275 +         y="400.86459"
   3.276 +         x="196.02321"
   3.277 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.278 +         xml:space="preserve"><tspan
   3.279 +           style="fill:black;fill-opacity:1;font-family:Courier"
   3.280 +           y="400.86459"
   3.281 +           x="196.02321"
   3.282 +           id="tspan2960"
   3.283 +           sodipodi:role="line">...</tspan></text>
   3.284 +      <text
   3.285 +         id="text2954"
   3.286 +         y="380.17593"
   3.287 +         x="196.71785"
   3.288 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.289 +         xml:space="preserve"><tspan
   3.290 +           y="380.17593"
   3.291 +           x="196.71785"
   3.292 +           sodipodi:role="line"
   3.293 +           id="tspan2956"
   3.294 +           style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text>
   3.295 +    </g>
   3.296 +    <g
   3.297 +       id="g5529"
   3.298 +       transform="translate(-6.710312,-8.165836e-6)">
   3.299 +      <rect
   3.300 +         style="fill:url(#linearGradient5584);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.301 +         id="rect3509"
   3.302 +         width="101.60232"
   3.303 +         height="89.506805"
   3.304 +         x="218.29547"
   3.305 +         y="497.4801" />
   3.306 +      <g
   3.307 +         transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)"
   3.308 +         id="g3513">
   3.309 +        <g
   3.310 +           id="g3515">
   3.311 +          <rect
   3.312 +             y="447.72418"
   3.313 +             x="188.6071"
   3.314 +             height="48.571426"
   3.315 +             width="103.14286"
   3.316 +             id="rect3517"
   3.317 +             style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.318 +          <text
   3.319 +             id="text3519"
   3.320 +             y="464.82358"
   3.321 +             x="197.82495"
   3.322 +             style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.323 +             xml:space="preserve"><tspan
   3.324 +               y="464.82358"
   3.325 +               x="197.82495"
   3.326 +               sodipodi:role="line"
   3.327 +               id="tspan3521">First parent</tspan></text>
   3.328 +          <text
   3.329 +             id="text3523"
   3.330 +             y="485.51224"
   3.331 +             x="197.13031"
   3.332 +             style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.333 +             xml:space="preserve"><tspan
   3.334 +               style="font-family:Courier"
   3.335 +               y="485.51224"
   3.336 +               x="197.13031"
   3.337 +               id="tspan3525"
   3.338 +               sodipodi:role="line">000000000000</tspan></text>
   3.339 +        </g>
   3.340 +        <g
   3.341 +           id="g3527">
   3.342 +          <rect
   3.343 +             y="447.71451"
   3.344 +             x="299.67859"
   3.345 +             height="48.571426"
   3.346 +             width="103.14286"
   3.347 +             id="rect3529"
   3.348 +             style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.349 +          <text
   3.350 +             id="text3531"
   3.351 +             y="464.8139"
   3.352 +             x="308.89639"
   3.353 +             style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.354 +             xml:space="preserve"><tspan
   3.355 +               y="464.8139"
   3.356 +               x="308.89639"
   3.357 +               sodipodi:role="line"
   3.358 +               id="tspan3533">Second parent</tspan></text>
   3.359 +          <text
   3.360 +             id="text3535"
   3.361 +             y="485.50256"
   3.362 +             x="308.20175"
   3.363 +             style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.364 +             xml:space="preserve"><tspan
   3.365 +               style="font-family:Courier"
   3.366 +               y="485.50256"
   3.367 +               x="308.20175"
   3.368 +               id="tspan3537"
   3.369 +               sodipodi:role="line">000000000000</tspan></text>
   3.370 +        </g>
   3.371 +      </g>
   3.372 +      <g
   3.373 +         transform="matrix(0.423343,0,0,0.423343,143.908,371.2915)"
   3.374 +         id="g3539">
   3.375 +        <rect
   3.376 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.377 +           id="rect3541"
   3.378 +           width="103.14286"
   3.379 +           height="48.571426"
   3.380 +           x="188.6071"
   3.381 +           y="311.28598" />
   3.382 +        <text
   3.383 +           xml:space="preserve"
   3.384 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.385 +           x="197.82495"
   3.386 +           y="328.38538"
   3.387 +           id="text3543"><tspan
   3.388 +             id="tspan3545"
   3.389 +             sodipodi:role="line"
   3.390 +             x="197.82495"
   3.391 +             y="328.38538">Revision hash</tspan></text>
   3.392 +        <text
   3.393 +           xml:space="preserve"
   3.394 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.395 +           x="197.13031"
   3.396 +           y="349.07404"
   3.397 +           id="text3547"><tspan
   3.398 +             sodipodi:role="line"
   3.399 +             id="tspan3549"
   3.400 +             x="197.13031"
   3.401 +             y="349.07404"
   3.402 +             style="font-family:Courier">ff9dc8bc2a8b</tspan></text>
   3.403 +      </g>
   3.404 +      <g
   3.405 +         transform="matrix(0.423343,0,0,0.423343,144.3767,372.6502)"
   3.406 +         id="g3551">
   3.407 +        <rect
   3.408 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.409 +           id="rect3553"
   3.410 +           width="213.85715"
   3.411 +           height="75"
   3.412 +           x="187.5"
   3.413 +           y="363.07654" />
   3.414 +        <text
   3.415 +           xml:space="preserve"
   3.416 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.417 +           x="196.02321"
   3.418 +           y="400.86459"
   3.419 +           id="text3555"><tspan
   3.420 +             sodipodi:role="line"
   3.421 +             id="tspan3557"
   3.422 +             x="196.02321"
   3.423 +             y="400.86459"
   3.424 +             style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text>
   3.425 +        <text
   3.426 +           xml:space="preserve"
   3.427 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.428 +           x="196.71785"
   3.429 +           y="380.17593"
   3.430 +           id="text3559"><tspan
   3.431 +             style="fill:black;fill-opacity:1"
   3.432 +             id="tspan3561"
   3.433 +             sodipodi:role="line"
   3.434 +             x="196.71785"
   3.435 +             y="380.17593">Revision data (delta or snapshot)</tspan></text>
   3.436 +      </g>
   3.437 +    </g>
   3.438 +    <g
   3.439 +       id="g4868"
   3.440 +       transform="translate(-1.676208,-2.342463e-5)">
   3.441 +      <rect
   3.442 +         style="fill:url(#linearGradient3708);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.443 +         id="rect3567"
   3.444 +         width="101.60232"
   3.445 +         height="89.506805"
   3.446 +         x="213.26137"
   3.447 +         y="59.171272" />
   3.448 +      <g
   3.449 +         transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)"
   3.450 +         id="g3573">
   3.451 +        <rect
   3.452 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.453 +           id="rect3575"
   3.454 +           width="103.14286"
   3.455 +           height="48.571426"
   3.456 +           x="188.6071"
   3.457 +           y="447.72418" />
   3.458 +        <text
   3.459 +           xml:space="preserve"
   3.460 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.461 +           x="197.82495"
   3.462 +           y="464.82358"
   3.463 +           id="text3577"><tspan
   3.464 +             id="tspan3579"
   3.465 +             sodipodi:role="line"
   3.466 +             x="197.82495"
   3.467 +             y="464.82358">First parent</tspan></text>
   3.468 +        <text
   3.469 +           xml:space="preserve"
   3.470 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.471 +           x="197.13031"
   3.472 +           y="485.51224"
   3.473 +           id="text3581"><tspan
   3.474 +             sodipodi:role="line"
   3.475 +             id="tspan3583"
   3.476 +             x="197.13031"
   3.477 +             y="485.51224"
   3.478 +             style="font-family:Courier">34b8b7a15ea1</tspan></text>
   3.479 +      </g>
   3.480 +      <g
   3.481 +         transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01734)"
   3.482 +         id="g3585">
   3.483 +        <rect
   3.484 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.485 +           id="rect3587"
   3.486 +           width="103.14286"
   3.487 +           height="48.571426"
   3.488 +           x="299.67859"
   3.489 +           y="447.71451" />
   3.490 +        <text
   3.491 +           xml:space="preserve"
   3.492 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.493 +           x="308.89639"
   3.494 +           y="464.8139"
   3.495 +           id="text3589"><tspan
   3.496 +             id="tspan3591"
   3.497 +             sodipodi:role="line"
   3.498 +             x="308.89639"
   3.499 +             y="464.8139">Second parent</tspan></text>
   3.500 +        <text
   3.501 +           xml:space="preserve"
   3.502 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.503 +           x="308.20175"
   3.504 +           y="485.50256"
   3.505 +           id="text3593"><tspan
   3.506 +             sodipodi:role="line"
   3.507 +             id="tspan3595"
   3.508 +             x="308.20175"
   3.509 +             y="485.50256"
   3.510 +             style="font-family:Courier">000000000000</tspan></text>
   3.511 +      </g>
   3.512 +      <g
   3.513 +         transform="matrix(0.423343,0,0,0.423343,138.8739,-67.01733)"
   3.514 +         id="g3597">
   3.515 +        <rect
   3.516 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.517 +           id="rect3599"
   3.518 +           width="103.14286"
   3.519 +           height="48.571426"
   3.520 +           x="188.6071"
   3.521 +           y="311.28598" />
   3.522 +        <text
   3.523 +           xml:space="preserve"
   3.524 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.525 +           x="197.82495"
   3.526 +           y="328.38538"
   3.527 +           id="text3601"><tspan
   3.528 +             id="tspan3603"
   3.529 +             sodipodi:role="line"
   3.530 +             x="197.82495"
   3.531 +             y="328.38538">Revision hash</tspan></text>
   3.532 +        <text
   3.533 +           xml:space="preserve"
   3.534 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.535 +           x="197.13031"
   3.536 +           y="349.07404"
   3.537 +           id="text3605"><tspan
   3.538 +             sodipodi:role="line"
   3.539 +             id="tspan3607"
   3.540 +             x="197.13031"
   3.541 +             y="349.07404"
   3.542 +             style="font-family:Courier">1b67dc96f27a</tspan></text>
   3.543 +      </g>
   3.544 +      <g
   3.545 +         transform="matrix(0.423343,0,0,0.423343,139.3426,-65.65866)"
   3.546 +         id="g3609">
   3.547 +        <rect
   3.548 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.549 +           id="rect3611"
   3.550 +           width="213.85715"
   3.551 +           height="75"
   3.552 +           x="187.5"
   3.553 +           y="363.07654" />
   3.554 +        <text
   3.555 +           xml:space="preserve"
   3.556 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.557 +           x="196.02321"
   3.558 +           y="400.86459"
   3.559 +           id="text3613"><tspan
   3.560 +             sodipodi:role="line"
   3.561 +             id="tspan3615"
   3.562 +             x="196.02321"
   3.563 +             y="400.86459"
   3.564 +             style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text>
   3.565 +        <text
   3.566 +           xml:space="preserve"
   3.567 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.568 +           x="196.71785"
   3.569 +           y="380.17593"
   3.570 +           id="text3617"><tspan
   3.571 +             style="fill:black;fill-opacity:1"
   3.572 +             id="tspan3619"
   3.573 +             sodipodi:role="line"
   3.574 +             x="196.71785"
   3.575 +             y="380.17593">Revision data (delta or snapshot)</tspan></text>
   3.576 +      </g>
   3.577 +    </g>
   3.578 +    <path
   3.579 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-start:none;marker-end:url(#Arrow1Mend)"
   3.580 +       d="M 240.78255,143.08593 L 241.42595,171.75349"
   3.581 +       id="path3801"
   3.582 +       inkscape:connector-type="polyline"
   3.583 +       inkscape:connection-start="#g3573"
   3.584 +       inkscape:connection-end="#g3250" />
   3.585 +    <g
   3.586 +       id="g5677">
   3.587 +      <rect
   3.588 +         style="fill:url(#linearGradient5784);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.589 +         id="rect3393"
   3.590 +         width="101.60232"
   3.591 +         height="89.506805"
   3.592 +         x="150.76137"
   3.593 +         y="278.32565" />
   3.594 +      <g
   3.595 +         transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)"
   3.596 +         id="g3399">
   3.597 +        <rect
   3.598 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.599 +           id="rect3401"
   3.600 +           width="103.14286"
   3.601 +           height="48.571426"
   3.602 +           x="188.6071"
   3.603 +           y="447.72418" />
   3.604 +        <text
   3.605 +           xml:space="preserve"
   3.606 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.607 +           x="197.82495"
   3.608 +           y="464.82358"
   3.609 +           id="text3403"><tspan
   3.610 +             id="tspan3405"
   3.611 +             sodipodi:role="line"
   3.612 +             x="197.82495"
   3.613 +             y="464.82358">First parent</tspan></text>
   3.614 +        <text
   3.615 +           xml:space="preserve"
   3.616 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.617 +           x="197.13031"
   3.618 +           y="485.51224"
   3.619 +           id="text3407"><tspan
   3.620 +             sodipodi:role="line"
   3.621 +             id="tspan3409"
   3.622 +             x="197.13031"
   3.623 +             y="485.51224"
   3.624 +             style="font-family:Courier">ff9dc8bc2a8b</tspan></text>
   3.625 +      </g>
   3.626 +      <g
   3.627 +         transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)"
   3.628 +         id="g3411">
   3.629 +        <rect
   3.630 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.631 +           id="rect3413"
   3.632 +           width="103.14286"
   3.633 +           height="48.571426"
   3.634 +           x="299.67859"
   3.635 +           y="447.71451" />
   3.636 +        <text
   3.637 +           xml:space="preserve"
   3.638 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.639 +           x="308.89639"
   3.640 +           y="464.8139"
   3.641 +           id="text3415"><tspan
   3.642 +             id="tspan3417"
   3.643 +             sodipodi:role="line"
   3.644 +             x="308.89639"
   3.645 +             y="464.8139">Second parent</tspan></text>
   3.646 +        <text
   3.647 +           xml:space="preserve"
   3.648 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.649 +           x="308.20175"
   3.650 +           y="485.50256"
   3.651 +           id="text3419"><tspan
   3.652 +             sodipodi:role="line"
   3.653 +             id="tspan3421"
   3.654 +             x="308.20175"
   3.655 +             y="485.50256"
   3.656 +             style="font-family:Courier">000000000000</tspan></text>
   3.657 +      </g>
   3.658 +      <g
   3.659 +         transform="matrix(0.423343,0,0,0.423343,76.37397,152.137)"
   3.660 +         id="g3423">
   3.661 +        <rect
   3.662 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.663 +           id="rect3425"
   3.664 +           width="103.14286"
   3.665 +           height="48.571426"
   3.666 +           x="188.6071"
   3.667 +           y="311.28598" />
   3.668 +        <text
   3.669 +           xml:space="preserve"
   3.670 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.671 +           x="197.82495"
   3.672 +           y="328.38538"
   3.673 +           id="text3427"><tspan
   3.674 +             id="tspan3429"
   3.675 +             sodipodi:role="line"
   3.676 +             x="197.82495"
   3.677 +             y="328.38538">Revision hash</tspan></text>
   3.678 +        <text
   3.679 +           xml:space="preserve"
   3.680 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.681 +           x="197.13031"
   3.682 +           y="349.07404"
   3.683 +           id="text3431"><tspan
   3.684 +             sodipodi:role="line"
   3.685 +             id="tspan3433"
   3.686 +             x="197.13031"
   3.687 +             y="349.07404"
   3.688 +             style="font-family:Courier">5b80c922ebdd</tspan></text>
   3.689 +      </g>
   3.690 +      <g
   3.691 +         transform="matrix(0.423343,0,0,0.423343,76.84265,153.4957)"
   3.692 +         id="g3435">
   3.693 +        <rect
   3.694 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.695 +           id="rect3437"
   3.696 +           width="213.85715"
   3.697 +           height="75"
   3.698 +           x="187.5"
   3.699 +           y="363.07654" />
   3.700 +        <text
   3.701 +           xml:space="preserve"
   3.702 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.703 +           x="196.02321"
   3.704 +           y="400.86459"
   3.705 +           id="text3439"><tspan
   3.706 +             sodipodi:role="line"
   3.707 +             id="tspan3441"
   3.708 +             x="196.02321"
   3.709 +             y="400.86459"
   3.710 +             style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text>
   3.711 +        <text
   3.712 +           xml:space="preserve"
   3.713 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.714 +           x="196.71785"
   3.715 +           y="380.17593"
   3.716 +           id="text3443"><tspan
   3.717 +             style="fill:black;fill-opacity:1"
   3.718 +             id="tspan3445"
   3.719 +             sodipodi:role="line"
   3.720 +             x="196.71785"
   3.721 +             y="380.17593">Revision data (delta or snapshot)</tspan></text>
   3.722 +      </g>
   3.723 +    </g>
   3.724 +    <g
   3.725 +       id="g5646"
   3.726 +       transform="translate(-0.227432,0)">
   3.727 +      <rect
   3.728 +         style="fill:url(#linearGradient5786);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.729 +         id="rect3451"
   3.730 +         width="101.60232"
   3.731 +         height="89.506805"
   3.732 +         x="272.63638"
   3.733 +         y="278.32565" />
   3.734 +      <g
   3.735 +         transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)"
   3.736 +         id="g3457">
   3.737 +        <rect
   3.738 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.739 +           id="rect3459"
   3.740 +           width="103.14286"
   3.741 +           height="48.571426"
   3.742 +           x="188.6071"
   3.743 +           y="447.72418" />
   3.744 +        <text
   3.745 +           xml:space="preserve"
   3.746 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.747 +           x="197.82495"
   3.748 +           y="464.82358"
   3.749 +           id="text3461"><tspan
   3.750 +             id="tspan3463"
   3.751 +             sodipodi:role="line"
   3.752 +             x="197.82495"
   3.753 +             y="464.82358">First parent</tspan></text>
   3.754 +        <text
   3.755 +           xml:space="preserve"
   3.756 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.757 +           x="197.13031"
   3.758 +           y="485.51224"
   3.759 +           id="text3465"><tspan
   3.760 +             sodipodi:role="line"
   3.761 +             id="tspan3467"
   3.762 +             x="197.13031"
   3.763 +             y="485.51224"
   3.764 +             style="font-family:Courier">ecacb6b4c9fd</tspan></text>
   3.765 +      </g>
   3.766 +      <g
   3.767 +         transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)"
   3.768 +         id="g3469">
   3.769 +        <rect
   3.770 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.771 +           id="rect3471"
   3.772 +           width="103.14286"
   3.773 +           height="48.571426"
   3.774 +           x="299.67859"
   3.775 +           y="447.71451" />
   3.776 +        <text
   3.777 +           xml:space="preserve"
   3.778 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.779 +           x="308.89639"
   3.780 +           y="464.8139"
   3.781 +           id="text3473"><tspan
   3.782 +             id="tspan3475"
   3.783 +             sodipodi:role="line"
   3.784 +             x="308.89639"
   3.785 +             y="464.8139">Second parent</tspan></text>
   3.786 +        <text
   3.787 +           xml:space="preserve"
   3.788 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.789 +           x="308.20175"
   3.790 +           y="485.50256"
   3.791 +           id="text3477"><tspan
   3.792 +             sodipodi:role="line"
   3.793 +             id="tspan3479"
   3.794 +             x="308.20175"
   3.795 +             y="485.50256"
   3.796 +             style="font-family:Courier">000000000000</tspan></text>
   3.797 +      </g>
   3.798 +      <g
   3.799 +         transform="matrix(0.423343,0,0,0.423343,198.2489,152.137)"
   3.800 +         id="g3481">
   3.801 +        <rect
   3.802 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.803 +           id="rect3483"
   3.804 +           width="103.14286"
   3.805 +           height="48.571426"
   3.806 +           x="188.6071"
   3.807 +           y="311.28598" />
   3.808 +        <text
   3.809 +           xml:space="preserve"
   3.810 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.811 +           x="197.82495"
   3.812 +           y="328.38538"
   3.813 +           id="text3485"><tspan
   3.814 +             id="tspan3487"
   3.815 +             sodipodi:role="line"
   3.816 +             x="197.82495"
   3.817 +             y="328.38538">Revision hash</tspan></text>
   3.818 +        <text
   3.819 +           xml:space="preserve"
   3.820 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.821 +           x="197.13031"
   3.822 +           y="349.07404"
   3.823 +           id="text3489"><tspan
   3.824 +             sodipodi:role="line"
   3.825 +             id="tspan3491"
   3.826 +             x="197.13031"
   3.827 +             y="349.07404"
   3.828 +             style="font-family:Courier">32bf9a5f22c0</tspan></text>
   3.829 +      </g>
   3.830 +      <g
   3.831 +         transform="matrix(0.423343,0,0,0.423343,198.7176,153.4957)"
   3.832 +         id="g3493">
   3.833 +        <rect
   3.834 +           style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.835 +           id="rect3495"
   3.836 +           width="213.85715"
   3.837 +           height="75"
   3.838 +           x="187.5"
   3.839 +           y="363.07654" />
   3.840 +        <text
   3.841 +           xml:space="preserve"
   3.842 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.843 +           x="196.02321"
   3.844 +           y="400.86459"
   3.845 +           id="text3497"><tspan
   3.846 +             sodipodi:role="line"
   3.847 +             id="tspan3499"
   3.848 +             x="196.02321"
   3.849 +             y="400.86459"
   3.850 +             style="fill:black;fill-opacity:1;font-family:Courier">...</tspan></text>
   3.851 +        <text
   3.852 +           xml:space="preserve"
   3.853 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.854 +           x="196.71785"
   3.855 +           y="380.17593"
   3.856 +           id="text3501"><tspan
   3.857 +             style="fill:black;fill-opacity:1"
   3.858 +             id="tspan3503"
   3.859 +             sodipodi:role="line"
   3.860 +             x="196.71785"
   3.861 +             y="380.17593">Revision data (delta or snapshot)</tspan></text>
   3.862 +      </g>
   3.863 +    </g>
   3.864 +    <rect
   3.865 +       y="387.90286"
   3.866 +       x="272.40894"
   3.867 +       height="89.506805"
   3.868 +       width="101.60232"
   3.869 +       id="rect5081"
   3.870 +       style="fill:url(#linearGradient5895);fill-opacity:1;stroke:black;stroke-width:0.48811448;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.871 +    <g
   3.872 +       id="g5087"
   3.873 +       transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)">
   3.874 +      <rect
   3.875 +         y="447.72418"
   3.876 +         x="188.6071"
   3.877 +         height="48.571426"
   3.878 +         width="103.14286"
   3.879 +         id="rect5089"
   3.880 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.881 +      <text
   3.882 +         id="text5091"
   3.883 +         y="464.82358"
   3.884 +         x="197.82495"
   3.885 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.886 +         xml:space="preserve"><tspan
   3.887 +           y="464.82358"
   3.888 +           x="197.82495"
   3.889 +           sodipodi:role="line"
   3.890 +           id="tspan5093">First parent</tspan></text>
   3.891 +      <text
   3.892 +         id="text5095"
   3.893 +         y="485.51224"
   3.894 +         x="197.13031"
   3.895 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.896 +         xml:space="preserve"><tspan
   3.897 +           style="font-family:Courier"
   3.898 +           y="485.51224"
   3.899 +           x="197.13031"
   3.900 +           id="tspan5097"
   3.901 +           sodipodi:role="line">ff9dc8bc2a8b</tspan></text>
   3.902 +    </g>
   3.903 +    <g
   3.904 +       id="g5099"
   3.905 +       transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)">
   3.906 +      <rect
   3.907 +         y="447.71451"
   3.908 +         x="299.67859"
   3.909 +         height="48.571426"
   3.910 +         width="103.14286"
   3.911 +         id="rect5101"
   3.912 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.913 +      <text
   3.914 +         id="text5103"
   3.915 +         y="464.8139"
   3.916 +         x="308.89639"
   3.917 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.918 +         xml:space="preserve"><tspan
   3.919 +           y="464.8139"
   3.920 +           x="308.89639"
   3.921 +           sodipodi:role="line"
   3.922 +           id="tspan5105">Second parent</tspan></text>
   3.923 +      <text
   3.924 +         id="text5107"
   3.925 +         y="485.50256"
   3.926 +         x="308.20175"
   3.927 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.928 +         xml:space="preserve"><tspan
   3.929 +           style="font-family:Courier"
   3.930 +           y="485.50256"
   3.931 +           x="308.20175"
   3.932 +           id="tspan5109"
   3.933 +           sodipodi:role="line">000000000000</tspan></text>
   3.934 +    </g>
   3.935 +    <g
   3.936 +       id="g5111"
   3.937 +       transform="matrix(0.423343,0,0,0.423343,198.0214,261.7142)">
   3.938 +      <rect
   3.939 +         y="311.28598"
   3.940 +         x="188.6071"
   3.941 +         height="48.571426"
   3.942 +         width="103.14286"
   3.943 +         id="rect5113"
   3.944 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.945 +      <text
   3.946 +         id="text5115"
   3.947 +         y="328.38538"
   3.948 +         x="197.82495"
   3.949 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.950 +         xml:space="preserve"><tspan
   3.951 +           y="328.38538"
   3.952 +           x="197.82495"
   3.953 +           sodipodi:role="line"
   3.954 +           id="tspan5117">Revision hash</tspan></text>
   3.955 +      <text
   3.956 +         id="text5119"
   3.957 +         y="349.07404"
   3.958 +         x="197.13031"
   3.959 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.960 +         xml:space="preserve"><tspan
   3.961 +           style="font-family:Courier"
   3.962 +           y="349.07404"
   3.963 +           x="197.13031"
   3.964 +           id="tspan5121"
   3.965 +           sodipodi:role="line">ecacb6b4c9fd</tspan></text>
   3.966 +    </g>
   3.967 +    <g
   3.968 +       id="g5123"
   3.969 +       transform="matrix(0.423343,0,0,0.423343,198.4901,263.0729)">
   3.970 +      <rect
   3.971 +         y="363.07654"
   3.972 +         x="187.5"
   3.973 +         height="75"
   3.974 +         width="213.85715"
   3.975 +         id="rect5125"
   3.976 +         style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.977 +      <text
   3.978 +         id="text5127"
   3.979 +         y="400.86459"
   3.980 +         x="196.02321"
   3.981 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.982 +         xml:space="preserve"><tspan
   3.983 +           style="fill:black;fill-opacity:1;font-family:Courier"
   3.984 +           y="400.86459"
   3.985 +           x="196.02321"
   3.986 +           id="tspan5129"
   3.987 +           sodipodi:role="line">...</tspan></text>
   3.988 +      <text
   3.989 +         id="text5131"
   3.990 +         y="380.17593"
   3.991 +         x="196.71785"
   3.992 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.993 +         xml:space="preserve"><tspan
   3.994 +           y="380.17593"
   3.995 +           x="196.71785"
   3.996 +           sodipodi:role="line"
   3.997 +           id="tspan5133"
   3.998 +           style="fill:black;fill-opacity:1">Revision data (delta or snapshot)</tspan></text>
   3.999 +    </g>
  3.1000 +    <path
  3.1001 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline"
  3.1002 +       d="M 299.69935,362.24027 L 299.69931,393.49494"
  3.1003 +       id="path5203"
  3.1004 +       inkscape:connector-type="polyline"
  3.1005 +       inkscape:connection-start="#g3457"
  3.1006 +       inkscape:connection-end="#g5111" />
  3.1007 +    <path
  3.1008 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1"
  3.1009 +       d="M 182.35357,362.22647 L 241.2842,503.07224"
  3.1010 +       id="path5271"
  3.1011 +       inkscape:connector-type="polyline"
  3.1012 +       inkscape:connection-start="#g3399"
  3.1013 +       inkscape:connection-end="#g3539" />
  3.1014 +    <path
  3.1015 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1;display:inline"
  3.1016 +       d="M 287.63109,471.81747 L 250.9438,503.07223"
  3.1017 +       id="path5285"
  3.1018 +       inkscape:connector-type="polyline"
  3.1019 +       inkscape:connection-start="#g5087"
  3.1020 +       inkscape:connection-end="#g3539" />
  3.1021 +    <path
  3.1022 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
  3.1023 +       d="M 290.80419,250.07192 L 297.80065,283.90394"
  3.1024 +       id="path5077"
  3.1025 +       inkscape:connector-type="polyline"
  3.1026 +       inkscape:connection-start="#g3215"
  3.1027 +       inkscape:connection-end="#g3481" />
  3.1028 +    <path
  3.1029 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow1Mend)"
  3.1030 +       d="M 229.63373,250.07601 L 190.07484,283.90394"
  3.1031 +       id="path5075"
  3.1032 +       inkscape:connector-type="polyline"
  3.1033 +       inkscape:connection-end="#g3423" />
  3.1034 +    <text
  3.1035 +       xml:space="preserve"
  3.1036 +       style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1037 +       x="131.5625"
  3.1038 +       y="100.79968"
  3.1039 +       id="text5897"><tspan
  3.1040 +         sodipodi:role="line"
  3.1041 +         id="tspan5899"
  3.1042 +         x="131.5625"
  3.1043 +         y="100.79968"
  3.1044 +         style="text-align:end;text-anchor:end">Head revision</tspan><tspan
  3.1045 +         sodipodi:role="line"
  3.1046 +         x="131.5625"
  3.1047 +         y="115.79968"
  3.1048 +         id="tspan5901"
  3.1049 +         style="text-align:end;text-anchor:end">(no children)</tspan></text>
  3.1050 +    <text
  3.1051 +       xml:space="preserve"
  3.1052 +       style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1053 +       x="131.5625"
  3.1054 +       y="207.04968"
  3.1055 +       id="text5903"><tspan
  3.1056 +         sodipodi:role="line"
  3.1057 +         id="tspan5905"
  3.1058 +         x="131.5625"
  3.1059 +         y="207.04968"
  3.1060 +         style="text-align:end;text-anchor:end">Merge revision</tspan><tspan
  3.1061 +         sodipodi:role="line"
  3.1062 +         x="131.5625"
  3.1063 +         y="222.04968"
  3.1064 +         id="tspan5907"
  3.1065 +         style="text-align:end;text-anchor:end">(two parents)</tspan></text>
  3.1066 +    <text
  3.1067 +       xml:space="preserve"
  3.1068 +       style="font-size:12px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1069 +       x="131.92578"
  3.1070 +       y="451.58093"
  3.1071 +       id="text5909"><tspan
  3.1072 +         sodipodi:role="line"
  3.1073 +         id="tspan5911"
  3.1074 +         x="131.92578"
  3.1075 +         y="451.58093"
  3.1076 +         style="text-align:end;text-anchor:end">Branches</tspan><tspan
  3.1077 +         sodipodi:role="line"
  3.1078 +         x="131.92578"
  3.1079 +         y="466.58093"
  3.1080 +         id="tspan5913"
  3.1081 +         style="text-align:end;text-anchor:end">(two revisions,</tspan><tspan
  3.1082 +         sodipodi:role="line"
  3.1083 +         x="131.92578"
  3.1084 +         y="481.58093"
  3.1085 +         id="tspan5915"
  3.1086 +         style="text-align:end;text-anchor:end">same parent)</tspan></text>
  3.1087 +    <path
  3.1088 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
  3.1089 +       d="M 111.71875,433.61218 L 154.7268,368.52294"
  3.1090 +       id="path5917"
  3.1091 +       inkscape:connector-type="polyline" />
  3.1092 +    <path
  3.1093 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
  3.1094 +       d="M 134.375,464.86218 L 277.86691,440.37816"
  3.1095 +       id="path5919"
  3.1096 +       inkscape:connector-type="polyline"
  3.1097 +       inkscape:connection-end="#g5123" />
  3.1098 +    <text
  3.1099 +       xml:space="preserve"
  3.1100 +       style="font-size:12px;font-style:normal;font-weight:normal;text-align:end;text-anchor:end;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1101 +       x="131.5625"
  3.1102 +       y="536.73718"
  3.1103 +       id="text5927"><tspan
  3.1104 +         sodipodi:role="line"
  3.1105 +         id="tspan5929"
  3.1106 +         x="131.5625"
  3.1107 +         y="536.73718">First revision</tspan><tspan
  3.1108 +         sodipodi:role="line"
  3.1109 +         x="131.5625"
  3.1110 +         y="551.73718"
  3.1111 +         id="tspan5931">(both parents null)</tspan></text>
  3.1112 +    <rect
  3.1113 +       style="fill:#bbb4ff;fill-opacity:1;stroke:none;stroke-width:0.95291203;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
  3.1114 +       id="rect2830"
  3.1115 +       width="43.664806"
  3.1116 +       height="20.562374"
  3.1117 +       x="217.0432"
  3.1118 +       y="232.10075" />
  3.1119 +    <text
  3.1120 +       xml:space="preserve"
  3.1121 +       style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1122 +       x="220.94551"
  3.1123 +       y="239.33966"
  3.1124 +       id="text2832"><tspan
  3.1125 +         id="tspan2836"
  3.1126 +         sodipodi:role="line"
  3.1127 +         x="220.94551"
  3.1128 +         y="239.33966">First parent</tspan></text>
  3.1129 +    <text
  3.1130 +       xml:space="preserve"
  3.1131 +       style="font-size:5.0801158px;font-style:normal;font-weight:normal;fill:black;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
  3.1132 +       x="220.65144"
  3.1133 +       y="248.09805"
  3.1134 +       id="text2879"><tspan
  3.1135 +         sodipodi:role="line"
  3.1136 +         id="tspan2881"
  3.1137 +         x="220.65144"
  3.1138 +         y="248.09805"
  3.1139 +         style="font-family:Courier">5b80c922ebdd</tspan></text>
  3.1140 +    <path
  3.1141 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
  3.1142 +       d="M 139.84375,107.83093 L 210.15625,107.83093"
  3.1143 +       id="path5965"
  3.1144 +       inkscape:connector-type="polyline" />
  3.1145 +    <path
  3.1146 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
  3.1147 +       d="M 137.5,213.29968 L 210.49036,214.09055"
  3.1148 +       id="path5967"
  3.1149 +       inkscape:connector-type="polyline" />
  3.1150 +    <path
  3.1151 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:2, 1;stroke-dashoffset:0;stroke-opacity:1;display:inline"
  3.1152 +       d="M 136.34375,544.54968 L 206.65625,544.54968"
  3.1153 +       id="path5969"
  3.1154 +       inkscape:connector-type="polyline"
  3.1155 +       inkscape:transform-center-y="-171.09375"
  3.1156 +       inkscape:transform-center-x="53.90625" />
  3.1157 +  </g>
  3.1158 +</svg>