hgbook

changeset 113:a0f57b3e677e

More concepts, this time working directory stuff.
author Bryan O'Sullivan <bos@serpentine.com>
date Mon Nov 13 14:32:16 2006 -0800 (2006-11-13)
parents 2fcead053b7a
children ccff2b25478e
files en/Makefile en/concepts.tex en/wdir-after-commit.svg en/wdir.svg
line diff
     1.1 --- a/en/Makefile	Mon Nov 13 13:21:29 2006 -0800
     1.2 +++ b/en/Makefile	Mon Nov 13 14:32:16 2006 -0800
     1.3 @@ -31,7 +31,9 @@
     1.4  	tour-merge-conflict.svg \
     1.5  	tour-merge-merge.svg \
     1.6  	tour-merge-pull.svg \
     1.7 -	tour-merge-sep-repos.svg
     1.8 +	tour-merge-sep-repos.svg \
     1.9 +	wdir.svg \
    1.10 +	wdir-after-commit.svg
    1.11  
    1.12  image-svg := $(filter %.svg,$(image-sources))
    1.13  
     2.1 --- a/en/concepts.tex	Mon Nov 13 13:21:29 2006 -0800
     2.2 +++ b/en/concepts.tex	Mon Nov 13 14:32:16 2006 -0800
     2.3 @@ -206,11 +206,70 @@
     2.4  
     2.5  \section{The working directory}
     2.6  
     2.7 -Mercurial's good ideas are not confined to the repository; it also
     2.8 -needs to manage the working directory.  The \emph{dirstate} contains
     2.9 -Mercurial's knowledge of the working directory.  This details which
    2.10 -revision(s) the working directory is updated to, and all files that
    2.11 -Mercurial is tracking in the working directory.
    2.12 +In the working directory, Mercurial stores a snapshot of the files
    2.13 +from the repository as of a particular changeset.
    2.14 +
    2.15 +The working directory ``knows'' which changeset it contains.  When you
    2.16 +update the working directory to contain a particular changeset,
    2.17 +Mercurial looks up the appropriate revision of the manifest to find
    2.18 +out which files it was tracking at the time that changeset was
    2.19 +committed, and which revision of each file was then current.  It then
    2.20 +recreates a copy of each of those files, with the same contents it had
    2.21 +when the changeset was committed.
    2.22 +
    2.23 +The \emph{dirstate} contains Mercurial's knowledge of the working
    2.24 +directory.  This details which changeset the working directory is
    2.25 +updated to, and all of the files that Mercurial is tracking in the
    2.26 +working directory.
    2.27 +
    2.28 +Just as a revision of a revlog has room for two parents, so that it
    2.29 +can represent either a normal revision (with one parent) or a merge of
    2.30 +two earlier revisions, the dirstate has slots for two parents.  When
    2.31 +you use the \hgcmd{update} command, the changeset that you update to
    2.32 +is stored in the ``first parent'' slot, and the null ID in the second.
    2.33 +When you \hgcmd{merge} with another changeset, the first parent
    2.34 +remains unchanged, and the second parent is filled in with the
    2.35 +changeset you're merging with.  The \hgcmd{parents} command tells you
    2.36 +what the parents of the dirstate are.
    2.37 +
    2.38 +\subsection{What happens when you commit}
    2.39 +
    2.40 +The dirstate stores parent information for more than just book-keeping
    2.41 +purposes.  Mercurial uses the parents of the dirstate as \emph{the
    2.42 +  parents of a new changeset} when you perform a commit.
    2.43 +
    2.44 +\begin{figure}[ht]
    2.45 +  \centering
    2.46 +  \grafix{wdir}
    2.47 +  \caption{The working directory can have two parents}
    2.48 +  \label{fig:concepts:wdir}
    2.49 +\end{figure}
    2.50 +
    2.51 +Figure~\ref{fig:concepts:wdir} shows the normal state of the working
    2.52 +directory, where it has a single changeset as parent.  That changeset
    2.53 +is the \emph{tip}, the newest changeset in the repository that has no
    2.54 +children.
    2.55 +
    2.56 +\begin{figure}[ht]
    2.57 +  \centering
    2.58 +  \grafix{wdir-after-commit}
    2.59 +  \caption{The working directory gains new parents after a commit}
    2.60 +  \label{fig:concepts:wdir-after-commit}
    2.61 +\end{figure}
    2.62 +
    2.63 +It's useful to think of the working directory as ``the changeset I'm
    2.64 +about to commit''.  Any files that you tell Mercurial that you've
    2.65 +added, removed, renamed, or copied will be reflected in that
    2.66 +changeset, as will modifications to any files that Mercurial is
    2.67 +already tracking; the new changeset will have the parents of the
    2.68 +working directory as its parents.
    2.69 +
    2.70 +After a commit, Mercurial will update the parents of the working
    2.71 +directory, so that the first parent is the ID of the new changeset,
    2.72 +and the second is the null ID.  This is illustrated in
    2.73 +figure~\ref{fig:concepts:wdir-after-commit}.
    2.74 +
    2.75 +\subsection{Other contents of the dirstate}
    2.76  
    2.77  Because Mercurial doesn't force you to tell it when you're modifying a
    2.78  file, it uses the dirstate to store some extra information so it can
    2.79 @@ -218,6 +277,9 @@
    2.80  in the working directory, it stores the time that it last modified the
    2.81  file itself, and the size of the file at that time.  
    2.82  
    2.83 +When you explicitly \hgcmd{add}, \hgcmd{remove}, \hgcmd{rename} or
    2.84 +\hgcmd{copy} files, the dirstate is updated each time.
    2.85 +
    2.86  When Mercurial is checking the states of files in the working
    2.87  directory, it first checks a file's modification time.  If that has
    2.88  not changed, the file must not have been modified.  If the file's size
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/en/wdir-after-commit.svg	Mon Nov 13 14:32:16 2006 -0800
     3.3 @@ -0,0 +1,373 @@
     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="svg5971"
    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="wdir-after-commit.svg">
    3.22 +  <defs
    3.23 +     id="defs5973">
    3.24 +    <marker
    3.25 +       inkscape:stockid="Arrow1Mstart"
    3.26 +       orient="auto"
    3.27 +       refY="0.0"
    3.28 +       refX="0.0"
    3.29 +       id="Arrow1Mstart"
    3.30 +       style="overflow:visible">
    3.31 +      <path
    3.32 +         id="path4855"
    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) translate(10,0)" />
    3.36 +    </marker>
    3.37 +    <linearGradient
    3.38 +       id="linearGradient6049">
    3.39 +      <stop
    3.40 +         style="stop-color:#686868;stop-opacity:1;"
    3.41 +         offset="0"
    3.42 +         id="stop6051" />
    3.43 +      <stop
    3.44 +         style="stop-color:#f0f0f0;stop-opacity:1;"
    3.45 +         offset="1"
    3.46 +         id="stop6053" />
    3.47 +    </linearGradient>
    3.48 +    <marker
    3.49 +       inkscape:stockid="Arrow1Mend"
    3.50 +       orient="auto"
    3.51 +       refY="0.0"
    3.52 +       refX="0.0"
    3.53 +       id="Arrow1Mend"
    3.54 +       style="overflow:visible;">
    3.55 +      <path
    3.56 +         id="path4852"
    3.57 +         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.58 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
    3.59 +         transform="scale(0.4) rotate(180) translate(10,0)" />
    3.60 +    </marker>
    3.61 +    <linearGradient
    3.62 +       inkscape:collect="always"
    3.63 +       xlink:href="#linearGradient6049"
    3.64 +       id="linearGradient6083"
    3.65 +       gradientUnits="userSpaceOnUse"
    3.66 +       gradientTransform="translate(-240.0462,-8.633237e-6)"
    3.67 +       x1="333.91171"
    3.68 +       y1="488.79077"
    3.69 +       x2="508.94543"
    3.70 +       y2="263.79077" />
    3.71 +    <linearGradient
    3.72 +       inkscape:collect="always"
    3.73 +       xlink:href="#linearGradient6049"
    3.74 +       id="linearGradient6142"
    3.75 +       gradientUnits="userSpaceOnUse"
    3.76 +       gradientTransform="translate(-42.00893,-30.49544)"
    3.77 +       x1="333.91171"
    3.78 +       y1="488.79077"
    3.79 +       x2="508.94543"
    3.80 +       y2="263.79077" />
    3.81 +    <linearGradient
    3.82 +       inkscape:collect="always"
    3.83 +       xlink:href="#linearGradient6049"
    3.84 +       id="linearGradient6193"
    3.85 +       gradientUnits="userSpaceOnUse"
    3.86 +       gradientTransform="translate(-240.0462,-8.633237e-6)"
    3.87 +       x1="333.91171"
    3.88 +       y1="488.79077"
    3.89 +       x2="508.94543"
    3.90 +       y2="263.79077" />
    3.91 +    <linearGradient
    3.92 +       inkscape:collect="always"
    3.93 +       xlink:href="#linearGradient6049"
    3.94 +       id="linearGradient6216"
    3.95 +       gradientUnits="userSpaceOnUse"
    3.96 +       gradientTransform="translate(-240.0462,-0.664361)"
    3.97 +       x1="333.91171"
    3.98 +       y1="488.79077"
    3.99 +       x2="508.94543"
   3.100 +       y2="263.79077" />
   3.101 +    <linearGradient
   3.102 +       inkscape:collect="always"
   3.103 +       xlink:href="#linearGradient6049"
   3.104 +       id="linearGradient6232"
   3.105 +       gradientUnits="userSpaceOnUse"
   3.106 +       gradientTransform="matrix(1.000474,0,0,0.790947,-11.16014,50.85693)"
   3.107 +       x1="333.91171"
   3.108 +       y1="488.79077"
   3.109 +       x2="508.94543"
   3.110 +       y2="263.79077" />
   3.111 +  </defs>
   3.112 +  <sodipodi:namedview
   3.113 +     id="base"
   3.114 +     pagecolor="#ffffff"
   3.115 +     bordercolor="#666666"
   3.116 +     borderopacity="1.0"
   3.117 +     gridtolerance="10000"
   3.118 +     guidetolerance="10"
   3.119 +     objecttolerance="10"
   3.120 +     inkscape:pageopacity="0.0"
   3.121 +     inkscape:pageshadow="2"
   3.122 +     inkscape:zoom="0.90509668"
   3.123 +     inkscape:cx="390.0539"
   3.124 +     inkscape:cy="690.49342"
   3.125 +     inkscape:document-units="px"
   3.126 +     inkscape:current-layer="layer1"
   3.127 +     showguides="true"
   3.128 +     inkscape:guide-bbox="true"
   3.129 +     inkscape:window-width="906"
   3.130 +     inkscape:window-height="620"
   3.131 +     inkscape:window-x="0"
   3.132 +     inkscape:window-y="25">
   3.133 +    <sodipodi:guide
   3.134 +       orientation="vertical"
   3.135 +       position="-1.4285714"
   3.136 +       id="guide6022" />
   3.137 +  </sodipodi:namedview>
   3.138 +  <metadata
   3.139 +     id="metadata5976">
   3.140 +    <rdf:RDF>
   3.141 +      <cc:Work
   3.142 +         rdf:about="">
   3.143 +        <dc:format>image/svg+xml</dc:format>
   3.144 +        <dc:type
   3.145 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
   3.146 +      </cc:Work>
   3.147 +    </rdf:RDF>
   3.148 +  </metadata>
   3.149 +  <g
   3.150 +     inkscape:label="Layer 1"
   3.151 +     inkscape:groupmode="layer"
   3.152 +     id="layer1">
   3.153 +    <rect
   3.154 +       y="245.98355"
   3.155 +       x="94.239563"
   3.156 +       height="258.57144"
   3.157 +       width="174.28572"
   3.158 +       id="rect6047"
   3.159 +       style="fill:url(#linearGradient6216);fill-opacity:1;stroke:#686868;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.160 +    <g
   3.161 +       id="g6261">
   3.162 +      <rect
   3.163 +         y="258.7149"
   3.164 +         x="114.11369"
   3.165 +         height="44.537449"
   3.166 +         width="134.53746"
   3.167 +         id="rect5983"
   3.168 +         style="fill:#b1b1b1;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" />
   3.169 +      <text
   3.170 +         id="text5985"
   3.171 +         y="284.47562"
   3.172 +         x="138.7962"
   3.173 +         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.174 +         xml:space="preserve"><tspan
   3.175 +           style="font-family:Courier"
   3.176 +           y="284.47562"
   3.177 +           x="138.7962"
   3.178 +           id="tspan5987"
   3.179 +           sodipodi:role="line">dfbbb33f3fa3</tspan></text>
   3.180 +    </g>
   3.181 +    <rect
   3.182 +       style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1"
   3.183 +       id="rect5996"
   3.184 +       width="134.53746"
   3.185 +       height="44.537449"
   3.186 +       x="114.11369"
   3.187 +       y="320.38159" />
   3.188 +    <text
   3.189 +       xml:space="preserve"
   3.190 +       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.191 +       x="138.7962"
   3.192 +       y="346.1423"
   3.193 +       id="text5998"><tspan
   3.194 +         sodipodi:role="line"
   3.195 +         id="tspan6000"
   3.196 +         x="138.7962"
   3.197 +         y="346.1423"
   3.198 +         style="font-family:Courier">e7639888bb2f</tspan></text>
   3.199 +    <rect
   3.200 +       style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1"
   3.201 +       id="rect6004"
   3.202 +       width="134.53746"
   3.203 +       height="44.537449"
   3.204 +       x="114.11369"
   3.205 +       y="382.04825" />
   3.206 +    <text
   3.207 +       xml:space="preserve"
   3.208 +       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.209 +       x="136.65421"
   3.210 +       y="407.80896"
   3.211 +       id="text6006"><tspan
   3.212 +         sodipodi:role="line"
   3.213 +         id="tspan6008"
   3.214 +         x="136.65421"
   3.215 +         y="407.80896"
   3.216 +         style="font-family:Courier">7b064d8bac5e</tspan></text>
   3.217 +    <path
   3.218 +       inkscape:connector-type="polyline"
   3.219 +       id="path6018"
   3.220 +       d="M 181.38242,303.62646 L 181.38242,320.00744"
   3.221 +       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.222 +    <path
   3.223 +       inkscape:connection-end="#rect6004"
   3.224 +       inkscape:connector-type="polyline"
   3.225 +       id="path6020"
   3.226 +       d="M 181.38242,365.29315 L 181.38242,381.6741"
   3.227 +       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.228 +    <rect
   3.229 +       style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.230 +       id="rect6039"
   3.231 +       width="134.53746"
   3.232 +       height="44.537449"
   3.233 +       x="114.11357"
   3.234 +       y="443.71487" />
   3.235 +    <text
   3.236 +       xml:space="preserve"
   3.237 +       style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.238 +       x="138.79707"
   3.239 +       y="469.47556"
   3.240 +       id="text6041"><tspan
   3.241 +         sodipodi:role="line"
   3.242 +         id="tspan6043"
   3.243 +         x="138.79707"
   3.244 +         y="469.47556"
   3.245 +         style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text>
   3.246 +    <path
   3.247 +       inkscape:connection-end="#rect6039"
   3.248 +       inkscape:connector-type="polyline"
   3.249 +       id="path6045"
   3.250 +       d="M 181.38238,426.95981 L 181.38234,443.34086"
   3.251 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1" />
   3.252 +    <text
   3.253 +       xml:space="preserve"
   3.254 +       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.255 +       x="93.660484"
   3.256 +       y="231.36218"
   3.257 +       id="text6102"><tspan
   3.258 +         sodipodi:role="line"
   3.259 +         id="tspan6104"
   3.260 +         x="93.660484"
   3.261 +         y="231.36218">History in repository</tspan></text>
   3.262 +    <rect
   3.263 +       y="245.94225"
   3.264 +       x="323.28415"
   3.265 +       height="204.51619"
   3.266 +       width="174.36833"
   3.267 +       id="rect6140"
   3.268 +       style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   3.269 +    <g
   3.270 +       id="g6130"
   3.271 +       transform="translate(28.32541,24.38544)">
   3.272 +      <rect
   3.273 +         style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1"
   3.274 +         id="rect6106"
   3.275 +         width="134.53746"
   3.276 +         height="44.537449"
   3.277 +         x="314.87415"
   3.278 +         y="257.95059" />
   3.279 +      <text
   3.280 +         xml:space="preserve"
   3.281 +         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.282 +         x="339.55664"
   3.283 +         y="283.7113"
   3.284 +         id="text6108"><tspan
   3.285 +           sodipodi:role="line"
   3.286 +           id="tspan6110"
   3.287 +           x="339.55664"
   3.288 +           y="283.7113"
   3.289 +           style="font-family:Courier">dfbbb33f3fa3</tspan></text>
   3.290 +    </g>
   3.291 +    <g
   3.292 +       id="g6135"
   3.293 +       transform="translate(29.03958,49.83106)">
   3.294 +      <rect
   3.295 +         inkscape:transform-center-y="102.85714"
   3.296 +         inkscape:transform-center-x="129.28571"
   3.297 +         style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   3.298 +         id="rect6112"
   3.299 +         width="134.53746"
   3.300 +         height="44.537449"
   3.301 +         x="314.15985"
   3.302 +         y="326.52203" />
   3.303 +      <text
   3.304 +         inkscape:transform-center-y="102.7311"
   3.305 +         inkscape:transform-center-x="128.69672"
   3.306 +         xml:space="preserve"
   3.307 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   3.308 +         x="338.84335"
   3.309 +         y="352.28271"
   3.310 +         id="text6114"><tspan
   3.311 +           sodipodi:role="line"
   3.312 +           id="tspan6116"
   3.313 +           x="338.84335"
   3.314 +           y="352.28271"
   3.315 +           style="fill:#979797;fill-opacity:1;font-family:Courier">000000000000</tspan></text>
   3.316 +    </g>
   3.317 +    <text
   3.318 +       xml:space="preserve"
   3.319 +       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.320 +       x="342.63208"
   3.321 +       y="270.479"
   3.322 +       id="text6118"><tspan
   3.323 +         sodipodi:role="line"
   3.324 +         id="tspan6120"
   3.325 +         x="342.63208"
   3.326 +         y="270.479">First parent</tspan></text>
   3.327 +    <text
   3.328 +       xml:space="preserve"
   3.329 +       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.330 +       x="342.07544"
   3.331 +       y="364.49615"
   3.332 +       id="text6122"><tspan
   3.333 +         sodipodi:role="line"
   3.334 +         id="tspan6124"
   3.335 +         x="342.07544"
   3.336 +         y="364.49615">Second parent</tspan></text>
   3.337 +    <text
   3.338 +       xml:space="preserve"
   3.339 +       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.340 +       x="322.61746"
   3.341 +       y="231.36218"
   3.342 +       id="text6195"><tspan
   3.343 +         sodipodi:role="line"
   3.344 +         id="tspan6197"
   3.345 +         x="322.61746"
   3.346 +         y="231.36218">Parents of working directory</tspan></text>
   3.347 +    <path
   3.348 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow1Mend)"
   3.349 +       d="M 342.82543,297.63008 L 249.02528,287.95831"
   3.350 +       id="path6266"
   3.351 +       inkscape:connector-type="polyline"
   3.352 +       inkscape:connection-start="#g6130"
   3.353 +       inkscape:connection-end="#g6261" />
   3.354 +    <path
   3.355 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
   3.356 +       d="M 665.12232,418.17579 L 665.12232,418.17579"
   3.357 +       id="path6270"
   3.358 +       inkscape:connector-type="polyline" />
   3.359 +    <text
   3.360 +       xml:space="preserve"
   3.361 +       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.362 +       x="82.864075"
   3.363 +       y="275.6496"
   3.364 +       id="text6573"><tspan
   3.365 +         sodipodi:role="line"
   3.366 +         id="tspan6575"
   3.367 +         x="82.864075"
   3.368 +         y="275.6496"
   3.369 +         style="text-align:end;text-anchor:end">New</tspan><tspan
   3.370 +         sodipodi:role="line"
   3.371 +         x="82.864075"
   3.372 +         y="290.6496"
   3.373 +         id="tspan6577"
   3.374 +         style="text-align:end;text-anchor:end">changeset</tspan></text>
   3.375 +  </g>
   3.376 +</svg>
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/en/wdir.svg	Mon Nov 13 14:32:16 2006 -0800
     4.3 @@ -0,0 +1,348 @@
     4.4 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
     4.5 +<!-- Created with Inkscape (http://www.inkscape.org/) -->
     4.6 +<svg
     4.7 +   xmlns:dc="http://purl.org/dc/elements/1.1/"
     4.8 +   xmlns:cc="http://web.resource.org/cc/"
     4.9 +   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    4.10 +   xmlns:svg="http://www.w3.org/2000/svg"
    4.11 +   xmlns="http://www.w3.org/2000/svg"
    4.12 +   xmlns:xlink="http://www.w3.org/1999/xlink"
    4.13 +   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
    4.14 +   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
    4.15 +   width="744.09448819"
    4.16 +   height="1052.3622047"
    4.17 +   id="svg5971"
    4.18 +   sodipodi:version="0.32"
    4.19 +   inkscape:version="0.44.1"
    4.20 +   sodipodi:docbase="/home/bos/hg/hgbook/en"
    4.21 +   sodipodi:docname="wdir.svg">
    4.22 +  <defs
    4.23 +     id="defs5973">
    4.24 +    <marker
    4.25 +       inkscape:stockid="Arrow1Mstart"
    4.26 +       orient="auto"
    4.27 +       refY="0.0"
    4.28 +       refX="0.0"
    4.29 +       id="Arrow1Mstart"
    4.30 +       style="overflow:visible">
    4.31 +      <path
    4.32 +         id="path4855"
    4.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 "
    4.34 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none"
    4.35 +         transform="scale(0.4) translate(10,0)" />
    4.36 +    </marker>
    4.37 +    <linearGradient
    4.38 +       id="linearGradient6049">
    4.39 +      <stop
    4.40 +         style="stop-color:#686868;stop-opacity:1;"
    4.41 +         offset="0"
    4.42 +         id="stop6051" />
    4.43 +      <stop
    4.44 +         style="stop-color:#f0f0f0;stop-opacity:1;"
    4.45 +         offset="1"
    4.46 +         id="stop6053" />
    4.47 +    </linearGradient>
    4.48 +    <marker
    4.49 +       inkscape:stockid="Arrow1Mend"
    4.50 +       orient="auto"
    4.51 +       refY="0.0"
    4.52 +       refX="0.0"
    4.53 +       id="Arrow1Mend"
    4.54 +       style="overflow:visible;">
    4.55 +      <path
    4.56 +         id="path4852"
    4.57 +         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 "
    4.58 +         style="fill-rule:evenodd;stroke:#000000;stroke-width:1.0pt;marker-start:none;"
    4.59 +         transform="scale(0.4) rotate(180) translate(10,0)" />
    4.60 +    </marker>
    4.61 +    <linearGradient
    4.62 +       inkscape:collect="always"
    4.63 +       xlink:href="#linearGradient6049"
    4.64 +       id="linearGradient6083"
    4.65 +       gradientUnits="userSpaceOnUse"
    4.66 +       gradientTransform="translate(-240.0462,-8.633237e-6)"
    4.67 +       x1="333.91171"
    4.68 +       y1="488.79077"
    4.69 +       x2="508.94543"
    4.70 +       y2="263.79077" />
    4.71 +    <linearGradient
    4.72 +       inkscape:collect="always"
    4.73 +       xlink:href="#linearGradient6049"
    4.74 +       id="linearGradient6142"
    4.75 +       gradientUnits="userSpaceOnUse"
    4.76 +       gradientTransform="translate(-42.00893,-30.49544)"
    4.77 +       x1="333.91171"
    4.78 +       y1="488.79077"
    4.79 +       x2="508.94543"
    4.80 +       y2="263.79077" />
    4.81 +    <linearGradient
    4.82 +       inkscape:collect="always"
    4.83 +       xlink:href="#linearGradient6049"
    4.84 +       id="linearGradient6193"
    4.85 +       gradientUnits="userSpaceOnUse"
    4.86 +       gradientTransform="translate(-240.0462,-8.633237e-6)"
    4.87 +       x1="333.91171"
    4.88 +       y1="488.79077"
    4.89 +       x2="508.94543"
    4.90 +       y2="263.79077" />
    4.91 +    <linearGradient
    4.92 +       inkscape:collect="always"
    4.93 +       xlink:href="#linearGradient6049"
    4.94 +       id="linearGradient6216"
    4.95 +       gradientUnits="userSpaceOnUse"
    4.96 +       gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)"
    4.97 +       x1="333.91171"
    4.98 +       y1="488.79077"
    4.99 +       x2="508.94543"
   4.100 +       y2="263.79077" />
   4.101 +    <linearGradient
   4.102 +       inkscape:collect="always"
   4.103 +       xlink:href="#linearGradient6049"
   4.104 +       id="linearGradient6232"
   4.105 +       gradientUnits="userSpaceOnUse"
   4.106 +       gradientTransform="matrix(1.000473,0,0,0.790947,-11.16012,50.85693)"
   4.107 +       x1="333.91171"
   4.108 +       y1="488.79077"
   4.109 +       x2="508.94543"
   4.110 +       y2="263.79077" />
   4.111 +    <linearGradient
   4.112 +       inkscape:collect="always"
   4.113 +       xlink:href="#linearGradient6049"
   4.114 +       id="linearGradient6445"
   4.115 +       gradientUnits="userSpaceOnUse"
   4.116 +       gradientTransform="matrix(1.000474,0,0,0.790947,-240.246,50.9948)"
   4.117 +       x1="333.91171"
   4.118 +       y1="488.79077"
   4.119 +       x2="508.94543"
   4.120 +       y2="263.79077" />
   4.121 +  </defs>
   4.122 +  <sodipodi:namedview
   4.123 +     id="base"
   4.124 +     pagecolor="#ffffff"
   4.125 +     bordercolor="#666666"
   4.126 +     borderopacity="1.0"
   4.127 +     gridtolerance="10000"
   4.128 +     guidetolerance="10"
   4.129 +     objecttolerance="10"
   4.130 +     inkscape:pageopacity="0.0"
   4.131 +     inkscape:pageshadow="2"
   4.132 +     inkscape:zoom="0.90509668"
   4.133 +     inkscape:cx="390.0539"
   4.134 +     inkscape:cy="690.49342"
   4.135 +     inkscape:document-units="px"
   4.136 +     inkscape:current-layer="layer1"
   4.137 +     showguides="true"
   4.138 +     inkscape:guide-bbox="true"
   4.139 +     inkscape:window-width="906"
   4.140 +     inkscape:window-height="620"
   4.141 +     inkscape:window-x="0"
   4.142 +     inkscape:window-y="25">
   4.143 +    <sodipodi:guide
   4.144 +       orientation="vertical"
   4.145 +       position="-1.4285714"
   4.146 +       id="guide6022" />
   4.147 +  </sodipodi:namedview>
   4.148 +  <metadata
   4.149 +     id="metadata5976">
   4.150 +    <rdf:RDF>
   4.151 +      <cc:Work
   4.152 +         rdf:about="">
   4.153 +        <dc:format>image/svg+xml</dc:format>
   4.154 +        <dc:type
   4.155 +           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
   4.156 +      </cc:Work>
   4.157 +    </rdf:RDF>
   4.158 +  </metadata>
   4.159 +  <g
   4.160 +     inkscape:label="Layer 1"
   4.161 +     inkscape:groupmode="layer"
   4.162 +     id="layer1">
   4.163 +    <g
   4.164 +       id="g6431"
   4.165 +       transform="translate(0,-0.137863)">
   4.166 +      <rect
   4.167 +         style="fill:url(#linearGradient6445);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   4.168 +         id="rect6047"
   4.169 +         width="174.36833"
   4.170 +         height="204.51619"
   4.171 +         x="94.198257"
   4.172 +         y="246.08011" />
   4.173 +      <rect
   4.174 +         y="266.38159"
   4.175 +         x="114.11369"
   4.176 +         height="44.537449"
   4.177 +         width="134.53746"
   4.178 +         id="rect5996"
   4.179 +         style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" />
   4.180 +      <text
   4.181 +         id="text5998"
   4.182 +         y="292.1423"
   4.183 +         x="138.7962"
   4.184 +         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"
   4.185 +         xml:space="preserve"><tspan
   4.186 +           style="font-family:Courier"
   4.187 +           y="292.1423"
   4.188 +           x="138.7962"
   4.189 +           id="tspan6000"
   4.190 +           sodipodi:role="line">e7639888bb2f</tspan></text>
   4.191 +      <rect
   4.192 +         y="328.04825"
   4.193 +         x="114.11369"
   4.194 +         height="44.537449"
   4.195 +         width="134.53746"
   4.196 +         id="rect6004"
   4.197 +         style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" />
   4.198 +      <text
   4.199 +         id="text6006"
   4.200 +         y="353.80896"
   4.201 +         x="136.65421"
   4.202 +         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"
   4.203 +         xml:space="preserve"><tspan
   4.204 +           style="font-family:Courier"
   4.205 +           y="353.80896"
   4.206 +           x="136.65421"
   4.207 +           id="tspan6008"
   4.208 +           sodipodi:role="line">7b064d8bac5e</tspan></text>
   4.209 +      <path
   4.210 +         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"
   4.211 +         d="M 181.38242,311.29315 L 181.38242,327.67412"
   4.212 +         id="path6020"
   4.213 +         inkscape:connector-type="polyline"
   4.214 +         inkscape:connection-end="#rect6004" />
   4.215 +      <rect
   4.216 +         y="389.71487"
   4.217 +         x="114.11357"
   4.218 +         height="44.537449"
   4.219 +         width="134.53746"
   4.220 +         id="rect6039"
   4.221 +         style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
   4.222 +      <text
   4.223 +         id="text6041"
   4.224 +         y="415.47556"
   4.225 +         x="138.79707"
   4.226 +         style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   4.227 +         xml:space="preserve"><tspan
   4.228 +           style="fill:#979797;fill-opacity:1;font-family:Courier"
   4.229 +           y="415.47556"
   4.230 +           x="138.79707"
   4.231 +           id="tspan6043"
   4.232 +           sodipodi:role="line">000000000000</tspan></text>
   4.233 +      <path
   4.234 +         style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#686868;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-opacity:1"
   4.235 +         d="M 181.38238,372.95981 L 181.38235,389.34087"
   4.236 +         id="path6045"
   4.237 +         inkscape:connector-type="polyline"
   4.238 +         inkscape:connection-end="#rect6039" />
   4.239 +    </g>
   4.240 +    <text
   4.241 +       xml:space="preserve"
   4.242 +       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"
   4.243 +       x="93.660484"
   4.244 +       y="231.36218"
   4.245 +       id="text6102"><tspan
   4.246 +         sodipodi:role="line"
   4.247 +         id="tspan6104"
   4.248 +         x="93.660484"
   4.249 +         y="231.36218">History in repository</tspan></text>
   4.250 +    <g
   4.251 +       id="g6416">
   4.252 +      <rect
   4.253 +         style="fill:url(#linearGradient6232);fill-opacity:1;stroke:#686868;stroke-width:0.66539276;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   4.254 +         id="rect6140"
   4.255 +         width="174.36833"
   4.256 +         height="204.51619"
   4.257 +         x="323.28412"
   4.258 +         y="245.94225" />
   4.259 +      <g
   4.260 +         transform="translate(28.32541,24.38544)"
   4.261 +         id="g6130">
   4.262 +        <rect
   4.263 +           y="257.95059"
   4.264 +           x="314.87415"
   4.265 +           height="44.537449"
   4.266 +           width="134.53746"
   4.267 +           id="rect6106"
   4.268 +           style="fill:#d4d4d4;fill-opacity:1;stroke:black;stroke-width:0.7482574;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:1.49651474, 0.74825737;stroke-dashoffset:0;stroke-opacity:1" />
   4.269 +        <text
   4.270 +           id="text6108"
   4.271 +           y="283.7113"
   4.272 +           x="339.55664"
   4.273 +           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"
   4.274 +           xml:space="preserve"><tspan
   4.275 +             style="font-family:Courier"
   4.276 +             y="283.7113"
   4.277 +             x="339.55664"
   4.278 +             id="tspan6110"
   4.279 +             sodipodi:role="line">e7639888bb2f</tspan></text>
   4.280 +      </g>
   4.281 +      <g
   4.282 +         transform="translate(29.03958,49.83106)"
   4.283 +         id="g6135">
   4.284 +        <rect
   4.285 +           y="326.52203"
   4.286 +           x="314.15985"
   4.287 +           height="44.537449"
   4.288 +           width="134.53746"
   4.289 +           id="rect6112"
   4.290 +           style="fill:#ededed;fill-opacity:1;stroke:#797979;stroke-width:0.74800003;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
   4.291 +           inkscape:transform-center-x="129.28571"
   4.292 +           inkscape:transform-center-y="102.85714" />
   4.293 +        <text
   4.294 +           id="text6114"
   4.295 +           y="352.28271"
   4.296 +           x="338.84335"
   4.297 +           style="font-size:12px;font-style:normal;font-weight:normal;fill:#979797;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Times New Roman"
   4.298 +           xml:space="preserve"
   4.299 +           inkscape:transform-center-x="128.69672"
   4.300 +           inkscape:transform-center-y="102.7311"><tspan
   4.301 +             style="fill:#979797;fill-opacity:1;font-family:Courier"
   4.302 +             y="352.28271"
   4.303 +             x="338.84335"
   4.304 +             id="tspan6116"
   4.305 +             sodipodi:role="line">000000000000</tspan></text>
   4.306 +      </g>
   4.307 +      <text
   4.308 +         id="text6118"
   4.309 +         y="270.479"
   4.310 +         x="342.63208"
   4.311 +         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"
   4.312 +         xml:space="preserve"><tspan
   4.313 +           y="270.479"
   4.314 +           x="342.63208"
   4.315 +           id="tspan6120"
   4.316 +           sodipodi:role="line">First parent</tspan></text>
   4.317 +      <text
   4.318 +         id="text6122"
   4.319 +         y="364.49615"
   4.320 +         x="342.07544"
   4.321 +         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"
   4.322 +         xml:space="preserve"><tspan
   4.323 +           y="364.49615"
   4.324 +           x="342.07544"
   4.325 +           id="tspan6124"
   4.326 +           sodipodi:role="line">Second parent</tspan></text>
   4.327 +    </g>
   4.328 +    <text
   4.329 +       xml:space="preserve"
   4.330 +       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"
   4.331 +       x="322.61746"
   4.332 +       y="231.36218"
   4.333 +       id="text6195"><tspan
   4.334 +         sodipodi:role="line"
   4.335 +         id="tspan6197"
   4.336 +         x="322.61746"
   4.337 +         y="231.36218">Parents of working directory</tspan></text>
   4.338 +    <path
   4.339 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;marker-end:url(#Arrow1Mend);stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;display:inline"
   4.340 +       d="M 342.82543,299.89384 L 249.02528,293.36123"
   4.341 +       id="path6266"
   4.342 +       inkscape:connector-type="polyline"
   4.343 +       inkscape:connection-start="#g6130"
   4.344 +       inkscape:connection-end="#rect5996" />
   4.345 +    <path
   4.346 +       style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:black;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
   4.347 +       d="M 665.12232,418.17579 L 665.12232,418.17579"
   4.348 +       id="path6270"
   4.349 +       inkscape:connector-type="polyline" />
   4.350 +  </g>
   4.351 +</svg>