hgbook
diff en/ch04-daily.xml @ 584:c838b3975bc6
Add IDs to paragraphs.
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Thu Mar 19 21:18:52 2009 -0700 (2009-03-19) |
parents | 28b5a5befb08 |
children | 4ce9d0754af3 |
line diff
1.1 --- a/en/ch04-daily.xml Thu Mar 19 20:54:12 2009 -0700 1.2 +++ b/en/ch04-daily.xml Thu Mar 19 21:18:52 2009 -0700 1.3 @@ -7,14 +7,14 @@ 1.4 <sect1> 1.5 <title>Telling Mercurial which files to track</title> 1.6 1.7 - <para>Mercurial does not work with files in your repository unless 1.8 + <para id="x_1a3">Mercurial does not work with files in your repository unless 1.9 you tell it to manage them. The <command role="hg-cmd">hg 1.10 status</command> command will tell you which files Mercurial 1.11 doesn't know about; it uses a 1.12 <quote><literal>?</literal></quote> to display such 1.13 files.</para> 1.14 1.15 - <para>To tell Mercurial to track a file, use the <command 1.16 + <para id="x_1a4">To tell Mercurial to track a file, use the <command 1.17 role="hg-cmd">hg add</command> command. Once you have added a 1.18 file, the entry in the output of <command role="hg-cmd">hg 1.19 status</command> for that file changes from 1.20 @@ -23,7 +23,7 @@ 1.21 1.22 &interaction.daily.files.add; 1.23 1.24 - <para>After you run a <command role="hg-cmd">hg commit</command>, 1.25 + <para id="x_1a5">After you run a <command role="hg-cmd">hg commit</command>, 1.26 the files that you added before the commit will no longer be 1.27 listed in the output of <command role="hg-cmd">hg 1.28 status</command>. The reason for this is that <command 1.29 @@ -35,7 +35,7 @@ 1.30 is tracking, but that have not changed. (You can still get this 1.31 information; we'll return to this later.)</para> 1.32 1.33 - <para>Once you add a file, Mercurial doesn't do anything with it 1.34 + <para id="x_1a6">Once you add a file, Mercurial doesn't do anything with it 1.35 immediately. Instead, it will take a snapshot of the file's 1.36 state the next time you perform a commit. It will then continue 1.37 to track the changes you make to the file every time you commit, 1.38 @@ -44,24 +44,24 @@ 1.39 <sect2> 1.40 <title>Explicit versus implicit file naming</title> 1.41 1.42 - <para>A useful behaviour that Mercurial has is that if you pass 1.43 + <para id="x_1a7">A useful behaviour that Mercurial has is that if you pass 1.44 the name of a directory to a command, every Mercurial command 1.45 will treat this as <quote>I want to operate on every file in 1.46 this directory and its subdirectories</quote>.</para> 1.47 1.48 &interaction.daily.files.add-dir; 1.49 1.50 - <para>Notice in this example that Mercurial printed the names of 1.51 + <para id="x_1a8">Notice in this example that Mercurial printed the names of 1.52 the files it added, whereas it didn't do so when we added the 1.53 file named <filename>a</filename> in the earlier 1.54 example.</para> 1.55 1.56 - <para>What's going on is that in the former case, we explicitly 1.57 + <para id="x_1a9">What's going on is that in the former case, we explicitly 1.58 named the file to add on the command line, so the assumption 1.59 that Mercurial makes in such cases is that you know what you 1.60 were doing, and it doesn't print any output.</para> 1.61 1.62 - <para>However, when we <emphasis>imply</emphasis> the names of 1.63 + <para id="x_1aa">However, when we <emphasis>imply</emphasis> the names of 1.64 files by giving the name of a directory, Mercurial takes the 1.65 extra step of printing the name of each file that it does 1.66 something with. This makes it more clear what is happening, 1.67 @@ -72,7 +72,7 @@ 1.68 <sect2> 1.69 <title>Aside: Mercurial tracks files, not directories</title> 1.70 1.71 - <para>Mercurial does not track directory information. Instead, 1.72 + <para id="x_1ab">Mercurial does not track directory information. Instead, 1.73 it tracks the path to a file. Before creating a file, it 1.74 first creates any missing directory components of the path. 1.75 After it deletes a file, it then deletes any empty directories 1.76 @@ -81,14 +81,14 @@ 1.77 consequence: it is not possible to represent a completely 1.78 empty directory in Mercurial.</para> 1.79 1.80 - <para>Empty directories are rarely useful, and there are 1.81 + <para id="x_1ac">Empty directories are rarely useful, and there are 1.82 unintrusive workarounds that you can use to achieve an 1.83 appropriate effect. The developers of Mercurial thus felt 1.84 that the complexity that would be required to manage empty 1.85 directories was not worth the limited benefit this feature 1.86 would bring.</para> 1.87 1.88 - <para>If you need an empty directory in your repository, there 1.89 + <para id="x_1ad">If you need an empty directory in your repository, there 1.90 are a few ways to achieve this. One is to create a directory, 1.91 then <command role="hg-cmd">hg add</command> a 1.92 <quote>hidden</quote> file to that directory. On Unix-like 1.93 @@ -99,7 +99,7 @@ 1.94 1.95 &interaction.daily.files.hidden; 1.96 1.97 - <para>Another way to tackle a need for an empty directory is to 1.98 + <para id="x_1ae">Another way to tackle a need for an empty directory is to 1.99 simply create one in your automated build scripts before they 1.100 will need it.</para> 1.101 1.102 @@ -108,7 +108,7 @@ 1.103 <sect1> 1.104 <title>How to stop tracking a file</title> 1.105 1.106 - <para>Once you decide that a file no longer belongs in your 1.107 + <para id="x_1af">Once you decide that a file no longer belongs in your 1.108 repository, use the <command role="hg-cmd">hg remove</command> 1.109 command; this deletes the file, and tells Mercurial to stop 1.110 tracking it. A removed file is represented in the output of 1.111 @@ -117,7 +117,7 @@ 1.112 1.113 &interaction.daily.files.remove; 1.114 1.115 - <para>After you <command role="hg-cmd">hg remove</command> a file, 1.116 + <para id="x_1b0">After you <command role="hg-cmd">hg remove</command> a file, 1.117 Mercurial will no longer track changes to that file, even if you 1.118 recreate a file with the same name in your working directory. 1.119 If you do recreate a file with the same name and want Mercurial 1.120 @@ -128,19 +128,19 @@ 1.121 <sect2> 1.122 <title>Removing a file does not affect its history</title> 1.123 1.124 - <para>It is important to understand that removing a file has 1.125 + <para id="x_1b1">It is important to understand that removing a file has 1.126 only two effects.</para> 1.127 <itemizedlist> 1.128 - <listitem><para>It removes the current version of the file 1.129 + <listitem><para id="x_1b2">It removes the current version of the file 1.130 from the working directory.</para> 1.131 </listitem> 1.132 - <listitem><para>It stops Mercurial from tracking changes to 1.133 + <listitem><para id="x_1b3">It stops Mercurial from tracking changes to 1.134 the file, from the time of the next commit.</para> 1.135 </listitem></itemizedlist> 1.136 - <para>Removing a file <emphasis>does not</emphasis> in any way 1.137 + <para id="x_1b4">Removing a file <emphasis>does not</emphasis> in any way 1.138 alter the <emphasis>history</emphasis> of the file.</para> 1.139 1.140 - <para>If you update the working directory to a changeset in 1.141 + <para id="x_1b5">If you update the working directory to a changeset in 1.142 which a file that you have removed was still tracked, it will 1.143 reappear in the working directory, with the contents it had 1.144 when you committed that changeset. If you then update the 1.145 @@ -152,7 +152,7 @@ 1.146 <sect2> 1.147 <title>Missing files</title> 1.148 1.149 - <para>Mercurial considers a file that you have deleted, but not 1.150 + <para id="x_1b6">Mercurial considers a file that you have deleted, but not 1.151 used <command role="hg-cmd">hg remove</command> to delete, to 1.152 be <emphasis>missing</emphasis>. A missing file is 1.153 represented with <quote><literal>!</literal></quote> in the 1.154 @@ -162,7 +162,7 @@ 1.155 1.156 &interaction.daily.files.missing; 1.157 1.158 - <para>If your repository contains a file that <command 1.159 + <para id="x_1b7">If your repository contains a file that <command 1.160 role="hg-cmd">hg status</command> reports as missing, and 1.161 you want the file to stay gone, you can run <command 1.162 role="hg-cmd">hg remove <option 1.163 @@ -172,7 +172,7 @@ 1.164 1.165 &interaction.daily.files.remove-after; 1.166 1.167 - <para>On the other hand, if you deleted the missing file by 1.168 + <para id="x_1b8">On the other hand, if you deleted the missing file by 1.169 accident, give <command role="hg-cmd">hg revert</command> the 1.170 name of the file to recover. It will reappear, in unmodified 1.171 form.</para> 1.172 @@ -184,7 +184,7 @@ 1.173 <title>Aside: why tell Mercurial explicitly to remove a 1.174 file?</title> 1.175 1.176 - <para>You might wonder why Mercurial requires you to explicitly 1.177 + <para id="x_1b9">You might wonder why Mercurial requires you to explicitly 1.178 tell it that you are deleting a file. Early during the 1.179 development of Mercurial, it let you delete a file however you 1.180 pleased; Mercurial would notice the absence of the file 1.181 @@ -198,13 +198,13 @@ 1.182 <title>Useful shorthand&emdash;adding and removing files in one 1.183 step</title> 1.184 1.185 - <para>Mercurial offers a combination command, <command 1.186 + <para id="x_1ba">Mercurial offers a combination command, <command 1.187 role="hg-cmd">hg addremove</command>, that adds untracked 1.188 files and marks missing files as removed.</para> 1.189 1.190 &interaction.daily.files.addremove; 1.191 1.192 - <para>The <command role="hg-cmd">hg commit</command> command 1.193 + <para id="x_1bb">The <command role="hg-cmd">hg commit</command> command 1.194 also provides a <option role="hg-opt-commit">-A</option> 1.195 option that performs this same add-and-remove, immediately 1.196 followed by a commit.</para> 1.197 @@ -216,7 +216,7 @@ 1.198 <sect1> 1.199 <title>Copying files</title> 1.200 1.201 - <para>Mercurial provides a <command role="hg-cmd">hg 1.202 + <para id="x_1bc">Mercurial provides a <command role="hg-cmd">hg 1.203 copy</command> command that lets you make a new copy of a 1.204 file. When you copy a file using this command, Mercurial makes 1.205 a record of the fact that the new file is a copy of the original 1.206 @@ -226,32 +226,32 @@ 1.207 <sect2> 1.208 <title>The results of copying during a merge</title> 1.209 1.210 - <para>What happens during a merge is that changes 1.211 + <para id="x_1bd">What happens during a merge is that changes 1.212 <quote>follow</quote> a copy. To best illustrate what this 1.213 means, let's create an example. We'll start with the usual 1.214 tiny repository that contains a single file.</para> 1.215 1.216 &interaction.daily.copy.init; 1.217 1.218 - <para>We need to do some work in 1.219 + <para id="x_1be">We need to do some work in 1.220 parallel, so that we'll have something to merge. So let's 1.221 clone our repository.</para> 1.222 1.223 &interaction.daily.copy.clone; 1.224 1.225 - <para>Back in our initial repository, let's use the <command 1.226 + <para id="x_1bf">Back in our initial repository, let's use the <command 1.227 role="hg-cmd">hg copy</command> command to make a copy of 1.228 the first file we created.</para> 1.229 1.230 &interaction.daily.copy.copy; 1.231 1.232 - <para>If we look at the output of the <command role="hg-cmd">hg 1.233 + <para id="x_1c0">If we look at the output of the <command role="hg-cmd">hg 1.234 status</command> command afterwards, the copied file looks 1.235 just like a normal added file.</para> 1.236 1.237 &interaction.daily.copy.status; 1.238 1.239 - <para>But if we pass the <option 1.240 + <para id="x_1c1">But if we pass the <option 1.241 role="hg-opt-status">-C</option> option to <command 1.242 role="hg-cmd">hg status</command>, it prints another line of 1.243 output: this is the file that our newly-added file was copied 1.244 @@ -259,13 +259,13 @@ 1.245 1.246 &interaction.daily.copy.status-copy; 1.247 1.248 - <para>Now, back in the repository we cloned, let's make a change 1.249 + <para id="x_1c2">Now, back in the repository we cloned, let's make a change 1.250 in parallel. We'll add a line of content to the original file 1.251 that we created.</para> 1.252 1.253 &interaction.daily.copy.other; 1.254 1.255 - <para>Now we have a modified <filename>file</filename> in this 1.256 + <para id="x_1c3">Now we have a modified <filename>file</filename> in this 1.257 repository. When we pull the changes from the first 1.258 repository, and merge the two heads, Mercurial will propagate 1.259 the changes that we made locally to <filename>file</filename> 1.260 @@ -277,41 +277,41 @@ 1.261 <sect2 id="sec:daily:why-copy"> 1.262 <title>Why should changes follow copies?</title> 1.263 1.264 - <para>This behaviour, of changes to a file propagating out to 1.265 + <para id="x_1c4">This behaviour, of changes to a file propagating out to 1.266 copies of the file, might seem esoteric, but in most cases 1.267 it's highly desirable.</para> 1.268 1.269 - <para>First of all, remember that this propagation 1.270 + <para id="x_1c5">First of all, remember that this propagation 1.271 <emphasis>only</emphasis> happens when you merge. So if you 1.272 <command role="hg-cmd">hg copy</command> a file, and 1.273 subsequently modify the original file during the normal course 1.274 of your work, nothing will happen.</para> 1.275 1.276 - <para>The second thing to know is that modifications will only 1.277 + <para id="x_1c6">The second thing to know is that modifications will only 1.278 propagate across a copy as long as the repository that you're 1.279 pulling changes from <emphasis>doesn't know</emphasis> about 1.280 the copy.</para> 1.281 1.282 - <para>The reason that Mercurial does this is as follows. Let's 1.283 + <para id="x_1c7">The reason that Mercurial does this is as follows. Let's 1.284 say I make an important bug fix in a source file, and commit 1.285 my changes. Meanwhile, you've decided to <command 1.286 role="hg-cmd">hg copy</command> the file in your repository, 1.287 without knowing about the bug or having seen the fix, and you 1.288 have started hacking on your copy of the file.</para> 1.289 1.290 - <para>If you pulled and merged my changes, and Mercurial 1.291 + <para id="x_1c8">If you pulled and merged my changes, and Mercurial 1.292 <emphasis>didn't</emphasis> propagate changes across copies, 1.293 your source file would now contain the bug, and unless you 1.294 remembered to propagate the bug fix by hand, the bug would 1.295 <emphasis>remain</emphasis> in your copy of the file.</para> 1.296 1.297 - <para>By automatically propagating the change that fixed the bug 1.298 + <para id="x_1c9">By automatically propagating the change that fixed the bug 1.299 from the original file to the copy, Mercurial prevents this 1.300 class of problem. To my knowledge, Mercurial is the 1.301 <emphasis>only</emphasis> revision control system that 1.302 propagates changes across copies like this.</para> 1.303 1.304 - <para>Once your change history has a record that the copy and 1.305 + <para id="x_1ca">Once your change history has a record that the copy and 1.306 subsequent merge occurred, there's usually no further need to 1.307 propagate changes from the original file to the copied file, 1.308 and that's why Mercurial only propagates changes across copies 1.309 @@ -322,7 +322,7 @@ 1.310 <title>How to make changes <emphasis>not</emphasis> follow a 1.311 copy</title> 1.312 1.313 - <para>If, for some reason, you decide that this business of 1.314 + <para id="x_1cb">If, for some reason, you decide that this business of 1.315 automatically propagating changes across copies is not for 1.316 you, simply use your system's normal file copy command (on 1.317 Unix-like systems, that's <command>cp</command>) to make a 1.318 @@ -338,7 +338,7 @@ 1.319 <title>Behaviour of the <command role="hg-cmd">hg copy</command> 1.320 command</title> 1.321 1.322 - <para>When you use the <command role="hg-cmd">hg copy</command> 1.323 + <para id="x_1cc">When you use the <command role="hg-cmd">hg copy</command> 1.324 command, Mercurial makes a copy of each source file as it 1.325 currently stands in the working directory. This means that if 1.326 you make some modifications to a file, then <command 1.327 @@ -348,7 +348,7 @@ 1.328 behaviour a little counterintuitive, which is why I mention it 1.329 here.)</para> 1.330 1.331 - <para>The <command role="hg-cmd">hg copy</command> command acts 1.332 + <para id="x_1cd">The <command role="hg-cmd">hg copy</command> command acts 1.333 similarly to the Unix <command>cp</command> command (you can 1.334 use the <command role="hg-cmd">hg cp</command> alias if you 1.335 prefer). The last argument is the 1.336 @@ -359,23 +359,23 @@ 1.337 1.338 &interaction.daily.copy.simple; 1.339 1.340 - <para>If the destination is a directory, Mercurial copies its 1.341 + <para id="x_1ce">If the destination is a directory, Mercurial copies its 1.342 sources into that directory.</para> 1.343 1.344 &interaction.daily.copy.dir-dest; 1.345 1.346 - <para>Copying a directory is 1.347 + <para id="x_1cf">Copying a directory is 1.348 recursive, and preserves the directory structure of the 1.349 source.</para> 1.350 1.351 &interaction.daily.copy.dir-src; 1.352 1.353 - <para>If the source and destination are both directories, the 1.354 + <para id="x_1d0">If the source and destination are both directories, the 1.355 source tree is recreated in the destination directory.</para> 1.356 1.357 &interaction.daily.copy.dir-src-dest; 1.358 1.359 - <para>As with the <command role="hg-cmd">hg rename</command> 1.360 + <para id="x_1d1">As with the <command role="hg-cmd">hg rename</command> 1.361 command, if you copy a file manually and then want Mercurial 1.362 to know that you've copied the file, simply use the <option 1.363 role="hg-opt-copy">--after</option> option to <command 1.364 @@ -388,7 +388,7 @@ 1.365 <sect1> 1.366 <title>Renaming files</title> 1.367 1.368 - <para>It's rather more common to need to rename a file than to 1.369 + <para id="x_1d2">It's rather more common to need to rename a file than to 1.370 make a copy of it. The reason I discussed the <command 1.371 role="hg-cmd">hg copy</command> command before talking about 1.372 renaming files is that Mercurial treats a rename in essentially 1.373 @@ -396,19 +396,19 @@ 1.374 when you copy a file tells you what to expect when you rename a 1.375 file.</para> 1.376 1.377 - <para>When you use the <command role="hg-cmd">hg rename</command> 1.378 + <para id="x_1d3">When you use the <command role="hg-cmd">hg rename</command> 1.379 command, Mercurial makes a copy of each source file, then 1.380 deletes it and marks the file as removed.</para> 1.381 1.382 &interaction.daily.rename.rename; 1.383 1.384 - <para>The <command role="hg-cmd">hg status</command> command shows 1.385 + <para id="x_1d4">The <command role="hg-cmd">hg status</command> command shows 1.386 the newly copied file as added, and the copied-from file as 1.387 removed.</para> 1.388 1.389 &interaction.daily.rename.status; 1.390 1.391 - <para>As with the results of a <command role="hg-cmd">hg 1.392 + <para id="x_1d5">As with the results of a <command role="hg-cmd">hg 1.393 copy</command>, we must use the <option 1.394 role="hg-opt-status">-C</option> option to <command 1.395 role="hg-cmd">hg status</command> to see that the added file 1.396 @@ -417,7 +417,7 @@ 1.397 1.398 &interaction.daily.rename.status-copy; 1.399 1.400 - <para>As with <command role="hg-cmd">hg remove</command> and 1.401 + <para id="x_1d6">As with <command role="hg-cmd">hg remove</command> and 1.402 <command role="hg-cmd">hg copy</command>, you can tell Mercurial 1.403 about a rename after the fact using the <option 1.404 role="hg-opt-rename">--after</option> option. In most other 1.405 @@ -429,18 +429,18 @@ 1.406 <sect2> 1.407 <title>Renaming files and merging changes</title> 1.408 1.409 - <para>Since Mercurial's rename is implemented as 1.410 + <para id="x_1d7">Since Mercurial's rename is implemented as 1.411 copy-and-remove, the same propagation of changes happens when 1.412 you merge after a rename as after a copy.</para> 1.413 1.414 - <para>If I modify a file, and you rename it to a new name, and 1.415 + <para id="x_1d8">If I modify a file, and you rename it to a new name, and 1.416 then we merge our respective changes, my modifications to the 1.417 file under its original name will be propagated into the file 1.418 under its new name. (This is something you might expect to 1.419 <quote>simply work,</quote> but not all revision control 1.420 systems actually do this.)</para> 1.421 1.422 - <para>Whereas having changes follow a copy is a feature where 1.423 + <para id="x_1d9">Whereas having changes follow a copy is a feature where 1.424 you can perhaps nod and say <quote>yes, that might be 1.425 useful,</quote> it should be clear that having them follow a 1.426 rename is definitely important. Without this facility, it 1.427 @@ -451,34 +451,34 @@ 1.428 <sect2> 1.429 <title>Divergent renames and merging</title> 1.430 1.431 - <para>The case of diverging names occurs when two developers 1.432 + <para id="x_1da">The case of diverging names occurs when two developers 1.433 start with a file&emdash;let's call it 1.434 <filename>foo</filename>&emdash;in their respective 1.435 repositories.</para> 1.436 1.437 &interaction.rename.divergent.clone; 1.438 1.439 - <para>Anne renames the file to <filename>bar</filename>.</para> 1.440 + <para id="x_1db">Anne renames the file to <filename>bar</filename>.</para> 1.441 1.442 &interaction.rename.divergent.rename.anne; 1.443 1.444 - <para>Meanwhile, Bob renames it to 1.445 + <para id="x_1dc">Meanwhile, Bob renames it to 1.446 <filename>quux</filename>.</para> 1.447 1.448 &interaction.rename.divergent.rename.bob; 1.449 1.450 - <para>I like to think of this as a conflict because each 1.451 + <para id="x_1dd">I like to think of this as a conflict because each 1.452 developer has expressed different intentions about what the 1.453 file ought to be named.</para> 1.454 1.455 - <para>What do you think should happen when they merge their 1.456 + <para id="x_1de">What do you think should happen when they merge their 1.457 work? Mercurial's actual behaviour is that it always preserves 1.458 <emphasis>both</emphasis> names when it merges changesets that 1.459 contain divergent renames.</para> 1.460 1.461 &interaction.rename.divergent.merge; 1.462 1.463 - <para>Notice that Mercurial does warn about the divergent 1.464 + <para id="x_1df">Notice that Mercurial does warn about the divergent 1.465 renames, but it leaves it up to you to do something about the 1.466 divergence after the merge.</para> 1.467 1.468 @@ -486,7 +486,7 @@ 1.469 <sect2> 1.470 <title>Convergent renames and merging</title> 1.471 1.472 - <para>Another kind of rename conflict occurs when two people 1.473 + <para id="x_1e0">Another kind of rename conflict occurs when two people 1.474 choose to rename different <emphasis>source</emphasis> files 1.475 to the same <emphasis>destination</emphasis>. In this case, 1.476 Mercurial runs its normal merge machinery, and lets you guide 1.477 @@ -496,7 +496,7 @@ 1.478 <sect2> 1.479 <title>Other name-related corner cases</title> 1.480 1.481 - <para>Mercurial has a longstanding bug in which it fails to 1.482 + <para id="x_1e1">Mercurial has a longstanding bug in which it fails to 1.483 handle a merge where one side has a file with a given name, 1.484 while another has a directory with the same name. This is 1.485 documented as <ulink role="hg-bug" 1.486 @@ -510,10 +510,10 @@ 1.487 <sect1> 1.488 <title>Recovering from mistakes</title> 1.489 1.490 - <para>Mercurial has some useful commands that will help you to 1.491 + <para id="x_1e2">Mercurial has some useful commands that will help you to 1.492 recover from some common mistakes.</para> 1.493 1.494 - <para>The <command role="hg-cmd">hg revert</command> command lets 1.495 + <para id="x_1e3">The <command role="hg-cmd">hg revert</command> command lets 1.496 you undo changes that you have made to your working directory. 1.497 For example, if you <command role="hg-cmd">hg add</command> a 1.498 file by accident, just run <command role="hg-cmd">hg 1.499 @@ -523,13 +523,13 @@ 1.500 <command role="hg-cmd">hg revert</command> to get rid of 1.501 erroneous changes to a file.</para> 1.502 1.503 - <para>It's useful to remember that the <command role="hg-cmd">hg 1.504 + <para id="x_1e4">It's useful to remember that the <command role="hg-cmd">hg 1.505 revert</command> command is useful for changes that you have 1.506 not yet committed. Once you've committed a change, if you 1.507 decide it was a mistake, you can still do something about it, 1.508 though your options may be more limited.</para> 1.509 1.510 - <para>For more information about the <command role="hg-cmd">hg 1.511 + <para id="x_1e5">For more information about the <command role="hg-cmd">hg 1.512 revert</command> command, and details about how to deal with 1.513 changes you have already committed, see chapter <xref 1.514 linkend="chap:undo"/>.</para>