diff po/zh.po @ 749:7e7c47481e4f

Oops, this is the real merge for my hg's oddity
author Dongsheng Song <dongsheng.song@gmail.com>
date Fri, 20 Mar 2009 16:43:35 +0800
parents c2cefd9f9893
children 6b1577ef5135
line wrap: on
line diff
--- a/po/zh.po	Fri Mar 20 15:40:06 2009 +0800
+++ b/po/zh.po	Fri Mar 20 16:43:35 2009 +0800
@@ -41,7 +41,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: hgbook 1.2\n"
-"POT-Creation-Date: 2009-03-18 19:48+0800\n"
+"POT-Creation-Date: 2009-03-20 15:47+0800\n"
 "PO-Revision-Date: 2009-03-18 19:50+0800\n"
 "Last-Translator: \n"
 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n"
@@ -475,15 +475,16 @@
 "patches</command>."
 msgstr ""
 
-#. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:42
-msgid ""
-"\\subsection{<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a "
-"patch from the <filename role=\"special\">series</filename> file}"
-msgstr ""
+#. type: Content of: <book><appendix><sect1><sect2><title>
+#: ../en/appB-mq-ref.xml:43
+#, fuzzy
+msgid ""
+"<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a patch from the "
+"<filename role=\"special\">series</filename> file}"
+msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:47
+#: ../en/appB-mq-ref.xml:48
 msgid ""
 "The <command role=\"hg-ext-mq\">qdelete</command> command removes the entry "
 "for a patch from the <filename role=\"special\">series</filename> file in the "
@@ -494,21 +495,21 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:56 ../en/appB-mq-ref.xml:98 ../en/appB-mq-ref.xml:156
-#: ../en/appB-mq-ref.xml:196 ../en/appB-mq-ref.xml:263
-#: ../en/appB-mq-ref.xml:334 ../en/appB-mq-ref.xml:403
-#: ../en/appB-mq-ref.xml:496
+#: ../en/appB-mq-ref.xml:57 ../en/appB-mq-ref.xml:99 ../en/appB-mq-ref.xml:157
+#: ../en/appB-mq-ref.xml:197 ../en/appB-mq-ref.xml:264
+#: ../en/appB-mq-ref.xml:335 ../en/appB-mq-ref.xml:404
+#: ../en/appB-mq-ref.xml:497
 msgid "Options:"
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:58
+#: ../en/appB-mq-ref.xml:59
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qdel-opt\">-f</option>: Delete the patch file."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:65
+#: ../en/appB-mq-ref.xml:66
 msgid ""
 "<command role=\"hg-ext-mq\">qdiff</command>&emdash;print a diff of the "
 "topmost applied patch"
@@ -516,7 +517,7 @@
 "<command role=\"hg-ext-mq\">qdiff</command>&emdash;显示最新应用补丁的差异"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:68
+#: ../en/appB-mq-ref.xml:69
 msgid ""
 "The <command role=\"hg-ext-mq\">qdiff</command> command prints a diff of the "
 "topmost applied patch. It is equivalent to <command role=\"hg-cmd\">hg diff -"
@@ -524,7 +525,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:74
+#: ../en/appB-mq-ref.xml:75
 msgid ""
 "<command role=\"hg-ext-mq\">qfold</command>&emdash;merge (<quote>fold</"
 "quote>) several patches into one"
@@ -533,7 +534,7 @@
 "</quote>)成一个"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:77
+#: ../en/appB-mq-ref.xml:78
 msgid ""
 "The <command role=\"hg-ext-mq\">qfold</command> command merges multiple "
 "patches into the topmost applied patch, so that the topmost applied patch "
@@ -541,7 +542,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:82
+#: ../en/appB-mq-ref.xml:83
 msgid ""
 "The patches to fold must not be applied; <command role=\"hg-ext-mq\">qfold</"
 "command> will exit with an error if any is.  The order in which patches are "
@@ -551,7 +552,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:90
+#: ../en/appB-mq-ref.xml:91
 msgid ""
 "The comments from the folded patches are appended to the comments of the "
 "destination patch, with each block of comments separated by three asterisk "
@@ -561,14 +562,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:100
+#: ../en/appB-mq-ref.xml:101
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-e</option>: Edit the commit message "
 "and patch description for the newly folded patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:105
+#: ../en/appB-mq-ref.xml:106
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-l</option>: Use the contents of the "
 "given file as the new commit message and patch description for the folded "
@@ -576,21 +577,21 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:110
+#: ../en/appB-mq-ref.xml:111
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-m</option>: Use the given text as "
 "the new commit message and patch description for the folded patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:118
+#: ../en/appB-mq-ref.xml:119
 msgid ""
 "<command role=\"hg-ext-mq\">qheader</command>&emdash;display the header/"
 "description of a patch"
 msgstr "<command role=\"hg-ext-mq\">qheader</command>&emdash;显示补丁头部描述"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:122
+#: ../en/appB-mq-ref.xml:123
 msgid ""
 "The <command role=\"hg-ext-mq\">qheader</command> command prints the header, "
 "or description, of a patch.  By default, it prints the header of the topmost "
@@ -598,7 +599,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:129
+#: ../en/appB-mq-ref.xml:130
 msgid ""
 "<command role=\"hg-ext-mq\">qimport</command>&emdash;import a third-party "
 "patch into the queue"
@@ -606,7 +607,7 @@
 "<command role=\"hg-ext-mq\">qimport</command>&emdash;将第三方补丁导入队列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:132
+#: ../en/appB-mq-ref.xml:133
 msgid ""
 "The <command role=\"hg-ext-mq\">qimport</command> command adds an entry for "
 "an external patch to the <filename role=\"special\">series</filename> file, "
@@ -616,7 +617,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:140
+#: ../en/appB-mq-ref.xml:141
 msgid ""
 "If the <filename role=\"special\" class=\"directory\">.hg/patches</filename> "
 "directory is a repository, <command role=\"hg-ext-mq\">qimport</command> "
@@ -625,14 +626,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:148
+#: ../en/appB-mq-ref.xml:149
 msgid ""
 "<command role=\"hg-ext-mq\">qinit</command>&emdash;prepare a repository to "
 "work with MQ"
 msgstr "<command role=\"hg-ext-mq\">qinit</command>&emdash;为使用 MQ 配置版本库"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:151
+#: ../en/appB-mq-ref.xml:152
 msgid ""
 "The <command role=\"hg-ext-mq\">qinit</command> command prepares a repository "
 "to work with MQ.  It creates a directory called <filename role=\"special\" "
@@ -640,7 +641,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:158
+#: ../en/appB-mq-ref.xml:159
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qinit-opt\">-c</option>: Create <filename role="
 "\"special\" class=\"directory\">.hg/patches</filename> as a repository in its "
@@ -649,7 +650,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:168
+#: ../en/appB-mq-ref.xml:169
 msgid ""
 "When the <filename role=\"special\" class=\"directory\">.hg/patches</"
 "filename> directory is a repository, the <command role=\"hg-ext-mq\">qimport</"
@@ -658,12 +659,12 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:177
+#: ../en/appB-mq-ref.xml:178
 msgid "<command role=\"hg-ext-mq\">qnew</command>&emdash;create a new patch"
 msgstr "<command role=\"hg-ext-mq\">qnew</command>&emdash;创建新补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:180
+#: ../en/appB-mq-ref.xml:181
 msgid ""
 "The <command role=\"hg-ext-mq\">qnew</command> command creates a new patch.  "
 "It takes one mandatory argument, the name to use for the patch file.  The "
@@ -673,7 +674,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:188
+#: ../en/appB-mq-ref.xml:189
 msgid ""
 "If <command role=\"hg-ext-mq\">qnew</command> finds modified files in the "
 "working directory, it will refuse to create a new patch unless the <option "
@@ -683,7 +684,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:198
+#: ../en/appB-mq-ref.xml:199
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qnew-opt\">-f</option>: Create a new patch if "
 "the contents of the working directory are modified.  Any outstanding "
@@ -692,7 +693,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:205
+#: ../en/appB-mq-ref.xml:206
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qnew-opt\">-m</option>: Use the given text as "
 "the commit message. This text will be stored at the beginning of the patch "
@@ -700,14 +701,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:214
+#: ../en/appB-mq-ref.xml:215
 msgid ""
 "<command role=\"hg-ext-mq\">qnext</command>&emdash;print the name of the next "
 "patch"
 msgstr "<command role=\"hg-ext-mq\">qnext</command>&emdash;显示下个补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:217
+#: ../en/appB-mq-ref.xml:218
 msgid ""
 "The <command role=\"hg-ext-mq\">qnext</command> command prints the name name "
 "of the next patch in the <filename role=\"special\">series</filename> file "
@@ -716,13 +717,13 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:226
+#: ../en/appB-mq-ref.xml:227
 msgid ""
 "<command role=\"hg-ext-mq\">qpop</command>&emdash;pop patches off the stack"
 msgstr "<command role=\"hg-ext-mq\">qpop</command>&emdash;删除堆栈顶部的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:229
+#: ../en/appB-mq-ref.xml:230
 msgid ""
 "The <command role=\"hg-ext-mq\">qpop</command> command removes applied "
 "patches from the top of the stack of applied patches.  By default, it removes "
@@ -730,7 +731,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:233
+#: ../en/appB-mq-ref.xml:234
 msgid ""
 "This command removes the changesets that represent the popped patches from "
 "the repository, and updates the working directory to undo the effects of the "
@@ -738,7 +739,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:237
+#: ../en/appB-mq-ref.xml:238
 msgid ""
 "This command takes an optional argument, which it uses as the name or index "
 "of the patch to pop to.  If given a name, it will pop patches until the named "
@@ -750,7 +751,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:247
+#: ../en/appB-mq-ref.xml:248
 msgid ""
 "The <command role=\"hg-ext-mq\">qpop</command> command does not read or write "
 "patches or the <filename role=\"special\">series</filename> file.  It is thus "
@@ -761,7 +762,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:256
+#: ../en/appB-mq-ref.xml:257
 msgid ""
 "By default, the <command role=\"hg-ext-mq\">qpop</command> command will not "
 "pop any patches if the working directory has been modified.  You can override "
@@ -770,7 +771,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:265
+#: ../en/appB-mq-ref.xml:266
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-a</option>: Pop all applied "
 "patches.  This returns the repository to its state before you applied any "
@@ -778,21 +779,21 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:270
+#: ../en/appB-mq-ref.xml:271
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-f</option>: Forcibly revert any "
 "modifications to the working directory when popping."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:275
+#: ../en/appB-mq-ref.xml:276
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-n</option>: Pop a patch from the "
 "named queue."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:280
+#: ../en/appB-mq-ref.xml:281
 msgid ""
 "The <command role=\"hg-ext-mq\">qpop</command> command removes one line from "
 "the end of the <filename role=\"special\">status</filename> file for each "
@@ -800,14 +801,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:287
+#: ../en/appB-mq-ref.xml:288
 msgid ""
 "<command role=\"hg-ext-mq\">qprev</command>&emdash;print the name of the "
 "previous patch"
 msgstr "<command role=\"hg-ext-mq\">qprev</command>&emdash;显示上个补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:290
+#: ../en/appB-mq-ref.xml:291
 msgid ""
 "The <command role=\"hg-ext-mq\">qprev</command> command prints the name of "
 "the patch in the <filename role=\"special\">series</filename> file that comes "
@@ -816,32 +817,32 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:299
+#: ../en/appB-mq-ref.xml:300
 msgid ""
 "<command role=\"hg-ext-mq\">qpush</command>&emdash;push patches onto the stack"
 msgstr "<command role=\"hg-ext-mq\">qpush</command>&emdash;增加补丁到堆栈"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:302
+#: ../en/appB-mq-ref.xml:303
 msgid ""
 "The <command role=\"hg-ext-mq\">qpush</command> command adds patches onto the "
 "applied stack.  By default, it adds only one patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:306
+#: ../en/appB-mq-ref.xml:307
 msgid ""
 "This command creates a new changeset to represent each applied patch, and "
 "updates the working directory to apply the effects of the patches."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:310
+#: ../en/appB-mq-ref.xml:311
 msgid "The default data used when creating a changeset are as follows:"
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:313
+#: ../en/appB-mq-ref.xml:314
 msgid ""
 "The commit date and time zone are the current date and time zone.  Because "
 "these data are used to compute the identity of a changeset, this means that "
@@ -851,14 +852,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:321
+#: ../en/appB-mq-ref.xml:322
 msgid ""
 "The author is the same as the default used by the <command role=\"hg-cmd\">hg "
 "commit</command> command."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:325
+#: ../en/appB-mq-ref.xml:326
 msgid ""
 "The commit message is any text from the patch file that comes before the "
 "first diff header.  If there is no such text, a default commit message is "
@@ -866,14 +867,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:330
+#: ../en/appB-mq-ref.xml:331
 msgid ""
 "If a patch contains a Mercurial patch header (XXX add link), the information "
 "in the patch header overrides these defaults."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:336
+#: ../en/appB-mq-ref.xml:337
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-a</option>: Push all unapplied "
 "patches from the <filename role=\"special\">series</filename> file until "
@@ -881,14 +882,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:342
+#: ../en/appB-mq-ref.xml:343
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-l</option>: Add the name of the "
 "patch to the end of the commit message."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:346
+#: ../en/appB-mq-ref.xml:347
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-m</option>: If a patch fails to "
 "apply cleanly, use the entry for the patch in another saved queue to compute "
@@ -898,14 +899,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:354
+#: ../en/appB-mq-ref.xml:355
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-n</option>: Use the named queue if "
 "merging while pushing."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:359
+#: ../en/appB-mq-ref.xml:360
 msgid ""
 "The <command role=\"hg-ext-mq\">qpush</command> command reads, but does not "
 "modify, the <filename role=\"special\">series</filename> file.  It appends "
@@ -914,14 +915,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:367
+#: ../en/appB-mq-ref.xml:368
 msgid ""
 "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;update the topmost "
 "applied patch"
 msgstr "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;更新最新的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:371
+#: ../en/appB-mq-ref.xml:372
 msgid ""
 "The <command role=\"hg-ext-mq\">qrefresh</command> command updates the "
 "topmost applied patch.  It modifies the patch, removes the old changeset that "
@@ -930,28 +931,28 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:377
+#: ../en/appB-mq-ref.xml:378
 msgid ""
 "The <command role=\"hg-ext-mq\">qrefresh</command> command looks for the "
 "following modifications:"
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:380
+#: ../en/appB-mq-ref.xml:381
 msgid ""
 "Changes to the commit message, i.e. the text before the first diff header in "
 "the patch file, are reflected in the new changeset that represents the patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:385
+#: ../en/appB-mq-ref.xml:386
 msgid ""
 "Modifications to tracked files in the working directory are added to the "
 "patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:388
+#: ../en/appB-mq-ref.xml:389
 msgid ""
 "Changes to the files tracked using <command role=\"hg-cmd\">hg add</command>, "
 "<command role=\"hg-cmd\">hg copy</command>, <command role=\"hg-cmd\">hg "
@@ -961,7 +962,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:397
+#: ../en/appB-mq-ref.xml:398
 msgid ""
 "Even if <command role=\"hg-ext-mq\">qrefresh</command> detects no changes, it "
 "still recreates the changeset that represents the patch.  This causes the "
@@ -970,33 +971,33 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:405
+#: ../en/appB-mq-ref.xml:406
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-e</option>: Modify the commit "
 "and patch description, using the preferred text editor."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:410
+#: ../en/appB-mq-ref.xml:411
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-m</option>: Modify the commit "
 "message and patch description, using the given text."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:415
+#: ../en/appB-mq-ref.xml:416
 msgid ""
 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-l</option>: Modify the commit "
 "message and patch description, using text from the given file."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:423
+#: ../en/appB-mq-ref.xml:424
 msgid "<command role=\"hg-ext-mq\">qrename</command>&emdash;rename a patch"
 msgstr "<command role=\"hg-ext-mq\">qrename</command>&emdash;改名补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:426
+#: ../en/appB-mq-ref.xml:427
 msgid ""
 "The <command role=\"hg-ext-mq\">qrename</command> command renames a patch, "
 "and changes the entry for the patch in the <filename role=\"special\">series</"
@@ -1004,7 +1005,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:430
+#: ../en/appB-mq-ref.xml:431
 msgid ""
 "With a single argument, <command role=\"hg-ext-mq\">qrename</command> renames "
 "the topmost applied patch.  With two arguments, it renames its first argument "
@@ -1012,37 +1013,37 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:437
+#: ../en/appB-mq-ref.xml:438
 msgid ""
 "<command role=\"hg-ext-mq\">qrestore</command>&emdash;restore saved queue "
 "state"
 msgstr "<command role=\"hg-ext-mq\">qrestore</command>&emdash;恢复保存的队列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:441
+#: ../en/appB-mq-ref.xml:442
 msgid "XXX No idea what this does."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:445
+#: ../en/appB-mq-ref.xml:446
 msgid ""
 "<command role=\"hg-ext-mq\">qsave</command>&emdash;save current queue state"
 msgstr "<command role=\"hg-ext-mq\">qsave</command>&emdash;保存当前的队列状态"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:448
+#: ../en/appB-mq-ref.xml:449
 msgid "XXX Likewise."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:452
+#: ../en/appB-mq-ref.xml:453
 msgid ""
 "<command role=\"hg-ext-mq\">qseries</command>&emdash;print the entire patch "
 "series"
 msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:455
+#: ../en/appB-mq-ref.xml:456
 msgid ""
 "The <command role=\"hg-ext-mq\">qseries</command> command prints the entire "
 "patch series from the <filename role=\"special\">series</filename> file.  It "
@@ -1051,21 +1052,21 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:463
+#: ../en/appB-mq-ref.xml:464
 msgid ""
 "<command role=\"hg-ext-mq\">qtop</command>&emdash;print the name of the "
 "current patch"
 msgstr "<command role=\"hg-ext-mq\">qtop</command>&emdash;显示当前补丁的名称"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:466
+#: ../en/appB-mq-ref.xml:467
 msgid ""
 "The <command role=\"hg-ext-mq\">qtop</command> prints the name of the topmost "
 "currently applied patch."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:471
+#: ../en/appB-mq-ref.xml:472
 msgid ""
 "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;print patches not yet "
 "applied"
@@ -1073,7 +1074,7 @@
 "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;显示尚未应用的补丁"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:475
+#: ../en/appB-mq-ref.xml:476
 msgid ""
 "The <command role=\"hg-ext-mq\">qunapplied</command> command prints the names "
 "of patches from the <filename role=\"special\">series</filename> file that "
@@ -1082,14 +1083,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:483
+#: ../en/appB-mq-ref.xml:484
 msgid ""
 "<command role=\"hg-cmd\">hg strip</command>&emdash;remove a revision and "
 "descendants"
 msgstr "<command role=\"hg-cmd\">hg strip</command>&emdash;删除一个版本及其后继"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:486
+#: ../en/appB-mq-ref.xml:487
 msgid ""
 "The <command role=\"hg-cmd\">hg strip</command> command removes a revision, "
 "and all of its descendants, from the repository.  It undoes the effects of "
@@ -1098,7 +1099,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:492
+#: ../en/appB-mq-ref.xml:493
 msgid ""
 "The <command role=\"hg-cmd\">hg strip</command> command saves a backup of the "
 "removed changesets in a bundle, so that they can be reapplied if removed in "
@@ -1106,14 +1107,14 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:498
+#: ../en/appB-mq-ref.xml:499
 msgid ""
 "<option role=\"hg-opt-strip\">-b</option>: Save unrelated changesets that are "
 "intermixed with the stripped changesets in the backup bundle."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:502
+#: ../en/appB-mq-ref.xml:503
 msgid ""
 "<option role=\"hg-opt-strip\">-f</option>: If a branch has multiple heads, "
 "remove all heads. XXX This should be renamed, and use <literal>-f</literal> "
@@ -1121,22 +1122,22 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/appB-mq-ref.xml:507
+#: ../en/appB-mq-ref.xml:508
 msgid "<option role=\"hg-opt-strip\">-n</option>: Do not save a backup bundle."
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><title>
-#: ../en/appB-mq-ref.xml:514
+#: ../en/appB-mq-ref.xml:515
 msgid "MQ file reference"
 msgstr "MQ 文件参考"
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:517
+#: ../en/appB-mq-ref.xml:518
 msgid "The <filename role=\"special\">series</filename> file"
 msgstr "<filename role=\"special\">序列</filename>文件"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:520
+#: ../en/appB-mq-ref.xml:521
 msgid ""
 "The <filename role=\"special\">series</filename> file contains a list of the "
 "names of all patches that MQ can apply.  It is represented as a list of "
@@ -1145,7 +1146,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:526
+#: ../en/appB-mq-ref.xml:527
 msgid ""
 "Lines may contain comments.  A comment begins with the <quote><literal>#</"
 "literal></quote> character, and extends to the end of the line.  Empty lines, "
@@ -1153,7 +1154,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:531
+#: ../en/appB-mq-ref.xml:532
 msgid ""
 "You will often need to edit the <filename role=\"special\">series</filename> "
 "file by hand, hence the support for comments and empty lines noted above.  "
@@ -1164,7 +1165,7 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:540
+#: ../en/appB-mq-ref.xml:541
 msgid ""
 "Placing the <filename role=\"special\">series</filename> file under revision "
 "control is also supported; it is a good idea to place all of the patches that "
@@ -1175,12 +1176,12 @@
 msgstr ""
 
 #. type: Content of: <book><appendix><sect1><sect2><title>
-#: ../en/appB-mq-ref.xml:550
+#: ../en/appB-mq-ref.xml:551
 msgid "The <filename role=\"special\">status</filename> file"
 msgstr "<filename role=\"special\">状态</filename>文件"
 
 #. type: Content of: <book><appendix><sect1><sect2><para>
-#: ../en/appB-mq-ref.xml:553
+#: ../en/appB-mq-ref.xml:554
 msgid ""
 "The <filename role=\"special\">status</filename> file contains the names and "
 "changeset hashes of all patches that MQ currently has applied.  Unlike the "
@@ -1519,941 +1520,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch01-intro.xml:5
-msgid "Introduction"
-msgstr "简介"
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:8
-msgid "About revision control"
-msgstr "关于版本控制"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:10
-msgid ""
-"Revision control is the process of managing multiple versions of a piece of "
-"information.  In its simplest form, this is something that many people do by "
-"hand: every time you modify a file, save it under a new name that contains a "
-"number, each one higher than the number of the preceding version."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:16
-msgid ""
-"Manually managing multiple versions of even a single file is an error-prone "
-"task, though, so software tools to help automate this process have long been "
-"available.  The earliest automated revision control tools were intended to "
-"help a single user to manage revisions of a single file.  Over the past few "
-"decades, the scope of revision control tools has expanded greatly; they now "
-"manage multiple files, and help multiple people to work together.  The best "
-"modern revision control tools have no problem coping with thousands of people "
-"working together on projects that consist of hundreds of thousands of files."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:28
-msgid "Why use revision control?"
-msgstr "为什么使用版本控制?"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:30
-msgid ""
-"There are a number of reasons why you or your team might want to use an "
-"automated revision control tool for a project."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:34
-msgid ""
-"It will track the history and evolution of your project, so you don't have "
-"to.  For every change, you'll have a log of <emphasis>who</emphasis> made it; "
-"<emphasis>why</emphasis> they made it; <emphasis>when</emphasis> they made "
-"it; and <emphasis>what</emphasis> the change was."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:41
-msgid ""
-"When you're working with other people, revision control software makes it "
-"easier for you to collaborate.  For example, when people more or less "
-"simultaneously make potentially incompatible changes, the software will help "
-"you to identify and resolve those conflicts."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:47
-msgid ""
-"It can help you to recover from mistakes.  If you make a change that later "
-"turns out to be in error, you can revert to an earlier version of one or more "
-"files.  In fact, a <emphasis>really</emphasis> good revision control tool "
-"will even help you to efficiently figure out exactly when a problem was "
-"introduced (see section <xref linkend=\"sec.undo.bisect\"/> for details)."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:54
-msgid ""
-"It will help you to work simultaneously on, and manage the drift between, "
-"multiple versions of your project."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:57
-msgid ""
-"Most of these reasons are equally valid---at least in theory---whether you're "
-"working on a project by yourself, or with a hundred other people."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:61
-msgid ""
-"A key question about the practicality of revision control at these two "
-"different scales (<quote>lone hacker</quote> and <quote>huge team</quote>) is "
-"how its <emphasis>benefits</emphasis> compare to its <emphasis>costs</"
-"emphasis>.  A revision control tool that's difficult to understand or use is "
-"going to impose a high cost."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:69
-msgid ""
-"A five-hundred-person project is likely to collapse under its own weight "
-"almost immediately without a revision control tool and process. In this case, "
-"the cost of using revision control might hardly seem worth considering, since "
-"<emphasis>without</emphasis> it, failure is almost guaranteed."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:76
-msgid ""
-"On the other hand, a one-person <quote>quick hack</quote> might seem like a "
-"poor place to use a revision control tool, because surely the cost of using "
-"one must be close to the overall cost of the project.  Right?"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:81
-msgid ""
-"Mercurial uniquely supports <emphasis>both</emphasis> of these scales of "
-"development.  You can learn the basics in just a few minutes, and due to its "
-"low overhead, you can apply revision control to the smallest of projects with "
-"ease.  Its simplicity means you won't have a lot of abstruse concepts or "
-"command sequences competing for mental space with whatever you're "
-"<emphasis>really</emphasis> trying to do.  At the same time, Mercurial's high "
-"performance and peer-to-peer nature let you scale painlessly to handle large "
-"projects."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:91
-msgid ""
-"No revision control tool can rescue a poorly run project, but a good choice "
-"of tools can make a huge difference to the fluidity with which you can work "
-"on a project."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:97
-msgid "The many names of revision control"
-msgstr "版本控制的别名"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:99
-msgid ""
-"Revision control is a diverse field, so much so that it doesn't actually have "
-"a single name or acronym.  Here are a few of the more common names and "
-"acronyms you'll encounter:"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:104
-msgid "Revision control (RCS)"
-msgstr "版本控制(RCS)"
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:105
-msgid "Software configuration management (SCM), or configuration management"
-msgstr "软件配置管理(SCM),或配置管理"
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:107
-msgid "Source code management"
-msgstr "源代码管理"
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:108
-msgid "Source code control, or source control"
-msgstr "源代码控制,或源控制"
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:110
-msgid "Version control (VCS)"
-msgstr "版本控制(VCS)"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:112
-msgid ""
-"Some people claim that these terms actually have different meanings, but in "
-"practice they overlap so much that there's no agreed or even useful way to "
-"tease them apart."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:119
-msgid "A short history of revision control"
-msgstr "版本控制简史"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:121
-msgid ""
-"The best known of the old-time revision control tools is SCCS (Source Code "
-"Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s.  "
-"SCCS operated on individual files, and required every person working on a "
-"project to have access to a shared workspace on a single system.  Only one "
-"person could modify a file at any time; arbitration for access to files was "
-"via locks.  It was common for people to lock files, and later forget to "
-"unlock them, preventing anyone else from modifying those files without the "
-"help of an administrator."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:132
-msgid ""
-"Walter Tichy developed a free alternative to SCCS in the early 1980s; he "
-"called his program RCS (Revision Control System).  Like SCCS, RCS required "
-"developers to work in a single shared workspace, and to lock files to prevent "
-"multiple people from modifying them simultaneously."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:138
-msgid ""
-"Later in the 1980s, Dick Grune used RCS as a building block for a set of "
-"shell scripts he initially called cmt, but then renamed to CVS (Concurrent "
-"Versions System).  The big innovation of CVS was that it let developers work "
-"simultaneously and somewhat independently in their own personal workspaces.  "
-"The personal workspaces prevented developers from stepping on each other's "
-"toes all the time, as was common with SCCS and RCS. Each developer had a copy "
-"of every project file, and could modify their copies independently.  They had "
-"to merge their edits prior to committing changes to the central repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:149
-msgid ""
-"Brian Berliner took Grune's original scripts and rewrote them in C, releasing "
-"in 1989 the code that has since developed into the modern version of CVS.  "
-"CVS subsequently acquired the ability to operate over a network connection, "
-"giving it a client/server architecture.  CVS's architecture is centralised; "
-"only the server has a copy of the history of the project. Client workspaces "
-"just contain copies of recent versions of the project's files, and a little "
-"metadata to tell them where the server is.  CVS has been enormously "
-"successful; it is probably the world's most widely used revision control "
-"system."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:160
-msgid ""
-"In the early 1990s, Sun Microsystems developed an early distributed revision "
-"control system, called TeamWare.  A TeamWare workspace contains a complete "
-"copy of the project's history.  TeamWare has no notion of a central "
-"repository.  (CVS relied upon RCS for its history storage; TeamWare used "
-"SCCS.)"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:167
-msgid ""
-"As the 1990s progressed, awareness grew of a number of problems with CVS.  It "
-"records simultaneous changes to multiple files individually, instead of "
-"grouping them together as a single logically atomic operation.  It does not "
-"manage its file hierarchy well; it is easy to make a mess of a repository by "
-"renaming files and directories.  Worse, its source code is difficult to read "
-"and maintain, which made the <quote>pain level</quote> of fixing these "
-"architectural problems prohibitive."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:177
-msgid ""
-"In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, "
-"started a project to replace it with a tool that would have a better "
-"architecture and cleaner code.  The result, Subversion, does not stray from "
-"CVS's centralised client/server model, but it adds multi-file atomic commits, "
-"better namespace management, and a number of other features that make it a "
-"generally better tool than CVS. Since its initial release, it has rapidly "
-"grown in popularity."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:186
-msgid ""
-"More or less simultaneously, Graydon Hoare began working on an ambitious "
-"distributed revision control system that he named Monotone. While Monotone "
-"addresses many of CVS's design flaws and has a peer-to-peer architecture, it "
-"goes beyond earlier (and subsequent) revision control tools in a number of "
-"innovative ways.  It uses cryptographic hashes as identifiers, and has an "
-"integral notion of <quote>trust</quote> for code from different sources."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:195
-msgid ""
-"Mercurial began life in 2005.  While a few aspects of its design are "
-"influenced by Monotone, Mercurial focuses on ease of use, high performance, "
-"and scalability to very large projects."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:202
-msgid "Trends in revision control"
-msgstr "版本控制的发展趋势"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:204
-msgid ""
-"There has been an unmistakable trend in the development and use of revision "
-"control tools over the past four decades, as people have become familiar with "
-"the capabilities of their tools and constrained by their limitations."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:209
-msgid ""
-"The first generation began by managing single files on individual computers.  "
-"Although these tools represented a huge advance over ad-hoc manual revision "
-"control, their locking model and reliance on a single computer limited them "
-"to small, tightly-knit teams."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:215
-msgid ""
-"The second generation loosened these constraints by moving to network-"
-"centered architectures, and managing entire projects at a time.  As projects "
-"grew larger, they ran into new problems.  With clients needing to talk to "
-"servers very frequently, server scaling became an issue for large projects.  "
-"An unreliable network connection could prevent remote users from being able "
-"to talk to the server at all.  As open source projects started making read-"
-"only access available anonymously to anyone, people without commit privileges "
-"found that they could not use the tools to interact with a project in a "
-"natural way, as they could not record their changes."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:227
-msgid ""
-"The current generation of revision control tools is peer-to-peer in nature.  "
-"All of these systems have dropped the dependency on a single central server, "
-"and allow people to distribute their revision control data to where it's "
-"actually needed.  Collaboration over the Internet has moved from constrained "
-"by technology to a matter of choice and consensus.  Modern tools can operate "
-"offline indefinitely and autonomously, with a network connection only needed "
-"when syncing changes with another repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:239
-msgid "A few of the advantages of distributed revision control"
-msgstr "分布版本控制的优点"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:242
-msgid ""
-"Even though distributed revision control tools have for several years been as "
-"robust and usable as their previous-generation counterparts, people using "
-"older tools have not yet necessarily woken up to their advantages.  There are "
-"a number of ways in which distributed tools shine relative to centralised "
-"ones."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:249
-msgid ""
-"For an individual developer, distributed tools are almost always much faster "
-"than centralised tools.  This is for a simple reason: a centralised tool "
-"needs to talk over the network for many common operations, because most "
-"metadata is stored in a single copy on the central server.  A distributed "
-"tool stores all of its metadata locally.  All else being equal, talking over "
-"the network adds overhead to a centralised tool.  Don't underestimate the "
-"value of a snappy, responsive tool: you're going to spend a lot of time "
-"interacting with your revision control software."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:260
-msgid ""
-"Distributed tools are indifferent to the vagaries of your server "
-"infrastructure, again because they replicate metadata to so many locations.  "
-"If you use a centralised system and your server catches fire, you'd better "
-"hope that your backup media are reliable, and that your last backup was "
-"recent and actually worked.  With a distributed tool, you have many backups "
-"available on every contributor's computer."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:268
-msgid ""
-"The reliability of your network will affect distributed tools far less than "
-"it will centralised tools.  You can't even use a centralised tool without a "
-"network connection, except for a few highly constrained commands.  With a "
-"distributed tool, if your network connection goes down while you're working, "
-"you may not even notice.  The only thing you won't be able to do is talk to "
-"repositories on other computers, something that is relatively rare compared "
-"with local operations.  If you have a far-flung team of collaborators, this "
-"may be significant."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:279
-msgid "Advantages for open source projects"
-msgstr "开源项目的优点"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:281
-msgid ""
-"If you take a shine to an open source project and decide that you would like "
-"to start hacking on it, and that project uses a distributed revision control "
-"tool, you are at once a peer with the people who consider themselves the "
-"<quote>core</quote> of that project.  If they publish their repositories, you "
-"can immediately copy their project history, start making changes, and record "
-"your work, using the same tools in the same ways as insiders.  By contrast, "
-"with a centralised tool, you must use the software in a <quote>read only</"
-"quote> mode unless someone grants you permission to commit changes to their "
-"central server.  Until then, you won't be able to record changes, and your "
-"local modifications will be at risk of corruption any time you try to update "
-"your client's view of the repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch01-intro.xml:297
-msgid "The forking non-problem"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch01-intro.xml:299
-msgid ""
-"It has been suggested that distributed revision control tools pose some sort "
-"of risk to open source projects because they make it easy to <quote>fork</"
-"quote> the development of a project.  A fork happens when there are "
-"differences in opinion or attitude between groups of developers that cause "
-"them to decide that they can't work together any longer.  Each side takes a "
-"more or less complete copy of the project's source code, and goes off in its "
-"own direction."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch01-intro.xml:309
-msgid ""
-"Sometimes the camps in a fork decide to reconcile their differences. With a "
-"centralised revision control system, the <emphasis>technical</emphasis> "
-"process of reconciliation is painful, and has to be performed largely by "
-"hand.  You have to decide whose revision history is going to <quote>win</"
-"quote>, and graft the other team's changes into the tree somehow. This "
-"usually loses some or all of one side's revision history."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch01-intro.xml:318
-msgid ""
-"What distributed tools do with respect to forking is they make forking the "
-"<emphasis>only</emphasis> way to develop a project.  Every single change that "
-"you make is potentially a fork point.  The great strength of this approach is "
-"that a distributed revision control tool has to be really good at "
-"<emphasis>merging</emphasis> forks, because forks are absolutely fundamental: "
-"they happen all the time."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch01-intro.xml:327
-msgid ""
-"If every piece of work that everybody does, all the time, is framed in terms "
-"of forking and merging, then what the open source world refers to as a "
-"<quote>fork</quote> becomes <emphasis>purely</emphasis> a social issue.  If "
-"anything, distributed tools <emphasis>lower</emphasis> the likelihood of a "
-"fork:"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:334
-msgid ""
-"They eliminate the social distinction that centralised tools impose: that "
-"between insiders (people with commit access) and outsiders (people without)."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:338
-msgid ""
-"They make it easier to reconcile after a social fork, because all that's "
-"involved from the perspective of the revision control software is just "
-"another merge."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch01-intro.xml:343
-msgid ""
-"Some people resist distributed tools because they want to retain tight "
-"control over their projects, and they believe that centralised tools give "
-"them this control.  However, if you're of this belief, and you publish your "
-"CVS or Subversion repositories publicly, there are plenty of tools available "
-"that can pull out your entire project's history (albeit slowly) and recreate "
-"it somewhere that you don't control.  So while your control in this case is "
-"illusory, you are forgoing the ability to fluidly collaborate with whatever "
-"people feel compelled to mirror and fork your history."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:358
-msgid "Advantages for commercial projects"
-msgstr "商业项目的优点"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:360
-msgid ""
-"Many commercial projects are undertaken by teams that are scattered across "
-"the globe.  Contributors who are far from a central server will see slower "
-"command execution and perhaps less reliability.  Commercial revision control "
-"systems attempt to ameliorate these problems with remote-site replication add-"
-"ons that are typically expensive to buy and cantankerous to administer.  A "
-"distributed system doesn't suffer from these problems in the first place.  "
-"Better yet, you can easily set up multiple authoritative servers, say one per "
-"site, so that there's no redundant communication between repositories over "
-"expensive long-haul network links."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:372
-msgid ""
-"Centralised revision control systems tend to have relatively low "
-"scalability.  It's not unusual for an expensive centralised system to fall "
-"over under the combined load of just a few dozen concurrent users.  Once "
-"again, the typical response tends to be an expensive and clunky replication "
-"facility.  Since the load on a central server---if you have one at all---is "
-"many times lower with a distributed tool (because all of the data is "
-"replicated everywhere), a single cheap server can handle the needs of a much "
-"larger team, and replication to balance load becomes a simple matter of "
-"scripting."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:384
-msgid ""
-"If you have an employee in the field, troubleshooting a problem at a "
-"customer's site, they'll benefit from distributed revision control. The tool "
-"will let them generate custom builds, try different fixes in isolation from "
-"each other, and search efficiently through history for the sources of bugs "
-"and regressions in the customer's environment, all without needing to connect "
-"to your company's network."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:395
-msgid "Why choose Mercurial?"
-msgstr "为什么选择 Mercurial?"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:397
-msgid ""
-"Mercurial has a unique set of properties that make it a particularly good "
-"choice as a revision control system."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:400
-msgid "It is easy to learn and use."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:401
-msgid "It is lightweight."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:402
-msgid "It scales excellently."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:403
-msgid "It is easy to customise."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:406
-msgid ""
-"If you are at all familiar with revision control systems, you should be able "
-"to get up and running with Mercurial in less than five minutes.  Even if not, "
-"it will take no more than a few minutes longer.  Mercurial's command and "
-"feature sets are generally uniform and consistent, so you can keep track of a "
-"few general rules instead of a host of exceptions."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:413
-msgid ""
-"On a small project, you can start working with Mercurial in moments. Creating "
-"new changes and branches; transferring changes around (whether locally or "
-"over a network); and history and status operations are all fast.  Mercurial "
-"attempts to stay nimble and largely out of your way by combining low "
-"cognitive overhead with blazingly fast operations."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:420
-msgid ""
-"The usefulness of Mercurial is not limited to small projects: it is used by "
-"projects with hundreds to thousands of contributors, each containing tens of "
-"thousands of files and hundreds of megabytes of source code."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:425
-msgid ""
-"If the core functionality of Mercurial is not enough for you, it's easy to "
-"build on.  Mercurial is well suited to scripting tasks, and its clean "
-"internals and implementation in Python make it easy to add features in the "
-"form of extensions.  There are a number of popular and useful extensions "
-"already available, ranging from helping to identify bugs to improving "
-"performance."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:435
-msgid "Mercurial compared with other tools"
-msgstr "Mercurial 与其它工具的比较"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:437
-msgid ""
-"Before you read on, please understand that this section necessarily reflects "
-"my own experiences, interests, and (dare I say it) biases.  I have used every "
-"one of the revision control tools listed below, in most cases for several "
-"years at a time."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:445 ../en/ch01-intro.xml:656
-msgid "Subversion"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:447
-msgid ""
-"Subversion is a popular revision control tool, developed to replace CVS.  It "
-"has a centralised client/server architecture."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:451
-msgid ""
-"Subversion and Mercurial have similarly named commands for performing the "
-"same operations, so if you're familiar with one, it is easy to learn to use "
-"the other.  Both tools are portable to all popular operating systems."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:456
-msgid ""
-"Prior to version 1.5, Subversion had no useful support for merges. At the "
-"time of writing, its merge tracking capability is new, and known to be <ulink "
-"url=\"http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced."
-"html#svn.branchmerge.advanced.finalword\">complicated and buggy</ulink>."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:462
-msgid ""
-"Mercurial has a substantial performance advantage over Subversion on every "
-"revision control operation I have benchmarked.  I have measured its advantage "
-"as ranging from a factor of two to a factor of six when compared with "
-"Subversion 1.4.3's <emphasis>ra_local</emphasis> file store, which is the "
-"fastest access method available.  In more realistic deployments involving a "
-"network-based store, Subversion will be at a substantially larger "
-"disadvantage.  Because many Subversion commands must talk to the server and "
-"Subversion does not have useful replication facilities, server capacity and "
-"network bandwidth become bottlenecks for modestly large projects."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:475
-msgid ""
-"Additionally, Subversion incurs substantial storage overhead to avoid network "
-"transactions for a few common operations, such as finding modified files "
-"(<literal>status</literal>) and displaying modifications against the current "
-"revision (<literal>diff</literal>).  As a result, a Subversion working copy "
-"is often the same size as, or larger than, a Mercurial repository and working "
-"directory, even though the Mercurial repository contains a complete history "
-"of the project."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:485
-msgid ""
-"Subversion is widely supported by third party tools.  Mercurial currently "
-"lags considerably in this area.  This gap is closing, however, and indeed "
-"some of Mercurial's GUI tools now outshine their Subversion equivalents.  "
-"Like Mercurial, Subversion has an excellent user manual."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:491
-msgid ""
-"Because Subversion doesn't store revision history on the client, it is well "
-"suited to managing projects that deal with lots of large, opaque binary "
-"files.  If you check in fifty revisions to an incompressible 10MB file, "
-"Subversion's client-side space usage stays constant The space used by any "
-"distributed SCM will grow rapidly in proportion to the number of revisions, "
-"because the differences between each revision are large."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:500
-msgid ""
-"In addition, it's often difficult or, more usually, impossible to merge "
-"different versions of a binary file.  Subversion's ability to let a user lock "
-"a file, so that they temporarily have the exclusive right to commit changes "
-"to it, can be a significant advantage to a project where binary files are "
-"widely used."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:507
-msgid ""
-"Mercurial can import revision history from a Subversion repository. It can "
-"also export revision history to a Subversion repository.  This makes it easy "
-"to <quote>test the waters</quote> and use Mercurial and Subversion in "
-"parallel before deciding to switch.  History conversion is incremental, so "
-"you can perform an initial conversion, then small additional conversions "
-"afterwards to bring in new changes."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:519 ../en/ch01-intro.xml:658
-msgid "Git"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:521
-msgid ""
-"Git is a distributed revision control tool that was developed for managing "
-"the Linux kernel source tree.  Like Mercurial, its early design was somewhat "
-"influenced by Monotone."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:526
-msgid ""
-"Git has a very large command set, with version 1.5.0 providing 139 individual "
-"commands.  It has something of a reputation for being difficult to learn.  "
-"Compared to Git, Mercurial has a strong focus on simplicity."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:531
-msgid ""
-"In terms of performance, Git is extremely fast.  In several cases, it is "
-"faster than Mercurial, at least on Linux, while Mercurial performs better on "
-"other operations.  However, on Windows, the performance and general level of "
-"support that Git provides is, at the time of writing, far behind that of "
-"Mercurial."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:538
-msgid ""
-"While a Mercurial repository needs no maintenance, a Git repository requires "
-"frequent manual <quote>repacks</quote> of its metadata.  Without these, "
-"performance degrades, while space usage grows rapidly.  A server that "
-"contains many Git repositories that are not rigorously and frequently "
-"repacked will become heavily disk-bound during backups, and there have been "
-"instances of daily backups taking far longer than 24 hours as a result.  A "
-"freshly packed Git repository is slightly smaller than a Mercurial "
-"repository, but an unpacked repository is several orders of magnitude larger."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:549
-msgid ""
-"The core of Git is written in C.  Many Git commands are implemented as shell "
-"or Perl scripts, and the quality of these scripts varies widely. I have "
-"encountered several instances where scripts charged along blindly in the "
-"presence of errors that should have been fatal."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:555
-msgid "Mercurial can import revision history from a Git repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:561 ../en/ch01-intro.xml:657
-msgid "CVS"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:563
-msgid ""
-"CVS is probably the most widely used revision control tool in the world.  Due "
-"to its age and internal untidiness, it has been only lightly maintained for "
-"many years."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:567
-msgid ""
-"It has a centralised client/server architecture.  It does not group related "
-"file changes into atomic commits, making it easy for people to <quote>break "
-"the build</quote>: one person can successfully commit part of a change and "
-"then be blocked by the need for a merge, causing other people to see only a "
-"portion of the work they intended to do.  This also affects how you work with "
-"project history.  If you want to see all of the modifications someone made as "
-"part of a task, you will need to manually inspect the descriptions and "
-"timestamps of the changes made to each file involved (if you even know what "
-"those files were)."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:579
-msgid ""
-"CVS has a muddled notion of tags and branches that I will not attempt to even "
-"describe.  It does not support renaming of files or directories well, making "
-"it easy to corrupt a repository.  It has almost no internal consistency "
-"checking capabilities, so it is usually not even possible to tell whether or "
-"how a repository is corrupt.  I would not recommend CVS for any project, "
-"existing or new."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:587
-msgid ""
-"Mercurial can import CVS revision history.  However, there are a few caveats "
-"that apply; these are true of every other revision control tool's CVS "
-"importer, too.  Due to CVS's lack of atomic changes and unversioned "
-"filesystem hierarchy, it is not possible to reconstruct CVS history "
-"completely accurately; some guesswork is involved, and renames will usually "
-"not show up.  Because a lot of advanced CVS administration has to be done by "
-"hand and is hence error-prone, it's common for CVS importers to run into "
-"multiple problems with corrupted repositories (completely bogus revision "
-"timestamps and files that have remained locked for over a decade are just two "
-"of the less interesting problems I can recall from personal experience)."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:601
-msgid "Mercurial can import revision history from a CVS repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:607
-msgid "Commercial tools"
-msgstr "商业工具"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:609
-msgid ""
-"Perforce has a centralised client/server architecture, with no client-side "
-"caching of any data.  Unlike modern revision control tools, Perforce requires "
-"that a user run a command to inform the server about every file they intend "
-"to edit."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:615
-msgid ""
-"The performance of Perforce is quite good for small teams, but it falls off "
-"rapidly as the number of users grows beyond a few dozen. Modestly large "
-"Perforce installations require the deployment of proxies to cope with the "
-"load their users generate."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch01-intro.xml:624
-msgid "Choosing a revision control tool"
-msgstr "选择版本控制工具"
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:626
-msgid ""
-"With the exception of CVS, all of the tools listed above have unique "
-"strengths that suit them to particular styles of work.  There is no single "
-"revision control tool that is best in all situations."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:631
-msgid ""
-"As an example, Subversion is a good choice for working with frequently edited "
-"binary files, due to its centralised nature and support for file locking."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch01-intro.xml:635
-msgid ""
-"I personally find Mercurial's properties of simplicity, performance, and good "
-"merge support to be a compelling combination that has served me well for "
-"several years."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch01-intro.xml:643
-msgid "Switching from another tool to Mercurial"
-msgstr "从其它工具切换到 Mercurial"
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:645
-msgid ""
-"Mercurial is bundled with an extension named <literal role=\"hg-ext"
-"\">convert</literal>, which can incrementally import revision history from "
-"several other revision control tools.  By <quote>incremental</quote>, I mean "
-"that you can convert all of a project's history to date in one go, then rerun "
-"the conversion later to obtain new changes that happened after the initial "
-"conversion."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:653
-msgid ""
-"The revision control tools supported by <literal role=\"hg-ext\">convert</"
-"literal> are as follows:"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch01-intro.xml:659
-msgid "Darcs"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:661
-msgid ""
-"In addition, <literal role=\"hg-ext\">convert</literal> can export changes "
-"from Mercurial to Subversion.  This makes it possible to try Subversion and "
-"Mercurial in parallel before committing to a switchover, without risking the "
-"loss of any work."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch01-intro.xml:667
-msgid ""
-"The <command role=\"hg-ext-conver\">convert</command> command is easy to "
-"use.  Simply point it at the path or URL of the source repository, optionally "
-"give it the name of the destination repository, and it will start working.  "
-"After the initial conversion, just run the same command again to import new "
-"changes."
-msgstr ""
-
-#. type: Content of: <book><chapter><title>
-#: ../en/ch02-tour-basic.xml:5
+#: ../en/ch01-tour-basic.xml:5
 msgid "A tour of Mercurial: the basics"
 msgstr "Mercurial 教程: 基础知识"
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:8
+#: ../en/ch01-tour-basic.xml:8
 msgid "Installing Mercurial on your system"
 msgstr "安装 Mercurial"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:10
+#: ../en/ch01-tour-basic.xml:10
 msgid ""
 "Prebuilt binary packages of Mercurial are available for every popular "
 "operating system.  These make it easy to start using Mercurial on your "
@@ -2463,12 +1540,12 @@
 "用 Mercurial 变得很容易。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:15
+#: ../en/ch01-tour-basic.xml:15
 msgid "Linux"
 msgstr "Linux"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:17
+#: ../en/ch01-tour-basic.xml:17
 msgid ""
 "Because each Linux distribution has its own packaging tools, policies, and "
 "rate of development, it's difficult to give a comprehensive set of "
@@ -2481,7 +1558,7 @@
 "使用的发行版的 Mercurial 维护者的活跃程度。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:24
+#: ../en/ch01-tour-basic.xml:24
 msgid ""
 "To keep things simple, I will focus on installing Mercurial from the command "
 "line under the most popular Linux distributions.  Most of these distributions "
@@ -2493,39 +1570,39 @@
 "Mercurial;寻找的包名称是 <literal>mercurial</literal>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:32
+#: ../en/ch01-tour-basic.xml:32
 msgid "Debian:"
 msgstr "Debian:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:34
+#: ../en/ch01-tour-basic.xml:34
 msgid "Fedora Core:"
 msgstr "Fedora Core:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:36
+#: ../en/ch01-tour-basic.xml:36
 msgid "Gentoo:"
 msgstr "Gentoo:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:38
+#: ../en/ch01-tour-basic.xml:38
 msgid "OpenSUSE:"
 msgstr "OpenSUSE:"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:40
+#: ../en/ch01-tour-basic.xml:40
 msgid ""
 "Ubuntu: Ubuntu's Mercurial package is based on Debian's.  To install it, run "
 "the following command."
 msgstr "Ubuntu: Ubuntu 的 Mercurial 包基于 Debian。安装时,使用如下命令:"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:48
+#: ../en/ch01-tour-basic.xml:48
 msgid "Solaris"
 msgstr "Solaris"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:50
+#: ../en/ch01-tour-basic.xml:50
 msgid ""
 "SunFreeWare, at <ulink url=\"http://www.sunfreeware.com\">http://www."
 "sunfreeware.com</ulink>, is a good source for a large number of pre-built "
@@ -2537,12 +1614,12 @@
 "和 64 位包,包含 Mercurial 的当前版本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:58
+#: ../en/ch01-tour-basic.xml:58
 msgid "Mac OS X"
 msgstr "Mac OS X"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:60
+#: ../en/ch01-tour-basic.xml:60
 msgid ""
 "Lee Cantey publishes an installer of Mercurial for Mac OS X at <ulink url="
 "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>.  "
@@ -2553,7 +1630,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:69
+#: ../en/ch01-tour-basic.xml:69
 msgid ""
 "It's also possible to install Mercurial using Fink or MacPorts, two popular "
 "free package managers for Mac OS X.  If you have Fink, use <command>sudo apt-"
@@ -2562,12 +1639,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:77
+#: ../en/ch01-tour-basic.xml:77
 msgid "Windows"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:79
+#: ../en/ch01-tour-basic.xml:79
 msgid ""
 "Lee Cantey publishes an installer of Mercurial for Windows at <ulink url="
 "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>.  "
@@ -2575,7 +1652,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch02-tour-basic.xml:86
+#: ../en/ch01-tour-basic.xml:86
 msgid ""
 "The Windows version of Mercurial does not automatically convert line endings "
 "between Windows and Unix styles.  If you want to share work with Unix users, "
@@ -2583,12 +1660,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:96
+#: ../en/ch01-tour-basic.xml:96
 msgid "Getting started"
 msgstr "开始"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:98
+#: ../en/ch01-tour-basic.xml:98
 msgid ""
 "To begin, we'll use the <command role=\"hg-cmd\">hg version</command> command "
 "to find out whether Mercurial is actually installed properly.  The actual "
@@ -2597,12 +1674,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:107
+#: ../en/ch01-tour-basic.xml:107
 msgid "Built-in help"
 msgstr "内置帮助"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:109
+#: ../en/ch01-tour-basic.xml:109
 msgid ""
 "Mercurial provides a built-in help system.  This is invaluable for those "
 "times when you find yourself stuck trying to remember how to run a command.  "
@@ -2613,7 +1690,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:120
+#: ../en/ch01-tour-basic.xml:120
 msgid ""
 "For a more impressive level of detail (which you won't usually need) run "
 "<command role=\"hg-cmd\">hg help <option role=\"hg-opt-global\">-v</option></"
@@ -2623,12 +1700,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:131
+#: ../en/ch01-tour-basic.xml:131
 msgid "Working with a repository"
 msgstr "使用版本库"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:133
+#: ../en/ch01-tour-basic.xml:133
 msgid ""
 "In Mercurial, everything happens inside a <emphasis>repository</emphasis>.  "
 "The repository for a project contains all of the files that <quote>belong to</"
@@ -2636,7 +1713,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:139
+#: ../en/ch01-tour-basic.xml:139
 msgid ""
 "There's nothing particularly magical about a repository; it is simply a "
 "directory tree in your filesystem that Mercurial treats as special. You can "
@@ -2645,12 +1722,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:146
+#: ../en/ch01-tour-basic.xml:146
 msgid "Making a local copy of a repository"
 msgstr "创建版本库的工作副本"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:148
+#: ../en/ch01-tour-basic.xml:148
 msgid ""
 "<emphasis>Copying</emphasis> a repository is just a little bit special.  "
 "While you could use a normal file copying command to make a copy of a "
@@ -2660,21 +1737,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:157
+#: ../en/ch01-tour-basic.xml:157
 msgid ""
 "If our clone succeeded, we should now have a local directory called <filename "
 "class=\"directory\">hello</filename>.  This directory will contain some files."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:163
+#: ../en/ch01-tour-basic.xml:163
 msgid ""
 "These files have the same contents and history in our repository as they do "
 "in the repository we cloned."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:166
+#: ../en/ch01-tour-basic.xml:166
 msgid ""
 "Every Mercurial repository is complete, self-contained, and independent.  It "
 "contains its own private copy of a project's files and history.  A cloned "
@@ -2684,7 +1761,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:173
+#: ../en/ch01-tour-basic.xml:173
 msgid ""
 "What this means for now is that we're free to experiment with our repository, "
 "safe in the knowledge that it's a private <quote>sandbox</quote> that won't "
@@ -2692,12 +1769,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:179
+#: ../en/ch01-tour-basic.xml:179
 msgid "What's in a repository?"
 msgstr "什么是版本库?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:181
+#: ../en/ch01-tour-basic.xml:181
 msgid ""
 "When we take a more detailed look inside a repository, we can see that it "
 "contains a directory named <filename class=\"directory\">.hg</filename>.  "
@@ -2705,7 +1782,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:188
+#: ../en/ch01-tour-basic.xml:188
 msgid ""
 "The contents of the <filename class=\"directory\">.hg</filename> directory "
 "and its subdirectories are private to Mercurial.  Every other file and "
@@ -2713,7 +1790,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:194
+#: ../en/ch01-tour-basic.xml:194
 msgid ""
 "To introduce a little terminology, the <filename class=\"directory\">.hg</"
 "filename> directory is the <quote>real</quote> repository, and all of the "
@@ -2726,12 +1803,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:209
+#: ../en/ch01-tour-basic.xml:209
 msgid "A tour through history"
 msgstr "回溯历史"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:211
+#: ../en/ch01-tour-basic.xml:211
 msgid ""
 "One of the first things we might want to do with a new, unfamiliar repository "
 "is understand its history.  The <command role=\"hg-cmd\">hg log</command> "
@@ -2739,7 +1816,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:218
+#: ../en/ch01-tour-basic.xml:218
 msgid ""
 "By default, this command prints a brief paragraph of output for each change "
 "to the project that was recorded.  In Mercurial terminology, we call each of "
@@ -2748,14 +1825,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:224
+#: ../en/ch01-tour-basic.xml:224
 msgid ""
 "The fields in a record of output from <command role=\"hg-cmd\">hg log</"
 "command> are as follows."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:227
+#: ../en/ch01-tour-basic.xml:227
 msgid ""
 "<literal>changeset</literal>: This field has the format of a number, followed "
 "by a colon, followed by a hexadecimal string.  These are "
@@ -2765,7 +1842,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:233
+#: ../en/ch01-tour-basic.xml:233
 msgid ""
 "<literal>user</literal>: The identity of the person who created the "
 "changeset.  This is a free-form field, but it most often contains a person's "
@@ -2773,7 +1850,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:237
+#: ../en/ch01-tour-basic.xml:237
 msgid ""
 "<literal>date</literal>: The date and time on which the changeset was "
 "created, and the timezone in which it was created.  (The date and time are "
@@ -2782,21 +1859,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:242
+#: ../en/ch01-tour-basic.xml:242
 msgid ""
 "<literal>summary</literal>: The first line of the text message that the "
 "creator of the changeset entered to describe the changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:245
+#: ../en/ch01-tour-basic.xml:245
 msgid ""
 "The default output printed by <command role=\"hg-cmd\">hg log</command> is "
 "purely a summary; it is missing a lot of detail."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:249
+#: ../en/ch01-tour-basic.xml:249
 msgid ""
 "Figure <xref endterm=\"fig.tour-basic.history.caption\" linkend=\"fig.tour-"
 "basic.history\"/> provides a graphical representation of the history of the "
@@ -2807,39 +1884,39 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch02-tour-basic.xml:260
+#: ../en/ch01-tour-basic.xml:260
 msgid ""
 "<imageobject><imagedata fileref=\"images/tour-history.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><textobject><phrase>
-#: ../en/ch02-tour-basic.xml:261 ../en/ch03-tour-merge.xml:48
-#: ../en/ch03-tour-merge.xml:78 ../en/ch03-tour-merge.xml:126
-#: ../en/ch03-tour-merge.xml:182 ../en/ch03-tour-merge.xml:254
-#: ../en/ch04-concepts.xml:56 ../en/ch04-concepts.xml:108
-#: ../en/ch04-concepts.xml:194 ../en/ch04-concepts.xml:301
-#: ../en/ch04-concepts.xml:353 ../en/ch04-concepts.xml:370
-#: ../en/ch04-concepts.xml:414 ../en/ch04-concepts.xml:436
-#: ../en/ch04-concepts.xml:480 ../en/ch06-collab.xml:277
-#: ../en/ch09-undo.xml:366 ../en/ch09-undo.xml:417 ../en/ch09-undo.xml:485
-#: ../en/ch09-undo.xml:527 ../en/ch12-mq.xml:409
+#: ../en/ch01-tour-basic.xml:261 ../en/ch02-tour-merge.xml:48
+#: ../en/ch02-tour-merge.xml:78 ../en/ch02-tour-merge.xml:126
+#: ../en/ch02-tour-merge.xml:182 ../en/ch02-tour-merge.xml:254
+#: ../en/ch03-concepts.xml:56 ../en/ch03-concepts.xml:108
+#: ../en/ch03-concepts.xml:194 ../en/ch03-concepts.xml:301
+#: ../en/ch03-concepts.xml:353 ../en/ch03-concepts.xml:370
+#: ../en/ch03-concepts.xml:414 ../en/ch03-concepts.xml:436
+#: ../en/ch03-concepts.xml:480 ../en/ch05-collab.xml:277
+#: ../en/ch08-undo.xml:366 ../en/ch08-undo.xml:417 ../en/ch08-undo.xml:485
+#: ../en/ch08-undo.xml:527 ../en/ch11-mq.xml:410
 msgid "XXX add text"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
-#: ../en/ch02-tour-basic.xml:262
+#: ../en/ch01-tour-basic.xml:262
 msgid ""
 "Graphical history of the <filename class=\"directory\">hello</filename> "
 "repository"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:269
+#: ../en/ch01-tour-basic.xml:269
 msgid "Changesets, revisions, and talking to other people"
 msgstr "改变集,版本,与其它用户交互"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:272
+#: ../en/ch01-tour-basic.xml:272
 msgid ""
 "As English is a notoriously sloppy language, and computer science has a "
 "hallowed history of terminological confusion (why use one term when four will "
@@ -2851,7 +1928,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:282
+#: ../en/ch01-tour-basic.xml:282
 msgid ""
 "While it doesn't matter what <emphasis>word</emphasis> you use to refer to "
 "the concept of <quote>a changeset</quote>, the <emphasis>identifier</"
@@ -2862,13 +1939,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:291
+#: ../en/ch01-tour-basic.xml:291
 msgid ""
 "The revision number is <emphasis>only valid in that repository</emphasis>,"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:293
+#: ../en/ch01-tour-basic.xml:293
 msgid ""
 "while the hex string is the <emphasis>permanent, unchanging identifier</"
 "emphasis> that will always identify that exact changeset in <emphasis>every</"
@@ -2876,7 +1953,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:298
+#: ../en/ch01-tour-basic.xml:298
 msgid ""
 "This distinction is important.  If you send someone an email talking about "
 "<quote>revision 33</quote>, there's a high likelihood that their revision 33 "
@@ -2888,7 +1965,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:308
+#: ../en/ch01-tour-basic.xml:308
 msgid ""
 "Mercurial uses revision numbers purely as a convenient shorthand.  If you "
 "need to discuss a changeset with someone, or make a record of a changeset for "
@@ -2897,12 +1974,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:316
+#: ../en/ch01-tour-basic.xml:316
 msgid "Viewing specific revisions"
 msgstr "察看指定版本"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:318
+#: ../en/ch01-tour-basic.xml:318
 msgid ""
 "To narrow the output of <command role=\"hg-cmd\">hg log</command> down to a "
 "single revision, use the <option role=\"hg-opt-log\">-r</option> (or <option "
@@ -2912,7 +1989,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:327
+#: ../en/ch01-tour-basic.xml:327
 msgid ""
 "If you want to see the history of several revisions without having to list "
 "each one, you can use <emphasis>range notation</emphasis>; this lets you "
@@ -2921,7 +1998,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:335
+#: ../en/ch01-tour-basic.xml:335
 msgid ""
 "Mercurial also honours the order in which you specify revisions, so <command "
 "role=\"hg-cmd\">hg log -r 2:4</command> prints 2, 3, and 4. while <command "
@@ -2929,12 +2006,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:342
+#: ../en/ch01-tour-basic.xml:342
 msgid "More detailed information"
 msgstr "更详细的信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:344
+#: ../en/ch01-tour-basic.xml:344
 msgid ""
 "While the summary information printed by <command role=\"hg-cmd\">hg log</"
 "command> is useful if you already know what you're looking for, you may need "
@@ -2946,7 +2023,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:356
+#: ../en/ch01-tour-basic.xml:356
 msgid ""
 "If you want to see both the description and content of a change, add the "
 "<option role=\"hg-opt-log\">-p</option> (or <option role=\"hg-opt-log\">--"
@@ -2956,12 +2033,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:369
+#: ../en/ch01-tour-basic.xml:369
 msgid "All about command options"
 msgstr "命令选项"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:371
+#: ../en/ch01-tour-basic.xml:371
 msgid ""
 "Let's take a brief break from exploring Mercurial commands to discuss a "
 "pattern in the way that they work; you may find this useful to keep in mind "
@@ -2969,7 +2046,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:375
+#: ../en/ch01-tour-basic.xml:375
 msgid ""
 "Mercurial has a consistent and straightforward approach to dealing with the "
 "options that you can pass to commands.  It follows the conventions for "
@@ -2977,7 +2054,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:380
+#: ../en/ch01-tour-basic.xml:380
 msgid ""
 "Every option has a long name.  For example, as we've already seen, the "
 "<command role=\"hg-cmd\">hg log</command> command accepts a <option role=\"hg-"
@@ -2985,7 +2062,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:384
+#: ../en/ch01-tour-basic.xml:384
 msgid ""
 "Most options have short names, too.  Instead of <option role=\"hg-opt-log\">--"
 "rev</option>, we can use <option role=\"hg-opt-log\">-r</option>.  (The "
@@ -2994,7 +2071,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:389
+#: ../en/ch01-tour-basic.xml:389
 msgid ""
 "Long options start with two dashes (e.g. <option role=\"hg-opt-log\">--rev</"
 "option>), while short options start with one (e.g. <option role=\"hg-opt-log"
@@ -3002,7 +2079,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:393
+#: ../en/ch01-tour-basic.xml:393
 msgid ""
 "Option naming and usage is consistent across commands.  For example, every "
 "command that lets you specify a changeset ID or revision number accepts both "
@@ -3011,7 +2088,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:399
+#: ../en/ch01-tour-basic.xml:399
 msgid ""
 "In the examples throughout this book, I use short options instead of long.  "
 "This just reflects my own preference, so don't read anything significant into "
@@ -3019,7 +2096,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:403
+#: ../en/ch01-tour-basic.xml:403
 msgid ""
 "Most commands that print output of some kind will print more output when "
 "passed a <option role=\"hg-opt-global\">-v</option> (or <option role=\"hg-opt-"
@@ -3028,19 +2105,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:411
+#: ../en/ch01-tour-basic.xml:411
 msgid "Making and reviewing changes"
 msgstr "创建和复审修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:413
+#: ../en/ch01-tour-basic.xml:413
 msgid ""
 "Now that we have a grasp of viewing history in Mercurial, let's take a look "
 "at making some changes and examining them."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:417
+#: ../en/ch01-tour-basic.xml:417
 msgid ""
 "The first thing we'll do is isolate our experiment in a repository of its "
 "own.  We use the <command role=\"hg-cmd\">hg clone</command> command, but we "
@@ -3051,7 +2128,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:427
+#: ../en/ch01-tour-basic.xml:427
 msgid ""
 "As an aside, it's often good practice to keep a <quote>pristine</quote> copy "
 "of a remote repository around, which you can then make temporary clones of to "
@@ -3063,7 +2140,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:436
+#: ../en/ch01-tour-basic.xml:436
 msgid ""
 "In our <filename class=\"directory\">my-hello</filename> repository, we have "
 "a file <filename>hello.c</filename> that contains the classic <quote>hello, "
@@ -3076,14 +2153,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:449
+#: ../en/ch01-tour-basic.xml:449
 msgid ""
 "Mercurial's <command role=\"hg-cmd\">hg status</command> command will tell us "
 "what Mercurial knows about the files in the repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:455
+#: ../en/ch01-tour-basic.xml:455
 msgid ""
 "The <command role=\"hg-cmd\">hg status</command> command prints no output for "
 "some files, but a line starting with <quote><literal>M</literal></quote> for "
@@ -3093,7 +2170,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:462
+#: ../en/ch01-tour-basic.xml:462
 msgid ""
 "The <quote><literal>M</literal></quote> indicates that Mercurial has noticed "
 "that we modified <filename>hello.c</filename>.  We didn't need to "
@@ -3103,7 +2180,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:470
+#: ../en/ch01-tour-basic.xml:470
 msgid ""
 "It's a little bit helpful to know that we've modified <filename>hello.c</"
 "filename>, but we might prefer to know exactly <emphasis>what</emphasis> "
@@ -3112,12 +2189,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:480
+#: ../en/ch01-tour-basic.xml:480
 msgid "Recording changes in a new changeset"
 msgstr "在新修改集中记录修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:482
+#: ../en/ch01-tour-basic.xml:482
 msgid ""
 "We can modify files, build and test our changes, and use <command role=\"hg-"
 "cmd\">hg status</command> and <command role=\"hg-cmd\">hg diff</command> to "
@@ -3126,7 +2203,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:489
+#: ../en/ch01-tour-basic.xml:489
 msgid ""
 "The <command role=\"hg-cmd\">hg commit</command> command lets us create a new "
 "changeset; we'll usually refer to this as <quote>making a commit</quote> or "
@@ -3134,12 +2211,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:495
+#: ../en/ch01-tour-basic.xml:495
 msgid "Setting up a username"
 msgstr "配置用户名称"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:497
+#: ../en/ch01-tour-basic.xml:497
 msgid ""
 "When you try to run <command role=\"hg-cmd\">hg commit</command> for the "
 "first time, it is not guaranteed to succeed.  Mercurial records your name and "
@@ -3150,7 +2227,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:506
+#: ../en/ch01-tour-basic.xml:506
 msgid ""
 "If you specify a <option role=\"hg-opt-commit\">-u</option> option to the "
 "<command role=\"hg-cmd\">hg commit</command> command on the command line, "
@@ -3158,14 +2235,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:511
+#: ../en/ch01-tour-basic.xml:511
 msgid ""
 "If you have set the <envar>HGUSER</envar> environment variable, this is "
 "checked next."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:514
+#: ../en/ch01-tour-basic.xml:514
 msgid ""
 "If you create a file in your home directory called <filename role=\"special"
 "\">.hgrc</filename>, with a <envar role=\"rc-item-ui\">username</envar> "
@@ -3174,14 +2251,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:521
+#: ../en/ch01-tour-basic.xml:521
 msgid ""
 "If you have set the <envar>EMAIL</envar> environment variable, this will be "
 "used next."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:524
+#: ../en/ch01-tour-basic.xml:524
 msgid ""
 "Mercurial will query your system to find out your local user name and host "
 "name, and construct a username from these components. Since this often "
@@ -3190,7 +2267,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:531
+#: ../en/ch01-tour-basic.xml:531
 msgid ""
 "If all of these mechanisms fail, Mercurial will fail, printing an error "
 "message.  In this case, it will not let you commit until you set up a "
@@ -3198,7 +2275,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:535
+#: ../en/ch01-tour-basic.xml:535
 msgid ""
 "You should think of the <envar>HGUSER</envar> environment variable and the "
 "<option role=\"hg-opt-commit\">-u</option> option to the <command role=\"hg-"
@@ -3209,12 +2286,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch02-tour-basic.xml:544
+#: ../en/ch01-tour-basic.xml:544
 msgid "Creating a Mercurial configuration file"
 msgstr "创建 Mercurial 的配置文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:546
+#: ../en/ch01-tour-basic.xml:546
 msgid ""
 "To set a user name, use your favourite editor to create a file called "
 "<filename role=\"special\">.hgrc</filename> in your home directory.  "
@@ -3224,7 +2301,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:557
+#: ../en/ch01-tour-basic.xml:558
 msgid ""
 "The <quote><literal>[ui]</literal></quote> line begins a <emphasis>section</"
 "emphasis> of the config file, so you can read the <quote><literal>username "
@@ -3236,12 +2313,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch02-tour-basic.xml:570
+#: ../en/ch01-tour-basic.xml:571
 msgid "Choosing a user name"
 msgstr "选择用户名称"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:572
+#: ../en/ch01-tour-basic.xml:573
 msgid ""
 "You can use any text you like as the value of the <literal>username</literal> "
 "config item, since this information is for reading by other people, but for "
@@ -3250,7 +2327,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para>
-#: ../en/ch02-tour-basic.xml:579
+#: ../en/ch01-tour-basic.xml:580
 msgid ""
 "Mercurial's built-in web server obfuscates email addresses, to make it more "
 "difficult for the email harvesting tools that spammers use. This reduces the "
@@ -3259,12 +2336,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:589
+#: ../en/ch01-tour-basic.xml:590
 msgid "Writing a commit message"
 msgstr "写提交日志"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:591
+#: ../en/ch01-tour-basic.xml:592
 msgid ""
 "When we commit a change, Mercurial drops us into a text editor, to enter a "
 "message that will describe the modifications we've made in this changeset.  "
@@ -3274,7 +2351,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:601
+#: ../en/ch01-tour-basic.xml:602
 msgid ""
 "The editor that the <command role=\"hg-cmd\">hg commit</command> command "
 "drops us into will contain an empty line, followed by a number of lines "
@@ -3282,7 +2359,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:608
+#: ../en/ch01-tour-basic.xml:609
 msgid ""
 "Mercurial ignores the lines that start with <quote><literal>HG:</literal></"
 "quote>; it uses them only to tell us which files it's recording changes to.  "
@@ -3290,12 +2367,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:614
+#: ../en/ch01-tour-basic.xml:615
 msgid "Writing a good commit message"
 msgstr "写好提交日志"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:616
+#: ../en/ch01-tour-basic.xml:617
 msgid ""
 "Since <command role=\"hg-cmd\">hg log</command> only prints the first line of "
 "a commit message by default, it's best to write a commit message whose first "
@@ -3305,7 +2382,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:630
+#: ../en/ch01-tour-basic.xml:631
 msgid ""
 "As far as the remainder of the contents of the commit message are concerned, "
 "there are no hard-and-fast rules.  Mercurial itself doesn't interpret or care "
@@ -3314,7 +2391,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:636
+#: ../en/ch01-tour-basic.xml:637
 msgid ""
 "My personal preference is for short, but informative, commit messages that "
 "tell me something that I can't figure out with a quick glance at the output "
@@ -3322,12 +2399,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:643
+#: ../en/ch01-tour-basic.xml:644
 msgid "Aborting a commit"
 msgstr "终止提交"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:645
+#: ../en/ch01-tour-basic.xml:646
 msgid ""
 "If you decide that you don't want to commit while in the middle of editing a "
 "commit message, simply exit from your editor without saving the file that "
@@ -3336,7 +2413,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:650
+#: ../en/ch01-tour-basic.xml:651
 msgid ""
 "If we run the <command role=\"hg-cmd\">hg commit</command> command without "
 "any arguments, it records all of the changes we've made, as reported by "
@@ -3345,12 +2422,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:657
+#: ../en/ch01-tour-basic.xml:658
 msgid "Admiring our new handiwork"
 msgstr "欣赏我们的新手艺"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:659
+#: ../en/ch01-tour-basic.xml:660
 msgid ""
 "Once we've finished the commit, we can use the <command role=\"hg-cmd\">hg "
 "tip</command> command to display the changeset we just created.  This command "
@@ -3359,19 +2436,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:668
+#: ../en/ch01-tour-basic.xml:669
 msgid ""
 "We refer to the newest revision in the repository as the tip revision, or "
 "simply the tip."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:675
+#: ../en/ch01-tour-basic.xml:676
 msgid "Sharing changes"
 msgstr "共享修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:677
+#: ../en/ch01-tour-basic.xml:678
 msgid ""
 "We mentioned earlier that repositories in Mercurial are self-contained.  This "
 "means that the changeset we just created exists only in our <filename class="
@@ -3380,12 +2457,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:685
+#: ../en/ch01-tour-basic.xml:686
 msgid "Pulling changes from another repository"
 msgstr "从其它版本库取得修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:686
+#: ../en/ch01-tour-basic.xml:687
 msgid ""
 "To get started, let's clone our original <filename class=\"directory\">hello</"
 "filename> repository, which does not contain the change we just committed.  "
@@ -3394,7 +2471,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:694
+#: ../en/ch01-tour-basic.xml:695
 msgid ""
 "We'll use the <command role=\"hg-cmd\">hg pull</command> command to bring "
 "changes from <filename class=\"directory\">my-hello</filename> into <filename "
@@ -3407,7 +2484,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:707
+#: ../en/ch01-tour-basic.xml:708
 msgid ""
 "(Of course, someone could cause more changesets to appear in the repository "
 "that we ran <command role=\"hg-cmd\">hg incoming</command> in, before we get "
@@ -3416,7 +2493,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:714
+#: ../en/ch01-tour-basic.xml:715
 msgid ""
 "Bringing changes into a repository is a simple matter of running the <command "
 "role=\"hg-cmd\">hg pull</command> command, and telling it which repository to "
@@ -3424,7 +2501,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:721
+#: ../en/ch01-tour-basic.xml:722
 msgid ""
 "As you can see from the before-and-after output of <command role=\"hg-cmd"
 "\">hg tip</command>, we have successfully pulled changes into our "
@@ -3433,12 +2510,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:729
+#: ../en/ch01-tour-basic.xml:730
 msgid "Updating the working directory"
 msgstr "更新工作目录"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:731
+#: ../en/ch01-tour-basic.xml:732
 msgid ""
 "We have so far glossed over the relationship between a repository and its "
 "working directory.  The <command role=\"hg-cmd\">hg pull</command> command "
@@ -3450,7 +2527,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:743
+#: ../en/ch01-tour-basic.xml:744
 msgid ""
 "It might seem a bit strange that <command role=\"hg-cmd\">hg pull</command> "
 "doesn't update the working directory automatically.  There's actually a good "
@@ -3464,7 +2541,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:754
+#: ../en/ch01-tour-basic.xml:755
 msgid ""
 "However, since pull-then-update is such a common thing to do, Mercurial lets "
 "you combine the two by passing the <option role=\"hg-opt-pull\">-u</option> "
@@ -3472,7 +2549,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:759
+#: ../en/ch01-tour-basic.xml:760
 msgid ""
 "If you look back at the output of <command role=\"hg-cmd\">hg pull</command> "
 "in section <xref linkend=\"sec.tour.pull\"/> when we ran it without <option "
@@ -3482,14 +2559,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:768
+#: ../en/ch01-tour-basic.xml:769
 msgid ""
 "To find out what revision the working directory is at, use the <command role="
 "\"hg-cmd\">hg parents</command> command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:774
+#: ../en/ch01-tour-basic.xml:775
 msgid ""
 "If you look back at figure <xref endterm=\"fig.tour-basic.history.caption\" "
 "linkend=\"fig.tour-basic.history\"/>, you'll see arrows connecting each "
@@ -3500,7 +2577,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:784
+#: ../en/ch01-tour-basic.xml:785
 msgid ""
 "To update the working directory to a particular revision, give a revision "
 "number or changeset ID to the <command role=\"hg-cmd\">hg update</command> "
@@ -3508,7 +2585,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:791
+#: ../en/ch01-tour-basic.xml:792
 msgid ""
 "If you omit an explicit revision, <command role=\"hg-cmd\">hg update</"
 "command> will update to the tip revision, as shown by the second call to "
@@ -3516,12 +2593,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:799
+#: ../en/ch01-tour-basic.xml:800
 msgid "Pushing changes to another repository"
 msgstr "发布修改到其它版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:801
+#: ../en/ch01-tour-basic.xml:802
 msgid ""
 "Mercurial lets us push changes to another repository, from the repository "
 "we're currently visiting.  As with the example of <command role=\"hg-cmd\">hg "
@@ -3530,21 +2607,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:809
+#: ../en/ch01-tour-basic.xml:810
 msgid ""
 "The <command role=\"hg-cmd\">hg outgoing</command> command tells us what "
 "changes would be pushed into another repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:815
+#: ../en/ch01-tour-basic.xml:816
 msgid ""
 "And the <command role=\"hg-cmd\">hg push</command> command does the actual "
 "push."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:821
+#: ../en/ch01-tour-basic.xml:822
 msgid ""
 "As with <command role=\"hg-cmd\">hg pull</command>, the <command role=\"hg-cmd"
 "\">hg push</command> command does not update the working directory in the "
@@ -3555,19 +2632,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:830
+#: ../en/ch01-tour-basic.xml:831
 msgid ""
 "What happens if we try to pull or push changes and the receiving repository "
 "already has those changes? Nothing too exciting."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:837
+#: ../en/ch01-tour-basic.xml:838
 msgid "Sharing changes over a network"
 msgstr "通过网络共享修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:839
+#: ../en/ch01-tour-basic.xml:840
 msgid ""
 "The commands we have covered in the previous few sections are not limited to "
 "working with local repositories.  Each works in exactly the same fashion over "
@@ -3575,7 +2652,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:847
+#: ../en/ch01-tour-basic.xml:848
 msgid ""
 "In this example, we can see what changes we could push to the remote "
 "repository, but the repository is understandably not set up to let anonymous "
@@ -3583,12 +2660,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch03-tour-merge.xml:5
+#: ../en/ch02-tour-merge.xml:5
 msgid "A tour of Mercurial: merging work"
 msgstr "Mercurial 教程: 合并工作"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch03-tour-merge.xml:7
+#: ../en/ch02-tour-merge.xml:7
 msgid ""
 "We've now covered cloning a repository, making changes in a repository, and "
 "pulling or pushing changes from one repository into another.  Our next step "
@@ -3596,19 +2673,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch03-tour-merge.xml:13
+#: ../en/ch02-tour-merge.xml:13
 msgid "Merging streams of work"
 msgstr "合并的流程"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:15
+#: ../en/ch02-tour-merge.xml:15
 msgid ""
 "Merging is a fundamental part of working with a distributed revision control "
 "tool."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:18
+#: ../en/ch02-tour-merge.xml:18
 msgid ""
 "Alice and Bob each have a personal copy of a repository for a project they're "
 "collaborating on.  Alice fixes a bug in her repository; Bob adds a new "
@@ -3617,7 +2694,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:24
+#: ../en/ch02-tour-merge.xml:24
 msgid ""
 "I frequently work on several different tasks for a single project at once, "
 "each safely isolated in its own repository. Working this way means that I "
@@ -3625,7 +2702,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:30
+#: ../en/ch02-tour-merge.xml:30
 msgid ""
 "Because merging is such a common thing to need to do, Mercurial makes it "
 "easy.  Let's walk through the process.  We'll begin by cloning yet another "
@@ -3633,7 +2710,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:37
+#: ../en/ch02-tour-merge.xml:37
 msgid ""
 "We should now have two copies of <filename>hello.c</filename> with different "
 "contents.  The histories of the two repositories have also diverged, as "
@@ -3642,14 +2719,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:47
+#: ../en/ch02-tour-merge.xml:47
 msgid ""
 "<imageobject><imagedata fileref=\"images/tour-merge-sep-repos.png\"/></"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
-#: ../en/ch03-tour-merge.xml:49
+#: ../en/ch02-tour-merge.xml:49
 msgid ""
 "Divergent recent histories of the <filename class=\"directory\">my-hello</"
 "filename> and <filename class=\"directory\">my-new-hello</filename> "
@@ -3657,7 +2734,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:57
+#: ../en/ch02-tour-merge.xml:57
 msgid ""
 "We already know that pulling changes from our <filename class=\"directory"
 "\">my-hello</filename> repository will have no effect on the working "
@@ -3665,19 +2742,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:63
+#: ../en/ch02-tour-merge.xml:63
 msgid ""
 "However, the <command role=\"hg-cmd\">hg pull</command> command says "
 "something about <quote>heads</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:67
+#: ../en/ch02-tour-merge.xml:67
 msgid "Head changesets"
 msgstr "顶点改变集"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:69
+#: ../en/ch02-tour-merge.xml:69
 msgid ""
 "A head is a change that has no descendants, or children, as they're also "
 "known.  The tip revision is thus a head, because the newest revision in a "
@@ -3686,20 +2763,20 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:77
+#: ../en/ch02-tour-merge.xml:77
 msgid ""
 "<imageobject><imagedata fileref=\"images/tour-merge-pull.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch03-tour-merge.xml:79
+#: ../en/ch02-tour-merge.xml:79
 msgid ""
 "Repository contents after pulling from <filename class=\"directory\">my-"
 "hello</filename> into <filename class=\"directory\">my-new-hello</filename>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:85
+#: ../en/ch02-tour-merge.xml:85
 msgid ""
 "In figure <xref endterm=\"fig.tour-merge.pull.caption\" linkend=\"fig.tour-"
 "merge.pull\"/>, you can see the effect of the pull from <filename class="
@@ -3716,19 +2793,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:106
+#: ../en/ch02-tour-merge.xml:106
 msgid "Performing the merge"
 msgstr "执行合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:108
+#: ../en/ch02-tour-merge.xml:108
 msgid ""
 "What happens if we try to use the normal <command role=\"hg-cmd\">hg update</"
 "command> command to update to the new tip?"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:114
+#: ../en/ch02-tour-merge.xml:114
 msgid ""
 "Mercurial is telling us that the <command role=\"hg-cmd\">hg update</command> "
 "command won't do a merge; it won't update the working directory when it "
@@ -3738,19 +2815,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:125
+#: ../en/ch02-tour-merge.xml:125
 msgid ""
 "<imageobject><imagedata fileref=\"images/tour-merge-merge.png\"/></"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch03-tour-merge.xml:127
+#: ../en/ch02-tour-merge.xml:127
 msgid "Working directory and repository during merge, and following commit"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:132
+#: ../en/ch02-tour-merge.xml:132
 msgid ""
 "This updates the working directory so that it contains changes from "
 "<emphasis>both</emphasis> heads, which is reflected in both the output of "
@@ -3759,12 +2836,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:142
+#: ../en/ch02-tour-merge.xml:142
 msgid "Committing the results of the merge"
 msgstr "提交合并结果"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:144
+#: ../en/ch02-tour-merge.xml:144
 msgid ""
 "Whenever we've done a merge, <command role=\"hg-cmd\">hg parents</command> "
 "will display two parents until we <command role=\"hg-cmd\">hg commit</"
@@ -3772,7 +2849,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:151
+#: ../en/ch02-tour-merge.xml:151
 msgid ""
 "We now have a new tip revision; notice that it has <emphasis>both</emphasis> "
 "of our former heads as its parents.  These are the same revisions that were "
@@ -3780,7 +2857,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:158
+#: ../en/ch02-tour-merge.xml:158
 msgid ""
 "In figure <xref endterm=\"fig.tour-merge.merge.caption\" linkend=\"fig.tour-"
 "merge.merge\"/>, you can see a representation of what happens to the working "
@@ -3790,12 +2867,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch03-tour-merge.xml:169
+#: ../en/ch02-tour-merge.xml:169
 msgid "Merging conflicting changes"
 msgstr "合并有冲突的改变"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:171
+#: ../en/ch02-tour-merge.xml:171
 msgid ""
 "Most merges are simple affairs, but sometimes you'll find yourself merging "
 "changes where each modifies the same portions of the same files.  Unless both "
@@ -3805,19 +2882,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:180
+#: ../en/ch02-tour-merge.xml:180
 msgid ""
 "<imageobject><imagedata fileref=\"images/tour-merge-conflict.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
-#: ../en/ch03-tour-merge.xml:183
+#: ../en/ch02-tour-merge.xml:183
 msgid "Conflicting changes to a document"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:188
+#: ../en/ch02-tour-merge.xml:188
 msgid ""
 "Figure <xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-"
 "merge.conflict\"/> illustrates an instance of two conflicting changes to a "
@@ -3828,7 +2905,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:196
+#: ../en/ch02-tour-merge.xml:196
 msgid ""
 "Mercurial doesn't have a built-in facility for handling conflicts. Instead, "
 "it runs an external program called <command>hgmerge</command>.  This is a "
@@ -3841,7 +2918,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:207
+#: ../en/ch02-tour-merge.xml:207
 msgid ""
 "It's also possible to get Mercurial to run another program or script instead "
 "of <command>hgmerge</command>, by setting the <envar>HGMERGE</envar> "
@@ -3849,12 +2926,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:213
+#: ../en/ch02-tour-merge.xml:213
 msgid "Using a graphical merge tool"
 msgstr "使用图形合并工具"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:215
+#: ../en/ch02-tour-merge.xml:215
 msgid ""
 "My preferred graphical merge tool is <command>kdiff3</command>, which I'll "
 "use to describe the features that are common to graphical file merging "
@@ -3867,7 +2944,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:226
+#: ../en/ch02-tour-merge.xml:226
 msgid ""
 "At the left is the <emphasis>base</emphasis> version of the file, i.e. the "
 "most recent version from which the two versions we're trying to merge are "
@@ -3875,21 +2952,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:231
+#: ../en/ch02-tour-merge.xml:231
 msgid ""
 "In the middle is <quote>our</quote> version of the file, with the contents "
 "that we modified."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:234
+#: ../en/ch02-tour-merge.xml:234
 msgid ""
 "On the right is <quote>their</quote> version of the file, the one that from "
 "the changeset that we're trying to merge with."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:238
+#: ../en/ch02-tour-merge.xml:238
 msgid ""
 "In the pane below these is the current <emphasis>result</emphasis> of the "
 "merge. Our task is to replace all of the red text, which indicates unresolved "
@@ -3898,7 +2975,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:245
+#: ../en/ch02-tour-merge.xml:245
 msgid ""
 "All four of these panes are <emphasis>locked together</emphasis>; if we "
 "scroll vertically or horizontally in any of them, the others are updated to "
@@ -3906,19 +2983,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:252
+#: ../en/ch02-tour-merge.xml:252
 msgid ""
 "<imageobject><imagedata width=\"100%\" fileref=\"images/kdiff3.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch03-tour-merge.xml:255
+#: ../en/ch02-tour-merge.xml:255
 msgid "Using <command>kdiff3</command> to merge versions of a file"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:261
+#: ../en/ch02-tour-merge.xml:261
 msgid ""
 "For each conflicting portion of the file, we can choose to resolve the "
 "conflict using some combination of text from the base version, ours, or "
@@ -3927,7 +3004,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:267
+#: ../en/ch02-tour-merge.xml:267
 msgid ""
 "There are <emphasis>many</emphasis> file merging tools available, too many to "
 "cover here.  They vary in which platforms they are available for, and in "
@@ -3937,12 +3014,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:276
+#: ../en/ch02-tour-merge.xml:276
 msgid "A worked example"
 msgstr "合并实例"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:278
+#: ../en/ch02-tour-merge.xml:278
 msgid ""
 "In this example, we will reproduce the file modification history of figure "
 "<xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-merge."
@@ -3951,12 +3028,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:286
+#: ../en/ch02-tour-merge.xml:286
 msgid "We'll clone the repository and make a change to the file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:291
+#: ../en/ch02-tour-merge.xml:291
 msgid ""
 "And another clone, to simulate someone else making a change to the file. "
 "(This hints at the idea that it's not all that unusual to merge with yourself "
@@ -3965,14 +3042,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:299
+#: ../en/ch02-tour-merge.xml:299
 msgid ""
 "Having created two different versions of the file, we'll set up an "
 "environment suitable for running our merge."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:305
+#: ../en/ch02-tour-merge.xml:305
 msgid ""
 "In this example, I won't use Mercurial's normal <command>hgmerge</command> "
 "program to do the merge, because it would drop my nice automated example-"
@@ -3984,12 +3061,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:315
+#: ../en/ch02-tour-merge.xml:315
 msgid "<emphasis role=\"bold\">XXX FIX THIS EXAMPLE.</emphasis>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:320
+#: ../en/ch02-tour-merge.xml:320
 msgid ""
 "Because <command>merge</command> can't resolve the conflicting changes, it "
 "leaves <emphasis>merge markers</emphasis> inside the file that has conflicts, "
@@ -3998,7 +3075,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:326
+#: ../en/ch02-tour-merge.xml:326
 msgid ""
 "Mercurial can tell from the way <command>merge</command> exits that it wasn't "
 "able to merge successfully, so it tells us what commands we'll need to run if "
@@ -4008,7 +3085,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:333
+#: ../en/ch02-tour-merge.xml:333
 msgid ""
 "If automatic or manual merges fail, there's nothing to prevent us from "
 "<quote>fixing up</quote> the affected files ourselves, and committing the "
@@ -4016,19 +3093,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch03-tour-merge.xml:342
+#: ../en/ch02-tour-merge.xml:342
 msgid "Simplifying the pull-merge-commit sequence"
 msgstr "简化拉-合并-提交程序"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:344
+#: ../en/ch02-tour-merge.xml:344
 msgid ""
 "The process of merging changes as outlined above is straightforward, but "
 "requires running three commands in sequence."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:350
+#: ../en/ch02-tour-merge.xml:350
 msgid ""
 "In the case of the final commit, you also need to enter a commit message, "
 "which is almost always going to be a piece of uninteresting "
@@ -4036,7 +3113,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:354
+#: ../en/ch02-tour-merge.xml:354
 msgid ""
 "It would be nice to reduce the number of steps needed, if this were "
 "possible.  Indeed, Mercurial is distributed with an extension called <literal "
@@ -4044,7 +3121,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:359
+#: ../en/ch02-tour-merge.xml:359
 msgid ""
 "Mercurial provides a flexible extension mechanism that lets people extend its "
 "functionality, while keeping the core of Mercurial small and easy to deal "
@@ -4054,7 +3131,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:366
+#: ../en/ch02-tour-merge.xml:366
 msgid ""
 "The <literal role=\"hg-ext\">fetch</literal> extension adds a new command "
 "called, not surprisingly, <command role=\"hg-cmd\">hg fetch</command>.  This "
@@ -4068,7 +3145,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:379
+#: ../en/ch02-tour-merge.xml:379
 msgid ""
 "Enabling the <literal role=\"hg-ext\">fetch</literal> extension is easy.  "
 "Edit your <filename role=\"special\">.hgrc</filename>, and either go to the "
@@ -4078,7 +3155,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:389
+#: ../en/ch02-tour-merge.xml:388
 msgid ""
 "(Normally, on the right-hand side of the <quote><literal>=</literal></quote> "
 "would appear the location of the extension, but since the <literal role=\"hg-"
@@ -4087,12 +3164,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch04-concepts.xml:5
+#: ../en/ch03-concepts.xml:5
 msgid "Behind the scenes"
 msgstr "Mercurial 内幕"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch04-concepts.xml:7
+#: ../en/ch03-concepts.xml:7
 msgid ""
 "Unlike many revision control systems, the concepts upon which Mercurial is "
 "built are simple enough that it's easy to understand how the software really "
@@ -4101,7 +3178,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch04-concepts.xml:13
+#: ../en/ch03-concepts.xml:13
 msgid ""
 "This understanding gives me confidence that Mercurial has been carefully "
 "designed to be both <emphasis>safe</emphasis> and <emphasis>efficient</"
@@ -4111,7 +3188,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch04-concepts.xml:20
+#: ../en/ch03-concepts.xml:20
 msgid ""
 "In this chapter, we'll initially cover the core concepts behind Mercurial's "
 "design, then continue to discuss some of the interesting details of its "
@@ -4119,17 +3196,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:25
+#: ../en/ch03-concepts.xml:25
 msgid "Mercurial's historical record"
 msgstr "Mercurial 的历史记录"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:28
+#: ../en/ch03-concepts.xml:28
 msgid "Tracking the history of a single file"
 msgstr "跟踪单一文件的历史"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:30
+#: ../en/ch03-concepts.xml:30
 msgid ""
 "When Mercurial tracks modifications to a file, it stores the history of that "
 "file in a metadata object called a <emphasis>filelog</emphasis>.  Each entry "
@@ -4141,7 +3218,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:41
+#: ../en/ch03-concepts.xml:41
 msgid ""
 "A file that is large, or has a lot of history, has its filelog stored in "
 "separate data (<quote><literal>.d</literal></quote> suffix) and index "
@@ -4154,23 +3231,23 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:55
+#: ../en/ch03-concepts.xml:55
 msgid "<imageobject><imagedata fileref=\"images/filelog.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:57
+#: ../en/ch03-concepts.xml:57
 msgid ""
 "Relationships between files in working directory and filelogs in repository"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:65
+#: ../en/ch03-concepts.xml:65
 msgid "Managing tracked files"
 msgstr "管理跟踪的文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:67
+#: ../en/ch03-concepts.xml:67
 msgid ""
 "Mercurial uses a structure called a <emphasis>manifest</emphasis> to collect "
 "together information about the files that it tracks.  Each entry in the "
@@ -4180,12 +3257,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:77
+#: ../en/ch03-concepts.xml:77
 msgid "Recording changeset information"
 msgstr "记录修改集信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:79
+#: ../en/ch03-concepts.xml:79
 msgid ""
 "The <emphasis>changelog</emphasis> contains information about each "
 "changeset.  Each revision records who committed a change, the changeset "
@@ -4194,12 +3271,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:87
+#: ../en/ch03-concepts.xml:87
 msgid "Relationships between revisions"
 msgstr "版本之间的关系"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:89
+#: ../en/ch03-concepts.xml:89
 msgid ""
 "Within a changelog, a manifest, or a filelog, each revision stores a pointer "
 "to its immediate parent (or to its two parents, if it's a merge revision).  "
@@ -4209,7 +3286,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:96
+#: ../en/ch03-concepts.xml:96
 msgid ""
 "For every changeset in a repository, there is exactly one revision stored in "
 "the changelog.  Each revision of the changelog contains a pointer to a single "
@@ -4220,17 +3297,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:107
+#: ../en/ch03-concepts.xml:107
 msgid "<imageobject><imagedata fileref=\"images/metadata.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:109
+#: ../en/ch03-concepts.xml:109
 msgid "Metadata relationships"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:114
+#: ../en/ch03-concepts.xml:114
 msgid ""
 "As the illustration shows, there is <emphasis>not</emphasis> a <quote>one to "
 "one</quote> relationship between revisions in the changelog, manifest, or "
@@ -4242,24 +3319,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:127
+#: ../en/ch03-concepts.xml:127
 msgid "Safe, efficient storage"
 msgstr "安全,高效的存储"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:129
+#: ../en/ch03-concepts.xml:129
 msgid ""
 "The underpinnings of changelogs, manifests, and filelogs are provided by a "
 "single structure called the <emphasis>revlog</emphasis>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:134
+#: ../en/ch03-concepts.xml:134
 msgid "Efficient storage"
 msgstr "高效存储"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:136
+#: ../en/ch03-concepts.xml:136
 msgid ""
 "The revlog provides efficient storage of revisions using a <emphasis>delta</"
 "emphasis> mechanism.  Instead of storing a complete copy of a file for each "
@@ -4269,7 +3346,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:144
+#: ../en/ch03-concepts.xml:144
 msgid ""
 "Some obsolete revision control systems can only work with deltas of text "
 "files.  They must either store binary files as complete snapshots or encoded "
@@ -4279,12 +3356,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:153
+#: ../en/ch03-concepts.xml:153
 msgid "Safe operation"
 msgstr "安全操作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:155
+#: ../en/ch03-concepts.xml:155
 msgid ""
 "Mercurial only ever <emphasis>appends</emphasis> data to the end of a revlog "
 "file. It never modifies a section of a file after it has written it.  This is "
@@ -4293,7 +3370,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:161
+#: ../en/ch03-concepts.xml:161
 msgid ""
 "In addition, Mercurial treats every write as part of a <emphasis>transaction</"
 "emphasis> that can span a number of files.  A transaction is "
@@ -4305,7 +3382,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:171
+#: ../en/ch03-concepts.xml:171
 msgid ""
 "The fact that Mercurial only appends to files makes it easier to provide this "
 "transactional guarantee.  The easier it is to do stuff like this, the more "
@@ -4313,12 +3390,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:178
+#: ../en/ch03-concepts.xml:178
 msgid "Fast retrieval"
 msgstr "快速检索"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:180
+#: ../en/ch03-concepts.xml:180
 msgid ""
 "Mercurial cleverly avoids a pitfall common to all earlier revision control "
 "systems: the problem of <emphasis>inefficient retrieval</emphasis>. Most "
@@ -4331,17 +3408,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:193
+#: ../en/ch03-concepts.xml:193
 msgid "<imageobject><imagedata fileref=\"images/snapshot.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:195
+#: ../en/ch03-concepts.xml:195
 msgid "Snapshot of a revlog, with incremental deltas"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:200
+#: ../en/ch03-concepts.xml:200
 msgid ""
 "The innovation that Mercurial applies to this problem is simple but "
 "effective.  Once the cumulative amount of delta information stored since the "
@@ -4353,7 +3430,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:209
+#: ../en/ch03-concepts.xml:209
 msgid ""
 "Figure <xref endterm=\"fig.concepts.snapshot.caption\" linkend=\"fig.concepts."
 "snapshot\"/> illustrates the idea.  In an entry in a revlog's index file, "
@@ -4362,12 +3439,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:216
+#: ../en/ch03-concepts.xml:216
 msgid "Aside: the influence of video compression"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:218
+#: ../en/ch03-concepts.xml:218
 msgid ""
 "If you're familiar with video compression or have ever watched a TV feed "
 "through a digital cable or satellite service, you may know that most video "
@@ -4378,7 +3455,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:227
+#: ../en/ch03-concepts.xml:227
 msgid ""
 "Because it's possible for a video stream to <quote>drop out</quote> "
 "occasionally due to signal glitches, and to limit the accumulation of "
@@ -4391,12 +3468,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:241
+#: ../en/ch03-concepts.xml:241
 msgid "Identification and strong integrity"
 msgstr "鉴别和强完整性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:243
+#: ../en/ch03-concepts.xml:243
 msgid ""
 "Along with delta or snapshot information, a revlog entry contains a "
 "cryptographic hash of the data that it represents.  This makes it difficult "
@@ -4404,7 +3481,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:248
+#: ../en/ch03-concepts.xml:248
 msgid ""
 "Hashes provide more than a mere check against corruption; they are used as "
 "the identifiers for revisions.  The changeset identification hashes that you "
@@ -4413,7 +3490,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:255
+#: ../en/ch03-concepts.xml:255
 msgid ""
 "Mercurial verifies that hashes are correct when it retrieves file revisions "
 "and when it pulls changes from another repository.  If it encounters an "
@@ -4421,7 +3498,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:260
+#: ../en/ch03-concepts.xml:260
 msgid ""
 "In addition to the effect it has on retrieval efficiency, Mercurial's use of "
 "periodic snapshots makes it more robust against partial data corruption.  If "
@@ -4432,12 +3509,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:272
+#: ../en/ch03-concepts.xml:272
 msgid "Revision history, branching, and merging"
 msgstr "修订历史,分支与合并"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:274
+#: ../en/ch03-concepts.xml:274
 msgid ""
 "Every entry in a Mercurial revlog knows the identity of its immediate "
 "ancestor revision, usually referred to as its <emphasis>parent</emphasis>.  "
@@ -4448,7 +3525,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:282
+#: ../en/ch03-concepts.xml:282
 msgid ""
 "In figure <xref endterm=\"fig.concepts.revlog.caption\" linkend=\"fig."
 "concepts.revlog\"/>, you can see an example of the conceptual structure of a "
@@ -4457,7 +3534,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:289
+#: ../en/ch03-concepts.xml:289
 msgid ""
 "The first revision in a revlog (at the bottom of the image)  has the null ID "
 "in both of its parent slots.  For a <quote>normal</quote> revision, its first "
@@ -4469,29 +3546,29 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:300
+#: ../en/ch03-concepts.xml:300
 msgid "<imageobject><imagedata fileref=\"images/revlog.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:302
+#: ../en/ch03-concepts.xml:302
 msgid "Revision in revlog"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:309
+#: ../en/ch03-concepts.xml:309
 msgid "The working directory"
 msgstr "工作目录"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:311
+#: ../en/ch03-concepts.xml:311
 msgid ""
 "In the working directory, Mercurial stores a snapshot of the files from the "
 "repository as of a particular changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:314
+#: ../en/ch03-concepts.xml:314
 msgid ""
 "The working directory <quote>knows</quote> which changeset it contains.  When "
 "you update the working directory to contain a particular changeset, Mercurial "
@@ -4502,7 +3579,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:323
+#: ../en/ch03-concepts.xml:323
 msgid ""
 "The <emphasis>dirstate</emphasis> contains Mercurial's knowledge of the "
 "working directory.  This details which changeset the working directory is "
@@ -4511,7 +3588,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:329
+#: ../en/ch03-concepts.xml:329
 msgid ""
 "Just as a revision of a revlog has room for two parents, so that it can "
 "represent either a normal revision (with one parent)  or a merge of two "
@@ -4526,12 +3603,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:343
+#: ../en/ch03-concepts.xml:343
 msgid "What happens when you commit"
 msgstr "当你提交时发生的事情"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:345
+#: ../en/ch03-concepts.xml:345
 msgid ""
 "The dirstate stores parent information for more than just book-keeping "
 "purposes.  Mercurial uses the parents of the dirstate as <emphasis>the "
@@ -4539,17 +3616,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:352
+#: ../en/ch03-concepts.xml:352
 msgid "<imageobject><imagedata fileref=\"images/wdir.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:354
+#: ../en/ch03-concepts.xml:354
 msgid "The working directory can have two parents"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:359
+#: ../en/ch03-concepts.xml:359
 msgid ""
 "Figure <xref endterm=\"fig.concepts.wdir.caption\" linkend=\"fig.concepts.wdir"
 "\"/> shows the normal state of the working directory, where it has a single "
@@ -4558,19 +3635,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:368
+#: ../en/ch03-concepts.xml:368
 msgid ""
 "<imageobject><imagedata fileref=\"images/wdir-after-commit.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:371
+#: ../en/ch03-concepts.xml:371
 msgid "The working directory gains new parents after a commit"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:376
+#: ../en/ch03-concepts.xml:376
 msgid ""
 "It's useful to think of the working directory as <quote>the changeset I'm "
 "about to commit</quote>.  Any files that you tell Mercurial that you've "
@@ -4580,7 +3657,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:384
+#: ../en/ch03-concepts.xml:384
 msgid ""
 "After a commit, Mercurial will update the parents of the working directory, "
 "so that the first parent is the ID of the new changeset, and the second is "
@@ -4591,12 +3668,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:396
+#: ../en/ch03-concepts.xml:396
 msgid "Creating a new head"
 msgstr "创建新顶点"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:398
+#: ../en/ch03-concepts.xml:398
 msgid ""
 "It's perfectly normal to update the working directory to a changeset other "
 "than the current tip.  For example, you might want to know what your project "
@@ -4610,19 +3687,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:412
+#: ../en/ch03-concepts.xml:412
 msgid ""
 "<imageobject><imagedata fileref=\"images/wdir-pre-branch.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:415
+#: ../en/ch03-concepts.xml:415
 msgid "The working directory, updated to an older changeset"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:420
+#: ../en/ch03-concepts.xml:420
 msgid ""
 "Having updated the working directory to an older changeset, what happens if "
 "you make some changes, and then commit? Mercurial behaves in the same way as "
@@ -4635,18 +3712,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:434
+#: ../en/ch03-concepts.xml:434
 msgid ""
 "<imageobject><imagedata fileref=\"images/wdir-branch.png\"/> </imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:437
+#: ../en/ch03-concepts.xml:437
 msgid "After a commit made while synced to an older changeset"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch04-concepts.xml:443
+#: ../en/ch03-concepts.xml:443
 msgid ""
 "If you're new to Mercurial, you should keep in mind a common <quote>error</"
 "quote>, which is to use the <command role=\"hg-cmd\">hg pull</command> "
@@ -4660,7 +3737,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch04-concepts.xml:455
+#: ../en/ch03-concepts.xml:455
 msgid ""
 "I put the word <quote>error</quote> in quotes because all that you need to do "
 "to rectify this situation is <command role=\"hg-cmd\">hg merge</command>, "
@@ -4671,12 +3748,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:467
+#: ../en/ch03-concepts.xml:467
 msgid "Merging heads"
 msgstr "合并顶点"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:469
+#: ../en/ch03-concepts.xml:469
 msgid ""
 "When you run the <command role=\"hg-cmd\">hg merge</command> command, "
 "Mercurial leaves the first parent of the working directory unchanged, and "
@@ -4686,18 +3763,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:478
+#: ../en/ch03-concepts.xml:478
 msgid ""
 "<imageobject><imagedata fileref=\"images/wdir-merge.png\"/> </imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch04-concepts.xml:481
+#: ../en/ch03-concepts.xml:481
 msgid "Merging two heads"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:486
+#: ../en/ch03-concepts.xml:486
 msgid ""
 "Mercurial also has to modify the working directory, to merge the files "
 "managed in the two changesets.  Simplified a little, the merging process goes "
@@ -4705,33 +3782,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:491
+#: ../en/ch03-concepts.xml:491
 msgid "If neither changeset has modified a file, do nothing with that file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:494
+#: ../en/ch03-concepts.xml:494
 msgid ""
 "If one changeset has modified a file, and the other hasn't, create the "
 "modified copy of the file in the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:498
+#: ../en/ch03-concepts.xml:498
 msgid ""
 "If one changeset has removed a file, and the other hasn't (or has also "
 "deleted it), delete the file from the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:502
+#: ../en/ch03-concepts.xml:502
 msgid ""
 "If one changeset has removed a file, but the other has modified the file, ask "
 "the user what to do: keep the modified file, or remove it?"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:506
+#: ../en/ch03-concepts.xml:506
 msgid ""
 "If both changesets have modified a file, invoke an external merge program to "
 "choose the new contents for the merged file.  This may require input from the "
@@ -4739,14 +3816,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:511
+#: ../en/ch03-concepts.xml:511
 msgid ""
 "If one changeset has modified a file, and the other has renamed or copied the "
 "file, make sure that the changes follow the new name of the file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:515
+#: ../en/ch03-concepts.xml:515
 msgid ""
 "There are more details&emdash;merging has plenty of corner cases&emdash;but "
 "these are the most common choices that are involved in a merge.  As you can "
@@ -4755,7 +3832,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:522
+#: ../en/ch03-concepts.xml:522
 msgid ""
 "When you're thinking about what happens when you commit after a merge, once "
 "again the working directory is <quote>the changeset I'm about to commit</"
@@ -4765,7 +3842,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:529
+#: ../en/ch03-concepts.xml:529
 msgid ""
 "Mercurial lets you perform multiple merges, but you must commit the results "
 "of each individual merge as you go.  This is necessary because Mercurial only "
@@ -4776,12 +3853,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:540
+#: ../en/ch03-concepts.xml:540
 msgid "Other interesting design features"
 msgstr "其它有趣的设计特性"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:542
+#: ../en/ch03-concepts.xml:542
 msgid ""
 "In the sections above, I've tried to highlight some of the most important "
 "aspects of Mercurial's design, to illustrate that it pays careful attention "
@@ -4794,12 +3871,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:553
+#: ../en/ch03-concepts.xml:553
 msgid "Clever compression"
 msgstr "智能压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:555
+#: ../en/ch03-concepts.xml:555
 msgid ""
 "When appropriate, Mercurial will store both snapshots and deltas in "
 "compressed form.  It does this by always <emphasis>trying to</emphasis> "
@@ -4808,7 +3885,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:561
+#: ../en/ch03-concepts.xml:561
 msgid ""
 "This means that Mercurial does <quote>the right thing</quote> when storing a "
 "file whose native form is compressed, such as a <literal>zip</literal> "
@@ -4818,7 +3895,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:569
+#: ../en/ch03-concepts.xml:569
 msgid ""
 "Deltas between revisions of a compressed file are usually larger than "
 "snapshots of the file, and Mercurial again does <quote>the right thing</"
@@ -4828,12 +3905,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:578
+#: ../en/ch03-concepts.xml:578
 msgid "Network recompression"
 msgstr "网络重新压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:580
+#: ../en/ch03-concepts.xml:580
 msgid ""
 "When storing revisions on disk, Mercurial uses the <quote>deflate</quote> "
 "compression algorithm (the same one used by the popular <literal>zip</"
@@ -4843,7 +3920,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:588
+#: ../en/ch03-concepts.xml:588
 msgid ""
 "If the connection is over HTTP, Mercurial recompresses the entire stream of "
 "data using a compression algorithm that gives a better compression ratio (the "
@@ -4855,7 +3932,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:598
+#: ../en/ch03-concepts.xml:598
 msgid ""
 "(If the connection is over <command>ssh</command>, Mercurial "
 "<emphasis>doesn't</emphasis> recompress the stream, because <command>ssh</"
@@ -4863,12 +3940,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:606
+#: ../en/ch03-concepts.xml:606
 msgid "Read/write ordering and atomicity"
 msgstr "读写顺序与原子性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:608
+#: ../en/ch03-concepts.xml:608
 msgid ""
 "Appending to files isn't the whole story when it comes to guaranteeing that a "
 "reader won't see a partial write.  If you recall figure <xref endterm=\"fig."
@@ -4878,7 +3955,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:616
+#: ../en/ch03-concepts.xml:616
 msgid ""
 "A writer starts a transaction by writing filelog and manifest data, and "
 "doesn't write any changelog data until those are finished.  A reader starts "
@@ -4886,7 +3963,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:621
+#: ../en/ch03-concepts.xml:621
 msgid ""
 "Since the writer has always finished writing filelog and manifest data before "
 "it writes to the changelog, a reader will never read a pointer to a partially "
@@ -4895,12 +3972,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:629
+#: ../en/ch03-concepts.xml:629
 msgid "Concurrent access"
 msgstr "并发访问"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:631
+#: ../en/ch03-concepts.xml:631
 msgid ""
 "The read/write ordering and atomicity guarantees mean that Mercurial never "
 "needs to <emphasis>lock</emphasis> a repository when it's reading data, even "
@@ -4911,7 +3988,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:640
+#: ../en/ch03-concepts.xml:640
 msgid ""
 "The lockless nature of reading means that if you're sharing a repository on a "
 "multi-user system, you don't need to grant other local users permission to "
@@ -4925,7 +4002,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:653
+#: ../en/ch03-concepts.xml:653
 msgid ""
 "Mercurial uses locks to ensure that only one process can write to a "
 "repository at a time (the locking mechanism is safe even over filesystems "
@@ -4939,12 +4016,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:665
+#: ../en/ch03-concepts.xml:665
 msgid "Safe dirstate access"
 msgstr "安全的目录状态访问"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:667
+#: ../en/ch03-concepts.xml:667
 msgid ""
 "As with revision data, Mercurial doesn't take a lock to read the dirstate "
 "file; it does acquire a lock to write it.  To avoid the possibility of "
@@ -4956,12 +4033,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:680
+#: ../en/ch03-concepts.xml:680
 msgid "Avoiding seeks"
 msgstr "避免查找"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:682
+#: ../en/ch03-concepts.xml:682
 msgid ""
 "Critical to Mercurial's performance is the avoidance of seeks of the disk "
 "head, since any seek is far more expensive than even a comparatively large "
@@ -4969,7 +4046,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:686
+#: ../en/ch03-concepts.xml:686
 msgid ""
 "This is why, for example, the dirstate is stored in a single file.  If there "
 "were a dirstate file per directory that Mercurial tracked, the disk would "
@@ -4978,7 +4055,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:692
+#: ../en/ch03-concepts.xml:692
 msgid ""
 "Mercurial also uses a <quote>copy on write</quote> scheme when cloning a "
 "repository on local storage.  Instead of copying every revlog file from the "
@@ -4991,7 +4068,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:703
+#: ../en/ch03-concepts.xml:703
 msgid ""
 "A few revision control developers have pointed out that this idea of making a "
 "complete private copy of a file is not very efficient in its use of storage.  "
@@ -5003,12 +4080,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:715
+#: ../en/ch03-concepts.xml:715
 msgid "Other contents of the dirstate"
 msgstr "目录状态的其它内容"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:717
+#: ../en/ch03-concepts.xml:717
 msgid ""
 "Because Mercurial doesn't force you to tell it when you're modifying a file, "
 "it uses the dirstate to store some extra information so it can determine "
@@ -5018,7 +4095,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:724
+#: ../en/ch03-concepts.xml:724
 msgid ""
 "When you explicitly <command role=\"hg-cmd\">hg add</command>, <command role="
 "\"hg-cmd\">hg remove</command>, <command role=\"hg-cmd\">hg rename</command> "
@@ -5027,7 +4104,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:731
+#: ../en/ch03-concepts.xml:731
 msgid ""
 "When Mercurial is checking the states of files in the working directory, it "
 "first checks a file's modification time.  If that has not changed, the file "
@@ -5041,17 +4118,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch05-daily.xml:5
+#: ../en/ch04-daily.xml:5
 msgid "Mercurial in daily use"
 msgstr "Mercurial 的日常使用"
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch05-daily.xml:8
+#: ../en/ch04-daily.xml:8
 msgid "Telling Mercurial which files to track"
 msgstr "告诉 Mercurial 要跟踪哪些文件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:10
+#: ../en/ch04-daily.xml:10
 msgid ""
 "Mercurial does not work with files in your repository unless you tell it to "
 "manage them.  The <command role=\"hg-cmd\">hg status</command> command will "
@@ -5061,7 +4138,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:17
+#: ../en/ch04-daily.xml:17
 msgid ""
 "To tell Mercurial to track a file, use the <command role=\"hg-cmd\">hg add</"
 "command> command.  Once you have added a file, the entry in the output of "
@@ -5070,7 +4147,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:26
+#: ../en/ch04-daily.xml:26
 msgid ""
 "After you run a <command role=\"hg-cmd\">hg commit</command>, the files that "
 "you added before the commit will no longer be listed in the output of "
@@ -5084,7 +4161,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:38
+#: ../en/ch04-daily.xml:38
 msgid ""
 "Once you add a file, Mercurial doesn't do anything with it immediately.  "
 "Instead, it will take a snapshot of the file's state the next time you "
@@ -5093,12 +4170,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:45
+#: ../en/ch04-daily.xml:45
 msgid "Explicit versus implicit file naming"
 msgstr "明确与隐含文件命名"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:47
+#: ../en/ch04-daily.xml:47
 msgid ""
 "A useful behaviour that Mercurial has is that if you pass the name of a "
 "directory to a command, every Mercurial command will treat this as <quote>I "
@@ -5107,7 +4184,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:54
+#: ../en/ch04-daily.xml:54
 msgid ""
 "Notice in this example that Mercurial printed the names of the files it "
 "added, whereas it didn't do so when we added the file named <filename>a</"
@@ -5115,7 +4192,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:59
+#: ../en/ch04-daily.xml:59
 msgid ""
 "What's going on is that in the former case, we explicitly named the file to "
 "add on the command line, so the assumption that Mercurial makes in such cases "
@@ -5123,7 +4200,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:64
+#: ../en/ch04-daily.xml:64
 msgid ""
 "However, when we <emphasis>imply</emphasis> the names of files by giving the "
 "name of a directory, Mercurial takes the extra step of printing the name of "
@@ -5133,12 +4210,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:73
+#: ../en/ch04-daily.xml:73
 msgid "Aside: Mercurial tracks files, not directories"
 msgstr "旁白: Mercurial 只跟踪文件,不跟踪目录"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:75
+#: ../en/ch04-daily.xml:75
 msgid ""
 "Mercurial does not track directory information.  Instead, it tracks the path "
 "to a file.  Before creating a file, it first creates any missing directory "
@@ -5149,7 +4226,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:84
+#: ../en/ch04-daily.xml:84
 msgid ""
 "Empty directories are rarely useful, and there are unintrusive workarounds "
 "that you can use to achieve an appropriate effect.  The developers of "
@@ -5158,7 +4235,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:91
+#: ../en/ch04-daily.xml:91
 msgid ""
 "If you need an empty directory in your repository, there are a few ways to "
 "achieve this. One is to create a directory, then <command role=\"hg-cmd\">hg "
@@ -5169,20 +4246,20 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:102
+#: ../en/ch04-daily.xml:102
 msgid ""
 "Another way to tackle a need for an empty directory is to simply create one "
 "in your automated build scripts before they will need it."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch05-daily.xml:109
+#: ../en/ch04-daily.xml:109
 msgid "How to stop tracking a file"
 msgstr "如何停止跟踪文件"
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:111
+#: ../en/ch04-daily.xml:111
 msgid ""
 "Once you decide that a file no longer belongs in your repository, use the "
 "<command role=\"hg-cmd\">hg remove</command> command; this deletes the file, "
@@ -5192,7 +4269,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:120
+#: ../en/ch04-daily.xml:120
 msgid ""
 "After you <command role=\"hg-cmd\">hg remove</command> a file, Mercurial will "
 "no longer track changes to that file, even if you recreate a file with the "
@@ -5203,36 +4280,36 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:129
+#: ../en/ch04-daily.xml:129
 msgid "Removing a file does not affect its history"
 msgstr "删除文件不影响历史"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:131
+#: ../en/ch04-daily.xml:131
 msgid "It is important to understand that removing a file has only two effects."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch05-daily.xml:134
+#: ../en/ch04-daily.xml:134
 msgid "It removes the current version of the file from the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch05-daily.xml:137
+#: ../en/ch04-daily.xml:137
 msgid ""
 "It stops Mercurial from tracking changes to the file, from the time of the "
 "next commit."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:140
+#: ../en/ch04-daily.xml:140
 msgid ""
 "Removing a file <emphasis>does not</emphasis> in any way alter the "
 "<emphasis>history</emphasis> of the file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:143
+#: ../en/ch04-daily.xml:143
 msgid ""
 "If you update the working directory to a changeset in which a file that you "
 "have removed was still tracked, it will reappear in the working directory, "
@@ -5242,12 +4319,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:153
+#: ../en/ch04-daily.xml:153
 msgid "Missing files"
 msgstr "丢失的文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:155
+#: ../en/ch04-daily.xml:155
 msgid ""
 "Mercurial considers a file that you have deleted, but not used <command role="
 "\"hg-cmd\">hg remove</command> to delete, to be <emphasis>missing</"
@@ -5257,7 +4334,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:165
+#: ../en/ch04-daily.xml:165
 msgid ""
 "If your repository contains a file that <command role=\"hg-cmd\">hg status</"
 "command> reports as missing, and you want the file to stay gone, you can run "
@@ -5267,7 +4344,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:175
+#: ../en/ch04-daily.xml:175
 msgid ""
 "On the other hand, if you deleted the missing file by accident, give <command "
 "role=\"hg-cmd\">hg revert</command> the name of the file to recover.  It will "
@@ -5275,12 +4352,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:184
+#: ../en/ch04-daily.xml:184
 msgid "Aside: why tell Mercurial explicitly to remove a file?"
 msgstr "旁白: 为什么要明确告诉 Mercurial 删除文件?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:187
+#: ../en/ch04-daily.xml:187
 msgid ""
 "You might wonder why Mercurial requires you to explicitly tell it that you "
 "are deleting a file.  Early during the development of Mercurial, it let you "
@@ -5291,12 +4368,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:198
+#: ../en/ch04-daily.xml:198
 msgid "Useful shorthand&emdash;adding and removing files in one step"
 msgstr "有用的速记&emdash;一个步骤添加和删除文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:201
+#: ../en/ch04-daily.xml:201
 msgid ""
 "Mercurial offers a combination command, <command role=\"hg-cmd\">hg "
 "addremove</command>, that adds untracked files and marks missing files as "
@@ -5304,7 +4381,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:207
+#: ../en/ch04-daily.xml:207
 msgid ""
 "The <command role=\"hg-cmd\">hg commit</command> command also provides a "
 "<option role=\"hg-opt-commit\">-A</option> option that performs this same add-"
@@ -5312,12 +4389,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch05-daily.xml:217
+#: ../en/ch04-daily.xml:217
 msgid "Copying files"
 msgstr "复制文件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:219
+#: ../en/ch04-daily.xml:219
 msgid ""
 "Mercurial provides a <command role=\"hg-cmd\">hg copy</command> command that "
 "lets you make a new copy of a file.  When you copy a file using this command, "
@@ -5327,12 +4404,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:227
+#: ../en/ch04-daily.xml:227
 msgid "The results of copying during a merge"
 msgstr "合并期间的复制结果"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:229
+#: ../en/ch04-daily.xml:229
 msgid ""
 "What happens during a merge is that changes <quote>follow</quote> a copy.  To "
 "best illustrate what this means, let's create an example.  We'll start with "
@@ -5340,28 +4417,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:236
+#: ../en/ch04-daily.xml:236
 msgid ""
 "We need to do some work in parallel, so that we'll have something to merge.  "
 "So let's clone our repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:242
+#: ../en/ch04-daily.xml:242
 msgid ""
 "Back in our initial repository, let's use the <command role=\"hg-cmd\">hg "
 "copy</command> command to make a copy of the first file we created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:248
+#: ../en/ch04-daily.xml:248
 msgid ""
 "If we look at the output of the <command role=\"hg-cmd\">hg status</command> "
 "command afterwards, the copied file looks just like a normal added file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:254
+#: ../en/ch04-daily.xml:254
 msgid ""
 "But if we pass the <option role=\"hg-opt-status\">-C</option> option to "
 "<command role=\"hg-cmd\">hg status</command>, it prints another line of "
@@ -5370,14 +4447,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:262
+#: ../en/ch04-daily.xml:262
 msgid ""
 "Now, back in the repository we cloned, let's make a change in parallel.  "
 "We'll add a line of content to the original file that we created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:268
+#: ../en/ch04-daily.xml:268
 msgid ""
 "Now we have a modified <filename>file</filename> in this repository.  When we "
 "pull the changes from the first repository, and merge the two heads, "
@@ -5386,19 +4463,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:278
+#: ../en/ch04-daily.xml:278
 msgid "Why should changes follow copies?"
 msgstr "为什么复制后需要后续修改?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:280
+#: ../en/ch04-daily.xml:280
 msgid ""
 "This behaviour, of changes to a file propagating out to copies of the file, "
 "might seem esoteric, but in most cases it's highly desirable."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:284
+#: ../en/ch04-daily.xml:284
 msgid ""
 "First of all, remember that this propagation <emphasis>only</emphasis> "
 "happens when you merge.  So if you <command role=\"hg-cmd\">hg copy</command> "
@@ -5407,7 +4484,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:290
+#: ../en/ch04-daily.xml:290
 msgid ""
 "The second thing to know is that modifications will only propagate across a "
 "copy as long as the repository that you're pulling changes from "
@@ -5415,7 +4492,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:295
+#: ../en/ch04-daily.xml:295
 msgid ""
 "The reason that Mercurial does this is as follows.  Let's say I make an "
 "important bug fix in a source file, and commit my changes. Meanwhile, you've "
@@ -5425,7 +4502,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:302
+#: ../en/ch04-daily.xml:302
 msgid ""
 "If you pulled and merged my changes, and Mercurial <emphasis>didn't</"
 "emphasis> propagate changes across copies, your source file would now contain "
@@ -5434,7 +4511,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:308
+#: ../en/ch04-daily.xml:308
 msgid ""
 "By automatically propagating the change that fixed the bug from the original "
 "file to the copy, Mercurial prevents this class of problem. To my knowledge, "
@@ -5443,7 +4520,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:314
+#: ../en/ch04-daily.xml:314
 msgid ""
 "Once your change history has a record that the copy and subsequent merge "
 "occurred, there's usually no further need to propagate changes from the "
@@ -5452,12 +4529,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:322
+#: ../en/ch04-daily.xml:322
 msgid "How to make changes <emphasis>not</emphasis> follow a copy"
 msgstr "如何让复制后<emphasis>不</emphasis>修改?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:325
+#: ../en/ch04-daily.xml:325
 msgid ""
 "If, for some reason, you decide that this business of automatically "
 "propagating changes across copies is not for you, simply use your system's "
@@ -5469,12 +4546,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:338
+#: ../en/ch04-daily.xml:338
 msgid "Behaviour of the <command role=\"hg-cmd\">hg copy</command> command"
 msgstr "命令 <command role=\"hg-cmd\">hg copy</command> 的特性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:341
+#: ../en/ch04-daily.xml:341
 msgid ""
 "When you use the <command role=\"hg-cmd\">hg copy</command> command, "
 "Mercurial makes a copy of each source file as it currently stands in the "
@@ -5486,7 +4563,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:351
+#: ../en/ch04-daily.xml:351
 msgid ""
 "The <command role=\"hg-cmd\">hg copy</command> command acts similarly to the "
 "Unix <command>cp</command> command (you can use the <command role=\"hg-cmd"
@@ -5497,21 +4574,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:362
+#: ../en/ch04-daily.xml:362
 msgid ""
 "If the destination is a directory, Mercurial copies its sources into that "
 "directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:367
+#: ../en/ch04-daily.xml:367
 msgid ""
 "Copying a directory is recursive, and preserves the directory structure of "
 "the source."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:373
+#: ../en/ch04-daily.xml:373
 msgid ""
 "If the source and destination are both directories, the source tree is "
 "recreated in the destination directory."
@@ -5519,7 +4596,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:378
+#: ../en/ch04-daily.xml:378
 msgid ""
 "As with the <command role=\"hg-cmd\">hg rename</command> command, if you copy "
 "a file manually and then want Mercurial to know that you've copied the file, "
@@ -5528,12 +4605,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch05-daily.xml:389
+#: ../en/ch04-daily.xml:389
 msgid "Renaming files"
 msgstr "改名文件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:391
+#: ../en/ch04-daily.xml:391
 msgid ""
 "It's rather more common to need to rename a file than to make a copy of it.  "
 "The reason I discussed the <command role=\"hg-cmd\">hg copy</command> command "
@@ -5543,7 +4620,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:399
+#: ../en/ch04-daily.xml:399
 msgid ""
 "When you use the <command role=\"hg-cmd\">hg rename</command> command, "
 "Mercurial makes a copy of each source file, then deletes it and marks the "
@@ -5551,14 +4628,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:405
+#: ../en/ch04-daily.xml:405
 msgid ""
 "The <command role=\"hg-cmd\">hg status</command> command shows the newly "
 "copied file as added, and the copied-from file as removed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:411
+#: ../en/ch04-daily.xml:411
 msgid ""
 "As with the results of a <command role=\"hg-cmd\">hg copy</command>, we must "
 "use the <option role=\"hg-opt-status\">-C</option> option to <command role="
@@ -5567,7 +4644,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:420
+#: ../en/ch04-daily.xml:420
 msgid ""
 "As with <command role=\"hg-cmd\">hg remove</command> and <command role=\"hg-"
 "cmd\">hg copy</command>, you can tell Mercurial about a rename after the fact "
@@ -5578,19 +4655,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:430
+#: ../en/ch04-daily.xml:430
 msgid "Renaming files and merging changes"
 msgstr "改名文件与合并修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:432
+#: ../en/ch04-daily.xml:432
 msgid ""
 "Since Mercurial's rename is implemented as copy-and-remove, the same "
 "propagation of changes happens when you merge after a rename as after a copy."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:436
+#: ../en/ch04-daily.xml:436
 msgid ""
 "If I modify a file, and you rename it to a new name, and then we merge our "
 "respective changes, my modifications to the file under its original name will "
@@ -5600,7 +4677,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:443
+#: ../en/ch04-daily.xml:443
 msgid ""
 "Whereas having changes follow a copy is a feature where you can perhaps nod "
 "and say <quote>yes, that might be useful,</quote> it should be clear that "
@@ -5610,12 +4687,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:452
+#: ../en/ch04-daily.xml:452
 msgid "Divergent renames and merging"
 msgstr "改名与合并的分歧"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:454
+#: ../en/ch04-daily.xml:454
 msgid ""
 "The case of diverging names occurs when two developers start with a "
 "file&emdash;let's call it <filename>foo</filename>&emdash;in their respective "
@@ -5623,17 +4700,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:461
+#: ../en/ch04-daily.xml:461
 msgid "Anne renames the file to <filename>bar</filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:465
+#: ../en/ch04-daily.xml:465
 msgid "Meanwhile, Bob renames it to <filename>quux</filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:470
+#: ../en/ch04-daily.xml:470
 msgid ""
 "I like to think of this as a conflict because each developer has expressed "
 "different intentions about what the file ought to be named."
@@ -5641,7 +4718,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:474
+#: ../en/ch04-daily.xml:474
 msgid ""
 "What do you think should happen when they merge their work? Mercurial's "
 "actual behaviour is that it always preserves <emphasis>both</emphasis> names "
@@ -5649,19 +4726,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:481
+#: ../en/ch04-daily.xml:481
 msgid ""
 "Notice that Mercurial does warn about the divergent renames, but it leaves it "
 "up to you to do something about the divergence after the merge."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:487
+#: ../en/ch04-daily.xml:487
 msgid "Convergent renames and merging"
 msgstr "收敛改名与合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:489
+#: ../en/ch04-daily.xml:489
 msgid ""
 "Another kind of rename conflict occurs when two people choose to rename "
 "different <emphasis>source</emphasis> files to the same "
@@ -5670,12 +4747,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch05-daily.xml:497
+#: ../en/ch04-daily.xml:497
 msgid "Other name-related corner cases"
 msgstr "其它名称相关的角落"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch05-daily.xml:499
+#: ../en/ch04-daily.xml:499
 msgid ""
 "Mercurial has a longstanding bug in which it fails to handle a merge where "
 "one side has a file with a given name, while another has a directory with the "
@@ -5684,19 +4761,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch05-daily.xml:511
+#: ../en/ch04-daily.xml:511
 msgid "Recovering from mistakes"
 msgstr "从错误恢复"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:513
+#: ../en/ch04-daily.xml:513
 msgid ""
 "Mercurial has some useful commands that will help you to recover from some "
 "common mistakes."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:516
+#: ../en/ch04-daily.xml:516
 msgid ""
 "The <command role=\"hg-cmd\">hg revert</command> command lets you undo "
 "changes that you have made to your working directory.  For example, if you "
@@ -5708,7 +4785,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:526
+#: ../en/ch04-daily.xml:526
 msgid ""
 "It's useful to remember that the <command role=\"hg-cmd\">hg revert</command> "
 "command is useful for changes that you have not yet committed.  Once you've "
@@ -5717,7 +4794,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch05-daily.xml:532
+#: ../en/ch04-daily.xml:532
 msgid ""
 "For more information about the <command role=\"hg-cmd\">hg revert</command> "
 "command, and details about how to deal with changes you have already "
@@ -5725,12 +4802,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch06-collab.xml:5
+#: ../en/ch05-collab.xml:5
 msgid "Collaborating with other people"
 msgstr "团体协作"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch06-collab.xml:7
+#: ../en/ch05-collab.xml:7
 msgid ""
 "As a completely decentralised tool, Mercurial doesn't impose any policy on "
 "how people ought to work with each other.  However, if you're new to "
@@ -5739,19 +4816,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:14
+#: ../en/ch05-collab.xml:14
 msgid "Mercurial's web interface"
 msgstr "Mercurial 的 web 接口"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:16
+#: ../en/ch05-collab.xml:16
 msgid ""
 "Mercurial has a powerful web interface that provides several useful "
 "capabilities."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:19
+#: ../en/ch05-collab.xml:19
 msgid ""
 "For interactive use, the web interface lets you browse a single repository or "
 "a collection of repositories.  You can view the history of a repository, "
@@ -5760,7 +4837,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:24
+#: ../en/ch05-collab.xml:24
 msgid ""
 "Also for human consumption, the web interface provides an RSS feed of the "
 "changes in a repository.  This lets you <quote>subscribe</quote> to a "
@@ -5772,7 +4849,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:34
+#: ../en/ch05-collab.xml:34
 msgid ""
 "The web interface also lets remote users clone a repository, pull changes "
 "from it, and (when the server is configured to permit it) push changes back "
@@ -5781,7 +4858,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:40
+#: ../en/ch05-collab.xml:40
 msgid ""
 "The easiest way to get started with the web interface is to use your web "
 "browser to visit an existing repository, such as the master Mercurial "
@@ -5790,7 +4867,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:45
+#: ../en/ch05-collab.xml:45
 msgid ""
 "If you're interested in providing a web interface to your own repositories, "
 "Mercurial provides two ways to do this.  The first is using the <command role="
@@ -5804,12 +4881,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:60
+#: ../en/ch05-collab.xml:60
 msgid "Collaboration models"
 msgstr "协作模型"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:62
+#: ../en/ch05-collab.xml:62
 msgid ""
 "With a suitably flexible tool, making decisions about workflow is much more "
 "of a social engineering challenge than a technical one. Mercurial imposes few "
@@ -5819,12 +4896,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:70
+#: ../en/ch05-collab.xml:70
 msgid "Factors to keep in mind"
 msgstr "要牢记的因素"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:72
+#: ../en/ch05-collab.xml:72
 msgid ""
 "The most important aspect of any model that you must keep in mind is how well "
 "it matches the needs and capabilities of the people who will be using it.  "
@@ -5833,7 +4910,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:78
+#: ../en/ch05-collab.xml:78
 msgid ""
 "I once put together a workflow model that seemed to make perfect sense to me, "
 "but that caused a considerable amount of consternation and strife within my "
@@ -5846,7 +4923,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:88
+#: ../en/ch05-collab.xml:88
 msgid ""
 "Don't sweep foreseeable social or technical problems under the rug. Whatever "
 "scheme you put into effect, you should plan for mistakes and problem "
@@ -5860,12 +4937,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:102
+#: ../en/ch05-collab.xml:102
 msgid "Informal anarchy"
 msgstr "无政府状态"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:104
+#: ../en/ch05-collab.xml:104
 msgid ""
 "I wouldn't suggest an <quote>anything goes</quote> approach as something "
 "sustainable, but it's a model that's easy to grasp, and it works perfectly "
@@ -5873,7 +4950,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:109
+#: ../en/ch05-collab.xml:109
 msgid ""
 "As one example, many projects have a loose-knit group of collaborators who "
 "rarely physically meet each other.  Some groups like to overcome the "
@@ -5885,7 +4962,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:118
+#: ../en/ch05-collab.xml:118
 msgid ""
 "A sprint is the perfect place to use the <command role=\"hg-cmd\">hg serve</"
 "command> command, since <command role=\"hg-cmd\">hg serve</command> does not "
@@ -5900,7 +4977,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:132
+#: ../en/ch05-collab.xml:132
 msgid ""
 "The charm, and the problem, with doing things in an ad hoc fashion like this "
 "is that only people who know about your changes, and where they are, can see "
@@ -5910,12 +4987,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:141
+#: ../en/ch05-collab.xml:141
 msgid "A single central repository"
 msgstr "单一中央版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:143
+#: ../en/ch05-collab.xml:143
 msgid ""
 "For smaller projects migrating from a centralised revision control tool, "
 "perhaps the easiest way to get started is to have changes flow through a "
@@ -5924,7 +5001,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:149
+#: ../en/ch05-collab.xml:149
 msgid ""
 "Contributors start by cloning a copy of this repository.  They can pull "
 "changes from it whenever they need to, and some (perhaps all) developers have "
@@ -5933,7 +5010,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:154
+#: ../en/ch05-collab.xml:154
 msgid ""
 "Under this model, it can still often make sense for people to pull changes "
 "directly from each other, without going through the central repository.  "
@@ -5946,7 +5023,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:165
+#: ../en/ch05-collab.xml:165
 msgid ""
 "In this kind of scenario, people usually use the <command>ssh</command> "
 "protocol to securely push changes to the central repository, as documented in "
@@ -5958,12 +5035,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:178
+#: ../en/ch05-collab.xml:178
 msgid "Working with multiple branches"
 msgstr "使用多个分支工作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:180
+#: ../en/ch05-collab.xml:180
 msgid ""
 "Projects of any significant size naturally tend to make progress on several "
 "fronts simultaneously.  In the case of software, it's common for a project to "
@@ -5977,7 +5054,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:193
+#: ../en/ch05-collab.xml:193
 msgid ""
 "Mercurial is particularly well suited to managing a number of simultaneous, "
 "but not identical, branches.  Each <quote>development direction</quote> can "
@@ -5988,19 +5065,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:202
+#: ../en/ch05-collab.xml:202
 msgid ""
 "Here's an example of how this can work in practice.  Let's say you have one "
 "<quote>main branch</quote> on a central server."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:208
+#: ../en/ch05-collab.xml:208
 msgid "People clone it, make changes locally, test them, and push them back."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:211
+#: ../en/ch05-collab.xml:211
 msgid ""
 "Once the main branch reaches a release milestone, you can use the <command "
 "role=\"hg-cmd\">hg tag</command> command to give a permanent name to the "
@@ -6008,12 +5085,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:217
+#: ../en/ch05-collab.xml:217
 msgid "Let's say some ongoing development occurs on the main branch."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:222
+#: ../en/ch05-collab.xml:222
 msgid ""
 "Using the tag that was recorded at the milestone, people who clone that "
 "repository at any time in the future can use <command role=\"hg-cmd\">hg "
@@ -6023,7 +5100,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:230
+#: ../en/ch05-collab.xml:230
 msgid ""
 "In addition, immediately after the main branch is tagged, someone can then "
 "clone the main branch on the server to a new <quote>stable</quote> branch, "
@@ -6031,7 +5108,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:236
+#: ../en/ch05-collab.xml:236
 msgid ""
 "Someone who needs to make a change to the stable branch can then clone "
 "<emphasis>that</emphasis> repository, make their changes, commit, and push "
@@ -6039,7 +5116,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:242
+#: ../en/ch05-collab.xml:242
 msgid ""
 "Because Mercurial repositories are independent, and Mercurial doesn't move "
 "changes around automatically, the stable and main branches are "
@@ -6049,7 +5126,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:249
+#: ../en/ch05-collab.xml:249
 msgid ""
 "You'll often want all of your bugfixes on the stable branch to show up on the "
 "main branch, too.  Rather than rewrite a bugfix on the main branch, you can "
@@ -6058,7 +5135,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:257
+#: ../en/ch05-collab.xml:257
 msgid ""
 "The main branch will still contain changes that are not on the stable branch, "
 "but it will also contain all of the bugfixes from the stable branch.  The "
@@ -6066,12 +5143,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch06-collab.xml:264 ../en/ch06-collab.xml:278
+#: ../en/ch05-collab.xml:264 ../en/ch05-collab.xml:278
 msgid "Feature branches"
 msgstr "特性分支"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:266
+#: ../en/ch05-collab.xml:266
 msgid ""
 "For larger projects, an effective way to manage change is to break up a team "
 "into smaller groups.  Each group has a shared branch of its own, cloned from "
@@ -6081,14 +5158,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch06-collab.xml:275
+#: ../en/ch05-collab.xml:275
 msgid ""
 "<imageobject><imagedata fileref=\"images/feature-branches.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:283
+#: ../en/ch05-collab.xml:283
 msgid ""
 "When a particular feature is deemed to be in suitable shape, someone on that "
 "feature team pulls and merges from the master branch into the feature branch, "
@@ -6096,12 +5173,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:290
+#: ../en/ch05-collab.xml:290
 msgid "The release train"
 msgstr "发布列车"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:292
+#: ../en/ch05-collab.xml:292
 msgid ""
 "Some projects are organised on a <quote>train</quote> basis: a release is "
 "scheduled to happen every few months, and whatever features are ready when "
@@ -6109,7 +5186,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:297
+#: ../en/ch05-collab.xml:297
 msgid ""
 "This model resembles working with feature branches.  The difference is that "
 "when a feature branch misses a train, someone on the feature team pulls and "
@@ -6119,12 +5196,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:306
+#: ../en/ch05-collab.xml:306
 msgid "The Linux kernel model"
 msgstr "Linux 内核模型"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:308
+#: ../en/ch05-collab.xml:308
 msgid ""
 "The development of the Linux kernel has a shallow hierarchical structure, "
 "surrounded by a cloud of apparent chaos.  Because most Linux developers use "
@@ -6134,7 +5211,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:316
+#: ../en/ch05-collab.xml:316
 msgid ""
 "At the center of the community sits Linus Torvalds, the creator of Linux.  He "
 "publishes a single source repository that is considered the "
@@ -6144,7 +5221,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:323
+#: ../en/ch05-collab.xml:323
 msgid ""
 "Linus has a number of <quote>trusted lieutenants</quote>.  As a general rule, "
 "he pulls whatever changes they publish, in most cases without even reviewing "
@@ -6158,7 +5235,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:335
+#: ../en/ch05-collab.xml:335
 msgid ""
 "Individual lieutenants have their own approaches to reviewing, accepting, and "
 "publishing changes; and for deciding when to feed them to Linus.  In "
@@ -6171,7 +5248,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:346
+#: ../en/ch05-collab.xml:346
 msgid ""
 "This model has two notable features.  The first is that it's <quote>pull "
 "only</quote>.  You have to ask, convince, or beg another developer to take a "
@@ -6181,7 +5258,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:353
+#: ../en/ch05-collab.xml:353
 msgid ""
 "The second is that it's based on reputation and acclaim.  If you're an "
 "unknown, Linus will probably ignore changes from you without even "
@@ -6195,7 +5272,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:364
+#: ../en/ch05-collab.xml:364
 msgid ""
 "Reputation and acclaim don't necessarily cross subsystem or <quote>people</"
 "quote> boundaries.  If you're a respected but specialised storage hacker, and "
@@ -6204,7 +5281,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:371
+#: ../en/ch05-collab.xml:371
 msgid ""
 "To people who come from more orderly project backgrounds, the comparatively "
 "chaotic Linux kernel development process often seems completely insane.  It's "
@@ -6214,12 +5291,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:381
+#: ../en/ch05-collab.xml:381
 msgid "Pull-only versus shared-push collaboration"
 msgstr "只读与共享写协作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:383
+#: ../en/ch05-collab.xml:383
 msgid ""
 "A perpetual source of heat in the open source community is whether a "
 "development model in which people only ever pull changes from others is "
@@ -6228,7 +5305,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:389
+#: ../en/ch05-collab.xml:389
 msgid ""
 "Typically, the backers of the shared-push model use tools that actively "
 "enforce this approach.  If you're using a centralised revision control tool "
@@ -6239,7 +5316,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:397
+#: ../en/ch05-collab.xml:397
 msgid ""
 "A good distributed revision control tool, such as Mercurial, will support "
 "both models.  You and your collaborators can then structure how you work "
@@ -6248,12 +5325,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:405
+#: ../en/ch05-collab.xml:405
 msgid "Where collaboration meets branch management"
 msgstr "协作与分支管理"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:407
+#: ../en/ch05-collab.xml:407
 msgid ""
 "Once you and your team set up some shared repositories and start propagating "
 "changes back and forth between local and shared repos, you begin to face a "
@@ -6265,24 +5342,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:419
+#: ../en/ch05-collab.xml:419
 msgid "The technical side of sharing"
 msgstr "共享的技术因素"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:421
+#: ../en/ch05-collab.xml:421
 msgid ""
 "The remainder of this chapter is devoted to the question of serving data to "
 "your collaborators."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:426
+#: ../en/ch05-collab.xml:426
 msgid "Informal sharing with <command role=\"hg-cmd\">hg serve</command>"
 msgstr "使用 <command role=\"hg-cmd\">hg serve</command> 进行非正式共享"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:429
+#: ../en/ch05-collab.xml:429
 msgid ""
 "Mercurial's <command role=\"hg-cmd\">hg serve</command> command is "
 "wonderfully suited to small, tight-knit, and fast-paced group environments.  "
@@ -6291,7 +5368,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:434
+#: ../en/ch05-collab.xml:434
 msgid ""
 "Run <command role=\"hg-cmd\">hg serve</command> inside a repository, and in "
 "under a second it will bring up a specialised HTTP server; this will accept "
@@ -6304,21 +5381,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:445
+#: ../en/ch05-collab.xml:445
 msgid ""
 "The <command role=\"hg-cmd\">hg serve</command> command is <emphasis>not</"
 "emphasis> a general-purpose web server. It can do only two things:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:449
+#: ../en/ch05-collab.xml:449
 msgid ""
 "Allow people to browse the history of the repository it's serving, from their "
 "normal web browsers."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:453
+#: ../en/ch05-collab.xml:453
 msgid ""
 "Speak Mercurial's wire protocol, so that people can <command role=\"hg-cmd"
 "\">hg clone</command> or <command role=\"hg-cmd\">hg pull</command> changes "
@@ -6326,7 +5403,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:458
+#: ../en/ch05-collab.xml:458
 msgid ""
 "In particular, <command role=\"hg-cmd\">hg serve</command> won't allow remote "
 "users to <emphasis>modify</emphasis> your repository.  It's intended for read-"
@@ -6334,7 +5411,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:462
+#: ../en/ch05-collab.xml:462
 msgid ""
 "If you're getting started with Mercurial, there's nothing to prevent you from "
 "using <command role=\"hg-cmd\">hg serve</command> to serve up a repository on "
@@ -6345,12 +5422,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:472
+#: ../en/ch05-collab.xml:472
 msgid "A few things to keep in mind"
 msgstr "要牢记的几件事"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:474
+#: ../en/ch05-collab.xml:474
 msgid ""
 "Because it provides unauthenticated read access to all clients, you should "
 "only use <command role=\"hg-cmd\">hg serve</command> in an environment where "
@@ -6359,7 +5436,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:480
+#: ../en/ch05-collab.xml:480
 msgid ""
 "The <command role=\"hg-cmd\">hg serve</command> command knows nothing about "
 "any firewall software you might have installed on your system or network.  It "
@@ -6370,7 +5447,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:489
+#: ../en/ch05-collab.xml:489
 msgid ""
 "By default, <command role=\"hg-cmd\">hg serve</command> listens for incoming "
 "connections on port 8000.  If another process is already listening on the "
@@ -6379,7 +5456,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:495
+#: ../en/ch05-collab.xml:495
 msgid ""
 "Normally, when <command role=\"hg-cmd\">hg serve</command> starts, it prints "
 "no output, which can be a bit unnerving.  If you'd like to confirm that it is "
@@ -6389,12 +5466,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:505
+#: ../en/ch05-collab.xml:505
 msgid "Using the Secure Shell (ssh) protocol"
 msgstr "使用 ssh 协议"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:507
+#: ../en/ch05-collab.xml:507
 msgid ""
 "You can pull and push changes securely over a network connection using the "
 "Secure Shell (<literal>ssh</literal>)  protocol.  To use this successfully, "
@@ -6403,7 +5480,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:512
+#: ../en/ch05-collab.xml:512
 msgid ""
 "If you're not familiar with ssh, it's a network protocol that lets you "
 "securely communicate with another computer.  To use it with Mercurial, you'll "
@@ -6412,31 +5489,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:518
+#: ../en/ch05-collab.xml:518
 msgid ""
 "(If you <emphasis>are</emphasis> familiar with ssh, you'll probably find some "
 "of the material that follows to be elementary in nature.)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:523
+#: ../en/ch05-collab.xml:523
 msgid "How to read and write ssh URLs"
 msgstr "如何读写 ssh 路径"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:525
+#: ../en/ch05-collab.xml:525
 msgid "An ssh URL tends to look like this:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:528
+#: ../en/ch05-collab.xml:528
 msgid ""
 "The <quote><literal>ssh://</literal></quote> part tells Mercurial to use the "
 "ssh protocol."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:531
+#: ../en/ch05-collab.xml:531
 msgid ""
 "The <quote><literal>bos@</literal></quote> component indicates what username "
 "to log into the server as.  You can leave this out if the remote username is "
@@ -6444,28 +5521,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:536
+#: ../en/ch05-collab.xml:536
 msgid ""
 "The <quote><literal>hg.serpentine.com</literal></quote> gives the hostname of "
 "the server to log into."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:540
+#: ../en/ch05-collab.xml:540
 msgid ""
 "The <quote>:22</quote> identifies the port number to connect to the server "
-"on.  The default port is 22, so you only need to specify this part if you're "
-"<emphasis>not</emphasis> using port 22."
+"on.  The default port is 22, so you only need to specify a colon and port "
+"number if you're <emphasis>not</emphasis> using port 22."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:545
+#: ../en/ch05-collab.xml:545
 msgid ""
 "The remainder of the URL is the local path to the repository on the server."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:549
+#: ../en/ch05-collab.xml:549
 msgid ""
 "There's plenty of scope for confusion with the path component of ssh URLs, as "
 "there is no standard way for tools to interpret it.  Some programs behave "
@@ -6475,7 +5552,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:556
+#: ../en/ch05-collab.xml:556
 msgid ""
 "Mercurial treats the path to a repository on the server as relative to the "
 "remote user's home directory.  For example, if user <literal>foo</literal> on "
@@ -6486,7 +5563,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:565
+#: ../en/ch05-collab.xml:565
 msgid ""
 "If you want to specify a path relative to another user's home directory, you "
 "can use a path that starts with a tilde character followed by the user's name "
@@ -6494,19 +5571,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:571
+#: ../en/ch05-collab.xml:571
 msgid ""
 "And if you really want to specify an <emphasis>absolute</emphasis> path on "
 "the server, begin the path component with two slashes, as in this example."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:578
+#: ../en/ch05-collab.xml:578
 msgid "Finding an ssh client for your system"
 msgstr "为你的系统寻找 ssh 客户端"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:580
+#: ../en/ch05-collab.xml:580
 msgid ""
 "Almost every Unix-like system comes with OpenSSH preinstalled.  If you're "
 "using such a system, run <literal>which ssh</literal> to find out if the "
@@ -6517,50 +5594,50 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:588
+#: ../en/ch05-collab.xml:588
 msgid ""
 "On Windows, you'll first need to download a suitable ssh client.  There are "
 "two alternatives."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:591
+#: ../en/ch05-collab.xml:591
 msgid ""
 "Simon Tatham's excellent PuTTY package <citation>web:putty</citation> "
 "provides a complete suite of ssh client commands."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:595
+#: ../en/ch05-collab.xml:595
 msgid ""
 "If you have a high tolerance for pain, you can use the Cygwin port of OpenSSH."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:598
-msgid ""
-"In either case, you'll need to edit your \\hgini\\ file to tell Mercurial "
-"where to find the actual client command.  For example, if you're using PuTTY, "
-"you'll need to use the <command>plink</command> command as a command-line ssh "
-"client."
+#: ../en/ch05-collab.xml:598
+msgid ""
+"In either case, you'll need to edit your <filename role=\"special\">hg.ini</"
+"filename> file to tell Mercurial where to find the actual client command.  "
+"For example, if you're using PuTTY, you'll need to use the <command>plink</"
+"command> command as a command-line ssh client."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch06-collab.xml:607
+#: ../en/ch05-collab.xml:608
 msgid ""
 "The path to <command>plink</command> shouldn't contain any whitespace "
 "characters, or Mercurial may not be able to run it correctly (so putting it "
-"in <filename class=\"directory\">C:\\\\Program Files</filename> is probably "
-"not a good idea)."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:616
+"in <filename class=\"directory\">C:\\Program Files</filename> is probably not "
+"a good idea)."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><title>
+#: ../en/ch05-collab.xml:617
 msgid "Generating a key pair"
 msgstr "产生密钥对"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:618
+#: ../en/ch05-collab.xml:619
 msgid ""
 "To avoid the need to repetitively type a password every time you need to use "
 "your ssh client, I recommend generating a key pair.  On a Unix-like system, "
@@ -6570,7 +5647,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:626
+#: ../en/ch05-collab.xml:627
 msgid ""
 "When you generate a key pair, it's usually <emphasis>highly</emphasis> "
 "advisable to protect it with a passphrase.  (The only time that you might not "
@@ -6579,7 +5656,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:632
+#: ../en/ch05-collab.xml:633
 msgid ""
 "Simply generating a key pair isn't enough, however.  You'll need to add the "
 "public key to the set of authorised keys for whatever user you're logging in "
@@ -6590,7 +5667,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:641
+#: ../en/ch05-collab.xml:642
 msgid ""
 "On a Unix-like system, your public key will have a <filename>.pub</filename> "
 "extension.  If you're using <command>puttygen</command> on Windows, you can "
@@ -6600,12 +5677,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:650
+#: ../en/ch05-collab.xml:651
 msgid "Using an authentication agent"
 msgstr "使用认证代理"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:652
+#: ../en/ch05-collab.xml:653
 msgid ""
 "An authentication agent is a daemon that stores passphrases in memory (so it "
 "will forget passphrases if you log out and log back in again). An ssh client "
@@ -6617,7 +5694,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:661
+#: ../en/ch05-collab.xml:662
 msgid ""
 "The downside of storing passphrases in an agent is that it's possible for a "
 "well-prepared attacker to recover the plain text of your passphrases, in some "
@@ -6627,7 +5704,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:668
+#: ../en/ch05-collab.xml:669
 msgid ""
 "On Unix-like systems, the agent is called <command>ssh-agent</command>, and "
 "it's often run automatically for you when you log in.  You'll need to use the "
@@ -6638,12 +5715,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:679
+#: ../en/ch05-collab.xml:680
 msgid "Configuring the server side properly"
 msgstr "正确配置服务器端"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:681
+#: ../en/ch05-collab.xml:682
 msgid ""
 "Because ssh can be fiddly to set up if you're new to it, there's a variety of "
 "things that can go wrong.  Add Mercurial on top, and there's plenty more "
@@ -6653,7 +5730,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:689
+#: ../en/ch05-collab.xml:690
 msgid ""
 "Before you try using Mercurial to talk to an ssh server, it's best to make "
 "sure that you can use the normal <command>ssh</command> or <command>putty</"
@@ -6666,7 +5743,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:700
+#: ../en/ch05-collab.xml:701
 msgid ""
 "The first thing to be sure of on the server side is that you can actually log "
 "in from another machine at all.  If you can't use <command>ssh</command> or "
@@ -6675,7 +5752,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:707
+#: ../en/ch05-collab.xml:708
 msgid ""
 "If you get a <quote>connection refused</quote> error, either there isn't an "
 "SSH daemon running on the server at all, or it's inaccessible due to firewall "
@@ -6683,7 +5760,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:712
+#: ../en/ch05-collab.xml:713
 msgid ""
 "If you get a <quote>no route to host</quote> error, you either have an "
 "incorrect address for the server or a seriously locked down firewall that "
@@ -6691,7 +5768,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:717
+#: ../en/ch05-collab.xml:718
 msgid ""
 "If you get a <quote>permission denied</quote> error, you may have mistyped "
 "the username on the server, or you could have mistyped your key's passphrase "
@@ -6699,7 +5776,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:722
+#: ../en/ch05-collab.xml:723
 msgid ""
 "In summary, if you're having trouble talking to the server's ssh daemon, "
 "first make sure that one is running at all.  On many systems it will be "
@@ -6711,7 +5788,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:732
+#: ../en/ch05-collab.xml:733
 msgid ""
 "If you're using an authentication agent on the client side to store "
 "passphrases for your keys, you ought to be able to log into the server "
@@ -6720,26 +5797,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:738
+#: ../en/ch05-collab.xml:739
 msgid ""
 "You might have forgotten to use <command>ssh-add</command> or "
 "<command>pageant</command> to store the passphrase."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:742
+#: ../en/ch05-collab.xml:743
 msgid "You might have stored the passphrase for the wrong key."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:745
+#: ../en/ch05-collab.xml:746
 msgid ""
 "If you're being prompted for the remote user's password, there are another "
 "few possible problems to check."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:748
+#: ../en/ch05-collab.xml:749
 msgid ""
 "Either the user's home directory or their <filename role=\"special\" class="
 "\"directory\">.ssh</filename> directory might have excessively liberal "
@@ -6750,7 +5827,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:757
+#: ../en/ch05-collab.xml:758
 msgid ""
 "The user's <filename role=\"special\">authorized_keys</filename> file may "
 "have a problem. If anyone other than the user owns or can write to that file, "
@@ -6758,7 +5835,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:764
+#: ../en/ch05-collab.xml:765
 msgid ""
 "In the ideal world, you should be able to run the following command "
 "successfully, and it should print exactly one line of output, the current "
@@ -6766,7 +5843,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:769
+#: ../en/ch05-collab.xml:770
 msgid ""
 "If, on your server, you have login scripts that print banners or other junk "
 "even when running non-interactive commands like this, you should fix them "
@@ -6781,7 +5858,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:783
+#: ../en/ch05-collab.xml:784
 msgid ""
 "Once you've verified that plain old ssh is working with your server, the next "
 "step is to ensure that Mercurial runs on the server.  The following command "
@@ -6789,7 +5866,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:788
+#: ../en/ch05-collab.xml:791
 msgid ""
 "If you see an error message instead of normal <command role=\"hg-cmd\">hg "
 "version</command> output, this is usually because you haven't installed "
@@ -6799,21 +5876,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:795
+#: ../en/ch05-collab.xml:798
 msgid ""
 "Is Mercurial really installed on the server at all? I know this sounds "
 "trivial, but it's worth checking!"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:799
+#: ../en/ch05-collab.xml:802
 msgid ""
 "Maybe your shell's search path (usually set via the <envar>PATH</envar> "
 "environment variable) is simply misconfigured."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:803
+#: ../en/ch05-collab.xml:806
 msgid ""
 "Perhaps your <envar>PATH</envar> environment variable is only being set to "
 "point to the location of the <command>hg</command> executable if the login "
@@ -6822,7 +5899,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:810
+#: ../en/ch05-collab.xml:813
 msgid ""
 "The <envar>PYTHONPATH</envar> environment variable may need to contain the "
 "path to the Mercurial Python modules.  It might not be set at all; it could "
@@ -6830,7 +5907,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:817
+#: ../en/ch05-collab.xml:820
 msgid ""
 "If you can run <command role=\"hg-cmd\">hg version</command> over an ssh "
 "connection, well done! You've got the server and client sorted out.  You "
@@ -6841,12 +5918,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:827
+#: ../en/ch05-collab.xml:830
 msgid "Using compression with ssh"
 msgstr "通过 ssh 使用压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:829
+#: ../en/ch05-collab.xml:832
 msgid ""
 "Mercurial does not compress data when it uses the ssh protocol, because the "
 "ssh protocol can transparently compress data.  However, the default behaviour "
@@ -6854,7 +5931,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:834
+#: ../en/ch05-collab.xml:837
 msgid ""
 "Over any network other than a fast LAN (even a wireless network), using "
 "compression is likely to significantly speed up Mercurial's network "
@@ -6864,16 +5941,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:841
+#: ../en/ch05-collab.xml:844
 msgid ""
 "Both <command>ssh</command> and <command>plink</command> accept a <option "
 "role=\"cmd-opt-ssh\">-C</option> option which turns on compression.  You can "
-"easily edit your <filename role=\"special\"> /.hgrc</filename>\\ to enable "
+"easily edit your <filename role=\"special\">~/.hgrc</filename> to enable "
 "compression for all of Mercurial's uses of the ssh protocol."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:848
+#: ../en/ch05-collab.xml:852
 msgid ""
 "If you use <command>ssh</command>, you can configure it to always use "
 "compression when talking to your server.  To do this, edit your <filename "
@@ -6882,7 +5959,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:855
+#: ../en/ch05-collab.xml:860
 msgid ""
 "This defines an alias, <literal>hg</literal>.  When you use it on the "
 "<command>ssh</command> command line or in a Mercurial <literal>ssh</literal>-"
@@ -6892,19 +5969,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:866
+#: ../en/ch05-collab.xml:871
 msgid "Serving over HTTP using CGI"
 msgstr "使用 CGI 通过 HTTP 提供服务"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:868
+#: ../en/ch05-collab.xml:873
 msgid ""
 "Depending on how ambitious you are, configuring Mercurial's CGI interface can "
 "take anything from a few moments to several hours."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:872
+#: ../en/ch05-collab.xml:877
 msgid ""
 "We'll begin with the simplest of examples, and work our way towards a more "
 "complex configuration.  Even for the most basic case, you're almost certainly "
@@ -6912,7 +5989,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch06-collab.xml:878
+#: ../en/ch05-collab.xml:883
 msgid ""
 "Configuring a web server is a complex, fiddly, and highly system-dependent "
 "activity.  I can't possibly give you instructions that will cover anything "
@@ -6922,33 +5999,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:888
+#: ../en/ch05-collab.xml:893
 msgid "Web server configuration checklist"
 msgstr "Web 服务器配置检查表"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:890
+#: ../en/ch05-collab.xml:895
 msgid ""
 "Before you continue, do take a few moments to check a few aspects of your "
 "system's setup."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:894
+#: ../en/ch05-collab.xml:899
 msgid ""
 "Do you have a web server installed at all? Mac OS X ships with Apache, but "
 "many other systems may not have a web server installed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:898
+#: ../en/ch05-collab.xml:903
 msgid ""
 "If you have a web server installed, is it actually running? On most systems, "
 "even if one is present, it will be disabled by default."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:902
+#: ../en/ch05-collab.xml:907
 msgid ""
 "Is your server configured to allow you to run CGI programs in the directory "
 "where you plan to do so? Most servers default to explicitly disabling the "
@@ -6956,7 +6033,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:908
+#: ../en/ch05-collab.xml:913
 msgid ""
 "If you don't have a web server installed, and don't have substantial "
 "experience configuring Apache, you should consider using the "
@@ -6969,22 +6046,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:921
+#: ../en/ch05-collab.xml:926
 msgid "Basic CGI configuration"
 msgstr "基本 CGI 配置"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:923
+#: ../en/ch05-collab.xml:928
 msgid ""
 "On Unix-like systems, it's common for users to have a subdirectory named "
 "something like <filename class=\"directory\">public_html</filename> in their "
 "home directory, from which they can serve up web pages.  A file named "
 "<filename>foo</filename> in this directory will be accessible at a URL of the "
-"form <literal>http://www.example.com/\\ {</literal>username/foo}."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:932
+"form <literal>http://www.example.com/username/foo</literal>."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch05-collab.xml:936
 msgid ""
 "To get started, find the <filename role=\"special\">hgweb.cgi</filename> "
 "script that should be present in your Mercurial installation.  If you can't "
@@ -6994,14 +6071,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:939 ../en/ch06-collab.xml:1112
+#: ../en/ch05-collab.xml:943 ../en/ch05-collab.xml:1112
 msgid ""
 "You'll need to copy this script into your <filename class=\"directory"
 "\">public_html</filename> directory, and ensure that it's executable."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:944
+#: ../en/ch05-collab.xml:948
 msgid ""
 "The <literal>755</literal> argument to <command>chmod</command> is a little "
 "more general than just making the script executable: it ensures that the "
@@ -7014,12 +6091,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:958
+#: ../en/ch05-collab.xml:962
 msgid "What could <emphasis>possibly</emphasis> go wrong?"
 msgstr "什么<emphasis>可能</emphasis>会出错?"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:961
+#: ../en/ch05-collab.xml:965
 msgid ""
 "Once you've copied the CGI script into place, go into a web browser, and try "
 "to open the URL <ulink url=\"http://myhostname/ myuser/hgweb.cgi\">http://"
@@ -7033,7 +6110,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:975
+#: ../en/ch05-collab.xml:979
 msgid ""
 "Your web server may have per-user directories disabled.  If you're using "
 "Apache, search your config file for a <literal>UserDir</literal> directive.  "
@@ -7046,7 +6123,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:986
+#: ../en/ch05-collab.xml:990
 msgid ""
 "Your file access permissions may be too restrictive.  The web server must be "
 "able to traverse your home directory and directories under your <filename "
@@ -7056,7 +6133,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:996
+#: ../en/ch05-collab.xml:1000
 msgid ""
 "The other possibility with permissions is that you might get a completely "
 "empty window when you try to load the script.  In this case, it's likely that "
@@ -7066,15 +6143,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1003
+#: ../en/ch05-collab.xml:1007
 msgid ""
 "Your web server may be configured to disallow execution of CGI programs in "
 "your per-user web directory.  Here's Apache's default per-user configuration "
 "from my Fedora system."
 msgstr ""
 
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1014
+#. type: CDATA
+#: ../en/ch05-collab.xml:1012
+#, no-wrap
+msgid "&ch06-apache-config.lst;]]"
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
+#: ../en/ch05-collab.xml:1014
 msgid ""
 "If you find a similar-looking <literal>Directory</literal> group in your "
 "Apache configuration, the directive to look at inside it is <literal>Options</"
@@ -7083,7 +6166,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1021
+#: ../en/ch05-collab.xml:1021
 msgid ""
 "If you find that Apache serves you the text of the CGI script instead of "
 "executing it, you may need to either uncomment (if already present) or add a "
@@ -7091,7 +6174,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1027
+#: ../en/ch05-collab.xml:1027
 msgid ""
 "The next possibility is that you might be served with a colourful Python "
 "backtrace claiming that it can't import a <literal>mercurial</literal>-"
@@ -7106,7 +6189,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1041
+#: ../en/ch05-collab.xml:1041
 msgid ""
 "Finally, you are <emphasis>certain</emphasis> to by served with another "
 "colourful Python backtrace: this one will complain that it can't find "
@@ -7117,19 +6200,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1051
+#: ../en/ch05-collab.xml:1051
 msgid ""
 "At this point, when you try to reload the page, you should be presented with "
 "a nice HTML view of your repository's history.  Whew!"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1057
+#: ../en/ch05-collab.xml:1057
 msgid "Configuring lighttpd"
 msgstr "配置 lighttpd"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1059
+#: ../en/ch05-collab.xml:1059
 msgid ""
 "To be exhaustive in my experiments, I tried configuring the increasingly "
 "popular <literal>lighttpd</literal> web server to serve the same repository "
@@ -7140,7 +6223,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1069
+#: ../en/ch05-collab.xml:1069
 msgid ""
 "Once I had Apache running, getting <literal>lighttpd</literal> to serve the "
 "repository was a snap (in other words, even if you're trying to use "
@@ -7152,7 +6235,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1081
+#: ../en/ch05-collab.xml:1081
 msgid ""
 "With this done, <literal>lighttpd</literal> ran immediately for me.  If I had "
 "configured <literal>lighttpd</literal> before Apache, I'd almost certainly "
@@ -7163,12 +6246,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1094
+#: ../en/ch05-collab.xml:1094
 msgid "Sharing multiple repositories with one CGI script"
 msgstr "使用一个 CGI 脚本共享多个版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1096
+#: ../en/ch05-collab.xml:1096
 msgid ""
 "The <filename role=\"special\">hgweb.cgi</filename> script only lets you "
 "publish a single repository, which is an annoying restriction.  If you want "
@@ -7178,7 +6261,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1104
+#: ../en/ch05-collab.xml:1104
 msgid ""
 "The procedure to configure <filename role=\"special\">hgwebdir.cgi</filename> "
 "is only a little more involved than for <filename role=\"special\">hgweb.cgi</"
@@ -7189,7 +6272,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1117
+#: ../en/ch05-collab.xml:1117
 msgid ""
 "With basic configuration out of the way, try to visit <ulink url=\"http://"
 "myhostname/ myuser/hgwebdir.cgi\">http://myhostname/ myuser/hgwebdir.cgi</"
@@ -7199,7 +6282,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1126
+#: ../en/ch05-collab.xml:1126
 msgid ""
 "The <filename role=\"special\">hgwebdir.cgi</filename> script relies on an "
 "external configuration file.  By default, it searches for a file named "
@@ -7211,7 +6294,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1136
+#: ../en/ch05-collab.xml:1136
 msgid ""
 "The easiest way to configure <filename role=\"special\">hgwebdir.cgi</"
 "filename> is with a section named <literal>collections</literal>.  This will "
@@ -7220,7 +6303,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1144
+#: ../en/ch05-collab.xml:1144
 msgid ""
 "Mercurial interprets this by looking at the directory name on the "
 "<emphasis>right</emphasis> hand side of the <quote><literal>=</literal></"
@@ -7232,7 +6315,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1153
+#: ../en/ch05-collab.xml:1153
 msgid ""
 "Given the example above, if we have a repository whose local path is "
 "<filename class=\"directory\">/my/root/this/repo</filename>, the CGI script "
@@ -7246,7 +6329,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1167
+#: ../en/ch05-collab.xml:1167
 msgid ""
 "If we replace <filename class=\"directory\">/my/root</filename> on the left "
 "hand side of this example with <filename class=\"directory\">/my</filename>, "
@@ -7257,7 +6340,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1177
+#: ../en/ch05-collab.xml:1177
 msgid ""
 "The <filename role=\"special\">hgwebdir.cgi</filename> script will "
 "recursively search each directory listed in the <literal>collections</"
@@ -7266,7 +6349,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1183
+#: ../en/ch05-collab.xml:1183
 msgid ""
 "The <literal>collections</literal> mechanism makes it easy to publish many "
 "repositories in a <quote>fire and forget</quote> manner.  You only need to "
@@ -7277,12 +6360,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1193
+#: ../en/ch05-collab.xml:1193
 msgid "Explicitly specifying which repositories to publish"
 msgstr "明确指出要发布的版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1196
+#: ../en/ch05-collab.xml:1196
 msgid ""
 "In addition to the <literal>collections</literal> mechanism, the <filename "
 "role=\"special\">hgwebdir.cgi</filename> script allows you to publish a "
@@ -7291,7 +6374,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1204
+#: ../en/ch05-collab.xml:1205
 msgid ""
 "In this case, the virtual path (the component that will appear in a URL) is "
 "on the left hand side of each definition, while the path to the repository is "
@@ -7301,7 +6384,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1211
+#: ../en/ch05-collab.xml:1212
 msgid ""
 "If you wish, you can use both the <literal>collections</literal> and "
 "<literal>paths</literal> mechanisms simultaneously in a single configuration "
@@ -7309,7 +6392,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para>
-#: ../en/ch06-collab.xml:1217
+#: ../en/ch05-collab.xml:1218
 msgid ""
 "If multiple repositories have the same virtual path, <filename role=\"special"
 "\">hgwebdir.cgi</filename> will not report an error.  Instead, it will behave "
@@ -7317,12 +6400,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1226
+#: ../en/ch05-collab.xml:1227
 msgid "Downloading source archives"
 msgstr "下载源代码档案包"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1228
+#: ../en/ch05-collab.xml:1229
 msgid ""
 "Mercurial's web interface lets users download an archive of any revision.  "
 "This archive will contain a snapshot of the working directory as of that "
@@ -7330,21 +6413,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1233
+#: ../en/ch05-collab.xml:1234
 msgid ""
 "By default, this feature is not enabled.  To enable it, you'll need to add an "
 "<envar role=\"rc-item-web\">allow_archive</envar> item to the <literal role="
-"\"rc-web\">web</literal> section of your <filename role=\"special\"> /.hgrc</"
+"\"rc-web\">web</literal> section of your <filename role=\"special\">~/.hgrc</"
 "filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1241
+#: ../en/ch05-collab.xml:1242
 msgid "Web configuration options"
 msgstr "Web 配置选项"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1243
+#: ../en/ch05-collab.xml:1244
 msgid ""
 "Mercurial's web interfaces (the <command role=\"hg-cmd\">hg serve</command> "
 "command, and the <filename role=\"special\">hgweb.cgi</filename> and "
@@ -7354,7 +6437,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1251
+#: ../en/ch05-collab.xml:1252
 msgid ""
 "<envar role=\"rc-item-web\">allow_archive</envar>: Determines which (if any) "
 "archive download mechanisms Mercurial supports.  If you enable this feature, "
@@ -7364,7 +6447,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1260
+#: ../en/ch05-collab.xml:1261
 msgid ""
 "<literal>bz2</literal>: A <command>tar</command> archive, compressed using "
 "<literal>bzip2</literal> compression.  This has the best compression ratio, "
@@ -7372,14 +6455,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1266
+#: ../en/ch05-collab.xml:1267
 msgid ""
 "<literal>gz</literal>: A <command>tar</command> archive, compressed using "
 "<literal>gzip</literal> compression."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1270
+#: ../en/ch05-collab.xml:1271
 msgid ""
 "<literal>zip</literal>: A <command>zip</command> archive, compressed using "
 "LZW compression.  This format has the worst compression ratio, but is widely "
@@ -7387,7 +6470,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1276
+#: ../en/ch05-collab.xml:1277
 msgid ""
 "If you provide an empty list, or don't have an <envar role=\"rc-item-web"
 "\">allow_archive</envar> entry at all, this feature will be disabled.  Here "
@@ -7395,7 +6478,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1283
+#: ../en/ch05-collab.xml:1284
 msgid ""
 "<envar role=\"rc-item-web\">allowpull</envar>: Boolean.  Determines whether "
 "the web interface allows remote users to <command role=\"hg-cmd\">hg pull</"
@@ -7405,33 +6488,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1292
+#: ../en/ch05-collab.xml:1293
 msgid ""
 "<envar role=\"rc-item-web\">contact</envar>: String.  A free-form (but "
 "preferably brief) string identifying the person or group in charge of the "
 "repository.  This often contains the name and email address of a person or "
 "mailing list.  It often makes sense to place this entry in a repository's own "
 "<filename role=\"special\">.hg/hgrc</filename> file, but it can make sense to "
-"use in a global <filename role=\"special\"> /.hgrc</filename>\\ if every "
+"use in a global <filename role=\"special\">~/.hgrc</filename> if every "
 "repository has a single maintainer."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1303
+#: ../en/ch05-collab.xml:1304
 msgid ""
 "<envar role=\"rc-item-web\">maxchanges</envar>: Integer.  The default maximum "
 "number of changesets to display in a single page of output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1307
+#: ../en/ch05-collab.xml:1308
 msgid ""
 "<envar role=\"rc-item-web\">maxfiles</envar>: Integer.  The default maximum "
 "number of modified files to display in a single page of output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1311
+#: ../en/ch05-collab.xml:1312
 msgid ""
 "<envar role=\"rc-item-web\">stripes</envar>: Integer.  If the web interface "
 "displays alternating <quote>stripes</quote> to make it easier to visually "
@@ -7440,7 +6523,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1317
+#: ../en/ch05-collab.xml:1318
 msgid ""
 "<envar role=\"rc-item-web\">style</envar>: Controls the template Mercurial "
 "uses to display the web interface.  Mercurial ships with two web templates, "
@@ -7451,7 +6534,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1328
+#: ../en/ch05-collab.xml:1330
 msgid ""
 "<envar role=\"rc-item-web\">templates</envar>: Path.  The directory in which "
 "to search for template files.  By default, Mercurial searches in the "
@@ -7459,32 +6542,32 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1333
+#: ../en/ch05-collab.xml:1335
 msgid ""
 "If you are using <filename role=\"special\">hgwebdir.cgi</filename>, you can "
 "place a few configuration items in a <literal role=\"rc-web\">web</literal> "
 "section of the <filename role=\"special\">hgweb.config</filename> file "
-"instead of a <filename role=\"special\"> /.hgrc</filename>\\ file, for "
+"instead of a <filename role=\"special\">~/.hgrc</filename> file, for "
 "convenience.  These items are <envar role=\"rc-item-web\">motd</envar> and "
 "<envar role=\"rc-item-web\">style</envar>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1344
+#: ../en/ch05-collab.xml:1346
 msgid "Options specific to an individual repository"
 msgstr "针对单个版本库的选项"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1346
+#: ../en/ch05-collab.xml:1348
 msgid ""
 "A few <literal role=\"rc-web\">web</literal> configuration items ought to be "
 "placed in a repository's local <filename role=\"special\">.hg/hgrc</"
-"filename>, rather than a user's or global <filename role=\"special\"> /.hgrc</"
+"filename>, rather than a user's or global <filename role=\"special\">~/.hgrc</"
 "filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1352
+#: ../en/ch05-collab.xml:1353
 msgid ""
 "<envar role=\"rc-item-web\">description</envar>: String.  A free-form (but "
 "preferably brief) string that describes the contents or purpose of the "
@@ -7492,7 +6575,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1357
+#: ../en/ch05-collab.xml:1358
 msgid ""
 "<envar role=\"rc-item-web\">name</envar>: String.  The name to use for the "
 "repository in the web interface.  This overrides the default name, which is "
@@ -7500,21 +6583,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1365
+#: ../en/ch05-collab.xml:1366
 msgid ""
 "Options specific to the <command role=\"hg-cmd\">hg serve</command> command"
 msgstr "命令 <command role=\"hg-cmd\">hg serve</command> 的选项"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1368
+#: ../en/ch05-collab.xml:1369
 msgid ""
 "Some of the items in the <literal role=\"rc-web\">web</literal> section of a "
-"<filename role=\"special\"> /.hgrc</filename>\\ file are only for use with "
-"the <command role=\"hg-cmd\">hg serve</command> command."
+"<filename role=\"special\">~/.hgrc</filename> file are only for use with the "
+"<command role=\"hg-cmd\">hg serve</command> command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1374
+#: ../en/ch05-collab.xml:1375
 msgid ""
 "<envar role=\"rc-item-web\">accesslog</envar>: Path.  The name of a file into "
 "which to write an access log.  By default, the <command role=\"hg-cmd\">hg "
@@ -7524,7 +6607,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1382
+#: ../en/ch05-collab.xml:1383
 msgid ""
 "<envar role=\"rc-item-web\">address</envar>: String.  The local address on "
 "which the server should listen for incoming connections.  By default, the "
@@ -7532,7 +6615,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1387
+#: ../en/ch05-collab.xml:1388
 msgid ""
 "<envar role=\"rc-item-web\">errorlog</envar>: Path.  The name of a file into "
 "which to write an error log.  By default, the <command role=\"hg-cmd\">hg "
@@ -7541,30 +6624,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1393
+#: ../en/ch05-collab.xml:1394
 msgid ""
 "<envar role=\"rc-item-web\">ipv6</envar>: Boolean.  Whether to use the IPv6 "
 "protocol. By default, IPv6 is not used."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1397
+#: ../en/ch05-collab.xml:1398
 msgid ""
 "<envar role=\"rc-item-web\">port</envar>: Integer.  The TCP port number on "
 "which the server should listen.  The default port number used is 8000."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1404
-msgid ""
-"Choosing the right <filename role=\"special\"> /.hgrc</filename>\\ file to "
-"add <literal role=\"rc-web\">web</literal> items to"
+#: ../en/ch05-collab.xml:1405
+#, fuzzy
+msgid ""
+"Choosing the right <filename role=\"special\">~/.hgrc</filename> file to add "
+"<literal role=\"rc-web\">web</literal> items to"
 msgstr ""
 "选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal "
 "role=\"rc-web\">web</literal> 条目"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1408
+#: ../en/ch05-collab.xml:1409
 msgid ""
 "It is important to remember that a web server like Apache or "
 "<literal>lighttpd</literal> will run under a user ID that is different to "
@@ -7573,38 +6657,37 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1415
+#: ../en/ch05-collab.xml:1416
 msgid ""
 "If you add <literal role=\"rc-web\">web</literal> items to your own personal "
-"<filename role=\"special\"> /.hgrc</filename>\\ file, CGI scripts won't read "
-"that <filename role=\"special\"> /.hgrc</filename>\\ file.  Those settings "
-"will thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</"
+"<filename role=\"special\">~/.hgrc</filename> file, CGI scripts won't read "
+"that <filename role=\"special\">~/.hgrc</filename> file.  Those settings will "
+"thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</"
 "command> command when you run it.  To cause CGI scripts to see your settings, "
-"either create a <filename role=\"special\"> /.hgrc</filename>\\ file in the "
+"either create a <filename role=\"special\">~/.hgrc</filename> file in the "
 "home directory of the user ID that runs your web server, or add those "
-"settings to a system-wide <filename role=\"special\"> /.hgrc</filename>\\ "
-"file."
+"settings to a system-wide <filename role=\"special\">~/.hgrc</filename> file."
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch07-filenames.xml:5
+#: ../en/ch06-filenames.xml:5
 msgid "File names and pattern matching"
 msgstr "文件名称与模式匹配"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch07-filenames.xml:7
+#: ../en/ch06-filenames.xml:7
 msgid ""
 "Mercurial provides mechanisms that let you work with file names in a "
 "consistent and expressive way."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:11
+#: ../en/ch06-filenames.xml:11
 msgid "Simple file naming"
 msgstr "简单文件名称"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:13
+#: ../en/ch06-filenames.xml:13
 msgid ""
 "Mercurial uses a unified piece of machinery <quote>under the hood</quote> to "
 "handle file names.  Every command behaves uniformly with respect to file "
@@ -7612,7 +6695,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:18
+#: ../en/ch06-filenames.xml:18
 msgid ""
 "If you explicitly name real files on the command line, Mercurial works with "
 "exactly those files, as you would expect.  &interaction.filenames.files;"
@@ -7620,7 +6703,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:22
+#: ../en/ch06-filenames.xml:22
 msgid ""
 "When you provide a directory name, Mercurial will interpret this as "
 "<quote>operate on every file in this directory and its subdirectories</"
@@ -7630,12 +6713,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:33
+#: ../en/ch06-filenames.xml:33
 msgid "Running commands without any file names"
 msgstr "不提供文件名称的执行命令"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:35
+#: ../en/ch06-filenames.xml:35
 msgid ""
 "Mercurial's commands that work with file names have useful default behaviours "
 "when you invoke them without providing any file names or patterns.  What kind "
@@ -7645,14 +6728,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:42
+#: ../en/ch06-filenames.xml:42
 msgid ""
 "Most commands will operate on the entire working directory. This is what the "
 "<command role=\"hg-cmd\">hg add</command> command does, for example."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:46
+#: ../en/ch06-filenames.xml:46
 msgid ""
 "If the command has effects that are difficult or impossible to reverse, it "
 "will force you to explicitly provide at least one name or pattern (see "
@@ -7662,7 +6745,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:54
+#: ../en/ch06-filenames.xml:54
 msgid ""
 "It's easy to work around these default behaviours if they don't suit you.  If "
 "a command normally operates on the whole working directory, you can invoke it "
@@ -7672,7 +6755,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:62
+#: ../en/ch06-filenames.xml:62
 msgid ""
 "Along the same lines, some commands normally print file names relative to the "
 "root of the repository, even if you're invoking them from a subdirectory.  "
@@ -7685,12 +6768,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:76
+#: ../en/ch06-filenames.xml:76
 msgid "Telling you what's going on"
 msgstr "告诉你正在做什么"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:78
+#: ../en/ch06-filenames.xml:78
 msgid ""
 "The <command role=\"hg-cmd\">hg add</command> example in the preceding "
 "section illustrates something else that's helpful about Mercurial commands.  "
@@ -7700,7 +6783,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:85
+#: ../en/ch06-filenames.xml:85
 msgid ""
 "The principle here is of <emphasis>least surprise</emphasis>.  If you've "
 "exactly named a file on the command line, there's no point in repeating it "
@@ -7710,7 +6793,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:92
+#: ../en/ch06-filenames.xml:92
 msgid ""
 "For commands that behave this way, you can silence them using the <option "
 "role=\"hg-opt-global\">-q</option> option.  You can also get them to print "
@@ -7719,12 +6802,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:100
+#: ../en/ch06-filenames.xml:100
 msgid "Using patterns to identify files"
 msgstr "使用模式标识文件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:102
+#: ../en/ch06-filenames.xml:102
 msgid ""
 "In addition to working with file and directory names, Mercurial lets you use "
 "<emphasis>patterns</emphasis> to identify files.  Mercurial's pattern "
@@ -7732,7 +6815,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:106
+#: ../en/ch06-filenames.xml:106
 msgid ""
 "On Unix-like systems (Linux, MacOS, etc.), the job of matching file names to "
 "patterns normally falls to the shell.  On these systems, you must explicitly "
@@ -7742,21 +6825,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:113
+#: ../en/ch06-filenames.xml:113
 msgid ""
 "To provide a pattern in place of a regular name on the command line, the "
 "mechanism is simple:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:116
+#: ../en/ch06-filenames.xml:116
 msgid ""
 "That is, a pattern is identified by a short text string that says what kind "
 "of pattern this is, followed by a colon, followed by the actual pattern."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:120
+#: ../en/ch06-filenames.xml:120
 msgid ""
 "Mercurial supports two kinds of pattern syntax.  The most frequently used is "
 "called <literal>glob</literal>; this is the same kind of pattern matching "
@@ -7765,7 +6848,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:125
+#: ../en/ch06-filenames.xml:125
 msgid ""
 "When Mercurial does automatic pattern matching on Windows, it uses "
 "<literal>glob</literal> syntax.  You can thus omit the <quote><literal>glob:</"
@@ -7773,14 +6856,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:130
+#: ../en/ch06-filenames.xml:130
 msgid ""
 "The <literal>re</literal> syntax is more powerful; it lets you specify "
 "patterns using regular expressions, also known as regexps."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:134
+#: ../en/ch06-filenames.xml:134
 msgid ""
 "By the way, in the examples that follow, notice that I'm careful to wrap all "
 "of my patterns in quote characters, so that they won't get expanded by the "
@@ -7788,12 +6871,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch07-filenames.xml:140
+#: ../en/ch06-filenames.xml:140
 msgid "Shell-style <literal>glob</literal> patterns"
 msgstr "外壳风格的 <literal>glob</literal>  模式"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:142
+#: ../en/ch06-filenames.xml:142
 msgid ""
 "This is an overview of the kinds of patterns you can use when you're matching "
 "on glob patterns."
@@ -7801,7 +6884,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:145
+#: ../en/ch06-filenames.xml:145
 msgid ""
 "The <quote><literal>*</literal></quote> character matches any string, within "
 "a single directory."
@@ -7809,7 +6892,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:150
+#: ../en/ch06-filenames.xml:150
 msgid ""
 "The <quote><literal>**</literal></quote> pattern matches any string, and "
 "crosses directory boundaries.  It's not a standard Unix glob token, but it's "
@@ -7818,13 +6901,13 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:157
+#: ../en/ch06-filenames.xml:157
 msgid ""
 "The <quote><literal>?</literal></quote> pattern matches any single character."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:162
+#: ../en/ch06-filenames.xml:162
 msgid ""
 "The <quote><literal>[</literal></quote> character begins a "
 "<emphasis>character class</emphasis>.  This matches any single character "
@@ -7835,7 +6918,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:172
+#: ../en/ch06-filenames.xml:172
 msgid ""
 "If the first character after the <quote><literal>[</literal></quote> in a "
 "character class is a <quote><literal>!</literal></quote>, it "
@@ -7844,7 +6927,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:178
+#: ../en/ch06-filenames.xml:178
 msgid ""
 "A <quote><literal>{</literal></quote> begins a group of subpatterns, where "
 "the whole group matches if any subpattern in the group matches.  The "
@@ -7853,13 +6936,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch07-filenames.xml:187
+#: ../en/ch06-filenames.xml:187
 msgid "Watch out!"
 msgstr "千万小心!"
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch07-filenames.xml:189
+#: ../en/ch06-filenames.xml:189
 msgid ""
 "Don't forget that if you want to match a pattern in any directory, you should "
 "not be using the <quote><literal>*</literal></quote> match-any token, as this "
@@ -7869,12 +6952,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch07-filenames.xml:201
+#: ../en/ch06-filenames.xml:201
 msgid "Regular expression matching with <literal>re</literal> patterns"
 msgstr "使用 <literal>re</literal> 模式的正则表达式匹配"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:204
+#: ../en/ch06-filenames.xml:204
 msgid ""
 "Mercurial accepts the same regular expression syntax as the Python "
 "programming language (it uses Python's regexp engine internally). This is "
@@ -7883,7 +6966,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:210
+#: ../en/ch06-filenames.xml:210
 msgid ""
 "I won't discuss Mercurial's regexp dialect in any detail here, as regexps are "
 "not often used.  Perl-style regexps are in any case already exhaustively "
@@ -7893,7 +6976,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:217
+#: ../en/ch06-filenames.xml:217
 msgid ""
 "A regexp is matched against an entire file name, relative to the root of the "
 "repository.  In other words, even if you're already in subbdirectory "
@@ -7903,7 +6986,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:224
+#: ../en/ch06-filenames.xml:224
 msgid ""
 "One thing to note, if you're familiar with Perl-style regexps, is that "
 "Mercurial's are <emphasis>rooted</emphasis>.  That is, a regexp starts "
@@ -7913,12 +6996,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:234
+#: ../en/ch06-filenames.xml:234
 msgid "Filtering files"
 msgstr "过滤文件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:236
+#: ../en/ch06-filenames.xml:236
 msgid ""
 "Not only does Mercurial give you a variety of ways to specify files; it lets "
 "you further winnow those files using <emphasis>filters</emphasis>.  Commands "
@@ -7926,7 +7009,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:241
+#: ../en/ch06-filenames.xml:241
 msgid ""
 "<option role=\"hg-opt-global\">-I</option>, or <option role=\"hg-opt-global"
 "\">--include</option>, lets you specify a pattern that file names must match "
@@ -7934,7 +7017,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:246
+#: ../en/ch06-filenames.xml:246
 msgid ""
 "<option role=\"hg-opt-global\">-X</option>, or <option role=\"hg-opt-global"
 "\">--exclude</option>, gives you a way to <emphasis>avoid</emphasis> "
@@ -7942,7 +7025,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:251
+#: ../en/ch06-filenames.xml:251
 msgid ""
 "You can provide multiple <option role=\"hg-opt-global\">-I</option> and "
 "<option role=\"hg-opt-global\">-X</option> options on the command line, and "
@@ -7951,36 +7034,36 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:258
+#: ../en/ch06-filenames.xml:258
 msgid ""
 "You can read a <option role=\"hg-opt-global\">-I</option> filter as "
 "<quote>process only the files that match this filter</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:264
+#: ../en/ch06-filenames.xml:264
 msgid ""
 "The <option role=\"hg-opt-global\">-X</option> filter is best read as "
 "<quote>process only the files that don't match this pattern</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:272
+#: ../en/ch06-filenames.xml:272
 msgid "Ignoring unwanted files and directories"
 msgstr "忽略不需要的文件和目录"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:274
+#: ../en/ch06-filenames.xml:274
 msgid "XXX."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch07-filenames.xml:278
+#: ../en/ch06-filenames.xml:278
 msgid "Case sensitivity"
 msgstr "大小写敏感性"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:280
+#: ../en/ch06-filenames.xml:280
 msgid ""
 "If you're working in a mixed development environment that contains both Linux "
 "(or other Unix) systems and Macs or Windows systems, you should keep in the "
@@ -7991,7 +7074,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:289
+#: ../en/ch06-filenames.xml:289
 msgid ""
 "Operating systems and filesystems differ in the way they handle the "
 "<emphasis>case</emphasis> of characters in file and directory names.  There "
@@ -7999,7 +7082,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:294
+#: ../en/ch06-filenames.xml:294
 msgid ""
 "Completely case insensitive.  Uppercase and lowercase versions of a letter "
 "are treated as identical, both when creating a file and during subsequent "
@@ -8007,7 +7090,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:299
+#: ../en/ch06-filenames.xml:299
 msgid ""
 "Case preserving, but insensitive.  When a file or directory is created, the "
 "case of its name is stored, and can be retrieved and displayed by the "
@@ -8019,7 +7102,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch07-filenames.xml:310
+#: ../en/ch06-filenames.xml:310
 msgid ""
 "Case sensitive.  The case of a name is significant at all times. The names "
 "<filename>foo</filename> and {FoO} identify different files.  This is the way "
@@ -8027,7 +7110,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch07-filenames.xml:316
+#: ../en/ch06-filenames.xml:316
 msgid ""
 "On Unix-like systems, it is possible to have any or all of the above ways of "
 "handling case in action at once.  For example, if you use a USB thumb drive "
@@ -8036,12 +7119,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch07-filenames.xml:323
+#: ../en/ch06-filenames.xml:323
 msgid "Safe, portable repository storage"
 msgstr "安全,可移植的版本库存储"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:325
+#: ../en/ch06-filenames.xml:325
 msgid ""
 "Mercurial's repository storage mechanism is <emphasis>case safe</emphasis>.  "
 "It translates file names so that they can be safely stored on both case "
@@ -8052,12 +7135,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch07-filenames.xml:336
+#: ../en/ch06-filenames.xml:336
 msgid "Detecting case conflicts"
 msgstr "检测大小写冲突"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:338
+#: ../en/ch06-filenames.xml:338
 msgid ""
 "When operating in the working directory, Mercurial honours the naming policy "
 "of the filesystem where the working directory is located.  If the filesystem "
@@ -8066,7 +7149,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:344
+#: ../en/ch06-filenames.xml:344
 msgid ""
 "An important aspect of this approach is that it is possible to commit a "
 "changeset on a case sensitive (typically Linux or Unix) filesystem that will "
@@ -8079,7 +7162,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:355
+#: ../en/ch06-filenames.xml:355
 msgid ""
 "If a Windows or Mac user pulls this change, they will not initially have a "
 "problem, because Mercurial's repository storage mechanism is case safe.  "
@@ -8091,12 +7174,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch07-filenames.xml:367
+#: ../en/ch06-filenames.xml:367
 msgid "Fixing a case conflict"
 msgstr "修正大小写冲突"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:369
+#: ../en/ch06-filenames.xml:369
 msgid ""
 "If you are using Windows or a Mac in a mixed environment where some of your "
 "collaborators are using Linux or Unix, and Mercurial reports a case folding "
@@ -8106,7 +7189,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:376
+#: ../en/ch06-filenames.xml:376
 msgid ""
 "Just find a nearby Linux or Unix box, clone the problem repository onto it, "
 "and use Mercurial's <command role=\"hg-cmd\">hg rename</command> command to "
@@ -8118,7 +7201,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch07-filenames.xml:386
+#: ../en/ch06-filenames.xml:386
 msgid ""
 "The changeset with case-conflicting names will remain in your project's "
 "history, and you still won't be able to <command role=\"hg-cmd\">hg update</"
@@ -8127,7 +7210,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch07-filenames.xml:393
+#: ../en/ch06-filenames.xml:393
 msgid ""
 "Prior to version 0.9.3, Mercurial did not use a case safe repository storage "
 "mechanism, and did not detect case folding conflicts.  If you are using an "
@@ -8136,12 +7219,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch08-branch.xml:5
+#: ../en/ch07-branch.xml:5
 msgid "Managing releases and branchy development"
 msgstr "发布管理与分支开发"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch08-branch.xml:7
+#: ../en/ch07-branch.xml:7
 msgid ""
 "Mercurial provides several mechanisms for you to manage a project that is "
 "making progress on multiple fronts at once.  To understand these mechanisms, "
@@ -8149,7 +7232,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch08-branch.xml:12
+#: ../en/ch07-branch.xml:12
 msgid ""
 "Many software projects issue periodic <quote>major</quote> releases that "
 "contain substantial new features.  In parallel, they may issue <quote>minor</"
@@ -8158,7 +7241,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch08-branch.xml:18
+#: ../en/ch07-branch.xml:18
 msgid ""
 "In this chapter, we'll start by talking about how to keep records of project "
 "milestones such as releases.  We'll then continue on to talk about the flow "
@@ -8167,12 +7250,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:25
+#: ../en/ch07-branch.xml:25
 msgid "Giving a persistent name to a revision"
 msgstr "给版本指定一个永久的名称"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:27
+#: ../en/ch07-branch.xml:27
 msgid ""
 "Once you decide that you'd like to call a particular revision a "
 "<quote>release</quote>, it's a good idea to record the identity of that "
@@ -8183,7 +7266,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:34
+#: ../en/ch07-branch.xml:34
 msgid ""
 "Mercurial lets you give a permanent name to any revision using the <command "
 "role=\"hg-cmd\">hg tag</command> command.  Not surprisingly, these names are "
@@ -8191,7 +7274,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:40
+#: ../en/ch07-branch.xml:40
 msgid ""
 "A tag is nothing more than a <quote>symbolic name</quote> for a revision.  "
 "Tags exist purely for your convenience, so that you have a handy permanent "
@@ -8202,22 +7285,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch08-branch.xml:49
+#: ../en/ch07-branch.xml:49
 msgid "Colon (ASCII 58, <quote><literal>:</literal></quote>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch08-branch.xml:52
+#: ../en/ch07-branch.xml:52
 msgid "Carriage return (ASCII 13, <quote><literal>\\r</literal></quote>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch08-branch.xml:55
+#: ../en/ch07-branch.xml:55
 msgid "Newline (ASCII 10, <quote><literal>\\n</literal></quote>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:59
+#: ../en/ch07-branch.xml:59
 msgid ""
 "You can use the <command role=\"hg-cmd\">hg tags</command> command to display "
 "the tags present in your repository.  In the output, each tagged revision is "
@@ -8226,7 +7309,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:67
+#: ../en/ch07-branch.xml:67
 msgid ""
 "Notice that <literal>tip</literal> is listed in the output of <command role="
 "\"hg-cmd\">hg tags</command>.  The <literal>tip</literal> tag is a special "
@@ -8235,7 +7318,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:73
+#: ../en/ch07-branch.xml:73
 msgid ""
 "In the output of the <command role=\"hg-cmd\">hg tags</command> command, tags "
 "are listed in reverse order, by revision number.  This usually means that "
@@ -8245,7 +7328,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:80
+#: ../en/ch07-branch.xml:80
 msgid ""
 "When you run <command role=\"hg-cmd\">hg log</command>, if it displays a "
 "revision that has tags associated with it, it will print those tags."
@@ -8253,7 +7336,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:86
+#: ../en/ch07-branch.xml:86
 msgid ""
 "Any time you need to provide a revision ID to a Mercurial command, the "
 "command will accept a tag name in its place.  Internally, Mercurial will "
@@ -8261,7 +7344,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:93
+#: ../en/ch07-branch.xml:93
 msgid ""
 "There's no limit on the number of tags you can have in a repository, or on "
 "the number of tags that a single revision can have.  As a practical matter, "
@@ -8272,7 +7355,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:101
+#: ../en/ch07-branch.xml:101
 msgid ""
 "For example, if your project has milestones as frequent as every few days, "
 "it's perfectly reasonable to tag each one of those.  But if you have a "
@@ -8283,14 +7366,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:109
+#: ../en/ch07-branch.xml:109
 msgid ""
 "If you want to remove a tag that you no longer want, use <command role=\"hg-"
 "cmd\">hg tag --remove</command>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:114
+#: ../en/ch07-branch.xml:114
 msgid ""
 "You can also modify a tag at any time, so that it identifies a different "
 "revision, by simply issuing a new <command role=\"hg-cmd\">hg tag</command> "
@@ -8300,7 +7383,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:123
+#: ../en/ch07-branch.xml:123
 msgid ""
 "There will still be a permanent record of the previous identity of the tag, "
 "but Mercurial will no longer use it.  There's thus no penalty to tagging the "
@@ -8310,7 +7393,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:129
+#: ../en/ch07-branch.xml:129
 msgid ""
 "Mercurial stores tags in a normal revision-controlled file in your "
 "repository.  If you've created any tags, you'll find them in a file named "
@@ -8322,12 +7405,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch08-branch.xml:142
+#: ../en/ch07-branch.xml:142
 msgid "Handling tag conflicts during a merge"
 msgstr "在合并期间处理标签冲突"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:144
+#: ../en/ch07-branch.xml:144
 msgid ""
 "You won't often need to care about the <filename role=\"special\">.hgtags</"
 "filename> file, but it sometimes makes its presence known during a merge.  "
@@ -8337,7 +7420,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:151
+#: ../en/ch07-branch.xml:151
 msgid ""
 "If you're resolving a conflict in the <filename role=\"special\">.hgtags</"
 "filename> file during a merge, there's one twist to modifying the <filename "
@@ -8348,7 +7431,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:161
+#: ../en/ch07-branch.xml:161
 msgid ""
 "An unfortunate consequence of this design is that you can't actually verify "
 "that your merged <filename role=\"special\">.hgtags</filename> file is "
@@ -8362,12 +7445,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch08-branch.xml:176
+#: ../en/ch07-branch.xml:176
 msgid "Tags and cloning"
 msgstr "标签与克隆"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:178
+#: ../en/ch07-branch.xml:178
 msgid ""
 "You may have noticed that the <command role=\"hg-cmd\">hg clone</command> "
 "command has a <option role=\"hg-opt-clone\">-r</option> option that lets you "
@@ -8377,7 +7460,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:186
+#: ../en/ch07-branch.xml:186
 msgid ""
 "Recall that a tag is stored as a revision to the <filename role=\"special\">."
 "hgtags</filename> file, so that when you create a tag, the changeset in which "
@@ -8391,12 +7474,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch08-branch.xml:201
+#: ../en/ch07-branch.xml:201
 msgid "When permanent tags are too much"
 msgstr "当永久标签太多的时候"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:203
+#: ../en/ch07-branch.xml:203
 msgid ""
 "Since Mercurial's tags are revision controlled and carried around with a "
 "project's history, everyone you work with will see the tags you create.  But "
@@ -8407,7 +7490,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch08-branch.xml:213
+#: ../en/ch07-branch.xml:213
 msgid ""
 "For cases like this, what you might want to use are <emphasis>local</"
 "emphasis> tags. You can create a local tag with the <option role=\"hg-opt-tag"
@@ -8421,12 +7504,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:228
+#: ../en/ch07-branch.xml:228
 msgid "The flow of changes&emdash;big picture vs. little"
 msgstr "修改流程&emdash;宏观与微观"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:230
+#: ../en/ch07-branch.xml:230
 msgid ""
 "To return to the outline I sketched at the beginning of a chapter, let's "
 "think about a project that has multiple concurrent pieces of work under "
@@ -8434,7 +7517,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:234
+#: ../en/ch07-branch.xml:234
 msgid ""
 "There might be a push for a new <quote>main</quote> release; a new minor "
 "bugfix release to the last main release; and an unexpected <quote>hot fix</"
@@ -8442,7 +7525,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:239
+#: ../en/ch07-branch.xml:239
 msgid ""
 "The usual way people refer to these different concurrent directions of "
 "development is as <quote>branches</quote>.  However, we've already seen "
@@ -8452,14 +7535,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch08-branch.xml:246
+#: ../en/ch07-branch.xml:246
 msgid ""
 "<quote>Big picture</quote> branches represent the sweep of a project's "
 "evolution; people give them names, and talk about them in conversation."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch08-branch.xml:250
+#: ../en/ch07-branch.xml:250
 msgid ""
 "<quote>Little picture</quote> branches are artefacts of the day-to-day "
 "activity of developing and merging changes.  They expose the narrative of how "
@@ -8467,12 +7550,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:258
+#: ../en/ch07-branch.xml:258
 msgid "Managing big-picture branches in repositories"
 msgstr "在版本库中管理分支"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:260
+#: ../en/ch07-branch.xml:260
 msgid ""
 "The easiest way to isolate a <quote>big picture</quote> branch in Mercurial "
 "is in a dedicated repository.  If you have an existing shared "
@@ -8483,14 +7566,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:270
+#: ../en/ch07-branch.xml:270
 msgid ""
 "You can then clone a new shared <literal>myproject-1.0.1</literal> repository "
 "as of that tag."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:276
+#: ../en/ch07-branch.xml:276
 msgid ""
 "Afterwards, if someone needs to work on a bug fix that ought to go into an "
 "upcoming 1.0.1 minor release, they clone the <literal>myproject-1.0.1</"
@@ -8498,19 +7581,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:283
+#: ../en/ch07-branch.xml:283
 msgid ""
 "Meanwhile, development for the next major release can continue, isolated and "
 "unabated, in the <literal>myproject</literal> repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:291
+#: ../en/ch07-branch.xml:291
 msgid "Don't repeat yourself: merging across branches"
 msgstr "不要重复劳动:在分支间合并"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:293
+#: ../en/ch07-branch.xml:293
 msgid ""
 "In many cases, if you have a bug to fix on a maintenance branch, the chances "
 "are good that the bug exists on your project's main branch (and possibly "
@@ -8520,26 +7603,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:301
+#: ../en/ch07-branch.xml:301
 msgid ""
 "In the simplest instance, all you need to do is pull changes from your "
 "maintenance branch into your local clone of the target branch."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:307
+#: ../en/ch07-branch.xml:307
 msgid ""
 "You'll then need to merge the heads of the two branches, and push back to the "
 "main branch."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:314
+#: ../en/ch07-branch.xml:314
 msgid "Naming branches within one repository"
 msgstr "版本库中的命名分支"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:316
+#: ../en/ch07-branch.xml:316
 msgid ""
 "In most instances, isolating branches in repositories is the right approach.  "
 "Its simplicity makes it easy to understand; and so it's hard to make "
@@ -8549,7 +7632,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:323
+#: ../en/ch07-branch.xml:323
 msgid ""
 "If you're more in the <quote>power user</quote> category (<emphasis>and</"
 "emphasis> your collaborators are too), there is an alternative way of "
@@ -8562,7 +7645,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:334
+#: ../en/ch07-branch.xml:334
 msgid ""
 "The key to working this way is that Mercurial lets you assign a persistent "
 "<emphasis>name</emphasis> to a branch.  There always exists a branch named "
@@ -8572,7 +7655,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:341
+#: ../en/ch07-branch.xml:341
 msgid ""
 "As an example, when you run the <command role=\"hg-cmd\">hg commit</command> "
 "command, and it pops up your editor so that you can enter a commit message, "
@@ -8582,7 +7665,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:348
+#: ../en/ch07-branch.xml:348
 msgid ""
 "To start working with named branches, use the <command role=\"hg-cmd\">hg "
 "branches</command> command.  This command lists the named branches already "
@@ -8590,14 +7673,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:355
+#: ../en/ch07-branch.xml:355
 msgid ""
 "Since you haven't created any named branches yet, the only one that exists is "
 "<literal>default</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:358
+#: ../en/ch07-branch.xml:358
 msgid ""
 "To find out what the <quote>current</quote> branch is, run the <command role="
 "\"hg-cmd\">hg branch</command> command, giving it no arguments.  This tells "
@@ -8606,7 +7689,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:365
+#: ../en/ch07-branch.xml:365
 msgid ""
 "To create a new branch, run the <command role=\"hg-cmd\">hg branch</command> "
 "command again.  This time, give it one argument: the name of the branch you "
@@ -8614,7 +7697,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:371
+#: ../en/ch07-branch.xml:371
 msgid ""
 "After you've created a branch, you might wonder what effect the <command role="
 "\"hg-cmd\">hg branch</command> command has had.  What do the <command role="
@@ -8623,7 +7706,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:378
+#: ../en/ch07-branch.xml:378
 msgid ""
 "Nothing has changed in the working directory, and there's been no new history "
 "created.  As this suggests, running the <command role=\"hg-cmd\">hg branch</"
@@ -8632,7 +7715,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:385
+#: ../en/ch07-branch.xml:385
 msgid ""
 "When you commit a change, Mercurial records the name of the branch on which "
 "you committed.  Once you've switched from the <literal>default</literal> "
@@ -8643,7 +7726,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:395
+#: ../en/ch07-branch.xml:395
 msgid ""
 "The <command role=\"hg-cmd\">hg log</command>-like commands will print the "
 "branch name of every changeset that's not on the <literal>default</literal> "
@@ -8652,7 +7735,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:400
+#: ../en/ch07-branch.xml:400
 msgid ""
 "Once you've named a branch and committed a change with that name, every "
 "subsequent commit that descends from that change will inherit the same branch "
@@ -8661,19 +7744,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:408
+#: ../en/ch07-branch.xml:408
 msgid ""
 "In practice, this is something you won't do very often, as branch names tend "
 "to have fairly long lifetimes.  (This isn't a rule, just an observation.)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:414
+#: ../en/ch07-branch.xml:414
 msgid "Dealing with multiple named branches in a repository"
 msgstr "在版本库中处理多个命名分支"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:417
+#: ../en/ch07-branch.xml:417
 msgid ""
 "If you have more than one named branch in a repository, Mercurial will "
 "remember the branch that your working directory on when you start a command "
@@ -8686,7 +7769,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:427
+#: ../en/ch07-branch.xml:427
 msgid ""
 "This behaviour is a little subtle, so let's see it in action.  First, let's "
 "remind ourselves what branch we're currently on, and what branches are in our "
@@ -8694,14 +7777,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:433
+#: ../en/ch07-branch.xml:433
 msgid ""
 "We're on the <literal>bar</literal> branch, but there also exists an older "
 "<command role=\"hg-cmd\">hg foo</command> branch."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:437
+#: ../en/ch07-branch.xml:437
 msgid ""
 "We can <command role=\"hg-cmd\">hg update</command> back and forth between "
 "the tips of the <literal>foo</literal> and <literal>bar</literal> branches "
@@ -8712,7 +7795,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:446
+#: ../en/ch07-branch.xml:446
 msgid ""
 "If we go back to the <literal>foo</literal> branch and then run <command role="
 "\"hg-cmd\">hg update</command>, it will keep us on <literal>foo</literal>, "
@@ -8721,19 +7804,19 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:453
+#: ../en/ch07-branch.xml:453
 msgid ""
 "Committing a new change on the <literal>foo</literal> branch introduces a new "
 "head."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:460
+#: ../en/ch07-branch.xml:460
 msgid "Branch names and merging"
 msgstr "分支名称与合并"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:462
+#: ../en/ch07-branch.xml:462
 msgid ""
 "As you've probably noticed, merges in Mercurial are not symmetrical. Let's "
 "say our repository has two heads, 17 and 23.  If I <command role=\"hg-cmd"
@@ -8745,7 +7828,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:472
+#: ../en/ch07-branch.xml:472
 msgid ""
 "This affects Mercurial's choice of branch name when you merge.  After a "
 "merge, Mercurial will retain the branch name of the first parent when you "
@@ -8755,7 +7838,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:479
+#: ../en/ch07-branch.xml:479
 msgid ""
 "It's not unusual for a repository to contain multiple heads, each with the "
 "same branch name.  Let's say I'm working on the <literal>foo</literal> "
@@ -8767,7 +7850,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:487
+#: ../en/ch07-branch.xml:487
 msgid ""
 "But if I'm working on the <literal>bar</literal> branch, and I merge work "
 "from the <literal>foo</literal> branch, the result will remain on the "
@@ -8775,7 +7858,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:493
+#: ../en/ch07-branch.xml:493
 msgid ""
 "To give a more concrete example, if I'm working on the <literal>bleeding-"
 "edge</literal> branch, and I want to bring in the latest fixes from the "
@@ -8785,12 +7868,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch08-branch.xml:502
+#: ../en/ch07-branch.xml:502
 msgid "Branch naming is generally useful"
 msgstr "分支名称通常都很有用"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:504
+#: ../en/ch07-branch.xml:504
 msgid ""
 "You shouldn't think of named branches as applicable only to situations where "
 "you have multiple long-lived branches cohabiting in a single repository.  "
@@ -8798,7 +7881,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:509
+#: ../en/ch07-branch.xml:509
 msgid ""
 "In the simplest case, giving a name to each branch gives you a permanent "
 "record of which branch a changeset originated on.  This gives you more "
@@ -8807,7 +7890,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch08-branch.xml:514
+#: ../en/ch07-branch.xml:514
 msgid ""
 "If you're working with shared repositories, you can set up a <literal role="
 "\"hook\">pretxnchangegroup</literal> hook on each that will block incoming "
@@ -8819,12 +7902,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch09-undo.xml:5
+#: ../en/ch08-undo.xml:5
 msgid "Finding and fixing mistakes"
 msgstr "查找和修改错误"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch09-undo.xml:7
+#: ../en/ch08-undo.xml:7
 msgid ""
 "To err might be human, but to really handle the consequences well takes a top-"
 "notch revision control system.  In this chapter, we'll discuss some of the "
@@ -8834,17 +7917,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:15
+#: ../en/ch08-undo.xml:15
 msgid "Erasing local history"
 msgstr "销毁本地历史"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:18
+#: ../en/ch08-undo.xml:18
 msgid "The accidental commit"
 msgstr "意外的提交"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:20
+#: ../en/ch08-undo.xml:20
 msgid ""
 "I have the occasional but persistent problem of typing rather more quickly "
 "than I can think, which sometimes results in me committing a changeset that "
@@ -8855,12 +7938,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:31
+#: ../en/ch08-undo.xml:31
 msgid "Rolling back a transaction"
 msgstr "回滚一个事务"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:33
+#: ../en/ch08-undo.xml:33
 msgid ""
 "In section <xref linkend=\"sec.concepts.txn\"/>, I mentioned that Mercurial "
 "treats each modification of a repository as a <emphasis>transaction</"
@@ -8873,7 +7956,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:43
+#: ../en/ch08-undo.xml:43
 msgid ""
 "Here's a mistake that I often find myself making: committing a change in "
 "which I've created a new file, but forgotten to <command role=\"hg-cmd\">hg "
@@ -8881,14 +7964,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:50
+#: ../en/ch08-undo.xml:50
 msgid ""
 "Looking at the output of <command role=\"hg-cmd\">hg status</command> after "
 "the commit immediately confirms the error."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:56
+#: ../en/ch08-undo.xml:56
 msgid ""
 "The commit captured the changes to the file <filename>a</filename>, but not "
 "the new file <filename>b</filename>.  If I were to push this changeset to a "
@@ -8899,7 +7982,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:65
+#: ../en/ch08-undo.xml:65
 msgid ""
 "However, luck is with me&emdash;I've caught my error before I pushed the "
 "changeset.  I use the <command role=\"hg-cmd\">hg rollback</command> command, "
@@ -8907,7 +7990,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:72
+#: ../en/ch08-undo.xml:72
 msgid ""
 "Notice that the changeset is no longer present in the repository's history, "
 "and the working directory once again thinks that the file <filename>a</"
@@ -8918,12 +8001,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:85
+#: ../en/ch08-undo.xml:85
 msgid "The erroneous pull"
 msgstr "错误的抓取"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:87
+#: ../en/ch08-undo.xml:87
 msgid ""
 "It's common practice with Mercurial to maintain separate development branches "
 "of a project in different repositories.  Your development team might have one "
@@ -8932,7 +8015,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:94
+#: ../en/ch08-undo.xml:94
 msgid ""
 "Given this, you can imagine that the consequences could be messy if you had a "
 "local <quote>0.9</quote> repository, and accidentally pulled changes from the "
@@ -8945,7 +8028,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:106
+#: ../en/ch08-undo.xml:106
 msgid ""
 "The <command role=\"hg-cmd\">hg rollback</command> command will work nicely "
 "to expunge all of the changesets that you just pulled.  Mercurial groups all "
@@ -8955,12 +8038,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:115
+#: ../en/ch08-undo.xml:115
 msgid "Rolling back is useless once you've pushed"
 msgstr "当完成推送后,回滚是无效的"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:117
+#: ../en/ch08-undo.xml:117
 msgid ""
 "The value of the <command role=\"hg-cmd\">hg rollback</command> command drops "
 "to zero once you've pushed your changes to another repository.  Rolling back "
@@ -8971,7 +8054,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:126
+#: ../en/ch08-undo.xml:126
 msgid ""
 "If you've pushed a change to another repository&emdash;particularly if it's a "
 "shared repository&emdash;it has essentially <quote>escaped into the wild,</"
@@ -8982,7 +8065,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:135
+#: ../en/ch08-undo.xml:135
 msgid ""
 "(If you absolutely know for sure that the change you want to roll back is the "
 "most recent change in the repository that you pushed to, <emphasis>and</"
@@ -8994,12 +8077,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:147
+#: ../en/ch08-undo.xml:147
 msgid "You can only roll back once"
 msgstr "你只能回滚一次"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:149
+#: ../en/ch08-undo.xml:149
 msgid ""
 "Mercurial stores exactly one transaction in its transaction log; that "
 "transaction is the most recent one that occurred in the repository. This "
@@ -9009,19 +8092,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:158
+#: ../en/ch08-undo.xml:158
 msgid ""
 "Once you've rolled back one transaction in a repository, you can't roll back "
 "again in that repository until you perform another commit or pull."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:165
+#: ../en/ch08-undo.xml:165
 msgid "Reverting the mistaken change"
 msgstr "撤销错误的修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:167
+#: ../en/ch08-undo.xml:167
 msgid ""
 "If you make a modification to a file, and decide that you really didn't want "
 "to change the file at all, and you haven't yet committed your changes, the "
@@ -9033,7 +8116,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:176
+#: ../en/ch08-undo.xml:176
 msgid ""
 "Let's illustrate how the <command role=\"hg-cmd\">hg revert</command> command "
 "works with yet another small example.  We'll begin by modifying a file that "
@@ -9041,14 +8124,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:183
+#: ../en/ch08-undo.xml:183
 msgid ""
 "If we don't want that change, we can simply <command role=\"hg-cmd\">hg "
 "revert</command> the file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:189
+#: ../en/ch08-undo.xml:189
 msgid ""
 "The <command role=\"hg-cmd\">hg revert</command> command provides us with an "
 "extra degree of safety by saving our modified file with a <filename>.orig</"
@@ -9056,7 +8139,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:196
+#: ../en/ch08-undo.xml:196
 msgid ""
 "Here is a summary of the cases that the <command role=\"hg-cmd\">hg revert</"
 "command> command can deal with.  We will describe each of these in more "
@@ -9064,26 +8147,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:201
+#: ../en/ch08-undo.xml:201
 msgid "If you modify a file, it will restore the file to its unmodified state."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:204
+#: ../en/ch08-undo.xml:204
 msgid ""
 "If you <command role=\"hg-cmd\">hg add</command> a file, it will undo the "
 "<quote>added</quote> state of the file, but leave the file itself untouched."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:208
+#: ../en/ch08-undo.xml:208
 msgid ""
 "If you delete a file without telling Mercurial, it will restore the file to "
 "its unmodified contents."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:211
+#: ../en/ch08-undo.xml:211
 msgid ""
 "If you use the <command role=\"hg-cmd\">hg remove</command> command to remove "
 "a file, it will undo the <quote>removed</quote> state of the file, and "
@@ -9091,12 +8174,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:218
+#: ../en/ch08-undo.xml:218
 msgid "File management errors"
 msgstr "文件管理错误"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:220
+#: ../en/ch08-undo.xml:220
 msgid ""
 "The <command role=\"hg-cmd\">hg revert</command> command is useful for more "
 "than just modified files.  It lets you reverse the results of all of "
@@ -9106,7 +8189,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:226
+#: ../en/ch08-undo.xml:226
 msgid ""
 "If you <command role=\"hg-cmd\">hg add</command> a file, then decide that in "
 "fact you don't want Mercurial to track it, use <command role=\"hg-cmd\">hg "
@@ -9115,7 +8198,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:234
+#: ../en/ch08-undo.xml:234
 msgid ""
 "Similarly, if you ask Mercurial to <command role=\"hg-cmd\">hg remove</"
 "command> a file, you can use <command role=\"hg-cmd\">hg revert</command> to "
@@ -9127,7 +8210,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:245
+#: ../en/ch08-undo.xml:245
 msgid ""
 "If you revert a <command role=\"hg-cmd\">hg copy</command>, the copied-to "
 "file remains in your working directory afterwards, untracked.  Since a copy "
@@ -9136,12 +8219,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch09-undo.xml:254
+#: ../en/ch08-undo.xml:254
 msgid "A slightly special case: reverting a rename"
 msgstr "一个稍微特别的案例:撤销改名"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:256
+#: ../en/ch08-undo.xml:256
 msgid ""
 "If you <command role=\"hg-cmd\">hg rename</command> a file, there is one "
 "small detail that you should remember.  When you <command role=\"hg-cmd\">hg "
@@ -9150,7 +8233,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:264
+#: ../en/ch08-undo.xml:264
 msgid ""
 "As you can see from the output of <command role=\"hg-cmd\">hg status</"
 "command>, the renamed-to file is no longer identified as added, but the "
@@ -9159,19 +8242,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:273
+#: ../en/ch08-undo.xml:273
 msgid ""
 "So remember, to revert a <command role=\"hg-cmd\">hg rename</command>, you "
 "must provide <emphasis>both</emphasis> the source and destination names."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:278
+#: ../en/ch08-undo.xml:278
 msgid "% TODO: the output doesn't look like it will be removed!"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:281
+#: ../en/ch08-undo.xml:281
 msgid ""
 "(By the way, if you rename a file, then modify the renamed-to file, then "
 "revert both components of the rename, when Mercurial restores the file that "
@@ -9181,19 +8264,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:288
+#: ../en/ch08-undo.xml:288
 msgid ""
 "These fiddly aspects of reverting a rename arguably constitute a small bug in "
 "Mercurial."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:295
+#: ../en/ch08-undo.xml:295
 msgid "Dealing with committed changes"
 msgstr "处理已经提交的修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:297
+#: ../en/ch08-undo.xml:297
 msgid ""
 "Consider a case where you have committed a change $a$, and another change $b$ "
 "on top of it; you then realise that change $a$ was incorrect.  Mercurial lets "
@@ -9202,7 +8285,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:303
+#: ../en/ch08-undo.xml:303
 msgid ""
 "Before you read this section, here's something to keep in mind: the <command "
 "role=\"hg-cmd\">hg backout</command> command undoes changes by "
@@ -9213,12 +8296,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:312
+#: ../en/ch08-undo.xml:312
 msgid "Backing out a changeset"
 msgstr "恢复一个修改集"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:314
+#: ../en/ch08-undo.xml:314
 msgid ""
 "The <command role=\"hg-cmd\">hg backout</command> command lets you "
 "<quote>undo</quote> the effects of an entire changeset in an automated "
@@ -9230,7 +8313,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:323
+#: ../en/ch08-undo.xml:323
 msgid ""
 "The operation of the <command role=\"hg-cmd\">hg backout</command> command is "
 "a little intricate, so let's illustrate it with some examples.  First, we'll "
@@ -9238,7 +8321,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:330
+#: ../en/ch08-undo.xml:330
 msgid ""
 "The <command role=\"hg-cmd\">hg backout</command> command takes a single "
 "changeset ID as its argument; this is the changeset to back out.  Normally, "
@@ -9249,17 +8332,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:341
+#: ../en/ch08-undo.xml:341
 msgid "Backing out the tip changeset"
 msgstr "恢复顶点修改集"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:343
+#: ../en/ch08-undo.xml:343
 msgid "We're going to start by backing out the last changeset we committed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:348
+#: ../en/ch08-undo.xml:348
 msgid ""
 "You can see that the second line from <filename>myfile</filename> is no "
 "longer present.  Taking a look at the output of <command role=\"hg-cmd\">hg "
@@ -9273,25 +8356,25 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:364
+#: ../en/ch08-undo.xml:364
 msgid ""
 "<imageobject><imagedata fileref=\"images/undo-simple.png\"/> </imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch09-undo.xml:367 ../en/ch09-undo.xml:486
+#: ../en/ch08-undo.xml:367 ../en/ch08-undo.xml:486
 msgid ""
 "Backing out a change using the <command role=\"hg-cmd\">hg backout</command> "
 "command"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:376
+#: ../en/ch08-undo.xml:376
 msgid "Backing out a non-tip change"
 msgstr "恢复非顶点的修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:378
+#: ../en/ch08-undo.xml:378
 msgid ""
 "If you want to back out a change other than the last one you committed, pass "
 "the <option role=\"hg-opt-backout\">--merge</option> option to the <command "
@@ -9299,14 +8382,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:385
+#: ../en/ch08-undo.xml:385
 msgid ""
 "This makes backing out any changeset a <quote>one-shot</quote> operation "
 "that's usually simple and fast."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:391
+#: ../en/ch08-undo.xml:391
 msgid ""
 "If you take a look at the contents of <filename>myfile</filename> after the "
 "backout finishes, you'll see that the first and third changes are present, "
@@ -9314,7 +8397,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:398
+#: ../en/ch08-undo.xml:398
 msgid ""
 "As the graphical history in figure <xref endterm=\"fig.undo.backout-non-tip."
 "caption\" linkend=\"fig.undo.backout-non-tip\"/> illustrates, Mercurial "
@@ -9327,27 +8410,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:410
+#: ../en/ch08-undo.xml:410
 msgid ""
 "% TODO: to me it looks like mercurial doesn't commit the second merge "
 "automatically!"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:415
+#: ../en/ch08-undo.xml:415
 msgid ""
 "<imageobject><imagedata fileref=\"images/undo-non-tip.png\"/> </imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch09-undo.xml:418
+#: ../en/ch08-undo.xml:418
 msgid ""
 "Automated backout of a non-tip change using the <command role=\"hg-cmd\">hg "
 "backout</command> command"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:424
+#: ../en/ch08-undo.xml:424
 msgid ""
 "The result is that you end up <quote>back where you were</quote>, only with "
 "some extra history that undoes the effect of the changeset you wanted to back "
@@ -9355,12 +8438,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch09-undo.xml:429
+#: ../en/ch08-undo.xml:429
 msgid "Always use the <option role=\"hg-opt-backout\">--merge</option> option"
 msgstr "始终使用选项 <option role=\"hg-opt-backout\">--merge</option>"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch09-undo.xml:432
+#: ../en/ch08-undo.xml:432
 msgid ""
 "In fact, since the <option role=\"hg-opt-backout\">--merge</option> option "
 "will do the <quote>right thing</quote> whether or not the changeset you're "
@@ -9370,12 +8453,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:443
+#: ../en/ch08-undo.xml:443
 msgid "Gaining more control of the backout process"
 msgstr "在恢复处理中获得更多控制"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:445
+#: ../en/ch08-undo.xml:445
 msgid ""
 "While I've recommended that you always use the <option role=\"hg-opt-backout"
 "\">--merge</option> option when backing out a change, the <command role=\"hg-"
@@ -9388,14 +8471,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:458
+#: ../en/ch08-undo.xml:458
 msgid ""
 "As with our earlier example, We'll commit a third changeset, then back out "
 "its parent, and see what happens."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:464
+#: ../en/ch08-undo.xml:464
 msgid ""
 "Our new changeset is again a descendant of the changeset we backout out; it's "
 "thus a new head, <emphasis>not</emphasis> a descendant of the changeset that "
@@ -9404,7 +8487,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:472
+#: ../en/ch08-undo.xml:472
 msgid ""
 "Again, it's easier to see what has happened by looking at a graph of the "
 "revision history, in figure <xref endterm=\"fig.undo.backout-manual.caption\" "
@@ -9415,13 +8498,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:483
+#: ../en/ch08-undo.xml:483
 msgid ""
 "<imageobject><imagedata fileref=\"images/undo-manual.png\"/> </imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:492
+#: ../en/ch08-undo.xml:492
 msgid ""
 "After the <command role=\"hg-cmd\">hg backout</command> command has "
 "completed, it leaves the new <quote>backout</quote> changeset as the parent "
@@ -9429,12 +8512,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:499
+#: ../en/ch08-undo.xml:499
 msgid "Now we have two isolated sets of changes."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:503
+#: ../en/ch08-undo.xml:503
 msgid ""
 "Let's think about what we expect to see as the contents of <filename>myfile</"
 "filename> now.  The first change should be present, because we've never "
@@ -9445,14 +8528,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:513
+#: ../en/ch08-undo.xml:513
 msgid ""
 "To get the third change back into the file, we just do a normal merge of our "
 "two heads."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:518
+#: ../en/ch08-undo.xml:518
 msgid ""
 "Afterwards, the graphical history of our repository looks like figure <xref "
 "endterm=\"fig.undo.backout-manual-merge.caption\" linkend=\"fig.undo.backout-"
@@ -9460,45 +8543,45 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:525
+#: ../en/ch08-undo.xml:525
 msgid ""
 "<imageobject><imagedata fileref=\"images/undo-manual-merge.png\"/> </"
 "imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch09-undo.xml:528
+#: ../en/ch08-undo.xml:528
 msgid "Manually merging a backout change"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:535
+#: ../en/ch08-undo.xml:535
 msgid "Why <command role=\"hg-cmd\">hg backout</command> works as it does"
 msgstr "<command role=\"hg-cmd\">hg backout</command> 的内幕"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:538
+#: ../en/ch08-undo.xml:538
 msgid ""
 "Here's a brief description of how the <command role=\"hg-cmd\">hg backout</"
 "command> command works."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:541
+#: ../en/ch08-undo.xml:541
 msgid ""
 "It ensures that the working directory is <quote>clean</quote>, i.e. that the "
 "output of <command role=\"hg-cmd\">hg status</command> would be empty."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:545
+#: ../en/ch08-undo.xml:545
 msgid ""
 "It remembers the current parent of the working directory.  Let's call this "
 "changeset <literal>orig</literal>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:549
+#: ../en/ch08-undo.xml:549
 msgid ""
 "It does the equivalent of a <command role=\"hg-cmd\">hg update</command> to "
 "sync the working directory to the changeset you want to back out.  Let's call "
@@ -9506,14 +8589,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:554
+#: ../en/ch08-undo.xml:554
 msgid ""
 "It finds the parent of that changeset.  Let's call that changeset "
 "<literal>parent</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:557
+#: ../en/ch08-undo.xml:557
 msgid ""
 "For each file that the <literal>backout</literal> changeset affected, it does "
 "the equivalent of a <command role=\"hg-cmd\">hg revert -r parent</command> on "
@@ -9522,14 +8605,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:564
+#: ../en/ch08-undo.xml:564
 msgid ""
 "It commits the result as a new changeset.  This changeset has "
 "<literal>backout</literal> as its parent."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:568
+#: ../en/ch08-undo.xml:568
 msgid ""
 "If you specify <option role=\"hg-opt-backout\">--merge</option> on the "
 "command line, it merges with <literal>orig</literal>, and commits the result "
@@ -9537,7 +8620,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:574
+#: ../en/ch08-undo.xml:574
 msgid ""
 "An alternative way to implement the <command role=\"hg-cmd\">hg backout</"
 "command> command would be to <command role=\"hg-cmd\">hg export</command> the "
@@ -9548,7 +8631,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:584
+#: ../en/ch08-undo.xml:584
 msgid ""
 "The reason that <command role=\"hg-cmd\">hg backout</command> does an update, "
 "a commit, a merge, and another commit is to give the merge machinery the best "
@@ -9557,7 +8640,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:591
+#: ../en/ch08-undo.xml:591
 msgid ""
 "If you're backing out a changeset that's 100 revisions back in your project's "
 "history, the chances that the <command>patch</command> command will be able "
@@ -9572,12 +8655,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:608
+#: ../en/ch08-undo.xml:608
 msgid "Changes that should never have been"
 msgstr "不该发生的修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:610
+#: ../en/ch08-undo.xml:610
 msgid ""
 "Most of the time, the <command role=\"hg-cmd\">hg backout</command> command "
 "is exactly what you need if you want to undo the effects of a change.  It "
@@ -9586,7 +8669,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:616
+#: ../en/ch08-undo.xml:616
 msgid ""
 "On rare occasions, though, you may find that you've committed a change that "
 "really should not be present in the repository at all.  For example, it would "
@@ -9598,7 +8681,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:625
+#: ../en/ch08-undo.xml:625
 msgid ""
 "Before I discuss the options that you have if you commit a <quote>brown paper "
 "bag</quote> change (the kind that's so bad that you want to pull a brown "
@@ -9607,7 +8690,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:630
+#: ../en/ch08-undo.xml:630
 msgid ""
 "Since Mercurial treats history as accumulative&emdash;every change builds on "
 "top of all changes that preceded it&emdash;you generally can't just make "
@@ -9619,7 +8702,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:639
+#: ../en/ch08-undo.xml:639
 msgid ""
 "After you've pushed a bad change to another repository, you <emphasis>could</"
 "emphasis> still use <command role=\"hg-cmd\">hg rollback</command> to make "
@@ -9629,7 +8712,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:647
+#: ../en/ch08-undo.xml:647
 msgid ""
 "If a situation like this arises, and you know which repositories your bad "
 "change has propagated into, you can <emphasis>try</emphasis> to get rid of "
@@ -9640,7 +8723,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:655
+#: ../en/ch08-undo.xml:655
 msgid ""
 "If you've committed one or more changes <emphasis>after</emphasis> the change "
 "that you'd like to see disappear, your options are further reduced. Mercurial "
@@ -9649,7 +8732,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:661
+#: ../en/ch08-undo.xml:661
 msgid ""
 "XXX This needs filling out.  The <literal>hg-replay</literal> script in the "
 "<literal>examples</literal> directory works, but doesn't handle merge "
@@ -9657,12 +8740,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:667
+#: ../en/ch08-undo.xml:667
 msgid "Protect yourself from <quote>escaped</quote> changes"
 msgstr "使用<quote>校验</quote>修改来保护你自己"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:670
+#: ../en/ch08-undo.xml:670
 msgid ""
 "If you've committed some changes to your local repository and they've been "
 "pushed or pulled somewhere else, this isn't necessarily a disaster.  You can "
@@ -9672,7 +8755,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:677
+#: ../en/ch08-undo.xml:677
 msgid ""
 "By configuring some hooks on that repository to validate incoming changesets "
 "(see chapter <xref linkend=\"chap.hook\"/>), you can automatically prevent "
@@ -9684,7 +8767,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:687
+#: ../en/ch08-undo.xml:687
 msgid ""
 "For instance, an incoming change hook that verifies that a changeset will "
 "actually compile can prevent people from inadvertantly <quote>breaking the "
@@ -9692,12 +8775,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:694
+#: ../en/ch08-undo.xml:694
 msgid "Finding the source of a bug"
 msgstr "查找问题的根源"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:696
+#: ../en/ch08-undo.xml:696
 msgid ""
 "While it's all very well to be able to back out a changeset that introduced a "
 "bug, this requires that you know which changeset to back out.  Mercurial "
@@ -9707,7 +8790,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:703
+#: ../en/ch08-undo.xml:703
 msgid ""
 "The idea behind the <command role=\"hg-cmd\">hg bisect</command> command is "
 "that a changeset has introduced some change of behaviour that you can "
@@ -9719,14 +8802,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:712
+#: ../en/ch08-undo.xml:712
 msgid ""
 "Here are a few scenarios to help you understand how you might apply this "
 "command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:715
+#: ../en/ch08-undo.xml:715
 msgid ""
 "The most recent version of your software has a bug that you remember wasn't "
 "present a few weeks ago, but you don't know when it was introduced.  Here, "
@@ -9734,7 +8817,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:720
+#: ../en/ch08-undo.xml:720
 msgid ""
 "You fixed a bug in a rush, and now it's time to close the entry in your "
 "team's bug database.  The bug database requires a changeset ID when you close "
@@ -9743,7 +8826,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:727
+#: ../en/ch08-undo.xml:727
 msgid ""
 "Your software works correctly, but runs 15% slower than the last time you "
 "measured it.  You want to know which changeset introduced the performance "
@@ -9752,14 +8835,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:734
+#: ../en/ch08-undo.xml:734
 msgid ""
 "The sizes of the components of your project that you ship exploded recently, "
 "and you suspect that something changed in the way you build your project."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:739
+#: ../en/ch08-undo.xml:739
 msgid ""
 "From these examples, it should be clear that the <command role=\"hg-cmd\">hg "
 "bisect</command> command is not useful only for finding the sources of bugs.  "
@@ -9769,7 +8852,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:746
+#: ../en/ch08-undo.xml:746
 msgid ""
 "We'll introduce a little bit of terminology here, just to make it clear which "
 "parts of the search process are your responsibility, and which are "
@@ -9783,7 +8866,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:759
+#: ../en/ch08-undo.xml:759
 msgid ""
 "One simple way to automate the searching process would be simply to probe "
 "every changeset.  However, this scales poorly.  If it took ten minutes to "
@@ -9796,7 +8879,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:769
+#: ../en/ch08-undo.xml:769
 msgid ""
 "What the <command role=\"hg-cmd\">hg bisect</command> command does is use its "
 "knowledge of the <quote>shape</quote> of your project's revision history to "
@@ -9809,7 +8892,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:780
+#: ../en/ch08-undo.xml:780
 msgid ""
 "The <command role=\"hg-cmd\">hg bisect</command> command is aware of the "
 "<quote>branchy</quote> nature of a Mercurial project's revision history, so "
@@ -9819,18 +8902,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:788
+#: ../en/ch08-undo.xml:788
 msgid "Using the <command role=\"hg-cmd\">hg bisect</command> command"
 msgstr "使用命令 <command role=\"hg-cmd\">hg bisect</command>"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:791
+#: ../en/ch08-undo.xml:791
 msgid ""
 "Here's an example of <command role=\"hg-cmd\">hg bisect</command> in action."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch09-undo.xml:795
+#: ../en/ch08-undo.xml:795
 msgid ""
 "In versions 0.9.5 and earlier of Mercurial, <command role=\"hg-cmd\">hg "
 "bisect</command> was not a core command: it was distributed with Mercurial as "
@@ -9839,14 +8922,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:802
+#: ../en/ch08-undo.xml:802
 msgid ""
 "Now let's create a repository, so that we can try out the <command role=\"hg-"
 "cmd\">hg bisect</command> command in isolation."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:808
+#: ../en/ch08-undo.xml:808
 msgid ""
 "We'll simulate a project that has a bug in it in a simple-minded way: create "
 "trivial changes in a loop, and nominate one specific change that will have "
@@ -9856,7 +8939,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:818
+#: ../en/ch08-undo.xml:818
 msgid ""
 "The next thing that we'd like to do is figure out how to use the <command "
 "role=\"hg-cmd\">hg bisect</command> command.  We can use Mercurial's normal "
@@ -9864,46 +8947,46 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:825
+#: ../en/ch08-undo.xml:825
 msgid ""
 "The <command role=\"hg-cmd\">hg bisect</command> command works in steps.  "
 "Each step proceeds as follows."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:828
+#: ../en/ch08-undo.xml:828
 msgid "You run your binary test."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:830
+#: ../en/ch08-undo.xml:830
 msgid ""
 "If the test succeeded, you tell <command role=\"hg-cmd\">hg bisect</command> "
 "by running the <command role=\"hg-cmd\">hg bisect good</command> command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:835
+#: ../en/ch08-undo.xml:835
 msgid ""
 "If it failed, run the <command role=\"hg-cmd\">hg bisect bad</command> "
 "command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:839
+#: ../en/ch08-undo.xml:839
 msgid ""
 "The command uses your information to decide which changeset to test next."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:842
+#: ../en/ch08-undo.xml:842
 msgid ""
 "It updates the working directory to that changeset, and the process begins "
 "again."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:845
+#: ../en/ch08-undo.xml:845
 msgid ""
 "The process ends when <command role=\"hg-cmd\">hg bisect</command> identifies "
 "a unique changeset that marks the point where your test transitioned from "
@@ -9912,14 +8995,14 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:850
+#: ../en/ch08-undo.xml:850
 msgid ""
 "To start the search, we must run the <command role=\"hg-cmd\">hg bisect --"
 "reset</command> command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:855
+#: ../en/ch08-undo.xml:855
 msgid ""
 "In our case, the binary test we use is simple: we check to see if any file in "
 "the repository contains the string <quote>i have a gub</quote>.  If it does, "
@@ -9929,7 +9012,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:863
+#: ../en/ch08-undo.xml:863
 msgid ""
 "Most of the time, the revision to which the working directory is synced "
 "(usually the tip) already exhibits the problem introduced by the buggy "
@@ -9938,7 +9021,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:870
+#: ../en/ch08-undo.xml:870
 msgid ""
 "Our next task is to nominate a changeset that we know <emphasis>doesn't</"
 "emphasis> have the bug; the <command role=\"hg-cmd\">hg bisect</command> "
@@ -9949,26 +9032,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:880
+#: ../en/ch08-undo.xml:880
 msgid "Notice that this command printed some output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:882
+#: ../en/ch08-undo.xml:882
 msgid ""
 "It told us how many changesets it must consider before it can identify the "
 "one that introduced the bug, and how many tests that will require."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:886
+#: ../en/ch08-undo.xml:886
 msgid ""
 "It updated the working directory to the next changeset to test, and told us "
 "which changeset it's testing."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:891
+#: ../en/ch08-undo.xml:891
 msgid ""
 "We now run our test in the working directory.  We use the <command>grep</"
 "command> command to see if our <quote>bad</quote> file is present in the "
@@ -9977,26 +9060,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:897
+#: ../en/ch08-undo.xml:897
 msgid ""
 "This test looks like a perfect candidate for automation, so let's turn it "
 "into a shell function."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:901
+#: ../en/ch08-undo.xml:901
 msgid ""
 "We can now run an entire test step with a single command, <literal>mytest</"
 "literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:906
+#: ../en/ch08-undo.xml:906
 msgid "A few more invocations of our canned test step command, and we're done."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:911
+#: ../en/ch08-undo.xml:911
 msgid ""
 "Even though we had 40 changesets to search through, the <command role=\"hg-cmd"
 "\">hg bisect</command> command let us find the changeset that introduced our "
@@ -10008,13 +9091,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:922
+#: ../en/ch08-undo.xml:922
 msgid "Cleaning up after your search"
 msgstr "搜索后的清理"
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:924
+#: ../en/ch08-undo.xml:924
 msgid ""
 "When you're finished using the <command role=\"hg-cmd\">hg bisect</command> "
 "command in a repository, you can use the <command role=\"hg-cmd\">hg bisect "
@@ -10026,17 +9109,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:939
+#: ../en/ch08-undo.xml:939
 msgid "Tips for finding bugs effectively"
 msgstr "有效查找问题的技巧"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:942
+#: ../en/ch08-undo.xml:942
 msgid "Give consistent input"
 msgstr "给出一致的输入"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:944
+#: ../en/ch08-undo.xml:944
 msgid ""
 "The <command role=\"hg-cmd\">hg bisect</command> command requires that you "
 "correctly report the result of every test you perform.  If you tell it that a "
@@ -10048,12 +9131,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:956
+#: ../en/ch08-undo.xml:956
 msgid "Automate as much as possible"
 msgstr "尽量自动"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:958
+#: ../en/ch08-undo.xml:958
 msgid ""
 "When I started using the <command role=\"hg-cmd\">hg bisect</command> "
 "command, I tried a few times to run my tests by hand, on the command line.  "
@@ -10063,7 +9146,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:966
+#: ../en/ch08-undo.xml:966
 msgid ""
 "My initial problems with driving the <command role=\"hg-cmd\">hg bisect</"
 "command> command by hand occurred even with simple searches on small "
@@ -10074,24 +9157,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:975
+#: ../en/ch08-undo.xml:975
 msgid "The key to automated testing is twofold:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:977
+#: ../en/ch08-undo.xml:977
 msgid "always test for the same symptom, and"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:979
+#: ../en/ch08-undo.xml:979
 msgid ""
 "always feed consistent input to the <command role=\"hg-cmd\">hg bisect</"
 "command> command."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:982
+#: ../en/ch08-undo.xml:982
 msgid ""
 "In my tutorial example above, the <command>grep</command> command tests for "
 "the symptom, and the <literal>if</literal> statement takes the result of this "
@@ -10102,12 +9185,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:992
+#: ../en/ch08-undo.xml:992
 msgid "Check your results"
 msgstr "检查你的结果"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:994
+#: ../en/ch08-undo.xml:994
 msgid ""
 "Because the output of a <command role=\"hg-cmd\">hg bisect</command> search "
 "is only as good as the input you give it, don't take the changeset it reports "
@@ -10116,32 +9199,32 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:1000
+#: ../en/ch08-undo.xml:1000
 msgid ""
 "The changeset that it reports as the first bad revision.  Your test should "
 "still report this as bad."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:1004
+#: ../en/ch08-undo.xml:1004
 msgid ""
 "The parent of that changeset (either parent, if it's a merge). Your test "
 "should report this changeset as good."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:1008
+#: ../en/ch08-undo.xml:1008
 msgid ""
 "A child of that changeset.  Your test should report this changeset as bad."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:1014
+#: ../en/ch08-undo.xml:1014
 msgid "Beware interference between bugs"
 msgstr "谨防问题之间的冲突"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1016
+#: ../en/ch08-undo.xml:1016
 msgid ""
 "It's possible that your search for one bug could be disrupted by the presence "
 "of another.  For example, let's say your software crashes at revision 100, "
@@ -10151,7 +9234,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1024
+#: ../en/ch08-undo.xml:1024
 msgid ""
 "It is possible that this other bug completely <quote>masks</quote> yours, "
 "which is to say that it occurs before your bug has a chance to manifest "
@@ -10163,7 +9246,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1034
+#: ../en/ch08-undo.xml:1034
 msgid ""
 "A different problem could arise if your test for a bug's presence is not "
 "specific enough.  If you check for <quote>my program crashes</quote>, then "
@@ -10172,7 +9255,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1041
+#: ../en/ch08-undo.xml:1041
 msgid ""
 "Another useful situation in which to use <command role=\"hg-cmd\">hg bisect --"
 "skip</command> is if you can't test a revision because your project was in a "
@@ -10181,12 +9264,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:1050
+#: ../en/ch08-undo.xml:1050
 msgid "Bracket your search lazily"
 msgstr "减少你的查找工作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1052
+#: ../en/ch08-undo.xml:1052
 msgid ""
 "Choosing the first <quote>good</quote> and <quote>bad</quote> changesets that "
 "will mark the end points of your search is often easy, but it bears a little "
@@ -10196,7 +9279,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1060
+#: ../en/ch08-undo.xml:1060
 msgid ""
 "If you're having trouble remembering when a suitable <quote>good</quote> "
 "change was, so that you can tell <command role=\"hg-cmd\">hg bisect</"
@@ -10207,7 +9290,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1069
+#: ../en/ch08-undo.xml:1069
 msgid ""
 "Even if you end up <quote>early</quote> by thousands of changesets or months "
 "of history, you will only add a handful of tests to the total number that "
@@ -10216,12 +9299,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch10-hook.xml:5
+#: ../en/ch09-hook.xml:5
 msgid "Handling repository events with hooks"
 msgstr "使用钩子处理版本库事件"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch10-hook.xml:7
+#: ../en/ch09-hook.xml:7
 msgid ""
 "Mercurial offers a powerful mechanism to let you perform automated actions in "
 "response to events that occur in a repository.  In some cases, you can even "
@@ -10229,7 +9312,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch10-hook.xml:12
+#: ../en/ch09-hook.xml:12
 msgid ""
 "The name Mercurial uses for one of these actions is a <emphasis>hook</"
 "emphasis>. Hooks are called <quote>triggers</quote> in some revision control "
@@ -10237,12 +9320,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:18
+#: ../en/ch09-hook.xml:18
 msgid "An overview of hooks in Mercurial"
 msgstr "Mercurial 钩子概述"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:20
+#: ../en/ch09-hook.xml:20
 msgid ""
 "Here is a brief list of the hooks that Mercurial supports.  We will revisit "
 "each of these hooks in more detail later, in section <xref linkend=\"sec.hook."
@@ -10250,21 +9333,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:25
+#: ../en/ch09-hook.xml:25
 msgid ""
 "<literal role=\"hook\">changegroup</literal>: This is run after a group of "
 "changesets has been brought into the repository from elsewhere."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:29
+#: ../en/ch09-hook.xml:29
 msgid ""
 "<literal role=\"hook\">commit</literal>: This is run after a new changeset "
 "has been created in the local repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:33
+#: ../en/ch09-hook.xml:33
 msgid ""
 "<literal role=\"hook\">incoming</literal>: This is run once for each new "
 "changeset that is brought into the repository from elsewhere.  Notice the "
@@ -10273,42 +9356,42 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:40
+#: ../en/ch09-hook.xml:40
 msgid ""
 "<literal role=\"hook\">outgoing</literal>: This is run after a group of "
 "changesets has been transmitted from this repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:44
+#: ../en/ch09-hook.xml:44
 msgid ""
 "<literal role=\"hook\">prechangegroup</literal>: This is run before starting "
 "to bring a group of changesets into the repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:49
+#: ../en/ch09-hook.xml:49
 msgid ""
 "<literal role=\"hook\">precommit</literal>: Controlling. This is run before "
 "starting a commit."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:53
+#: ../en/ch09-hook.xml:53
 msgid ""
 "<literal role=\"hook\">preoutgoing</literal>: Controlling. This is run before "
 "starting to transmit a group of changesets from this repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:58
+#: ../en/ch09-hook.xml:58
 msgid ""
 "<literal role=\"hook\">pretag</literal>: Controlling. This is run before "
 "creating a tag."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:62
+#: ../en/ch09-hook.xml:62
 msgid ""
 "<literal role=\"hook\">pretxnchangegroup</literal>: Controlling. This is run "
 "after a group of changesets has been brought into the local repository from "
@@ -10317,7 +9400,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:70
+#: ../en/ch09-hook.xml:70
 msgid ""
 "<literal role=\"hook\">pretxncommit</literal>: Controlling. This is run after "
 "a new changeset has been created in the local repository, but before the "
@@ -10325,27 +9408,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:76
+#: ../en/ch09-hook.xml:76
 msgid ""
 "<literal role=\"hook\">preupdate</literal>: Controlling. This is run before "
 "starting an update or merge of the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:81
+#: ../en/ch09-hook.xml:81
 msgid ""
 "<literal role=\"hook\">tag</literal>: This is run after a tag is created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:85
+#: ../en/ch09-hook.xml:85
 msgid ""
 "<literal role=\"hook\">update</literal>: This is run after an update or merge "
 "of the working directory has finished."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:90
+#: ../en/ch09-hook.xml:90
 msgid ""
 "Each of the hooks whose description begins with the word <quote>Controlling</"
 "quote> has the ability to determine whether an activity can proceed.  If the "
@@ -10354,17 +9437,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:99
+#: ../en/ch09-hook.xml:99
 msgid "Hooks and security"
 msgstr "钩子与安全性"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:102
+#: ../en/ch09-hook.xml:102
 msgid "Hooks are run with your privileges"
 msgstr "钩子以你的特权执行"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:104
+#: ../en/ch09-hook.xml:104
 msgid ""
 "When you run a Mercurial command in a repository, and the command causes a "
 "hook to run, that hook runs on <emphasis>your</emphasis> system, under "
@@ -10375,16 +9458,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:115
+#: ../en/ch09-hook.xml:115
 msgid ""
 "In some cases, you may be exposed to hooks that you did not install "
 "yourself.  If you work with Mercurial on an unfamiliar system, Mercurial will "
-"run hooks defined in that system's global <filename role=\"special\"> /.hgrc</"
-"filename>\\ file."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:122
+"run hooks defined in that system's global <filename role=\"special\">~/.hgrc</"
+"filename> file."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch09-hook.xml:122
 msgid ""
 "If you are working with a repository owned by another user, Mercurial can run "
 "hooks defined in that user's repository, but it will still run them as "
@@ -10396,7 +9479,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch10-hook.xml:134
+#: ../en/ch09-hook.xml:134
 msgid ""
 "This only applies if you are pulling from a repository on a local or network "
 "filesystem.  If you're pulling over http or ssh, any <literal role=\"hook"
@@ -10405,7 +9488,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:142
+#: ../en/ch09-hook.xml:142
 msgid ""
 "XXX To see what hooks are defined in a repository, use the <command role=\"hg-"
 "cmd\">hg config hooks</command> command.  If you are working in one "
@@ -10416,12 +9499,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:153
+#: ../en/ch09-hook.xml:153
 msgid "Hooks do not propagate"
 msgstr "钩子不会传播"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:155
+#: ../en/ch09-hook.xml:155
 msgid ""
 "In Mercurial, hooks are not revision controlled, and do not propagate when "
 "you clone, or pull from, a repository.  The reason for this is simple: a hook "
@@ -10430,7 +9513,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:162
+#: ../en/ch09-hook.xml:162
 msgid ""
 "It would be extremely reckless for any distributed revision control system to "
 "implement revision-controlled hooks, as this would offer an easily "
@@ -10439,7 +9522,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:168
+#: ../en/ch09-hook.xml:168
 msgid ""
 "Since Mercurial does not propagate hooks, if you are collaborating with other "
 "people on a common project, you should not assume that they are using the "
@@ -10448,22 +9531,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:175
+#: ../en/ch09-hook.xml:175
 msgid ""
 "In a corporate intranet, this is somewhat easier to control, as you can for "
 "example provide a <quote>standard</quote> installation of Mercurial on an NFS "
-"filesystem, and use a site-wide <filename role=\"special\"> /.hgrc</filename>"
-"\\ file to define hooks that all users will see.  However, this too has its "
+"filesystem, and use a site-wide <filename role=\"special\">~/.hgrc</filename> "
+"file to define hooks that all users will see.  However, this too has its "
 "limits; see below."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:185
+#: ../en/ch09-hook.xml:184
 msgid "Hooks can be overridden"
 msgstr "钩子可以被覆盖"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:187
+#: ../en/ch09-hook.xml:186
 msgid ""
 "Mercurial allows you to override a hook definition by redefining the hook.  "
 "You can disable it by setting its value to the empty string, or change its "
@@ -10471,31 +9554,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:192
-msgid ""
-"If you deploy a system- or site-wide <filename role=\"special\"> /.hgrc</"
-"filename>\\ file that defines some hooks, you should thus understand that "
-"your users can disable or override those hooks."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:200
+#: ../en/ch09-hook.xml:191
+msgid ""
+"If you deploy a system- or site-wide <filename role=\"special\">~/.hgrc</"
+"filename> file that defines some hooks, you should thus understand that your "
+"users can disable or override those hooks."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><title>
+#: ../en/ch09-hook.xml:199
 msgid "Ensuring that critical hooks are run"
 msgstr "确保关键钩子的执行"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:202
+#: ../en/ch09-hook.xml:201
 msgid ""
 "Sometimes you may want to enforce a policy that you do not want others to be "
 "able to work around.  For example, you may have a requirement that every "
 "changeset must pass a rigorous set of tests.  Defining this requirement via a "
-"hook in a site-wide <filename role=\"special\"> /.hgrc</filename>\\ won't "
-"work for remote users on laptops, and of course local users can subvert it at "
-"will by overriding the hook."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:211
+"hook in a site-wide <filename role=\"special\">~/.hgrc</filename> won't work "
+"for remote users on laptops, and of course local users can subvert it at will "
+"by overriding the hook."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch09-hook.xml:210
 msgid ""
 "Instead, you can set up your policies for use of Mercurial so that people are "
 "expected to propagate changes through a well-known <quote>canonical</quote> "
@@ -10503,7 +9586,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:217
+#: ../en/ch09-hook.xml:216
 msgid ""
 "One way to do this is via a combination of social engineering and "
 "technology.  Set up a restricted-access account; users can push changes over "
@@ -10513,7 +9596,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:226
+#: ../en/ch09-hook.xml:225
 msgid ""
 "When someone pushes a changeset to the server that everyone pulls from, the "
 "server will test the changeset before it accepts it as permanent, and reject "
@@ -10523,12 +9606,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:237
+#: ../en/ch09-hook.xml:236
 msgid "Care with <literal>pretxn</literal> hooks in a shared-access repository"
 msgstr "在共享版本库中注意 <literal>pretxn</literal> 钩子"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:240
+#: ../en/ch09-hook.xml:239
 msgid ""
 "If you want to use hooks to do some automated work in a repository that a "
 "number of people have shared access to, you need to be careful in how you do "
@@ -10536,7 +9619,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:245
+#: ../en/ch09-hook.xml:244
 msgid ""
 "Mercurial only locks a repository when it is writing to the repository, and "
 "only the parts of Mercurial that write to the repository pay attention to "
@@ -10545,7 +9628,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:252
+#: ../en/ch09-hook.xml:251
 msgid ""
 "Because Mercurial is careful with the order in which it reads and writes "
 "data, it does not need to acquire a lock when it wants to read data from the "
@@ -10555,7 +9638,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:260
+#: ../en/ch09-hook.xml:259
 msgid ""
 "With great performance comes a trade-off, though, one which has the potential "
 "to cause you trouble unless you're aware of it.  To describe this requires a "
@@ -10564,7 +9647,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:267
+#: ../en/ch09-hook.xml:266
 msgid ""
 "When Mercurial <emphasis>writes</emphasis> metadata, it writes it straight "
 "into the destination file.  It writes file data first, then manifest data "
@@ -10576,7 +9659,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:278
+#: ../en/ch09-hook.xml:277
 msgid ""
 "When Mercurial <emphasis>reads</emphasis> metadata, it reads the changelog "
 "first, then everything else.  Since a reader will only access parts of the "
@@ -10585,7 +9668,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:284
+#: ../en/ch09-hook.xml:283
 msgid ""
 "Some controlling hooks (<literal role=\"hook\">pretxncommit</literal> and "
 "<literal role=\"hook\">pretxnchangegroup</literal>) run when a transaction is "
@@ -10594,7 +9677,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:292
+#: ../en/ch09-hook.xml:291
 msgid ""
 "If one of these hooks runs for long, it opens a window of time during which a "
 "reader can see the metadata for changesets that are not yet permanent, and "
@@ -10603,12 +9686,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:300
+#: ../en/ch09-hook.xml:299
 msgid "The problem illustrated"
 msgstr "问题的演示"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:302
+#: ../en/ch09-hook.xml:301
 msgid ""
 "In principle, a good use for the <literal role=\"hook\">pretxnchangegroup</"
 "literal> hook would be to automatically build and test incoming changes "
@@ -10620,7 +9703,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:313
+#: ../en/ch09-hook.xml:312
 msgid ""
 "The safest technological answer to this challenge is to set up such a "
 "<quote>gatekeeper</quote> repository as <emphasis>unidirectional</emphasis>.  "
@@ -10633,7 +9716,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:325
+#: ../en/ch09-hook.xml:324
 msgid ""
 "In practice, putting a centralised bottleneck like this in place is not often "
 "a good idea, and transaction visibility has nothing to do with the problem.  "
@@ -10645,7 +9728,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:336
+#: ../en/ch09-hook.xml:335
 msgid ""
 "An approach that scales better is to get people to build and test before they "
 "push, then run automated builds and tests centrally <emphasis>after</"
@@ -10655,12 +9738,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:347
+#: ../en/ch09-hook.xml:346
 msgid "A short tutorial on using hooks"
 msgstr "使用钩子的简短指南"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:349
+#: ../en/ch09-hook.xml:348
 msgid ""
 "It is easy to write a Mercurial hook.  Let's start with a hook that runs when "
 "you finish a <command role=\"hg-cmd\">hg commit</command>, and simply prints "
@@ -10669,15 +9752,15 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:356
+#: ../en/ch09-hook.xml:355
 msgid "All hooks follow the pattern in this example."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:360
+#: ../en/ch09-hook.xml:359
 msgid ""
 "You add an entry to the <literal role=\"rc-hooks\">hooks</literal> section of "
-"your <filename role=\"special\"> /.hgrc</filename>.  On the left is the name "
+"your <filename role=\"special\">~/.hgrc</filename>.  On the left is the name "
 "of the event to trigger on; on the right is the action to take.  As you can "
 "see, you can run an arbitrary shell command in a hook.  Mercurial passes "
 "extra information to the hook using environment variables (look for "
@@ -10685,19 +9768,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:370
+#: ../en/ch09-hook.xml:369
 msgid "Performing multiple actions per event"
 msgstr "每个事件执行多个操作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:372
+#: ../en/ch09-hook.xml:371
 msgid ""
 "Quite often, you will want to define more than one hook for a particular kind "
 "of event, as shown below."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:377
+#: ../en/ch09-hook.xml:376
 msgid ""
 "Mercurial lets you do this by adding an <emphasis>extension</emphasis> to the "
 "end of a hook's name.  You extend a hook's name by giving the name of the "
@@ -10708,7 +9791,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:388
+#: ../en/ch09-hook.xml:387
 msgid ""
 "To give a well-defined order of execution when there are multiple hooks "
 "defined for an event, Mercurial sorts hooks by extension, and executes the "
@@ -10718,7 +9801,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:397
+#: ../en/ch09-hook.xml:396
 msgid ""
 "It is a good idea to use a somewhat descriptive extension when you define a "
 "new hook.  This will help you to remember what the hook was for.  If the hook "
@@ -10729,12 +9812,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:408
+#: ../en/ch09-hook.xml:407
 msgid "Controlling whether an activity can proceed"
 msgstr "控制处理的活动"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:410
+#: ../en/ch09-hook.xml:409
 msgid ""
 "In our earlier examples, we used the <literal role=\"hook\">commit</literal> "
 "hook, which is run after a commit has completed.  This is one of several "
@@ -10743,7 +9826,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:417
+#: ../en/ch09-hook.xml:416
 msgid ""
 "Mercurial defines a number of events that occur before an activity starts; or "
 "after it starts, but before it finishes.  Hooks that trigger on these events "
@@ -10752,7 +9835,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:423
+#: ../en/ch09-hook.xml:422
 msgid ""
 "The <literal role=\"hook\">pretxncommit</literal> hook runs after a commit "
 "has all but completed.  In other words, the metadata representing the "
@@ -10763,7 +9846,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:432
+#: ../en/ch09-hook.xml:431
 msgid ""
 "If the <literal role=\"hook\">pretxncommit</literal> hook exits with a status "
 "code of zero, the transaction is allowed to complete; the commit finishes; "
@@ -10774,19 +9857,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:444
+#: ../en/ch09-hook.xml:443
 msgid ""
 "The hook in the example above checks that a commit comment contains a bug "
 "ID.  If it does, the commit can complete.  If not, the commit is rolled back."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:452
+#: ../en/ch09-hook.xml:451
 msgid "Writing your own hooks"
 msgstr "编写钩子"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:454
+#: ../en/ch09-hook.xml:453
 msgid ""
 "When you are writing a hook, you might find it useful to run Mercurial either "
 "with the <option role=\"hg-opt-global\">-v</option> option, or the <envar "
@@ -10795,12 +9878,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:463
+#: ../en/ch09-hook.xml:462
 msgid "Choosing how your hook should run"
 msgstr "选择钩子的执行方式"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:465
+#: ../en/ch09-hook.xml:464
 msgid ""
 "You can write a hook either as a normal program&emdash;typically a shell "
 "script&emdash;or as a Python function that is executed within the Mercurial "
@@ -10808,7 +9891,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:470
+#: ../en/ch09-hook.xml:469
 msgid ""
 "Writing a hook as an external program has the advantage that it requires no "
 "knowledge of Mercurial's internals.  You can call normal Mercurial commands "
@@ -10817,7 +9900,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:477
+#: ../en/ch09-hook.xml:476
 msgid ""
 "An in-process Python hook has complete access to the Mercurial API, and does "
 "not <quote>shell out</quote> to another process, so it is inherently faster "
@@ -10827,7 +9910,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:485
+#: ../en/ch09-hook.xml:484
 msgid ""
 "If you are comfortable with Python, or require high performance, writing your "
 "hooks in Python may be a good choice.  However, when you have a "
@@ -10836,12 +9919,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:494
+#: ../en/ch09-hook.xml:493
 msgid "Hook parameters"
 msgstr "钩子的参数"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:496
+#: ../en/ch09-hook.xml:495
 msgid ""
 "Mercurial calls each hook with a set of well-defined parameters.  In Python, "
 "a parameter is passed as a keyword argument to your hook function.  For an "
@@ -10849,7 +9932,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:502
+#: ../en/ch09-hook.xml:501
 msgid ""
 "Whether your hook is written in Python or as a shell script, the hook-"
 "specific parameter names and values will be the same.  A boolean parameter "
@@ -10862,12 +9945,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:516
+#: ../en/ch09-hook.xml:515
 msgid "Hook return values and activity control"
 msgstr "钩子的返回值与活动控制"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:518
+#: ../en/ch09-hook.xml:517
 msgid ""
 "A hook that executes successfully must exit with a status of zero if "
 "external, or return boolean <quote>false</quote> if in-process.  Failure is "
@@ -10877,35 +9960,35 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:526
+#: ../en/ch09-hook.xml:525
 msgid ""
 "For a hook that controls whether an activity can proceed, zero/false means "
 "<quote>allow</quote>, while non-zero/true/exception means <quote>deny</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:533
+#: ../en/ch09-hook.xml:532
 msgid "Writing an external hook"
 msgstr "编写外部钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:535
-msgid ""
-"When you define an external hook in your <filename role=\"special\"> /.hgrc</"
-"filename>\\ and the hook is run, its value is passed to your shell, which "
+#: ../en/ch09-hook.xml:534
+msgid ""
+"When you define an external hook in your <filename role=\"special\">~/.hgrc</"
+"filename> and the hook is run, its value is passed to your shell, which "
 "interprets it.  This means that you can use normal shell constructs in the "
 "body of the hook."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:542
+#: ../en/ch09-hook.xml:541
 msgid ""
 "An executable hook is always run with its current directory set to a "
 "repository's root directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:546
+#: ../en/ch09-hook.xml:545
 msgid ""
 "Each hook parameter is passed in as an environment variable; the name is "
 "upper-cased, and prefixed with the string <quote><literal>HG_</literal></"
@@ -10913,7 +9996,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:551
+#: ../en/ch09-hook.xml:550
 msgid ""
 "With the exception of hook parameters, Mercurial does not set or modify any "
 "environment variables when running a hook.  This is useful to remember if you "
@@ -10924,14 +10007,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:562
+#: ../en/ch09-hook.xml:561
 msgid "Telling Mercurial to use an in-process hook"
 msgstr "让 Mercurial 使用进程内钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:564
-msgid ""
-"The <filename role=\"special\"> /.hgrc</filename>\\ syntax for defining an in-"
+#: ../en/ch09-hook.xml:563
+msgid ""
+"The <filename role=\"special\">~/.hgrc</filename> syntax for defining an in-"
 "process hook is slightly different than for an executable hook.  The value of "
 "the hook must start with the text <quote><literal>python:</literal></quote>, "
 "and continue with the fully-qualified name of a callable object to use as the "
@@ -10939,7 +10022,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:572
+#: ../en/ch09-hook.xml:571
 msgid ""
 "The module in which a hook lives is automatically imported when a hook is "
 "run.  So long as you have the module name and <envar>PYTHONPATH</envar> "
@@ -10947,14 +10030,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:578
-msgid ""
-"The following <filename role=\"special\"> /.hgrc</filename>\\ example snippet "
+#: ../en/ch09-hook.xml:577
+msgid ""
+"The following <filename role=\"special\">~/.hgrc</filename> example snippet "
 "illustrates the syntax and meaning of the notions we just described."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:584
+#: ../en/ch09-hook.xml:583
 msgid ""
 "When Mercurial runs the <literal>commit.example</literal> hook, it imports "
 "<literal>mymodule.submodule</literal>, looks for the callable object named "
@@ -10962,19 +10045,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:592
+#: ../en/ch09-hook.xml:591
 msgid "Writing an in-process hook"
 msgstr "编写进程内钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:594
+#: ../en/ch09-hook.xml:593
 msgid ""
 "The simplest in-process hook does nothing, but illustrates the basic shape of "
 "the hook API:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:599
+#: ../en/ch09-hook.xml:598
 msgid ""
 "The first argument to a Python hook is always a <literal role=\"py-mod-"
 "mercurial.ui\">ui</literal> object.  The second is a repository object; at "
@@ -10986,17 +10069,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:614
+#: ../en/ch09-hook.xml:613
 msgid "Some hook examples"
 msgstr "钩子样例"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:617
+#: ../en/ch09-hook.xml:616
 msgid "Writing meaningful commit messages"
 msgstr "编写有意义的提交日志"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:619
+#: ../en/ch09-hook.xml:618
 msgid ""
 "It's hard to imagine a useful commit message being very short. The simple "
 "<literal role=\"hook\">pretxncommit</literal> hook of the example below will "
@@ -11005,12 +10088,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:629
+#: ../en/ch09-hook.xml:628
 msgid "Checking for trailing whitespace"
 msgstr "检查行尾空格"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:631
+#: ../en/ch09-hook.xml:630
 msgid ""
 "An interesting use of a commit-related hook is to help you to write cleaner "
 "code.  A simple example of <quote>cleaner code</quote> is the dictum that a "
@@ -11022,7 +10105,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:642
+#: ../en/ch09-hook.xml:641
 msgid ""
 "You can use either the <literal role=\"hook\">precommit</literal> or <literal "
 "role=\"hook\">pretxncommit</literal> hook to tell whether you have a trailing "
@@ -11037,7 +10120,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:658
+#: ../en/ch09-hook.xml:657
 msgid ""
 "Should you choose the <literal role=\"hook\">pretxncommit</literal> hook, the "
 "check won't occur until just before the transaction for the commit "
@@ -11049,7 +10132,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:671
+#: ../en/ch09-hook.xml:670
 msgid ""
 "In this example, we introduce a simple <literal role=\"hook\">pretxncommit</"
 "literal> hook that checks for trailing whitespace.  This hook is short, but "
@@ -11061,7 +10144,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:682
+#: ../en/ch09-hook.xml:681
 msgid ""
 "The above version is much more complex, but also more useful.  It parses a "
 "unified diff to see if any lines add trailing whitespace, and prints the name "
@@ -11074,7 +10157,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:696
+#: ../en/ch09-hook.xml:695
 msgid ""
 "As a final aside, note in the example above the use of <command>perl</"
 "command>'s in-place editing feature to get rid of trailing whitespace from a "
@@ -11082,12 +10165,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:706
+#: ../en/ch09-hook.xml:705
 msgid "Bundled hooks"
 msgstr "内置的钩子"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch10-hook.xml:708
+#: ../en/ch09-hook.xml:707
 msgid ""
 "Mercurial ships with several bundled hooks.  You can find them in the "
 "<filename class=\"directory\">hgext</filename> directory of a Mercurial "
@@ -11097,14 +10180,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:717
+#: ../en/ch09-hook.xml:716
 msgid ""
 "<literal role=\"hg-ext\">acl</literal>&emdash;access control for parts of a "
 "repository"
 msgstr "<literal role=\"hg-ext\">acl</literal>&emdash;版本库的访问控制"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:720
+#: ../en/ch09-hook.xml:719
 msgid ""
 "The <literal role=\"hg-ext\">acl</literal> extension lets you control which "
 "remote users are allowed to push changesets to a networked server.  You can "
@@ -11114,7 +10197,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:728
+#: ../en/ch09-hook.xml:727
 msgid ""
 "This extension implements access control based on the identity of the user "
 "performing a push, <emphasis>not</emphasis> on who committed the changesets "
@@ -11124,12 +10207,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:738
+#: ../en/ch09-hook.xml:737
 msgid "Configuring the <literal role=\"hook\">acl</literal> hook"
 msgstr "配置 <literal role=\"hook\">acl</literal> 钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:741
+#: ../en/ch09-hook.xml:740
 msgid ""
 "In order to manage incoming changesets, the <literal role=\"hg-ext\">acl</"
 "literal> hook must be used as a <literal role=\"hook\">pretxnchangegroup</"
@@ -11139,14 +10222,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:751
+#: ../en/ch09-hook.xml:750
 msgid ""
 "The <literal role=\"hg-ext\">acl</literal> extension is configured using "
 "three sections."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:755
+#: ../en/ch09-hook.xml:754
 msgid ""
 "The <literal role=\"rc-acl\">acl</literal> section has only one entry, <envar "
 "role=\"rc-item-acl\">sources</envar>, which lists the sources of incoming "
@@ -11155,7 +10238,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:762
+#: ../en/ch09-hook.xml:761
 msgid ""
 "<envar role=\"rc-item-acl\">serve</envar>: Control incoming changesets that "
 "are arriving from a remote repository over http or ssh.  This is the default "
@@ -11164,28 +10247,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:770
+#: ../en/ch09-hook.xml:769
 msgid ""
 "<envar role=\"rc-item-acl\">pull</envar>: Control incoming changesets that "
 "are arriving via a pull from a local repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:775
+#: ../en/ch09-hook.xml:774
 msgid ""
 "<envar role=\"rc-item-acl\">push</envar>: Control incoming changesets that "
 "are arriving via a push from a local repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:780
+#: ../en/ch09-hook.xml:779
 msgid ""
 "<envar role=\"rc-item-acl\">bundle</envar>: Control incoming changesets that "
 "are arriving from another repository via a bundle."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:786
+#: ../en/ch09-hook.xml:785
 msgid ""
 "The <literal role=\"rc-acl.allow\">acl.allow</literal> section controls the "
 "users that are allowed to add changesets to the repository.  If this section "
@@ -11195,7 +10278,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:795
+#: ../en/ch09-hook.xml:794
 msgid ""
 "The <literal role=\"rc-acl.deny\">acl.deny</literal> section determines which "
 "users are denied from adding changesets to the repository.  If this section "
@@ -11203,7 +10286,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:801
+#: ../en/ch09-hook.xml:800
 msgid ""
 "The syntaxes for the <literal role=\"rc-acl.allow\">acl.allow</literal> and "
 "<literal role=\"rc-acl.deny\">acl.deny</literal> sections are identical.  On "
@@ -11212,7 +10295,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:809
+#: ../en/ch09-hook.xml:808
 msgid ""
 "In the following example, the user <literal>docwriter</literal> can only push "
 "changes to the <filename class=\"directory\">docs</filename> subtree of the "
@@ -11221,23 +10304,23 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:821 ../en/ch10-hook.xml:1095 ../en/ch10-hook.xml:1308
+#: ../en/ch09-hook.xml:822 ../en/ch09-hook.xml:1089 ../en/ch09-hook.xml:1280
 msgid "Testing and troubleshooting"
 msgstr "测试与问题处理"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:823
+#: ../en/ch09-hook.xml:824
 msgid ""
 "If you want to test the <literal role=\"hg-ext\">acl</literal> hook, run it "
 "with Mercurial's debugging output enabled.  Since you'll probably be running "
 "it on a server where it's not convenient (or sometimes possible) to pass in "
 "the <option role=\"hg-opt-global\">--debug</option> option, don't forget that "
-"you can enable debugging output in your <filename role=\"special\"> /.hgrc</"
+"you can enable debugging output in your <filename role=\"special\">~/.hgrc</"
 "filename>:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:833
+#: ../en/ch09-hook.xml:835
 msgid ""
 "With this enabled, the <literal role=\"hg-ext\">acl</literal> hook will print "
 "enough information to let you figure out why it is allowing or forbidding "
@@ -11245,13 +10328,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:842
+#: ../en/ch09-hook.xml:844
 msgid ""
 "<literal role=\"hg-ext\">bugzilla</literal>&emdash;integration with Bugzilla"
 msgstr "<literal role=\"hg-ext\">bugzilla</literal>&emdash;与 Bugzilla 的集成"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:846
+#: ../en/ch09-hook.xml:848
 msgid ""
 "The <literal role=\"hg-ext\">bugzilla</literal> extension adds a comment to a "
 "Bugzilla bug whenever it finds a reference to that bug ID in a commit "
@@ -11260,14 +10343,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:853
+#: ../en/ch09-hook.xml:855
 msgid ""
 "It adds a comment to the bug that looks like this (you can configure the "
 "contents of the comment&emdash;see below):"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:862
+#: ../en/ch09-hook.xml:864
 msgid ""
 "The value of this hook is that it automates the process of updating a bug any "
 "time a changeset refers to it.  If you configure the hook properly, it makes "
@@ -11276,14 +10359,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:869
+#: ../en/ch09-hook.xml:871
 msgid ""
 "You can use the code in this hook as a starting point for some more exotic "
 "Bugzilla integration recipes.  Here are a few possibilities:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:874
+#: ../en/ch09-hook.xml:876
 msgid ""
 "Require that every changeset pushed to the server have a valid bug ID in its "
 "commit comment.  In this case, you'd want to configure the hook as a <literal "
@@ -11292,7 +10375,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:882
+#: ../en/ch09-hook.xml:884
 msgid ""
 "Allow incoming changesets to automatically modify the <emphasis>state</"
 "emphasis> of a bug, as well as simply adding a comment.  For example, the "
@@ -11302,20 +10385,23 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:892
+#: ../en/ch09-hook.xml:894
 msgid "Configuring the <literal role=\"hook\">bugzilla</literal> hook"
 msgstr "配置 <literal role=\"hook\">bugzilla</literal> 钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:895
-msgid ""
-"You should configure this hook in your server's <filename role=\"special\"> /."
-"hgrc</filename>\\ as an <literal role=\"hook\">incoming</literal> hook, for "
+#: ../en/ch09-hook.xml:897
+#, fuzzy
+msgid ""
+"You should configure this hook in your server's <filename role=\"special\">~/."
+"hgrc</filename> as an <literal role=\"hook\">incoming</literal> hook, for "
 "example as follows:"
 msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:903
+"选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal "
+"role=\"rc-web\">web</literal> 条目"
+
+#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
+#: ../en/ch09-hook.xml:905
 msgid ""
 "Because of the specialised nature of this hook, and because Bugzilla was not "
 "written with this kind of integration in mind, configuring this hook is a "
@@ -11323,7 +10409,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:909
+#: ../en/ch09-hook.xml:911
 msgid ""
 "Before you begin, you must install the MySQL bindings for Python on the host"
 "(s) where you'll be running the hook.  If this is not available as a binary "
@@ -11332,15 +10418,15 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:916
+#: ../en/ch09-hook.xml:918
 msgid ""
 "Configuration information for this hook lives in the <literal role=\"rc-"
-"bugzilla\">bugzilla</literal> section of your <filename role=\"special\"> /."
+"bugzilla\">bugzilla</literal> section of your <filename role=\"special\">~/."
 "hgrc</filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:921
+#: ../en/ch09-hook.xml:923
 msgid ""
 "<envar role=\"rc-item-bugzilla\">version</envar>: The version of Bugzilla "
 "installed on the server.  The database schema that Bugzilla uses changes "
@@ -11349,7 +10435,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:930
+#: ../en/ch09-hook.xml:932
 msgid ""
 "<envar role=\"rc-item-bugzilla\">host</envar>: The hostname of the MySQL "
 "server that stores your Bugzilla data.  The database must be configured to "
@@ -11358,7 +10444,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:937
+#: ../en/ch09-hook.xml:939
 msgid ""
 "<envar role=\"rc-item-bugzilla\">user</envar>: The username with which to "
 "connect to the MySQL server.  The database must be configured to allow this "
@@ -11369,16 +10455,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:948
+#: ../en/ch09-hook.xml:950
 msgid ""
 "<envar role=\"rc-item-bugzilla\">password</envar>: The MySQL password for the "
 "user you configured above.  This is stored as plain text, so you should make "
-"sure that unauthorised users cannot read the <filename role=\"special\"> /."
-"hgrc</filename>\\ file where you store this information."
+"sure that unauthorised users cannot read the <filename role=\"special\">~/."
+"hgrc</filename> file where you store this information."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:957
+#: ../en/ch09-hook.xml:959
 msgid ""
 "<envar role=\"rc-item-bugzilla\">db</envar>: The name of the Bugzilla "
 "database on the MySQL server.  The default value of this item is "
@@ -11387,7 +10473,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:964
+#: ../en/ch09-hook.xml:966
 msgid ""
 "<envar role=\"rc-item-bugzilla\">notify</envar>: If you want Bugzilla to send "
 "out a notification email to subscribers after this hook has added a comment "
@@ -11398,7 +10484,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:977
+#: ../en/ch09-hook.xml:979
 msgid ""
 "The Bugzilla <literal>processmail</literal> program expects to be given a bug "
 "ID (the hook replaces <quote><literal>%s</literal></quote> with the bug ID)  "
@@ -11409,12 +10495,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:992
+#: ../en/ch09-hook.xml:994
 msgid "Mapping committer names to Bugzilla user names"
 msgstr "提交者的名称与 Bugzilla 用户名称的映射"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:994
+#: ../en/ch09-hook.xml:996
 msgid ""
 "By default, the <literal role=\"hg-ext\">bugzilla</literal> hook tries to use "
 "the email address of a changeset's committer as the Bugzilla user name with "
@@ -11424,14 +10510,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1003
+#: ../en/ch09-hook.xml:1005
 msgid ""
 "Each item in the <literal role=\"rc-usermap\">usermap</literal> section "
 "contains an email address on the left, and a Bugzilla user name on the right."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1010
+#: ../en/ch09-hook.xml:1012
 msgid ""
 "You can either keep the <literal role=\"rc-usermap\">usermap</literal> data "
 "in a normal <filename role=\"special\">~/.hgrc</filename>, or tell the "
@@ -11440,32 +10526,32 @@
 "store <filename>usermap</filename> data by itself in (for example)  a user-"
 "modifiable repository.  This makes it possible to let your users maintain "
 "their own <envar role=\"rc-item-bugzilla\">usermap</envar> entries.  The main "
-"<filename role=\"special\"> /.hgrc</filename>\\ file might look like this:"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1026
+"<filename role=\"special\">~/.hgrc</filename> file might look like this:"
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><sect3><para>
+#: ../en/ch09-hook.xml:1028
 msgid ""
 "While the <filename>usermap</filename> file that it refers to might look like "
 "this:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:1035
+#: ../en/ch09-hook.xml:1036
 msgid "Configuring the text that gets added to a bug"
 msgstr "配置增加到问题中的正文"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1037
+#: ../en/ch09-hook.xml:1038
 msgid ""
 "You can configure the text that this hook adds as a comment; you specify it "
-"in the form of a Mercurial template.  Several <filename role=\"special\"> /."
-"hgrc</filename>\\ entries (still in the <literal role=\"rc-bugzilla"
-"\">bugzilla</literal> section) control this behaviour."
+"in the form of a Mercurial template.  Several <filename role=\"special\">~/."
+"hgrc</filename> entries (still in the <literal role=\"rc-bugzilla\">bugzilla</"
+"literal> section) control this behaviour."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1044
+#: ../en/ch09-hook.xml:1045
 msgid ""
 "<literal>strip</literal>: The number of leading path elements to strip from a "
 "repository's path name to construct a partial path for a URL. For example, if "
@@ -11479,7 +10565,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1058
+#: ../en/ch09-hook.xml:1059
 msgid ""
 "<literal>template</literal>: The text of the template to use.  In addition to "
 "the usual changeset-related variables, this template can use <literal>hgweb</"
@@ -11489,25 +10575,25 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1068
+#: ../en/ch09-hook.xml:1069
 msgid ""
 "In addition, you can add a <envar role=\"rc-item-web\">baseurl</envar> item "
 "to the <literal role=\"rc-web\">web</literal> section of your <filename role="
-"\"special\"> /.hgrc</filename>.  The <literal role=\"hg-ext\">bugzilla</"
+"\"special\">~/.hgrc</filename>.  The <literal role=\"hg-ext\">bugzilla</"
 "literal> hook will make this available when expanding a template, as the base "
 "string to use when constructing a URL that will let users browse from a "
 "Bugzilla comment to view a changeset.  Example:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1080
+#: ../en/ch09-hook.xml:1081
 msgid ""
 "Here is an example set of <literal role=\"hg-ext\">bugzilla</literal> hook "
 "config information."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1097
+#: ../en/ch09-hook.xml:1091
 msgid ""
 "The most common problems with configuring the <literal role=\"hg-ext"
 "\">bugzilla</literal> hook relate to running Bugzilla's "
@@ -11516,7 +10602,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1103
+#: ../en/ch09-hook.xml:1097
 msgid ""
 "Recall from section <xref linkend=\"sec.hook.bugzilla.config\"/> above that "
 "the user that runs the Mercurial process on the server is also the one that "
@@ -11527,7 +10613,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1114
+#: ../en/ch09-hook.xml:1108
 msgid ""
 "You can cause <filename>processmail</filename> to be run with the suitable "
 "user's identity using the <command>sudo</command> command.  Here is an "
@@ -11535,7 +10621,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1122
+#: ../en/ch09-hook.xml:1115
 msgid ""
 "This allows the <literal>hg_user</literal> user to run a "
 "<filename>processmail-wrapper</filename> program under the identity of "
@@ -11543,7 +10629,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1127
+#: ../en/ch09-hook.xml:1120
 msgid ""
 "This indirection through a wrapper script is necessary, because "
 "<filename>processmail</filename> expects to be run with its current directory "
@@ -11553,14 +10639,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1136
+#: ../en/ch09-hook.xml:1129
 msgid ""
 "It doesn't seem to matter what email address you pass to "
 "<filename>processmail</filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1140
+#: ../en/ch09-hook.xml:1133
 msgid ""
 "If your <literal role=\"rc-usermap\">usermap</literal> is not set up "
 "correctly, users will see an error message from the <literal role=\"hg-ext"
@@ -11569,7 +10655,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1148
+#: ../en/ch09-hook.xml:1140
 msgid ""
 "What this means is that the committer's address, <literal>john.q."
 "public@example.com</literal>, is not a valid Bugzilla user name, nor does it "
@@ -11578,13 +10664,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1158
+#: ../en/ch09-hook.xml:1150
 msgid ""
 "<literal role=\"hg-ext\">notify</literal>&emdash;send email notifications"
 msgstr "<literal role=\"hg-ext\">notify</literal>&emdash;邮件通知"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1161
+#: ../en/ch09-hook.xml:1153
 msgid ""
 "Although Mercurial's built-in web server provides RSS feeds of changes in "
 "every repository, many people prefer to receive change notifications via "
@@ -11594,7 +10680,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1169
+#: ../en/ch09-hook.xml:1161
 msgid ""
 "As with the <literal role=\"hg-ext\">bugzilla</literal> hook, the <literal "
 "role=\"hg-ext\">notify</literal> hook is template-driven, so you can "
@@ -11602,7 +10688,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1175
+#: ../en/ch09-hook.xml:1167
 msgid ""
 "By default, the <literal role=\"hg-ext\">notify</literal> hook includes a "
 "diff of every changeset that it sends out; you can limit the size of the "
@@ -11611,12 +10697,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:1183
+#: ../en/ch09-hook.xml:1175
 msgid "Configuring the <literal role=\"hg-ext\">notify</literal> hook"
 msgstr "配置 <literal role=\"hg-ext\">notify</literal> 钩子"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1186
+#: ../en/ch09-hook.xml:1178
 msgid ""
 "You can set up the <literal role=\"hg-ext\">notify</literal> hook to send one "
 "email message per incoming changeset, or one per incoming group of changesets "
@@ -11624,15 +10710,15 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1197
+#: ../en/ch09-hook.xml:1190
 msgid ""
 "Configuration information for this hook lives in the <literal role=\"rc-notify"
-"\">notify</literal> section of a <filename role=\"special\"> /.hgrc</filename>"
-"\\ file."
+"\">notify</literal> section of a <filename role=\"special\">~/.hgrc</"
+"filename> file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1202
+#: ../en/ch09-hook.xml:1195
 msgid ""
 "<envar role=\"rc-item-notify\">test</envar>: By default, this hook does not "
 "send out email at all; instead, it prints the message that it "
@@ -11644,17 +10730,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1214
+#: ../en/ch09-hook.xml:1207
 msgid ""
 "<envar role=\"rc-item-notify\">config</envar>: The path to a configuration "
 "file that contains subscription information.  This is kept separate from the "
-"main <filename role=\"special\"> /.hgrc</filename>\\ so that you can maintain "
+"main <filename role=\"special\">~/.hgrc</filename> so that you can maintain "
 "it in a repository of its own.  People can then clone that repository, update "
 "their subscriptions, and push the changes back to your server."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1223
+#: ../en/ch09-hook.xml:1216
 msgid ""
 "<envar role=\"rc-item-notify\">strip</envar>: The number of leading path "
 "separator characters to strip from a repository's path, when deciding whether "
@@ -11669,7 +10755,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1240
+#: ../en/ch09-hook.xml:1233
 msgid ""
 "<envar role=\"rc-item-notify\">template</envar>: The template text to use "
 "when sending messages.  This specifies both the contents of the message "
@@ -11677,7 +10763,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1246
+#: ../en/ch09-hook.xml:1239
 msgid ""
 "<envar role=\"rc-item-notify\">maxdiff</envar>: The maximum number of lines "
 "of diff data to append to the end of a message.  If a diff is longer than "
@@ -11686,7 +10772,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1255
+#: ../en/ch09-hook.xml:1248
 msgid ""
 "<envar role=\"rc-item-notify\">sources</envar>: A list of sources of "
 "changesets to consider.  This lets you limit <literal role=\"hg-ext\">notify</"
@@ -11696,7 +10782,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1267
+#: ../en/ch09-hook.xml:1260
 msgid ""
 "If you set the <envar role=\"rc-item-web\">baseurl</envar> item in the "
 "<literal role=\"rc-web\">web</literal> section, you can use it in a template; "
@@ -11704,19 +10790,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1273
+#: ../en/ch09-hook.xml:1266
 msgid ""
 "Here is an example set of <literal role=\"hg-ext\">notify</literal> "
 "configuration information."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1289
+#: ../en/ch09-hook.xml:1272
 msgid "This will produce a message that looks like the following:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1310
+#: ../en/ch09-hook.xml:1282
 msgid ""
 "Do not forget that by default, the <literal role=\"hg-ext\">notify</literal> "
 "extension <emphasis>will not send any mail</emphasis> until you explicitly "
@@ -11726,22 +10812,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:1322
+#: ../en/ch09-hook.xml:1294
 msgid "Information for writers of hooks"
 msgstr "编写钩子的信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1325
+#: ../en/ch09-hook.xml:1297
 msgid "In-process hook execution"
 msgstr "进程内钩子的执行"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1327
+#: ../en/ch09-hook.xml:1299
 msgid "An in-process hook is called with arguments of the following form:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1333
+#: ../en/ch09-hook.xml:1303
 msgid ""
 "The <literal>ui</literal> parameter is a <literal role=\"py-mod-mercurial.ui"
 "\">ui</literal> object. The <literal>repo</literal> parameter is a <literal "
@@ -11751,7 +10837,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1342
+#: ../en/ch09-hook.xml:1312
 msgid ""
 "If a parameter is named <literal>node</literal> or <literal>parentN</"
 "literal>, it will contain a hexadecimal changeset ID. The empty string is "
@@ -11760,21 +10846,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1349
+#: ../en/ch09-hook.xml:1319
 msgid ""
 "If a parameter is named <literal>url</literal>, it will contain the URL of a "
 "remote repository, if that can be determined."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1354
+#: ../en/ch09-hook.xml:1324
 msgid ""
 "Boolean-valued parameters are represented as Python <literal>bool</literal> "
 "objects."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1359
+#: ../en/ch09-hook.xml:1329
 msgid ""
 "An in-process hook is called without a change to the process's working "
 "directory (unlike external hooks, which are run in the root of the "
@@ -11783,7 +10869,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1366
+#: ../en/ch09-hook.xml:1336
 msgid ""
 "If a hook returns a boolean <quote>false</quote> value, it is considered to "
 "have succeeded.  If it returns a boolean <quote>true</quote> value or raises "
@@ -11792,20 +10878,20 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1373
+#: ../en/ch09-hook.xml:1343
 msgid ""
 "Note that changeset IDs are passed into Python hooks as hexadecimal strings, "
 "not the binary hashes that Mercurial's APIs normally use.  To convert a hash "
-"from hex to binary, use the \\pymodfunc{mercurial.node}{bin} function."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1381
+"from hex to binary, use the <literal>bin</literal> function."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><title>
+#: ../en/ch09-hook.xml:1351
 msgid "External hook execution"
 msgstr "外部钩子的执行"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1383
+#: ../en/ch09-hook.xml:1353
 msgid ""
 "An external hook is passed to the shell of the user running Mercurial. "
 "Features of that shell, such as variable substitution and command "
@@ -11815,7 +10901,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1391
+#: ../en/ch09-hook.xml:1361
 msgid ""
 "Hook parameters are passed to the hook as environment variables.  Each "
 "environment variable's name is converted in upper case and prefixed with the "
@@ -11826,7 +10912,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1400
+#: ../en/ch09-hook.xml:1370
 msgid ""
 "A boolean parameter is represented as the string <quote><literal>1</literal></"
 "quote> for <quote>true</quote>, <quote><literal>0</literal></quote> for "
@@ -11839,19 +10925,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1412
+#: ../en/ch09-hook.xml:1382
 msgid ""
 "If a hook exits with a status of zero, it is considered to have succeeded.  "
 "If it exits with a non-zero status, it is considered to have failed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1419
+#: ../en/ch09-hook.xml:1389
 msgid "Finding out where changesets come from"
 msgstr "检查修改集来自何处"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1421
+#: ../en/ch09-hook.xml:1391
 msgid ""
 "A hook that involves the transfer of changesets between a local repository "
 "and another may be able to find out information about the <quote>far side</"
@@ -11861,12 +10947,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:1430
+#: ../en/ch09-hook.xml:1400
 msgid "Sources of changesets"
 msgstr "修改集的来源"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1432
+#: ../en/ch09-hook.xml:1402
 msgid ""
 "Mercurial will tell a hook what means are, or were, used to transfer "
 "changesets between repositories.  This is provided by Mercurial in a Python "
@@ -11875,40 +10961,40 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1440
+#: ../en/ch09-hook.xml:1410
 msgid ""
 "<literal>serve</literal>: Changesets are transferred to or from a remote "
 "repository over http or ssh."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1445
+#: ../en/ch09-hook.xml:1415
 msgid ""
 "<literal>pull</literal>: Changesets are being transferred via a pull from one "
 "repository into another."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1450
+#: ../en/ch09-hook.xml:1420
 msgid ""
 "<literal>push</literal>: Changesets are being transferred via a push from one "
 "repository into another."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1455
+#: ../en/ch09-hook.xml:1425
 msgid ""
 "<literal>bundle</literal>: Changesets are being transferred to or from a "
 "bundle."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch10-hook.xml:1462
+#: ../en/ch09-hook.xml:1432
 msgid "Where changes are going&emdash;remote repository URLs"
 msgstr "修改集要到哪里&emdash;远程版本库的地址"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1465
+#: ../en/ch09-hook.xml:1435
 msgid ""
 "When possible, Mercurial will tell a hook the location of the <quote>far "
 "side</quote> of an activity that transfers changeset data between "
@@ -11918,7 +11004,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch10-hook.xml:1473
+#: ../en/ch09-hook.xml:1443
 msgid ""
 "This information is not always known.  If a hook is invoked in a repository "
 "that is being served via http or ssh, Mercurial cannot tell where the remote "
@@ -11927,14 +11013,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1480
+#: ../en/ch09-hook.xml:1450
 msgid ""
 "<literal>remote:ssh:1.2.3.4</literal>&emdash;remote ssh client, at the IP "
 "address <literal>1.2.3.4</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1485
+#: ../en/ch09-hook.xml:1455
 msgid ""
 "<literal>remote:http:1.2.3.4</literal>&emdash;remote http client, at the IP "
 "address <literal>1.2.3.4</literal>.  If the client is using SSL, this will be "
@@ -11942,24 +11028,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1492
+#: ../en/ch09-hook.xml:1462
 msgid "Empty&emdash;no information could be discovered about the remote client."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch10-hook.xml:1501
+#: ../en/ch09-hook.xml:1471
 msgid "Hook reference"
 msgstr "钩子参考"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1504
+#: ../en/ch09-hook.xml:1474
 msgid ""
 "<literal role=\"hook\">changegroup</literal>&emdash;after remote changesets "
 "added"
 msgstr "<literal role=\"hook\">changegroup</literal>&emdash;增加远程修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1507
+#: ../en/ch09-hook.xml:1477
 msgid ""
 "This hook is run after a group of pre-existing changesets has been added to "
 "the repository, for example via a <command role=\"hg-cmd\">hg pull</command> "
@@ -11970,7 +11056,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1517
+#: ../en/ch09-hook.xml:1487
 msgid ""
 "Some possible uses for this hook include kicking off an automated build or "
 "test of the added changesets, updating a bug database, or notifying "
@@ -11978,42 +11064,41 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1523 ../en/ch10-hook.xml:1564 ../en/ch10-hook.xml:1607
-#: ../en/ch10-hook.xml:1649 ../en/ch10-hook.xml:1704 ../en/ch10-hook.xml:1744
-#: ../en/ch10-hook.xml:1780 ../en/ch10-hook.xml:1815 ../en/ch10-hook.xml:1877
-#: ../en/ch10-hook.xml:1935 ../en/ch10-hook.xml:1969 ../en/ch10-hook.xml:1997
+#: ../en/ch09-hook.xml:1493 ../en/ch09-hook.xml:1533 ../en/ch09-hook.xml:1576
+#: ../en/ch09-hook.xml:1618 ../en/ch09-hook.xml:1673 ../en/ch09-hook.xml:1713
+#: ../en/ch09-hook.xml:1749 ../en/ch09-hook.xml:1784 ../en/ch09-hook.xml:1846
+#: ../en/ch09-hook.xml:1904 ../en/ch09-hook.xml:1938 ../en/ch09-hook.xml:1966
 msgid "Parameters to this hook:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1526 ../en/ch10-hook.xml:1880
+#: ../en/ch09-hook.xml:1496 ../en/ch09-hook.xml:1849
 msgid ""
 "<literal>node</literal>: A changeset ID.  The changeset ID of the first "
 "changeset in the group that was added.  All changesets between this and "
-"\\index{tags!<literal>tip</literal>}<literal>tip</literal>, inclusive, were "
-"added by a single <command role=\"hg-cmd\">hg pull</command>, <command role="
-"\"hg-cmd\">hg push</command> or <command role=\"hg-cmd\">hg unbundle</"
-"command>."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1536 ../en/ch10-hook.xml:1614 ../en/ch10-hook.xml:1707
-#: ../en/ch10-hook.xml:1890
+"<literal role=\"tag\">tip</literal>, inclusive, were added by a single "
+"<command role=\"hg-cmd\">hg pull</command>, <command role=\"hg-cmd\">hg push</"
+"command> or <command role=\"hg-cmd\">hg unbundle</command>."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
+#: ../en/ch09-hook.xml:1505 ../en/ch09-hook.xml:1583 ../en/ch09-hook.xml:1676
+#: ../en/ch09-hook.xml:1859
 msgid ""
 "<literal>source</literal>: A string.  The source of these changes.  See "
 "section <xref linkend=\"sec.hook.sources\"/> for details."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1541 ../en/ch10-hook.xml:1619 ../en/ch10-hook.xml:1670
-#: ../en/ch10-hook.xml:1712 ../en/ch10-hook.xml:1794 ../en/ch10-hook.xml:1895
+#: ../en/ch09-hook.xml:1510 ../en/ch09-hook.xml:1588 ../en/ch09-hook.xml:1639
+#: ../en/ch09-hook.xml:1681 ../en/ch09-hook.xml:1763 ../en/ch09-hook.xml:1864
 msgid ""
 "<literal>url</literal>: A URL.  The location of the remote repository, if "
 "known.  See section <xref linkend=\"sec.hook.url\"/> for more information."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1548
+#: ../en/ch09-hook.xml:1517
 msgid ""
 "See also: <literal role=\"hook\">incoming</literal> (section <xref linkend="
 "\"sec.hook.incoming\"/>), <literal role=\"hook\">prechangegroup</literal> "
@@ -12023,40 +11108,40 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1558
+#: ../en/ch09-hook.xml:1527
 msgid ""
 "<literal role=\"hook\">commit</literal>&emdash;after a new changeset is "
 "created"
 msgstr "<literal role=\"hook\">commit</literal>&emdash;创建新修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1561
+#: ../en/ch09-hook.xml:1530
 msgid "This hook is run after a new changeset has been created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1567 ../en/ch10-hook.xml:1938
+#: ../en/ch09-hook.xml:1536 ../en/ch09-hook.xml:1907
 msgid ""
 "<literal>node</literal>: A changeset ID.  The changeset ID of the newly "
 "committed changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1571 ../en/ch10-hook.xml:1942
+#: ../en/ch09-hook.xml:1540 ../en/ch09-hook.xml:1911
 msgid ""
 "<literal>parent1</literal>: A changeset ID.  The changeset ID of the first "
 "parent of the newly committed changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1576 ../en/ch10-hook.xml:1947
+#: ../en/ch09-hook.xml:1545 ../en/ch09-hook.xml:1916
 msgid ""
 "<literal>parent2</literal>: A changeset ID.  The changeset ID of the second "
 "parent of the newly committed changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1582
+#: ../en/ch09-hook.xml:1551
 msgid ""
 "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend="
 "\"sec.hook.precommit\"/>), <literal role=\"hook\">pretxncommit</literal> "
@@ -12064,14 +11149,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1590
+#: ../en/ch09-hook.xml:1559
 msgid ""
 "<literal role=\"hook\">incoming</literal>&emdash;after one remote changeset "
 "is added"
 msgstr "<literal role=\"hook\">incoming</literal>&emdash;增加远程修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1593
+#: ../en/ch09-hook.xml:1562
 msgid ""
 "This hook is run after a pre-existing changeset has been added to the "
 "repository, for example via a <command role=\"hg-cmd\">hg push</command>.  If "
@@ -12080,7 +11165,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1600
+#: ../en/ch09-hook.xml:1569
 msgid ""
 "You can use this hook for the same purposes as the <literal role=\"hook"
 "\">changegroup</literal> hook (section <xref linkend=\"sec.hook.changegroup\"/"
@@ -12089,13 +11174,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1610
+#: ../en/ch09-hook.xml:1579
 msgid ""
 "<literal>node</literal>: A changeset ID.  The ID of the newly added changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1626
+#: ../en/ch09-hook.xml:1595
 msgid ""
 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend="
 "\"sec.hook.changegroup\"/>) <literal role=\"hook\">prechangegroup</literal> "
@@ -12105,14 +11190,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1636
+#: ../en/ch09-hook.xml:1605
 msgid ""
 "<literal role=\"hook\">outgoing</literal>&emdash;after changesets are "
 "propagated"
 msgstr "<literal role=\"hook\">outgoing</literal>&emdash;传播修改集之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1639
+#: ../en/ch09-hook.xml:1608
 msgid ""
 "This hook is run after a group of changesets has been propagated out of this "
 "repository, for example by a <command role=\"hg-cmd\">hg push</command> or "
@@ -12120,21 +11205,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1645
+#: ../en/ch09-hook.xml:1614
 msgid ""
 "One possible use for this hook is to notify administrators that changes have "
 "been pulled."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1652
+#: ../en/ch09-hook.xml:1621
 msgid ""
 "<literal>node</literal>: A changeset ID.  The changeset ID of the first "
 "changeset of the group that was sent."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1657
+#: ../en/ch09-hook.xml:1626
 msgid ""
 "<literal>source</literal>: A string.  The source of the of the operation (see "
 "section <xref linkend=\"sec.hook.sources\"/>).  If a remote client pulled "
@@ -12146,14 +11231,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1677
+#: ../en/ch09-hook.xml:1646
 msgid ""
 "See also: <literal role=\"hook\">preoutgoing</literal> (section <xref linkend="
 "\"sec.hook.preoutgoing\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1683
+#: ../en/ch09-hook.xml:1652
 msgid ""
 "<literal role=\"hook\">prechangegroup</literal>&emdash;before starting to add "
 "remote changesets"
@@ -12161,14 +11246,14 @@
 "<literal role=\"hook\">prechangegroup</literal>&emdash;增加远程修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1687
+#: ../en/ch09-hook.xml:1656
 msgid ""
 "This controlling hook is run before Mercurial begins to add a group of "
 "changesets from another repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1691
+#: ../en/ch09-hook.xml:1660
 msgid ""
 "This hook does not have any information about the changesets to be added, "
 "because it is run before transmission of those changesets is allowed to "
@@ -12176,7 +11261,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1697
+#: ../en/ch09-hook.xml:1666
 msgid ""
 "One use for this hook is to prevent external changes from being added to a "
 "repository.  For example, you could use this to <quote>freeze</quote> a "
@@ -12185,7 +11270,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1719
+#: ../en/ch09-hook.xml:1688
 msgid ""
 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend="
 "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> "
@@ -12195,14 +11280,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1729
+#: ../en/ch09-hook.xml:1698
 msgid ""
 "<literal role=\"hook\">precommit</literal>&emdash;before starting to commit a "
 "changeset"
 msgstr "<literal role=\"hook\">precommit</literal>&emdash;提交修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1732
+#: ../en/ch09-hook.xml:1701
 msgid ""
 "This hook is run before Mercurial begins to commit a new changeset. It is run "
 "before Mercurial has any of the metadata for the commit, such as the files to "
@@ -12210,7 +11295,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1738
+#: ../en/ch09-hook.xml:1707
 msgid ""
 "One use for this hook is to disable the ability to commit new changesets, "
 "while still allowing incoming changesets.  Another is to run a build or test, "
@@ -12218,28 +11303,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1747
+#: ../en/ch09-hook.xml:1716
 msgid ""
 "<literal>parent1</literal>: A changeset ID.  The changeset ID of the first "
 "parent of the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1752
+#: ../en/ch09-hook.xml:1721
 msgid ""
 "<literal>parent2</literal>: A changeset ID.  The changeset ID of the second "
 "parent of the working directory."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1757
+#: ../en/ch09-hook.xml:1726
 msgid ""
 "If the commit proceeds, the parents of the working directory will become the "
 "parents of the new changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1761
+#: ../en/ch09-hook.xml:1730
 msgid ""
 "See also: <literal role=\"hook\">commit</literal> (section <xref linkend="
 "\"sec.hook.commit\"/>), <literal role=\"hook\">pretxncommit</literal> "
@@ -12247,28 +11332,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1769
+#: ../en/ch09-hook.xml:1738
 msgid ""
 "<literal role=\"hook\">preoutgoing</literal>&emdash;before starting to "
 "propagate changesets"
 msgstr "<literal role=\"hook\">preoutgoing</literal>&emdash;传播修改集之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1772
+#: ../en/ch09-hook.xml:1741
 msgid ""
 "This hook is invoked before Mercurial knows the identities of the changesets "
 "to be transmitted."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1776
+#: ../en/ch09-hook.xml:1745
 msgid ""
 "One use for this hook is to prevent changes from being transmitted to another "
 "repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1783
+#: ../en/ch09-hook.xml:1752
 msgid ""
 "<literal>source</literal>: A string.  The source of the operation that is "
 "attempting to obtain changes from this repository (see section <xref linkend="
@@ -12279,27 +11364,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1801
+#: ../en/ch09-hook.xml:1770
 msgid ""
 "See also: <literal role=\"hook\">outgoing</literal> (section <xref linkend="
 "\"sec.hook.outgoing\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1807
+#: ../en/ch09-hook.xml:1776
 msgid ""
 "<literal role=\"hook\">pretag</literal>&emdash;before tagging a changeset"
 msgstr "<literal role=\"hook\">pretag</literal>&emdash;创建标签之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1810
+#: ../en/ch09-hook.xml:1779
 msgid ""
 "This controlling hook is run before a tag is created.  If the hook succeeds, "
 "creation of the tag proceeds.  If the hook fails, the tag is not created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1818
+#: ../en/ch09-hook.xml:1787
 msgid ""
 "<literal>local</literal>: A boolean.  Whether the tag is local to this "
 "repository instance (i.e. stored in <filename role=\"special\">.hg/localtags</"
@@ -12308,19 +11393,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1825
+#: ../en/ch09-hook.xml:1794
 msgid ""
 "<literal>node</literal>: A changeset ID.  The ID of the changeset to be "
 "tagged."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1829
+#: ../en/ch09-hook.xml:1798
 msgid "<literal>tag</literal>: A string.  The name of the tag to be created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1834
+#: ../en/ch09-hook.xml:1803
 msgid ""
 "If the tag to be created is revision-controlled, the <literal role=\"hook"
 "\">precommit</literal> and <literal role=\"hook\">pretxncommit</literal> "
@@ -12329,14 +11414,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1841
+#: ../en/ch09-hook.xml:1810
 msgid ""
 "See also: <literal role=\"hook\">tag</literal> (section <xref linkend=\"sec."
 "hook.tag\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1846
+#: ../en/ch09-hook.xml:1815
 msgid ""
 "<literal role=\"hook\">pretxnchangegroup</literal>&emdash;before completing "
 "addition of remote changesets"
@@ -12345,7 +11430,7 @@
 "前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1850
+#: ../en/ch09-hook.xml:1819
 msgid ""
 "This controlling hook is run before a transaction&emdash;that manages the "
 "addition of a group of new changesets from outside the repository&emdash;"
@@ -12355,7 +11440,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1859
+#: ../en/ch09-hook.xml:1828
 msgid ""
 "This hook can access the metadata associated with the almost-added "
 "changesets, but it should not do anything permanent with this data. It must "
@@ -12363,7 +11448,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1865
+#: ../en/ch09-hook.xml:1834
 msgid ""
 "While this hook is running, if other Mercurial processes access this "
 "repository, they will be able to see the almost-added changesets as if they "
@@ -12372,7 +11457,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1872
+#: ../en/ch09-hook.xml:1841
 msgid ""
 "This hook can be used to automatically vet a group of changesets.  If the "
 "hook fails, all of the changesets are <quote>rejected</quote> when the "
@@ -12380,7 +11465,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1902
+#: ../en/ch09-hook.xml:1871
 msgid ""
 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend="
 "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> "
@@ -12390,14 +11475,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1912
+#: ../en/ch09-hook.xml:1881
 msgid ""
 "<literal role=\"hook\">pretxncommit</literal>&emdash;before completing commit "
 "of new changeset"
 msgstr "<literal role=\"hook\">pretxncommit</literal>&emdash;完成提交之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1915
+#: ../en/ch09-hook.xml:1884
 msgid ""
 "This controlling hook is run before a transaction&emdash;that manages a new "
 "commit&emdash;completes.  If the hook succeeds, the transaction completes and "
@@ -12406,7 +11491,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1923
+#: ../en/ch09-hook.xml:1892
 msgid ""
 "This hook can access the metadata associated with the almost-new changeset, "
 "but it should not do anything permanent with this data.  It must also not "
@@ -12414,7 +11499,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1929
+#: ../en/ch09-hook.xml:1898
 msgid ""
 "While this hook is running, if other Mercurial processes access this "
 "repository, they will be able to see the almost-new changeset as if it is "
@@ -12423,14 +11508,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1953
+#: ../en/ch09-hook.xml:1922
 msgid ""
 "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend="
 "\"sec.hook.precommit\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1959
+#: ../en/ch09-hook.xml:1928
 msgid ""
 "<literal role=\"hook\">preupdate</literal>&emdash;before updating or merging "
 "working directory"
@@ -12438,7 +11523,7 @@
 "<literal role=\"hook\">preupdate</literal>&emdash;更新或合并工作目录之前"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1962
+#: ../en/ch09-hook.xml:1931
 msgid ""
 "This controlling hook is run before an update or merge of the working "
 "directory begins.  It is run only if Mercurial's normal pre-update checks "
@@ -12447,7 +11532,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1972
+#: ../en/ch09-hook.xml:1941
 msgid ""
 "<literal>parent1</literal>: A changeset ID.  The ID of the parent that the "
 "working directory is to be updated to.  If the working directory is being "
@@ -12455,7 +11540,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:1978
+#: ../en/ch09-hook.xml:1947
 msgid ""
 "<literal>parent2</literal>: A changeset ID.  Only set if the working "
 "directory is being merged.  The ID of the revision that the working directory "
@@ -12463,24 +11548,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1985
+#: ../en/ch09-hook.xml:1954
 msgid ""
 "See also: <literal role=\"hook\">update</literal> (section <xref linkend="
 "\"sec.hook.update\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:1991
+#: ../en/ch09-hook.xml:1960
 msgid "<literal role=\"hook\">tag</literal>&emdash;after tagging a changeset"
 msgstr "<literal role=\"hook\">tag</literal>&emdash;创建标签之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:1994
+#: ../en/ch09-hook.xml:1963
 msgid "This hook is run after a tag has been created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2000
+#: ../en/ch09-hook.xml:1969
 msgid ""
 "<literal>local</literal>: A boolean.  Whether the new tag is local to this "
 "repository instance (i.e.  stored in <filename role=\"special\">.hg/"
@@ -12489,19 +11574,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2008
+#: ../en/ch09-hook.xml:1977
 msgid ""
 "<literal>node</literal>: A changeset ID.  The ID of the changeset that was "
 "tagged."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2012
+#: ../en/ch09-hook.xml:1981
 msgid "<literal>tag</literal>: A string.  The name of the tag that was created."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:2017
+#: ../en/ch09-hook.xml:1986
 msgid ""
 "If the created tag is revision-controlled, the <literal role=\"hook\">commit</"
 "literal> hook (section <xref linkend=\"sec.hook.commit\"/>) is run before "
@@ -12509,21 +11594,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:2022
+#: ../en/ch09-hook.xml:1991
 msgid ""
 "See also: <literal role=\"hook\">pretag</literal> (section <xref linkend="
 "\"sec.hook.pretag\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch10-hook.xml:2028
+#: ../en/ch09-hook.xml:1997
 msgid ""
 "<literal role=\"hook\">update</literal>&emdash;after updating or merging "
 "working directory"
 msgstr "<literal role=\"hook\">update</literal>&emdash;更新或合并工作目录之后"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:2031
+#: ../en/ch09-hook.xml:2000
 msgid ""
 "This hook is run after an update or merge of the working directory "
 "completes.  Since a merge can fail (if the external <command>hgmerge</"
@@ -12532,14 +11617,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2039
+#: ../en/ch09-hook.xml:2008
 msgid ""
 "<literal>error</literal>: A boolean.  Indicates whether the update or merge "
 "completed successfully."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2044
+#: ../en/ch09-hook.xml:2013
 msgid ""
 "<literal>parent1</literal>: A changeset ID.  The ID of the parent that the "
 "working directory was updated to.  If the working directory was merged, it "
@@ -12547,7 +11632,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch10-hook.xml:2050
+#: ../en/ch09-hook.xml:2019
 msgid ""
 "<literal>parent2</literal>: A changeset ID.  Only set if the working "
 "directory was merged.  The ID of the revision that the working directory was "
@@ -12555,19 +11640,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch10-hook.xml:2056
+#: ../en/ch09-hook.xml:2025
 msgid ""
 "See also: <literal role=\"hook\">preupdate</literal> (section <xref linkend="
 "\"sec.hook.preupdate\"/>)"
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch11-template.xml:5
+#: ../en/ch10-template.xml:5
 msgid "Customising the output of Mercurial"
 msgstr "定制 Mercurial 的输出"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch11-template.xml:7
+#: ../en/ch10-template.xml:7
 msgid ""
 "Mercurial provides a powerful mechanism to let you control how it displays "
 "information.  The mechanism is based on templates.  You can use templates to "
@@ -12576,12 +11661,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:14
+#: ../en/ch10-template.xml:14
 msgid "Using precanned output styles"
 msgstr "使用预定义的输出样式"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:16
+#: ../en/ch10-template.xml:16
 msgid ""
 "Packaged with Mercurial are some output styles that you can use immediately.  "
 "A style is simply a precanned template that someone wrote and installed "
@@ -12589,14 +11674,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:21
+#: ../en/ch10-template.xml:21
 msgid ""
 "Before we take a look at Mercurial's bundled styles, let's review its normal "
 "output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:26
+#: ../en/ch10-template.xml:26
 msgid ""
 "This is somewhat informative, but it takes up a lot of space&emdash;five "
 "lines of output per changeset.  The <literal>compact</literal> style reduces "
@@ -12604,7 +11689,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:33
+#: ../en/ch10-template.xml:33
 msgid ""
 "The <literal>changelog</literal> style hints at the expressive power of "
 "Mercurial's templating engine.  This style attempts to follow the GNU "
@@ -12612,27 +11697,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:40
+#: ../en/ch10-template.xml:40
 msgid ""
 "You will not be shocked to learn that Mercurial's default output style is "
 "named <literal>default</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:44
+#: ../en/ch10-template.xml:44
 msgid "Setting a default style"
 msgstr "设置默认样式"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:46
+#: ../en/ch10-template.xml:46
 msgid ""
 "You can modify the output style that Mercurial will use for every command by "
-"editing your <filename role=\"special\"> /.hgrc</filename>\\ file, naming the "
+"editing your <filename role=\"special\">~/.hgrc</filename> file, naming the "
 "style you would prefer to use."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:53
+#: ../en/ch10-template.xml:54
 msgid ""
 "If you write a style of your own, you can use it by either providing the path "
 "to your style file, or copying your style file into a location where "
@@ -12641,12 +11726,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:62
+#: ../en/ch10-template.xml:63
 msgid "Commands that support styles and templates"
 msgstr "支持样式和模版的命令"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:64
+#: ../en/ch10-template.xml:65
 msgid ""
 "All of Mercurial's <quote><literal>log</literal>-like</quote> commands let "
 "you use styles and templates: <command role=\"hg-cmd\">hg incoming</command>, "
@@ -12655,7 +11740,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:71
+#: ../en/ch10-template.xml:72
 msgid ""
 "As I write this manual, these are so far the only commands that support "
 "styles and templates.  Since these are the most important commands that need "
@@ -12664,12 +11749,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:79
+#: ../en/ch10-template.xml:80
 msgid "The basics of templating"
 msgstr "模版基础"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:81
+#: ../en/ch10-template.xml:82
 msgid ""
 "At its simplest, a Mercurial template is a piece of text.  Some of the text "
 "never changes, while other parts are <emphasis>expanded</emphasis>, or "
@@ -12677,20 +11762,20 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:86
+#: ../en/ch10-template.xml:87
 msgid ""
 "Before we continue, let's look again at a simple example of Mercurial's "
 "normal output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:91
+#: ../en/ch10-template.xml:92
 msgid ""
 "Now, let's run the same command, but using a template to change its output."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:96
+#: ../en/ch10-template.xml:97
 msgid ""
 "The example above illustrates the simplest possible template; it's just a "
 "piece of static text, printed once for each changeset.  The <option role=\"hg-"
@@ -12700,7 +11785,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:104
+#: ../en/ch10-template.xml:105
 msgid ""
 "Notice that the template string above ends with the text <quote><literal>\\n</"
 "literal></quote>.  This is an <emphasis>escape sequence</emphasis>, telling "
@@ -12710,14 +11795,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:112
+#: ../en/ch10-template.xml:113
 msgid ""
 "A template that prints a fixed string of text all the time isn't very useful; "
 "let's try something a bit more complex."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:118
+#: ../en/ch10-template.xml:119
 msgid ""
 "As you can see, the string <quote><literal>{desc}</literal></quote> in the "
 "template has been replaced in the output with the description of each "
@@ -12729,25 +11814,25 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:131
+#: ../en/ch10-template.xml:132
 msgid "Common template keywords"
 msgstr "模版关键字"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:133
+#: ../en/ch10-template.xml:134
 msgid ""
 "You can start writing simple templates immediately using the keywords below."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:137
+#: ../en/ch10-template.xml:138
 msgid ""
 "<literal role=\"template-keyword\">author</literal>: String.  The unmodified "
 "author of the changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:141
+#: ../en/ch10-template.xml:142
 msgid ""
 "<literal role=\"template-keyword\">branches</literal>: String.  The name of "
 "the branch on which the changeset was committed.  Will be empty if the branch "
@@ -12755,7 +11840,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:147
+#: ../en/ch10-template.xml:148
 msgid ""
 "<literal role=\"template-keyword\">date</literal>: Date information.  The "
 "date when the changeset was committed.  This is <emphasis>not</emphasis> "
@@ -12767,70 +11852,70 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:158
+#: ../en/ch10-template.xml:159
 msgid ""
 "<literal role=\"template-keyword\">desc</literal>: String.  The text of the "
 "changeset description."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:161
+#: ../en/ch10-template.xml:162
 msgid ""
 "<literal role=\"template-keyword\">files</literal>: List of strings.  All "
 "files modified, added, or removed by this changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:166
+#: ../en/ch10-template.xml:167
 msgid ""
 "<literal role=\"template-keyword\">file_adds</literal>: List of strings.  "
 "Files added by this changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:170
+#: ../en/ch10-template.xml:171
 msgid ""
 "<literal role=\"template-keyword\">file_dels</literal>: List of strings.  "
 "Files removed by this changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:174
+#: ../en/ch10-template.xml:175
 msgid ""
 "<literal role=\"template-keyword\">node</literal>: String.  The changeset "
 "identification hash, as a 40-character hexadecimal string."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:178
+#: ../en/ch10-template.xml:179
 msgid ""
 "<literal role=\"template-keyword\">parents</literal>: List of strings.  The "
 "parents of the changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:182
+#: ../en/ch10-template.xml:183
 msgid ""
 "<literal role=\"template-keyword\">rev</literal>: Integer.  The repository-"
 "local changeset revision number."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:186
+#: ../en/ch10-template.xml:187
 msgid ""
 "<literal role=\"template-keyword\">tags</literal>: List of strings.  Any tags "
 "associated with the changeset."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:191
+#: ../en/ch10-template.xml:192
 msgid ""
 "A few simple experiments will show us what to expect when we use these "
 "keywords; you can see the results below."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:196
+#: ../en/ch10-template.xml:197
 msgid ""
 "As we noted above, the date keyword does not produce human-readable output, "
 "so we must treat it specially.  This involves using a <emphasis>filter</"
@@ -12839,12 +11924,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:206
+#: ../en/ch10-template.xml:207
 msgid "Escape sequences"
 msgstr "转义序列"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:208
+#: ../en/ch10-template.xml:209
 msgid ""
 "Mercurial's templating engine recognises the most commonly used escape "
 "sequences in strings.  When it sees a backslash (<quote><literal>\\</"
@@ -12853,48 +11938,48 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:215
-msgid ""
-"<literal>\\textbackslash\\textbackslash</literal>: Backslash, <quote><literal>"
-"\\</literal></quote>, ASCII 134."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:219
-msgid "<literal>\\textbackslash n</literal>: Newline, ASCII 12."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:222
-msgid "<literal>\\textbackslash r</literal>: Carriage return, ASCII 15."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:225
-msgid "<literal>\\textbackslash t</literal>: Tab, ASCII 11."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:228
-msgid "<literal>\\textbackslash v</literal>: Vertical tab, ASCII 13."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:231
-msgid ""
-"<literal>\\textbackslash {</literal>: Open curly brace, <quote><literal>{</"
-"literal></quote>, ASCII 173."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:235
-msgid ""
-"<literal>\\textbackslash }</literal>: Close curly brace, <quote><literal>}</"
-"literal></quote>, ASCII 175."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:240
+#: ../en/ch10-template.xml:216
+msgid ""
+"<literal>\\</literal>: Backslash, <quote><literal>\\</literal></quote>, ASCII "
+"134."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:220
+msgid "<literal>\\n</literal>: Newline, ASCII 12."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:223
+msgid "<literal>\\r</literal>: Carriage return, ASCII 15."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:226
+msgid "<literal>\\t</literal>: Tab, ASCII 11."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:229
+msgid "<literal>\\v</literal>: Vertical tab, ASCII 13."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:232
+msgid ""
+"<literal>{</literal>: Open curly brace, <quote><literal>{</literal></quote>, "
+"ASCII 173."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
+#: ../en/ch10-template.xml:236
+msgid ""
+"<literal>}</literal>: Close curly brace, <quote><literal>}</literal></quote>, "
+"ASCII 175."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch10-template.xml:241
 msgid ""
 "As indicated above, if you want the expansion of a template to contain a "
 "literal <quote><literal>\\</literal></quote>, <quote><literal>{</literal></"
@@ -12902,12 +11987,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:248
+#: ../en/ch10-template.xml:249
 msgid "Filtering keywords to change their results"
 msgstr "通过过滤关键字来修改输出结果"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:250
+#: ../en/ch10-template.xml:251
 msgid ""
 "Some of the results of template expansion are not immediately easy to use.  "
 "Mercurial lets you specify an optional chain of <emphasis>filters</emphasis> "
@@ -12917,7 +12002,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:257
+#: ../en/ch10-template.xml:258
 msgid ""
 "Below is a list of the most commonly used filters that Mercurial supports.  "
 "While some filters can be applied to any text, others can only be used in "
@@ -12926,7 +12011,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:264
+#: ../en/ch10-template.xml:265
 msgid ""
 "<literal role=\"template-filter\">addbreaks</literal>: Any text. Add an XHTML "
 "<quote><literal>&lt;br/&gt;</literal></quote> tag before the end of every "
@@ -12935,7 +12020,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:271
+#: ../en/ch10-template.xml:272
 msgid ""
 "<literal role=\"template-kw-filt-date\">age</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render the age of the date, "
@@ -12944,7 +12029,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:278
+#: ../en/ch10-template.xml:279
 msgid ""
 "<literal role=\"template-filter\">basename</literal>: Any text, but most "
 "useful for the <literal role=\"template-keyword\">files</literal> keyword and "
@@ -12954,7 +12039,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:287
+#: ../en/ch10-template.xml:288
 msgid ""
 "<literal role=\"template-kw-filt-date\">date</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render a date in a similar "
@@ -12964,7 +12049,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:295
+#: ../en/ch10-template.xml:296
 msgid ""
 "<literal role=\"template-kw-filt-author\">domain</literal>: Any text, but "
 "most useful for the <literal role=\"template-keyword\">author</literal> "
@@ -12975,7 +12060,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:305
+#: ../en/ch10-template.xml:306
 msgid ""
 "<literal role=\"template-kw-filt-author\">email</literal>: Any text, but most "
 "useful for the <literal role=\"template-keyword\">author</literal> keyword.  "
@@ -12985,7 +12070,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:314
+#: ../en/ch10-template.xml:315
 msgid ""
 "<literal role=\"template-filter\">escape</literal>: Any text.  Replace the "
 "special XML/XHTML characters <quote><literal>&amp;</literal></quote>, "
@@ -12994,7 +12079,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:322
+#: ../en/ch10-template.xml:323
 msgid ""
 "<literal role=\"template-filter\">fill68</literal>: Any text.  Wrap the text "
 "to fit in 68 columns.  This is useful before you pass text through the "
@@ -13003,21 +12088,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:330
+#: ../en/ch10-template.xml:331
 msgid ""
 "<literal role=\"template-filter\">fill76</literal>: Any text.  Wrap the text "
 "to fit in 76 columns."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:334
+#: ../en/ch10-template.xml:335
 msgid ""
 "<literal role=\"template-filter\">firstline</literal>: Any text.  Yield the "
 "first line of text, without any trailing newlines."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:339
+#: ../en/ch10-template.xml:340
 msgid ""
 "<literal role=\"template-kw-filt-date\">hgdate</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render the date as a pair of "
@@ -13026,7 +12111,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:346
+#: ../en/ch10-template.xml:347
 msgid ""
 "<literal role=\"template-kw-filt-date\">isodate</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render the date as a text "
@@ -13035,7 +12120,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:353
+#: ../en/ch10-template.xml:354
 msgid ""
 "<literal role=\"template-filter\">obfuscate</literal>: Any text, but most "
 "useful for the <literal role=\"template-keyword\">author</literal> keyword.  "
@@ -13044,7 +12129,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:361
+#: ../en/ch10-template.xml:362
 msgid ""
 "<literal role=\"template-kw-filt-author\">person</literal>: Any text, but "
 "most useful for the <literal role=\"template-keyword\">author</literal> "
@@ -13054,7 +12139,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:370
+#: ../en/ch10-template.xml:371
 msgid ""
 "<literal role=\"template-kw-filt-date\">rfc822date</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render a date using the same "
@@ -13063,7 +12148,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:377
+#: ../en/ch10-template.xml:378
 msgid ""
 "<literal role=\"template-kw-filt-node\">short</literal>: Changeset hash.  "
 "Yield the short form of a changeset hash, i.e. a 12-character hexadecimal "
@@ -13071,7 +12156,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:382
+#: ../en/ch10-template.xml:383
 msgid ""
 "<literal role=\"template-kw-filt-date\">shortdate</literal>: <literal role="
 "\"template-keyword\">date</literal> keyword.  Render the year, month, and day "
@@ -13080,21 +12165,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:388
+#: ../en/ch10-template.xml:389
 msgid ""
 "<literal role=\"template-filter\">strip</literal>: Any text.  Strip all "
 "leading and trailing whitespace from the string."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:392
+#: ../en/ch10-template.xml:393
 msgid ""
 "<literal role=\"template-filter\">tabindent</literal>: Any text.  Yield the "
 "text, with every line except the first starting with a tab character."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:397
+#: ../en/ch10-template.xml:398
 msgid ""
 "<literal role=\"template-filter\">urlescape</literal>: Any text.  Escape all "
 "characters that are considered <quote>special</quote> by URL parsers.  For "
@@ -13102,7 +12187,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:404
+#: ../en/ch10-template.xml:405
 msgid ""
 "<literal role=\"template-kw-filt-author\">user</literal>: Any text, but most "
 "useful for the <literal role=\"template-keyword\">author</literal> keyword.  "
@@ -13112,7 +12197,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch11-template.xml:417
+#: ../en/ch10-template.xml:418
 msgid ""
 "If you try to apply a filter to a piece of data that it cannot process, "
 "Mercurial will fail and print a Python exception.  For example, trying to run "
@@ -13122,12 +12207,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:426
+#: ../en/ch10-template.xml:427
 msgid "Combining filters"
 msgstr "组合过滤器"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:428
+#: ../en/ch10-template.xml:429
 msgid ""
 "It is easy to combine filters to yield output in the form you would like.  "
 "The following chain of filters tidies up a description, then makes sure that "
@@ -13137,7 +12222,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:437
+#: ../en/ch10-template.xml:438
 msgid ""
 "Note the use of <quote><literal>\\t</literal></quote> (a tab character) in "
 "the template to force the first line to be indented; this is necessary since "
@@ -13146,7 +12231,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:443
+#: ../en/ch10-template.xml:444
 msgid ""
 "Keep in mind that the order of filters in a chain is significant.  The first "
 "filter is applied to the result of the keyword; the second to the result of "
@@ -13156,12 +12241,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:454
+#: ../en/ch10-template.xml:455
 msgid "From templates to styles"
 msgstr "从模版到样式"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:456
+#: ../en/ch10-template.xml:457
 msgid ""
 "A command line template provides a quick and simple way to format some "
 "output.  Templates can become verbose, though, and it's useful to be able to "
@@ -13170,7 +12255,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:461
+#: ../en/ch10-template.xml:462
 msgid ""
 "More than that, using a style file unlocks the power of Mercurial's "
 "templating engine in ways that are not possible using the command line "
@@ -13178,49 +12263,49 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:467
+#: ../en/ch10-template.xml:468
 msgid "The simplest of style files"
 msgstr "最简单的样式文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:469
+#: ../en/ch10-template.xml:470
 msgid "Our simple style file contains just one line:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:473
+#: ../en/ch10-template.xml:474
 msgid ""
 "This tells Mercurial, <quote>if you're printing a changeset, use the text on "
 "the right as the template</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:479
+#: ../en/ch10-template.xml:480
 msgid "Style file syntax"
 msgstr "样式文件语法"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:481
+#: ../en/ch10-template.xml:482
 msgid "The syntax rules for a style file are simple."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:484
+#: ../en/ch10-template.xml:485
 msgid "The file is processed one line at a time."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:487
+#: ../en/ch10-template.xml:488
 msgid "Leading and trailing white space are ignored."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:490
+#: ../en/ch10-template.xml:491
 msgid "Empty lines are skipped."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:492
+#: ../en/ch10-template.xml:493
 msgid ""
 "If a line starts with either of the characters <quote><literal>#</literal></"
 "quote> or <quote><literal>;</literal></quote>, the entire line is treated as "
@@ -13228,7 +12313,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:497
+#: ../en/ch10-template.xml:498
 msgid ""
 "A line starts with a keyword.  This must start with an alphabetic character "
 "or underscore, and can subsequently contain any alphanumeric character or "
@@ -13237,21 +12322,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:503
+#: ../en/ch10-template.xml:504
 msgid ""
 "The next element must be an <quote><literal>=</literal></quote> character, "
 "which can be preceded or followed by an arbitrary amount of white space."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:508
+#: ../en/ch10-template.xml:509
 msgid ""
 "If the rest of the line starts and ends with matching quote characters "
 "(either single or double quote), it is treated as a template body."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:512
+#: ../en/ch10-template.xml:513
 msgid ""
 "If the rest of the line <emphasis>does not</emphasis> start with a quote "
 "character, it is treated as the name of a file; the contents of this file "
@@ -13259,12 +12344,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch11-template.xml:521
+#: ../en/ch10-template.xml:522
 msgid "Style files by example"
 msgstr "样式文件例子"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch11-template.xml:523
+#: ../en/ch10-template.xml:524
 msgid ""
 "To illustrate how to write a style file, we will construct a few by example.  "
 "Rather than provide a complete style file and walk through it, we'll mirror "
@@ -13273,12 +12358,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:530
+#: ../en/ch10-template.xml:531
 msgid "Identifying mistakes in style files"
 msgstr "在样式文件中定位错误"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:532
+#: ../en/ch10-template.xml:533
 msgid ""
 "If Mercurial encounters a problem in a style file you are working on, it "
 "prints a terse error message that, once you figure out what it means, is "
@@ -13286,7 +12371,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:538
+#: ../en/ch10-template.xml:539
 msgid ""
 "Notice that <filename>broken.style</filename> attempts to define a "
 "<literal>changeset</literal> keyword, but forgets to give any content for it. "
@@ -13294,35 +12379,35 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:545
+#: ../en/ch10-template.xml:546
 msgid "This error message looks intimidating, but it is not too hard to follow."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:549
+#: ../en/ch10-template.xml:550
 msgid ""
 "The first component is simply Mercurial's way of saying <quote>I am giving "
 "up</quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:554
+#: ../en/ch10-template.xml:554
 msgid "Next comes the name of the style file that contains the error."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:560
+#: ../en/ch10-template.xml:558
 msgid ""
 "Following the file name is the line number where the error was encountered."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:565
+#: ../en/ch10-template.xml:562
 msgid "Finally, a description of what went wrong."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:570
+#: ../en/ch10-template.xml:566
 msgid ""
 "The description of the problem is not always clear (as in this case), but "
 "even when it is cryptic, it is almost always trivial to visually inspect the "
@@ -13330,12 +12415,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:578
+#: ../en/ch10-template.xml:574
 msgid "Uniquely identifying a repository"
 msgstr "版本库的唯一标识"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:580
+#: ../en/ch10-template.xml:576
 msgid ""
 "If you would like to be able to identify a Mercurial repository <quote>fairly "
 "uniquely</quote> using a short string as an identifier, you can use the first "
@@ -13343,21 +12428,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:587
+#: ../en/ch10-template.xml:583
 msgid ""
 "This is not guaranteed to be unique, but it is nevertheless useful in many "
 "cases."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:590
+#: ../en/ch10-template.xml:586
 msgid ""
 "It will not work in a completely empty repository, because such a repository "
 "does not have a revision zero."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:594
+#: ../en/ch10-template.xml:590
 msgid ""
 "Neither will it work in the (extremely rare)  case where a repository is a "
 "merge of two or more formerly independent repositories, and you still have "
@@ -13365,18 +12450,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:599
+#: ../en/ch10-template.xml:595
 msgid "Here are some uses to which you could put this identifier:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:602
+#: ../en/ch10-template.xml:598
 msgid ""
 "As a key into a table for a database that manages repositories on a server."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:605
+#: ../en/ch10-template.xml:601
 msgid ""
 "As half of a {<emphasis>repository ID</emphasis>, <emphasis>revision ID</"
 "emphasis>} tuple.  Save this information away when you run an automated build "
@@ -13385,13 +12470,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch11-template.xml:614
+#: ../en/ch10-template.xml:610
 msgid "Mimicking Subversion's output"
 msgstr "模仿 Subversion 的输出"
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:616
+#: ../en/ch10-template.xml:612
 msgid ""
 "Let's try to emulate the default output format used by another revision "
 "control tool, Subversion."
@@ -13399,7 +12484,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:621
+#: ../en/ch10-template.xml:617
 msgid ""
 "Since Subversion's output style is fairly simple, it is easy to copy-and-"
 "paste a hunk of its output into a file, and replace the text produced above "
@@ -13407,14 +12492,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:628
+#: ../en/ch10-template.xml:624
 msgid ""
 "There are a few small ways in which this template deviates from the output "
 "produced by Subversion."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:631
+#: ../en/ch10-template.xml:627
 msgid ""
 "Subversion prints a <quote>readable</quote> date (the <quote><literal>Wed, 27 "
 "Sep 2006</literal></quote> in the example output above) in parentheses.  "
@@ -13423,7 +12508,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:638
+#: ../en/ch10-template.xml:634
 msgid ""
 "We emulate Subversion's printing of <quote>separator</quote> lines full of "
 "<quote><literal>-</literal></quote> characters by ending the template with "
@@ -13433,7 +12518,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch11-template.xml:647
+#: ../en/ch10-template.xml:643
 msgid ""
 "Subversion's output includes a count in the header of the number of lines in "
 "the commit message.  We cannot replicate this in Mercurial; the templating "
@@ -13443,7 +12528,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:653
+#: ../en/ch10-template.xml:649
 msgid ""
 "It took me no more than a minute or two of work to replace literal text from "
 "an example of Subversion's output with some keywords and filters to give the "
@@ -13451,7 +12536,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch11-template.xml:660
+#: ../en/ch10-template.xml:656
 msgid ""
 "We could have included the text of the template file directly in the style "
 "file by enclosing it in quotes and replacing the newlines with "
@@ -13464,17 +12549,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch12-mq.xml:5
+#: ../en/ch11-mq.xml:5
 msgid "Managing change with Mercurial Queues"
 msgstr "使用 MQ 管理修改"
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:8
+#: ../en/ch11-mq.xml:8
 msgid "The patch management problem"
 msgstr "补丁的管理问题"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:10
+#: ../en/ch11-mq.xml:10
 msgid ""
 "Here is a common scenario: you need to install a software package from "
 "source, but you find a bug that you must fix in the source before you can "
@@ -13486,7 +12571,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:20
+#: ../en/ch11-mq.xml:20
 msgid ""
 "This is a simple case of the <quote>patch management</quote> problem.  You "
 "have an <quote>upstream</quote> source tree that you can't change; you need "
@@ -13496,7 +12581,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:27
+#: ../en/ch11-mq.xml:27
 msgid ""
 "The patch management problem arises in many situations.  Probably the most "
 "visible is that a user of an open source software project will contribute a "
@@ -13504,7 +12589,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:32
+#: ../en/ch11-mq.xml:32
 msgid ""
 "Distributors of operating systems that include open source software often "
 "need to make changes to the packages they distribute so that they will build "
@@ -13512,7 +12597,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:37
+#: ../en/ch11-mq.xml:37
 msgid ""
 "When you have few changes to maintain, it is easy to manage a single patch "
 "using the standard <command>diff</command> and <command>patch</command> "
@@ -13529,7 +12614,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:52
+#: ../en/ch11-mq.xml:52
 msgid ""
 "Maintaining a single patch against an upstream tree is a little tedious and "
 "error-prone, but not difficult.  However, the complexity of the problem grows "
@@ -13539,7 +12624,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:59
+#: ../en/ch11-mq.xml:59
 msgid ""
 "Fortunately, Mercurial includes a powerful extension, Mercurial Queues (or "
 "simply <quote>MQ</quote>), that massively simplifies the patch management "
@@ -13547,12 +12632,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:65
+#: ../en/ch11-mq.xml:65
 msgid "The prehistory of Mercurial Queues"
 msgstr "MQ 的历史"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:67
+#: ../en/ch11-mq.xml:67
 msgid ""
 "During the late 1990s, several Linux kernel developers started to maintain "
 "<quote>patch series</quote> that modified the behaviour of the Linux kernel.  "
@@ -13561,7 +12646,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:73
+#: ../en/ch11-mq.xml:73
 msgid ""
 "The sizes of these patch series grew rapidly.  In 2002, Andrew Morton "
 "published some shell scripts he had been using to automate the task of "
@@ -13570,12 +12655,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:80
+#: ../en/ch11-mq.xml:80
 msgid "A patchwork quilt"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:82
+#: ../en/ch11-mq.xml:82
 msgid ""
 "In early 2003, Andreas Gruenbacher and Martin Quinson borrowed the approach "
 "of Andrew's scripts and published a tool called <quote>patchwork quilt</"
@@ -13586,7 +12671,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:91
+#: ../en/ch11-mq.xml:91
 msgid ""
 "Quilt manages a <emphasis>stack of patches</emphasis> on top of a directory "
 "tree. To begin, you tell quilt to manage a directory tree, and tell it which "
@@ -13596,7 +12681,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:99
+#: ../en/ch11-mq.xml:99
 msgid ""
 "The refresh step causes quilt to scan the directory tree; it updates the "
 "patch with all of the changes you have made.  You can create another patch on "
@@ -13606,7 +12691,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:106
+#: ../en/ch11-mq.xml:106
 msgid ""
 "You can <emphasis>change</emphasis> which patches are applied to the tree.  "
 "If you <quote>pop</quote> a patch, the changes made by that patch will vanish "
@@ -13620,19 +12705,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:118
+#: ../en/ch11-mq.xml:118
 msgid ""
 "Quilt knows nothing about revision control tools, so it works equally well on "
 "top of an unpacked tarball or a Subversion working copy."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:124
+#: ../en/ch11-mq.xml:124
 msgid "From patchwork quilt to Mercurial Queues"
 msgstr "从 patchwork quilt 到 MQ"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:126
+#: ../en/ch11-mq.xml:126
 msgid ""
 "In mid-2005, Chris Mason took the features of quilt and wrote an extension "
 "that he called Mercurial Queues, which added quilt-like behaviour to "
@@ -13640,7 +12725,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:130
+#: ../en/ch11-mq.xml:130
 msgid ""
 "The key difference between quilt and MQ is that quilt knows nothing about "
 "revision control systems, while MQ is <emphasis>integrated</emphasis> into "
@@ -13649,7 +12734,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:136
+#: ../en/ch11-mq.xml:136
 msgid ""
 "Because quilt does not care about revision control tools, it is still a "
 "tremendously useful piece of software to know about for situations where you "
@@ -13657,19 +12742,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:144
+#: ../en/ch11-mq.xml:144
 msgid "The huge advantage of MQ"
 msgstr "MQ 的巨大优势"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:146
+#: ../en/ch11-mq.xml:146
 msgid ""
 "I cannot overstate the value that MQ offers through the unification of "
 "patches and revision control."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:149
+#: ../en/ch11-mq.xml:149
 msgid ""
 "A major reason that patches have persisted in the free software and open "
 "source world&emdash;in spite of the availability of increasingly capable "
@@ -13678,7 +12763,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:155
+#: ../en/ch11-mq.xml:155
 msgid ""
 "Traditional revision control tools make a permanent, irreversible record of "
 "everything that you do.  While this has great value, it's also somewhat "
@@ -13689,7 +12774,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:163
+#: ../en/ch11-mq.xml:163
 msgid ""
 "By contrast, MQ's marriage of distributed revision control with patches makes "
 "it much easier to isolate your work.  Your patches live on top of normal "
@@ -13700,7 +12785,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:171
+#: ../en/ch11-mq.xml:171
 msgid ""
 "As an example, the integration of patches with revision control makes "
 "understanding patches and debugging their effects&emdash;and their interplay "
@@ -13715,19 +12800,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:187
+#: ../en/ch11-mq.xml:187
 msgid "Understanding patches"
 msgstr "理解补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:189
+#: ../en/ch11-mq.xml:189
 msgid ""
 "Because MQ doesn't hide its patch-oriented nature, it is helpful to "
 "understand what patches are, and a little about the tools that work with them."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:193
+#: ../en/ch11-mq.xml:193
 msgid ""
 "The traditional Unix <command>diff</command> command compares two files, and "
 "prints a list of differences between them. The <command>patch</command> "
@@ -13737,7 +12822,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:202
+#: ../en/ch11-mq.xml:202
 msgid ""
 "The type of file that <command>diff</command> generates (and <command>patch</"
 "command> takes as input) is called a <quote>patch</quote> or a <quote>diff</"
@@ -13746,7 +12831,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:208
+#: ../en/ch11-mq.xml:208
 msgid ""
 "A patch file can start with arbitrary text; the <command>patch</command> "
 "command ignores this text, but MQ uses it as the commit message when creating "
@@ -13756,7 +12841,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:215
+#: ../en/ch11-mq.xml:215
 msgid ""
 "MQ works with <emphasis>unified</emphasis> diffs (<command>patch</command> "
 "can accept several other diff formats, but MQ doesn't).  A unified diff "
@@ -13767,7 +12852,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:223
+#: ../en/ch11-mq.xml:223
 msgid ""
 "After the file header comes a series of <emphasis>hunks</emphasis>.  Each "
 "hunk starts with a header; this identifies the range of line numbers within "
@@ -13780,7 +12865,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:235
+#: ../en/ch11-mq.xml:235
 msgid ""
 "Each line of context begins with a space character.  Within the hunk, a line "
 "that begins with <quote><literal>-</literal></quote> means <quote>remove this "
@@ -13790,7 +12875,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:243
+#: ../en/ch11-mq.xml:243
 msgid ""
 "We will return to some of the more subtle aspects of patches later (in "
 "section <xref linkend=\"sec.mq.adv-patch\"/>), but you should have enough "
@@ -13798,12 +12883,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:250
+#: ../en/ch11-mq.xml:250
 msgid "Getting started with Mercurial Queues"
 msgstr "开始使用 MQ"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:252
+#: ../en/ch11-mq.xml:252
 msgid ""
 "Because MQ is implemented as an extension, you must explicitly enable before "
 "you can use it.  (You don't need to download anything; MQ ships with the "
@@ -13812,7 +12897,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:261
+#: ../en/ch11-mq.xml:262
 msgid ""
 "Once the extension is enabled, it will make a number of new commands "
 "available.  To verify that the extension is working, you can use <command "
@@ -13821,7 +12906,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:269
+#: ../en/ch11-mq.xml:270
 msgid ""
 "You can use MQ with <emphasis>any</emphasis> Mercurial repository, and its "
 "commands only operate within that repository.  To get started, simply prepare "
@@ -13829,7 +12914,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:276
+#: ../en/ch11-mq.xml:277
 msgid ""
 "This command creates an empty directory called <filename role=\"special\" "
 "class=\"directory\">.hg/patches</filename>, where MQ will keep its metadata.  "
@@ -13838,12 +12923,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:283
+#: ../en/ch11-mq.xml:284
 msgid "Creating a new patch"
 msgstr "创建新补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:285
+#: ../en/ch11-mq.xml:286
 msgid ""
 "To begin work on a new patch, use the <command role=\"hg-ext-mq\">qnew</"
 "command> command.  This command takes one argument, the name of the patch to "
@@ -13851,14 +12936,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:289
+#: ../en/ch11-mq.xml:290
 msgid ""
 "MQ will use this as the name of an actual file in the <filename role=\"special"
 "\" class=\"directory\">.hg/patches</filename> directory, as you can see below."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:296
+#: ../en/ch11-mq.xml:297
 msgid ""
 "Also newly present in the <filename role=\"special\" class=\"directory\">.hg/"
 "patches</filename> directory are two other files, <filename role=\"special"
@@ -13871,7 +12956,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch12-mq.xml:308
+#: ../en/ch11-mq.xml:309
 msgid ""
 "You may sometimes want to edit the <filename role=\"special\">series</"
 "filename> file by hand; for example, to change the sequence in which some "
@@ -13881,7 +12966,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:317
+#: ../en/ch11-mq.xml:318
 msgid ""
 "Once you have created your new patch, you can edit files in the working "
 "directory as you usually would.  All of the normal Mercurial commands, such "
@@ -13890,12 +12975,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:325
+#: ../en/ch11-mq.xml:326
 msgid "Refreshing a patch"
 msgstr "刷新补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:327
+#: ../en/ch11-mq.xml:328
 msgid ""
 "When you reach a point where you want to save your work, use the <command "
 "role=\"hg-ext-mq\">qrefresh</command> command to update the patch you are "
@@ -13903,14 +12988,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:333
+#: ../en/ch11-mq.xml:334
 msgid ""
 "This command folds the changes you have made in the working directory into "
 "your patch, and updates its corresponding changeset to contain those changes."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:337
+#: ../en/ch11-mq.xml:338
 msgid ""
 "You can run <command role=\"hg-ext-mq\">qrefresh</command> as often as you "
 "like, so it's a good way to <quote>checkpoint</quote> your work.  Refresh "
@@ -13920,12 +13005,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:348
+#: ../en/ch11-mq.xml:349
 msgid "Stacking and tracking patches"
 msgstr "堆叠和跟踪补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:350
+#: ../en/ch11-mq.xml:351
 msgid ""
 "Once you have finished working on a patch, or need to work on another, you "
 "can use the <command role=\"hg-ext-mq\">qnew</command> command again to "
@@ -13934,7 +13019,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:357
+#: ../en/ch11-mq.xml:358
 msgid ""
 "Notice that the patch contains the changes in our prior patch as part of its "
 "context (you can see this more clearly in the output of <command role=\"hg-cmd"
@@ -13942,7 +13027,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:362
+#: ../en/ch11-mq.xml:363
 msgid ""
 "So far, with the exception of <command role=\"hg-ext-mq\">qnew</command> and "
 "<command role=\"hg-ext-mq\">qrefresh</command>, we've been careful to only "
@@ -13951,7 +13036,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:372
+#: ../en/ch11-mq.xml:373
 msgid ""
 "The <command role=\"hg-ext-mq\">qseries</command> command lists every patch "
 "that MQ knows about in this repository, from oldest to newest (most recently "
@@ -13959,7 +13044,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:378
+#: ../en/ch11-mq.xml:379
 msgid ""
 "The <command role=\"hg-ext-mq\">qapplied</command> command lists every patch "
 "that MQ has <emphasis>applied</emphasis> in this repository, again from "
@@ -13967,12 +13052,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:387
+#: ../en/ch11-mq.xml:388
 msgid "Manipulating the patch stack"
 msgstr "操作补丁堆栈"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:389
+#: ../en/ch11-mq.xml:390
 msgid ""
 "The previous discussion implied that there must be a difference between "
 "<quote>known</quote> and <quote>applied</quote> patches, and there is.  MQ "
@@ -13980,7 +13065,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:394
+#: ../en/ch11-mq.xml:395
 msgid ""
 "An <emphasis>applied</emphasis> patch has a corresponding changeset in the "
 "repository, and the effects of the patch and changeset are visible in the "
@@ -13994,17 +13079,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch12-mq.xml:408
+#: ../en/ch11-mq.xml:409
 msgid "<imageobject><imagedata fileref=\"images/mq-stack.png\"/></imageobject>"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch12-mq.xml:410
+#: ../en/ch11-mq.xml:411
 msgid "Applied and unapplied patches in the MQ patch stack"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:415
+#: ../en/ch11-mq.xml:416
 msgid ""
 "You can reapply an unapplied, or popped, patch using the <command role=\"hg-"
 "ext-mq\">qpush</command> command.  This creates a new changeset to correspond "
@@ -14014,7 +13099,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:424
+#: ../en/ch11-mq.xml:425
 msgid ""
 "Notice that once we have popped a patch or two patches, the output of "
 "<command role=\"hg-ext-mq\">qseries</command> remains the same, while that of "
@@ -14022,12 +13107,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:432
+#: ../en/ch11-mq.xml:433
 msgid "Pushing and popping many patches"
 msgstr "压入或弹出多个补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:434
+#: ../en/ch11-mq.xml:435
 msgid ""
 "While <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-"
 "mq\">qpop</command> each operate on a single patch at a time by default, you "
@@ -14040,12 +13125,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:451
+#: ../en/ch11-mq.xml:452
 msgid "Safety checks, and overriding them"
 msgstr "安全的检查,然后覆盖它们"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:453
+#: ../en/ch11-mq.xml:454
 msgid ""
 "Several MQ commands check the working directory before they do anything, and "
 "fail if they find any modifications.  They do this to ensure that you won't "
@@ -14057,7 +13142,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:465
+#: ../en/ch11-mq.xml:466
 msgid ""
 "Commands that check the working directory all take an <quote>I know what I'm "
 "doing</quote> option, which is always named <option>-f</option>.  The exact "
@@ -14071,12 +13156,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:480
+#: ../en/ch11-mq.xml:481
 msgid "Working on several patches at once"
 msgstr "同时处理多个补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:482
+#: ../en/ch11-mq.xml:483
 msgid ""
 "The <command role=\"hg-ext-mq\">qrefresh</command> command always refreshes "
 "the <emphasis>topmost</emphasis> applied patch.  This means that you can "
@@ -14085,7 +13170,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:489
+#: ../en/ch11-mq.xml:490
 msgid ""
 "Here's an example that illustrates how you can use this ability. Let's say "
 "you're developing a new feature as two patches.  The first is a change to the "
@@ -14101,12 +13186,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:506
+#: ../en/ch11-mq.xml:507
 msgid "More about patches"
 msgstr "关于补丁的更多信息"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:508
+#: ../en/ch11-mq.xml:509
 msgid ""
 "MQ uses the GNU <command>patch</command> command to apply patches, so it's "
 "helpful to know a few more detailed aspects of how <command>patch</command> "
@@ -14114,12 +13199,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:514
+#: ../en/ch11-mq.xml:515
 msgid "The strip count"
 msgstr "修剪计数"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:516
+#: ../en/ch11-mq.xml:517
 msgid ""
 "If you look at the file headers in a patch, you will notice that the "
 "pathnames usually have an extra component on the front that isn't present in "
@@ -14129,7 +13214,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:523
+#: ../en/ch11-mq.xml:524
 msgid ""
 "Alice would unpack a tarball, edit her files, then decide that she wanted to "
 "create a patch.  So she'd rename her working directory, unpack the tarball "
@@ -14143,7 +13228,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:536
+#: ../en/ch11-mq.xml:537
 msgid ""
 "Since someone receiving a patch from the Alices of the net would be unlikely "
 "to have unmodified and modified directories with exactly the same names, the "
@@ -14154,7 +13239,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:544
+#: ../en/ch11-mq.xml:545
 msgid ""
 "An option of <quote><literal>-p1</literal></quote> means <quote>use a strip "
 "count of one</quote>.  If <command>patch</command> sees a file name "
@@ -14168,7 +13253,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:557
+#: ../en/ch11-mq.xml:558
 msgid ""
 "The <quote>standard</quote> strip count for patches is one; almost all "
 "patches contain one leading path name component that needs to be stripped. "
@@ -14178,7 +13263,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:565
+#: ../en/ch11-mq.xml:566
 msgid ""
 "If you receive a patch from someone that you want to add to your patch queue, "
 "and the patch needs a strip count other than one, you cannot just <command "
@@ -14195,12 +13280,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:584
+#: ../en/ch11-mq.xml:585
 msgid "Strategies for applying a patch"
 msgstr "应用补丁的策略"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:586
+#: ../en/ch11-mq.xml:587
 msgid ""
 "When <command>patch</command> applies a hunk, it tries a handful of "
 "successively less accurate strategies to try to make the hunk apply. This "
@@ -14210,7 +13295,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:593
+#: ../en/ch11-mq.xml:594
 msgid ""
 "First, <command>patch</command> tries an exact match, where the line numbers, "
 "the context, and the text to be modified must apply exactly.  If it cannot "
@@ -14221,7 +13306,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:602
+#: ../en/ch11-mq.xml:603
 msgid ""
 "If a context-only match fails, <command>patch</command> removes the first and "
 "last lines of the context, and tries a <emphasis>reduced</emphasis> context-"
@@ -14232,7 +13317,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:611
+#: ../en/ch11-mq.xml:612
 msgid ""
 "When neither of these techniques works, <command>patch</command> prints a "
 "message saying that the hunk in question was rejected.  It saves rejected "
@@ -14249,33 +13334,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:629
+#: ../en/ch11-mq.xml:630
 msgid "Some quirks of patch representation"
 msgstr "补丁的一些特性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:631
+#: ../en/ch11-mq.xml:632
 msgid ""
 "There are a few useful things to know about how <command>patch</command> "
 "works with files."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:634
+#: ../en/ch11-mq.xml:635
 msgid ""
 "This should already be obvious, but <command>patch</command> cannot handle "
 "binary files."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:638
+#: ../en/ch11-mq.xml:639
 msgid ""
 "Neither does it care about the executable bit; it creates new files as "
 "readable, but not executable."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:642
+#: ../en/ch11-mq.xml:643
 msgid ""
 "<command>patch</command> treats the removal of a file as a diff between the "
 "file to be removed and the empty file.  So your idea of <quote>I deleted this "
@@ -14284,7 +13369,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:648
+#: ../en/ch11-mq.xml:649
 msgid ""
 "It treats the addition of a file as a diff between the empty file and the "
 "file to be added.  So in a patch, your idea of <quote>I added this file</"
@@ -14292,7 +13377,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:654
+#: ../en/ch11-mq.xml:655
 msgid ""
 "It treats a renamed file as the removal of the old name, and the addition of "
 "the new name.  This means that renamed files have a big footprint in "
@@ -14301,7 +13386,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:660
+#: ../en/ch11-mq.xml:661
 msgid ""
 "<command>patch</command> cannot represent empty files, so you cannot use a "
 "patch to represent the notion <quote>I added this empty file to the tree</"
@@ -14309,12 +13394,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:667
+#: ../en/ch11-mq.xml:668
 msgid "Beware the fuzz"
 msgstr "当心毛刺"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:669
+#: ../en/ch11-mq.xml:670
 msgid ""
 "While applying a hunk at an offset, or with a fuzz factor, will often be "
 "completely successful, these inexact techniques naturally leave open the "
@@ -14326,7 +13411,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:679
+#: ../en/ch11-mq.xml:680
 msgid ""
 "It's often a good idea to refresh a patch that has applied with an offset or "
 "fuzz factor; refreshing the patch generates new context information that will "
@@ -14339,12 +13424,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:692
+#: ../en/ch11-mq.xml:693
 msgid "Handling rejection"
 msgstr "处理拒绝"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:694
+#: ../en/ch11-mq.xml:695
 msgid ""
 "If <command role=\"hg-ext-mq\">qpush</command> fails to apply a patch, it "
 "will print an error message and exit.  If it has left <filename role=\"special"
@@ -14353,7 +13438,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:700
+#: ../en/ch11-mq.xml:701
 msgid ""
 "If your patch <emphasis>used to</emphasis> apply cleanly, and no longer does "
 "because you've changed the underlying code that your patches are based on, "
@@ -14362,7 +13447,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:706
+#: ../en/ch11-mq.xml:707
 msgid ""
 "Unfortunately, there aren't any great techniques for dealing with rejected "
 "hunks.  Most often, you'll need to view the <filename role=\"special\">.rej</"
@@ -14370,7 +13455,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:711
+#: ../en/ch11-mq.xml:712
 msgid ""
 "If you're feeling adventurous, Neil Brown, a Linux kernel hacker, wrote a "
 "tool called <command>wiggle</command> <citation>web:wiggle</citation>, which "
@@ -14379,7 +13464,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:717
+#: ../en/ch11-mq.xml:718
 msgid ""
 "Another Linux kernel hacker, Chris Mason (the author of Mercurial Queues), "
 "wrote a similar tool called <command>mpatch</command> <citation>web:mpatch</"
@@ -14389,31 +13474,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:726
+#: ../en/ch11-mq.xml:727
 msgid "The context in the middle of a hunk has changed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:729
+#: ../en/ch11-mq.xml:730
 msgid "A hunk is missing some context at the beginning or end."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:732
+#: ../en/ch11-mq.xml:733
 msgid ""
 "A large hunk might apply better&emdash;either entirely or in part&emdash;if "
 "it was broken up into smaller hunks."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:736
+#: ../en/ch11-mq.xml:737
 msgid ""
 "A hunk removes lines with slightly different content than those currently "
 "present in the file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:740
+#: ../en/ch11-mq.xml:741
 msgid ""
 "If you use <command>wiggle</command> or <command>mpatch</command>, you should "
 "be doubly careful to check your results when you're done.  In fact, "
@@ -14423,12 +13508,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:752
+#: ../en/ch11-mq.xml:753
 msgid "Getting the best performance out of MQ"
 msgstr "MQ 的性能"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:754
+#: ../en/ch11-mq.xml:755
 msgid ""
 "MQ is very efficient at handling a large number of patches.  I ran some "
 "performance experiments in mid-2006 for a talk that I gave at the 2006 "
@@ -14439,7 +13524,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:763
+#: ../en/ch11-mq.xml:764
 msgid ""
 "On my old, slow laptop, I was able to <command role=\"hg-cmd\">hg qpush "
 "<option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</option></command> all 1,738 "
@@ -14451,14 +13536,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:774
+#: ../en/ch11-mq.xml:775
 msgid ""
 "Clearly, MQ is well suited to working in large trees, but there are a few "
 "tricks you can use to get the best performance of it."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:778
+#: ../en/ch11-mq.xml:779
 msgid ""
 "First of all, try to <quote>batch</quote> operations together.  Every time "
 "you run <command role=\"hg-ext-mq\">qpush</command> or <command role=\"hg-ext-"
@@ -14470,7 +13555,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:789
+#: ../en/ch11-mq.xml:790
 msgid ""
 "The <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-mq"
 "\">qpop</command> commands allow you to push and pop multiple patches at a "
@@ -14482,7 +13567,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:799
+#: ../en/ch11-mq.xml:800
 msgid ""
 "You can identify a destination patch using either the name of the patch, or "
 "by number.  If you use numeric addressing, patches are counted from zero; "
@@ -14490,12 +13575,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:806
+#: ../en/ch11-mq.xml:807
 msgid "Updating your patches when the underlying code changes"
 msgstr "当基础代码改变时,更新补丁的方法"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:809
+#: ../en/ch11-mq.xml:810
 msgid ""
 "It's common to have a stack of patches on top of an underlying repository "
 "that you don't modify directly.  If you're working on changes to third-party "
@@ -14506,7 +13591,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:818
+#: ../en/ch11-mq.xml:819
 msgid ""
 "The simplest way to do this is to <command role=\"hg-cmd\">hg qpop <option "
 "role=\"hg-ext-mq-cmd-qpop-opt\">hg -a</option></command> your patches, then "
@@ -14520,7 +13605,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:830
+#: ../en/ch11-mq.xml:831
 msgid ""
 "This approach is easy to use and works well if you don't expect changes to "
 "the underlying code to affect how well your patches apply. If your patch "
@@ -14530,7 +13615,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:837
+#: ../en/ch11-mq.xml:838
 msgid ""
 "It's possible to partially automate the rebasing process.  If your patches "
 "apply cleanly against some revision of the underlying repo, MQ can use this "
@@ -14539,19 +13624,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:843
+#: ../en/ch11-mq.xml:844
 msgid "The process is a little involved."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:845
+#: ../en/ch11-mq.xml:846
 msgid ""
 "To begin, <command role=\"hg-cmd\">hg qpush -a</command> all of your patches "
 "on top of the revision where you know that they apply cleanly."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:849
+#: ../en/ch11-mq.xml:850
 msgid ""
 "Save a backup copy of your patch directory using <command role=\"hg-cmd\">hg "
 "qsave <option role=\"hg-ext-mq-cmd-qsave-opt\">hg -e</option> <option role="
@@ -14566,7 +13651,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:863
+#: ../en/ch11-mq.xml:864
 msgid ""
 "Use <command role=\"hg-cmd\">hg pull</command> to bring new changes into the "
 "underlying repository.  (Don't run <command role=\"hg-cmd\">hg pull -u</"
@@ -14574,7 +13659,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:868
+#: ../en/ch11-mq.xml:869
 msgid ""
 "Update to the new tip revision, using <command role=\"hg-cmd\">hg update "
 "<option role=\"hg-opt-update\">-C</option></command> to override the patches "
@@ -14582,17 +13667,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:873
-msgid ""
-"Merge all patches using \\hgcmdargs{qpush}{<option role=\"hg-ext-mq-cmd-qpush-"
-"opt\">hg -m</option> <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</"
-"option>}.  The <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -m</option> option "
-"to <command role=\"hg-ext-mq\">qpush</command> tells MQ to perform a three-"
-"way merge if the patch fails to apply."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:883
+#: ../en/ch11-mq.xml:874
+msgid ""
+"Merge all patches using <command>hg qpush -m -a</command>.  The <option role="
+"\"hg-ext-mq-cmd-qpush-opt\">-m</option> option to <command role=\"hg-ext-mq"
+"\">qpush</command> tells MQ to perform a three-way merge if the patch fails "
+"to apply."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch11-mq.xml:882
 msgid ""
 "During the <command role=\"hg-cmd\">hg qpush <option role=\"hg-ext-mq-cmd-"
 "qpush-opt\">hg -m</option></command>, each patch in the <filename role="
@@ -14604,14 +13688,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:893
+#: ../en/ch11-mq.xml:892
 msgid ""
 "When you finish resolving the effects of a patch, MQ refreshes your patch "
 "based on the result of the merge."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:896
+#: ../en/ch11-mq.xml:895
 msgid ""
 "At the end of this process, your repository will have one extra head from the "
 "old patch queue, and a copy of the old patch queue will be in <filename role="
@@ -14623,12 +13707,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:908
+#: ../en/ch11-mq.xml:907
 msgid "Identifying patches"
 msgstr "标识补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:910
+#: ../en/ch11-mq.xml:909
 msgid ""
 "MQ commands that work with patches let you refer to a patch either by using "
 "its name or by a number.  By name is obvious enough; pass the name "
@@ -14638,7 +13722,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:917
+#: ../en/ch11-mq.xml:916
 msgid ""
 "As a shortcut, you can refer to a patch using both a name and a numeric "
 "offset; <literal>foo.patch-2</literal> means <quote>two patches before "
@@ -14647,7 +13731,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:923
+#: ../en/ch11-mq.xml:922
 msgid ""
 "Referring to a patch by index isn't much different.  The first patch printed "
 "in the output of <command role=\"hg-ext-mq\">qseries</command> is patch zero "
@@ -14656,51 +13740,45 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:929
+#: ../en/ch11-mq.xml:928
 msgid ""
 "MQ also makes it easy to work with patches when you are using normal "
 "Mercurial commands.  Every command that accepts a changeset ID will also "
 "accept the name of an applied patch.  MQ augments the tags normally in the "
 "repository with an eponymous one for each applied patch.  In addition, the "
-"special tags \\index{tags!special tag names!<literal>qbase</literal>}"
-"<literal>qbase</literal> and \\index{tags!special tag names!<literal>qtip</"
-"literal>}<literal>qtip</literal> identify the <quote>bottom-most</quote> and "
-"topmost applied patches, respectively."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:941
+"special tags <literal role=\"tag\">qbase</literal> and <literal role=\"tag"
+"\">qtip</literal> identify the <quote>bottom-most</quote> and topmost applied "
+"patches, respectively."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch11-mq.xml:938
 msgid ""
 "These additions to Mercurial's normal tagging capabilities make dealing with "
 "patches even more of a breeze."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:944
+#: ../en/ch11-mq.xml:941
 msgid "Want to patchbomb a mailing list with your latest series of changes?"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:948
+#: ../en/ch11-mq.xml:944
 msgid ""
 "(Don't know what <quote>patchbombing</quote> is? See section <xref linkend="
 "\"sec.hgext.patchbomb\"/>.)"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:951
+#: ../en/ch11-mq.xml:947
 msgid ""
 "Need to see all of the patches since <literal>foo.patch</literal> that have "
 "touched files in a subdirectory of your tree?"
 msgstr ""
 
-#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><programlisting><emphasis>
-#: ../en/ch12-mq.xml:955
-msgid "subdir"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:960
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch11-mq.xml:954
 msgid ""
 "Because MQ makes the names of patches available to the rest of Mercurial "
 "through its normal internal tag machinery, you don't need to type in the "
@@ -14708,7 +13786,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:965
+#: ../en/ch11-mq.xml:959
 msgid ""
 "Another nice consequence of representing patch names as tags is that when you "
 "run the <command role=\"hg-cmd\">hg log</command> command, it will display a "
@@ -14719,19 +13797,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:978
+#: ../en/ch11-mq.xml:972
 msgid "Useful things to know about"
 msgstr "其它需要了解的东西"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:980
+#: ../en/ch11-mq.xml:974
 msgid ""
 "There are a number of aspects of MQ usage that don't fit tidily into sections "
 "of their own, but that are good to know.  Here they are, in one place."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:985
+#: ../en/ch11-mq.xml:979
 msgid ""
 "Normally, when you <command role=\"hg-ext-mq\">qpop</command> a patch and "
 "<command role=\"hg-ext-mq\">qpush</command> it again, the changeset that "
@@ -14742,7 +13820,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:994
+#: ../en/ch11-mq.xml:988
 msgid ""
 "It's not a good idea to <command role=\"hg-cmd\">hg merge</command> changes "
 "from another branch with a patch changeset, at least if you want to maintain "
@@ -14752,12 +13830,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1005
+#: ../en/ch11-mq.xml:999
 msgid "Managing patches in a repository"
 msgstr "在版本库管理补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1007
+#: ../en/ch11-mq.xml:1001
 msgid ""
 "Because MQ's <filename role=\"special\" class=\"directory\">.hg/patches</"
 "filename> directory resides outside a Mercurial repository's working "
@@ -14766,7 +13844,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1013
+#: ../en/ch11-mq.xml:1007
 msgid ""
 "This presents the interesting possibility of managing the contents of the "
 "patch directory as a Mercurial repository in its own right.  This can be a "
@@ -14777,7 +13855,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1022
+#: ../en/ch11-mq.xml:1016
 msgid ""
 "You can then share different versions of the same patch stack among multiple "
 "underlying repositories.  I use this when I am developing a Linux kernel "
@@ -14789,7 +13867,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1032
+#: ../en/ch11-mq.xml:1026
 msgid ""
 "Managing patches in a repository makes it possible for multiple developers to "
 "work on the same patch series without colliding with each other, all on top "
@@ -14797,12 +13875,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1038
+#: ../en/ch11-mq.xml:1032
 msgid "MQ support for patch repositories"
 msgstr "MQ 支持补丁版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1040
+#: ../en/ch11-mq.xml:1034
 msgid ""
 "MQ helps you to work with the <filename role=\"special\" class=\"directory\">."
 "hg/patches</filename> directory as a repository; when you prepare a "
@@ -14813,7 +13891,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch12-mq.xml:1050
+#: ../en/ch11-mq.xml:1044
 msgid ""
 "If you forget to use the <option role=\"hg-ext-mq-cmd-qinit-opt\">hg -c</"
 "option> option, you can simply go into the <filename role=\"special\" class="
@@ -14824,7 +13902,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch12-mq.xml:1059
+#: ../en/ch11-mq.xml:1053
 msgid ""
 "(<command role=\"hg-cmd\">hg qinit <option role=\"hg-ext-mq-cmd-qinit-opt"
 "\">hg -c</option></command> does this for you automatically); you "
@@ -14833,7 +13911,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1066
+#: ../en/ch11-mq.xml:1060
 msgid ""
 "As a convenience, if MQ notices that the <filename class=\"directory\">.hg/"
 "patches</filename> directory is a repository, it will automatically <command "
@@ -14841,7 +13919,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1071
+#: ../en/ch11-mq.xml:1065
 msgid ""
 "MQ provides a shortcut command, <command role=\"hg-ext-mq\">qcommit</"
 "command>, that runs <command role=\"hg-cmd\">hg commit</command> in the "
@@ -14850,7 +13928,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1077
+#: ../en/ch11-mq.xml:1071
 msgid ""
 "Finally, as a convenience to manage the patch directory, you can define the "
 "alias <command>mq</command> on Unix systems. For example, on Linux systems "
@@ -14859,26 +13937,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1087
+#: ../en/ch11-mq.xml:1080
 msgid ""
 "You can then issue commands of the form <command>mq pull</command> from the "
 "main repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1092
+#: ../en/ch11-mq.xml:1085
 msgid "A few things to watch out for"
 msgstr "需要注意的事情"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1094
+#: ../en/ch11-mq.xml:1087
 msgid ""
 "MQ's support for working with a repository full of patches is limited in a "
 "few small respects."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1097
+#: ../en/ch11-mq.xml:1090
 msgid ""
 "MQ cannot automatically detect changes that you make to the patch directory.  "
 "If you <command role=\"hg-cmd\">hg pull</command>, manually edit, or <command "
@@ -14892,12 +13970,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1113
+#: ../en/ch11-mq.xml:1106
 msgid "Third party tools for working with patches"
 msgstr "操作补丁的第三方工具"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1115
+#: ../en/ch11-mq.xml:1108
 msgid ""
 "Once you've been working with patches for a while, you'll find yourself "
 "hungry for tools that will help you to understand and manipulate the patches "
@@ -14905,7 +13983,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1119
+#: ../en/ch11-mq.xml:1112
 msgid ""
 "The <command>diffstat</command> command <citation>web:diffstat</citation> "
 "generates a histogram of the modifications made to each file in a patch.  It "
@@ -14918,7 +13996,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1133
+#: ../en/ch11-mq.xml:1126
 msgid ""
 "The <literal role=\"package\">patchutils</literal> package <citation>web:"
 "patchutils</citation> is invaluable. It provides a set of small utilities "
@@ -14933,12 +14011,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1149
+#: ../en/ch11-mq.xml:1142
 msgid "Good ways to work with patches"
 msgstr "操作补丁的好习惯"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1151
+#: ../en/ch11-mq.xml:1144
 msgid ""
 "Whether you are working on a patch series to submit to a free software or "
 "open source project, or a series that you intend to treat as a sequence of "
@@ -14947,7 +14025,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1157
+#: ../en/ch11-mq.xml:1150
 msgid ""
 "Give your patches descriptive names.  A good name for a patch might be "
 "<filename>rework-device-alloc.patch</filename>, because it will immediately "
@@ -14961,7 +14039,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1169
+#: ../en/ch11-mq.xml:1162
 msgid ""
 "Be aware of what patch you're working on.  Use the <command role=\"hg-ext-mq"
 "\">qtop</command> command and skim over the text of your patches "
@@ -14974,7 +14052,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1179
+#: ../en/ch11-mq.xml:1172
 msgid ""
 "For this reason, it is very much worth investing a little time to learn how "
 "to use some of the third-party tools I described in section <xref linkend="
@@ -14985,17 +14063,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1190
+#: ../en/ch11-mq.xml:1183
 msgid "MQ cookbook"
 msgstr "MQ 手册"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1193
+#: ../en/ch11-mq.xml:1186
 msgid "Manage <quote>trivial</quote> patches"
 msgstr "管理<quote>琐碎的</quote>补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1195
+#: ../en/ch11-mq.xml:1188
 msgid ""
 "Because the overhead of dropping files into a new Mercurial repository is so "
 "low, it makes a lot of sense to manage patches this way even if you simply "
@@ -15004,26 +14082,26 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1200
+#: ../en/ch11-mq.xml:1193
 msgid ""
 "Begin by downloading and unpacking the source tarball, and turning it into a "
 "Mercurial repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1205
+#: ../en/ch11-mq.xml:1198
 msgid "Continue by creating a patch stack and making your changes."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1210
+#: ../en/ch11-mq.xml:1203
 msgid ""
 "Let's say a few weeks or months pass, and your package author releases a new "
 "version.  First, bring their changes into the repository."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1216
+#: ../en/ch11-mq.xml:1209
 msgid ""
 "The pipeline starting with <command role=\"hg-cmd\">hg locate</command> above "
 "deletes all files in the working directory, so that <command role=\"hg-cmd"
@@ -15033,17 +14111,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1224
+#: ../en/ch11-mq.xml:1217
 msgid "Finally, you can apply your patches on top of the new tree."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1231
+#: ../en/ch11-mq.xml:1224
 msgid "Combining entire patches"
 msgstr "组合全部的补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1233
+#: ../en/ch11-mq.xml:1226
 msgid ""
 "MQ provides a command, <command role=\"hg-ext-mq\">qfold</command> that lets "
 "you combine entire patches.  This <quote>folds</quote> the patches you name, "
@@ -15053,7 +14131,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1241
+#: ../en/ch11-mq.xml:1234
 msgid ""
 "The order in which you fold patches matters.  If your topmost applied patch "
 "is <literal>foo</literal>, and you <command role=\"hg-ext-mq\">qfold</"
@@ -15064,19 +14142,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1252
+#: ../en/ch11-mq.xml:1245
 msgid "Merging part of one patch into another"
 msgstr "合并补丁的部分内容到其它补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1254
+#: ../en/ch11-mq.xml:1247
 msgid ""
 "Merging <emphasis>part</emphasis> of one patch into another is more difficult "
 "than combining entire patches."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1258
+#: ../en/ch11-mq.xml:1251
 msgid ""
 "If you want to move changes to entire files, you can use <command>filterdiff</"
 "command>'s <option role=\"cmd-opt-filterdiff\">-i</option> and <option role="
@@ -15090,7 +14168,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1271
+#: ../en/ch11-mq.xml:1264
 msgid ""
 "If you have a patch that has multiple hunks modifying a file, and you only "
 "want to move a few of those hunks, the job becomes more messy, but you can "
@@ -15099,32 +14177,32 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1279
+#: ../en/ch11-mq.xml:1272
 msgid "This command prints three different kinds of number:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:1282
+#: ../en/ch11-mq.xml:1275
 msgid ""
 "(in the first column) a <emphasis>file number</emphasis> to identify each "
 "file modified in the patch;"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:1286
+#: ../en/ch11-mq.xml:1279
 msgid ""
 "(on the next line, indented) the line number within a modified file where a "
 "hunk starts; and"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:1289
+#: ../en/ch11-mq.xml:1282
 msgid ""
 "(on the same line) a <emphasis>hunk number</emphasis> to identify that hunk."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1293
+#: ../en/ch11-mq.xml:1286
 msgid ""
 "You'll have to use some visual inspection, and reading of the patch, to "
 "identify the file and hunk numbers you'll want, but you can then pass them to "
@@ -15134,7 +14212,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1301
+#: ../en/ch11-mq.xml:1294
 msgid ""
 "Once you have this hunk, you can concatenate it onto the end of your "
 "destination patch and continue with the remainder of section <xref linkend="
@@ -15142,19 +14220,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1308
+#: ../en/ch11-mq.xml:1301
 msgid "Differences between quilt and MQ"
 msgstr "MQ 与 quilt 的区别"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1310
+#: ../en/ch11-mq.xml:1303
 msgid ""
 "If you are already familiar with quilt, MQ provides a similar command set.  "
 "There are a few differences in the way that it works."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1314
+#: ../en/ch11-mq.xml:1307
 msgid ""
 "You will already have noticed that most quilt commands have MQ counterparts "
 "that simply begin with a <quote><literal>q</literal></quote>.  The exceptions "
@@ -15166,12 +14244,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch13-mq-collab.xml:5
+#: ../en/ch12-mq-collab.xml:5
 msgid "Advanced uses of Mercurial Queues"
 msgstr "MQ 的高级用法"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch13-mq-collab.xml:7
+#: ../en/ch12-mq-collab.xml:7
 msgid ""
 "While it's easy to pick up straightforward uses of Mercurial Queues, use of a "
 "little discipline and some of MQ's less frequently used capabilities makes it "
@@ -15179,7 +14257,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch13-mq-collab.xml:12
+#: ../en/ch12-mq-collab.xml:12
 msgid ""
 "In this chapter, I will use as an example a technique I have used to manage "
 "the development of an Infiniband device driver for the Linux kernel.  The "
@@ -15189,7 +14267,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch13-mq-collab.xml:18
+#: ../en/ch12-mq-collab.xml:18
 msgid ""
 "While much of the material in this chapter is specific to Linux, the same "
 "principles apply to any code base for which you're not the primary owner, and "
@@ -15197,12 +14275,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:24
+#: ../en/ch12-mq-collab.xml:24
 msgid "The problem of many targets"
 msgstr "多个目标的问题"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:26
+#: ../en/ch12-mq-collab.xml:26
 msgid ""
 "The Linux kernel changes rapidly, and has never been internally stable; "
 "developers frequently make drastic changes between releases. This means that "
@@ -15212,14 +14290,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:33
+#: ../en/ch12-mq-collab.xml:33
 msgid ""
 "To maintain a driver, we have to keep a number of distinct versions of Linux "
 "in mind."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:36
+#: ../en/ch12-mq-collab.xml:36
 msgid ""
 "One target is the main Linux kernel development tree. Maintenance of the code "
 "is in this case partly shared by other developers in the kernel community, "
@@ -15228,7 +14306,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:42
+#: ../en/ch12-mq-collab.xml:42
 msgid ""
 "We also maintain a number of <quote>backports</quote> to older versions of "
 "the Linux kernel, to support the needs of customers who are running older "
@@ -15239,7 +14317,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:50
+#: ../en/ch12-mq-collab.xml:50
 msgid ""
 "Finally, we make software releases on a schedule that is necessarily not "
 "aligned with those used by Linux distributors and kernel developers, so that "
@@ -15248,19 +14326,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch13-mq-collab.xml:58
+#: ../en/ch12-mq-collab.xml:58
 msgid "Tempting approaches that don't work well"
 msgstr "工作不好的诱人方法"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:60
+#: ../en/ch12-mq-collab.xml:60
 msgid ""
 "There are two <quote>standard</quote> ways to maintain a piece of software "
 "that has to target many different environments."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:64
+#: ../en/ch12-mq-collab.xml:64
 msgid ""
 "The first is to maintain a number of branches, each intended for a single "
 "target.  The trouble with this approach is that you must maintain iron "
@@ -15272,7 +14350,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:74
+#: ../en/ch12-mq-collab.xml:74
 msgid ""
 "The second is to maintain a single source tree filled with conditional "
 "statements that turn chunks of code on or off depending on the intended "
@@ -15284,7 +14362,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:83
+#: ../en/ch12-mq-collab.xml:83
 msgid ""
 "Neither of these approaches is well suited to a situation where you don't "
 "<quote>own</quote> the canonical copy of a source tree.  In the case of a "
@@ -15296,14 +14374,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:93
+#: ../en/ch12-mq-collab.xml:93
 msgid ""
 "These approaches have the added weakness of making it difficult to generate "
 "well-formed patches to submit upstream."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:97
+#: ../en/ch12-mq-collab.xml:97
 msgid ""
 "In principle, Mercurial Queues seems like a good candidate to manage a "
 "development scenario such as the above.  While this is indeed the case, MQ "
@@ -15311,12 +14389,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:105
+#: ../en/ch12-mq-collab.xml:105
 msgid "Conditionally applying patches with guards"
 msgstr "有条件的应用补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:107
+#: ../en/ch12-mq-collab.xml:107
 msgid ""
 "Perhaps the best way to maintain sanity with so many targets is to be able to "
 "choose specific patches to apply for a given situation.  MQ provides a "
@@ -15326,14 +14404,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:116
+#: ../en/ch12-mq-collab.xml:116
 msgid ""
 "This gives us a tiny repository that contains two patches that don't have any "
 "dependencies on each other, because they touch different files."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:120
+#: ../en/ch12-mq-collab.xml:120
 msgid ""
 "The idea behind conditional application is that you can <quote>tag</quote> a "
 "patch with a <emphasis>guard</emphasis>, which is simply a text string of "
@@ -15343,7 +14421,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:127
+#: ../en/ch12-mq-collab.xml:127
 msgid ""
 "A patch can have an arbitrary number of guards; each one is "
 "<emphasis>positive</emphasis> (<quote>apply this patch if this guard is "
@@ -15352,12 +14430,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:135
+#: ../en/ch12-mq-collab.xml:135
 msgid "Controlling the guards on a patch"
 msgstr "控制补丁的应用条件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:137
+#: ../en/ch12-mq-collab.xml:137
 msgid ""
 "The <command role=\"hg-ext-mq\">qguard</command> command lets you determine "
 "which guards should apply to a patch, or display the guards that are already "
@@ -15366,21 +14444,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:144
+#: ../en/ch12-mq-collab.xml:144
 msgid ""
 "To set a positive guard on a patch, prefix the name of the guard with a "
 "<quote><literal>+</literal></quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:149
+#: ../en/ch12-mq-collab.xml:149
 msgid ""
 "To set a negative guard on a patch, prefix the name of the guard with a "
 "<quote><literal>-</literal></quote>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch13-mq-collab.xml:156
+#: ../en/ch12-mq-collab.xml:156
 msgid ""
 "The <command role=\"hg-ext-mq\">qguard</command> command <emphasis>sets</"
 "emphasis> the guards on a patch; it doesn't <emphasis>modify</emphasis> "
@@ -15392,7 +14470,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:165
+#: ../en/ch12-mq-collab.xml:165
 msgid ""
 "Mercurial stores guards in the <filename role=\"special\">series</filename> "
 "file; the form in which they are stored is easy both to understand and to "
@@ -15402,12 +14480,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:177
+#: ../en/ch12-mq-collab.xml:177
 msgid "Selecting the guards to use"
 msgstr "选择使用的条件"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:179
+#: ../en/ch12-mq-collab.xml:179
 msgid ""
 "The <command role=\"hg-ext-mq\">qselect</command> command determines which "
 "guards are active at a given time.  The effect of this is to determine which "
@@ -15417,7 +14495,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:186
+#: ../en/ch12-mq-collab.xml:186
 msgid ""
 "With no arguments, the <command role=\"hg-ext-mq\">qselect</command> command "
 "lists the guards currently in effect, one per line of output.  Each argument "
@@ -15425,21 +14503,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:193
+#: ../en/ch12-mq-collab.xml:193
 msgid ""
 "In case you're interested, the currently selected guards are stored in the "
 "<filename role=\"special\">guards</filename> file."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:198
+#: ../en/ch12-mq-collab.xml:198
 msgid ""
 "We can see the effect the selected guards have when we run <command role=\"hg-"
 "ext-mq\">qpush</command>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:203
+#: ../en/ch12-mq-collab.xml:203
 msgid ""
 "A guard cannot start with a <quote><literal>+</literal></quote> or "
 "<quote><literal>-</literal></quote> character.  The name of a guard must not "
@@ -15448,61 +14526,61 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:212
+#: ../en/ch12-mq-collab.xml:212
 msgid "Changing the selected guards changes the patches that are applied."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:217
+#: ../en/ch12-mq-collab.xml:217
 msgid ""
 "You can see in the example below that negative guards take precedence over "
 "positive guards."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:224
+#: ../en/ch12-mq-collab.xml:224
 msgid "MQ's rules for applying patches"
 msgstr "MQ 应用补丁的规则"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:226
+#: ../en/ch12-mq-collab.xml:226
 msgid ""
 "The rules that MQ uses when deciding whether to apply a patch are as follows."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:229
+#: ../en/ch12-mq-collab.xml:229
 msgid "A patch that has no guards is always applied."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:232
+#: ../en/ch12-mq-collab.xml:232
 msgid ""
 "If the patch has any negative guard that matches any currently selected "
 "guard, the patch is skipped."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:235
+#: ../en/ch12-mq-collab.xml:235
 msgid ""
 "If the patch has any positive guard that matches any currently selected "
 "guard, the patch is applied."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:238
+#: ../en/ch12-mq-collab.xml:238
 msgid ""
 "If the patch has positive or negative guards, but none matches any currently "
 "selected guard, the patch is skipped."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:245
+#: ../en/ch12-mq-collab.xml:245
 msgid "Trimming the work environment"
 msgstr "修剪工作环境"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:247
+#: ../en/ch12-mq-collab.xml:247
 msgid ""
 "In working on the device driver I mentioned earlier, I don't apply the "
 "patches to a normal Linux kernel tree.  Instead, I use a repository that "
@@ -15512,7 +14590,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:254
+#: ../en/ch12-mq-collab.xml:254
 msgid ""
 "I then choose a <quote>base</quote> version on top of which the patches are "
 "applied.  This is a snapshot of the Linux kernel tree as of a revision of my "
@@ -15524,7 +14602,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:263
+#: ../en/ch12-mq-collab.xml:263
 msgid ""
 "Normally, the base tree atop which the patches apply should be a snapshot of "
 "a very recent upstream tree.  This best facilitates the development of "
@@ -15532,12 +14610,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:270
+#: ../en/ch12-mq-collab.xml:270
 msgid "Dividing up the <filename role=\"special\">series</filename> file"
 msgstr "分类补丁<filename role=\"special\">系列</filename>"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:273
+#: ../en/ch12-mq-collab.xml:273
 msgid ""
 "I categorise the patches in the <filename role=\"special\">series</filename> "
 "file into a number of logical groups.  Each section of like patches begins "
@@ -15546,14 +14624,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:279
+#: ../en/ch12-mq-collab.xml:279
 msgid ""
 "The sequence of patch groups that I maintain follows.  The ordering of these "
 "groups is important; I'll describe why after I introduce the groups."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:283
+#: ../en/ch12-mq-collab.xml:283
 msgid ""
 "The <quote>accepted</quote> group.  Patches that the development team has "
 "submitted to the maintainer of the Infiniband subsystem, and which he has "
@@ -15564,14 +14642,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:291
+#: ../en/ch12-mq-collab.xml:291
 msgid ""
 "The <quote>rework</quote> group.  Patches that I have submitted, but that the "
 "upstream maintainer has requested modifications to before he will accept them."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:296
+#: ../en/ch12-mq-collab.xml:296
 msgid ""
 "The <quote>pending</quote> group.  Patches that I have not yet submitted to "
 "the upstream maintainer, but which we have finished working on. These will be "
@@ -15582,21 +14660,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:305
+#: ../en/ch12-mq-collab.xml:305
 msgid ""
 "The <quote>in progress</quote> group.  Patches that are actively being "
 "developed, and should not be submitted anywhere yet."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:309
+#: ../en/ch12-mq-collab.xml:309
 msgid ""
 "The <quote>backport</quote> group.  Patches that adapt the source tree to "
 "older versions of the kernel tree."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:313
+#: ../en/ch12-mq-collab.xml:313
 msgid ""
 "The <quote>do not ship</quote> group.  Patches that for some reason should "
 "never be submitted upstream.  For example, one such patch might change "
@@ -15606,7 +14684,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:321
+#: ../en/ch12-mq-collab.xml:321
 msgid ""
 "Now to return to the reasons for ordering groups of patches in this way.  We "
 "would like the lowest patches in the stack to be as stable as possible, so "
@@ -15616,7 +14694,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:329
+#: ../en/ch12-mq-collab.xml:329
 msgid ""
 "We would also like the patches that we know we'll need to modify to be "
 "applied on top of a source tree that resembles the upstream tree as closely "
@@ -15624,7 +14702,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:334
+#: ../en/ch12-mq-collab.xml:334
 msgid ""
 "The <quote>backport</quote> and <quote>do not ship</quote> patches float at "
 "the end of the <filename role=\"special\">series</filename> file.  The "
@@ -15633,19 +14711,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:343
+#: ../en/ch12-mq-collab.xml:343
 msgid "Maintaining the patch series"
 msgstr "维护补丁系列"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:345
+#: ../en/ch12-mq-collab.xml:345
 msgid ""
 "In my work, I use a number of guards to control which patches are to be "
 "applied."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:349
+#: ../en/ch12-mq-collab.xml:349
 msgid ""
 "<quote>Accepted</quote> patches are guarded with <literal>accepted</"
 "literal>.  I enable this guard most of the time.  When I'm applying the "
@@ -15654,7 +14732,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:356
+#: ../en/ch12-mq-collab.xml:356
 msgid ""
 "Patches that are <quote>finished</quote>, but not yet submitted, have no "
 "guards.  If I'm applying the patch stack to a copy of the upstream tree, I "
@@ -15662,21 +14740,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:362
+#: ../en/ch12-mq-collab.xml:362
 msgid ""
 "Those patches that need reworking before being resubmitted are guarded with "
 "<literal>rework</literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:366
+#: ../en/ch12-mq-collab.xml:366
 msgid ""
 "For those patches that are still under development, I use <literal>devel</"
 "literal>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch13-mq-collab.xml:369
+#: ../en/ch12-mq-collab.xml:369
 msgid ""
 "A backport patch may have several guards, one for each version of the kernel "
 "to which it applies.  For example, a patch that backports a piece of code to "
@@ -15684,7 +14762,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch13-mq-collab.xml:374
+#: ../en/ch12-mq-collab.xml:374
 msgid ""
 "This variety of guards gives me considerable flexibility in determining what "
 "kind of source tree I want to end up with.  For most situations, the "
@@ -15693,12 +14771,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch13-mq-collab.xml:381
+#: ../en/ch12-mq-collab.xml:381
 msgid "The art of writing backport patches"
 msgstr "编写向后移植补丁的艺术"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:383
+#: ../en/ch12-mq-collab.xml:383
 msgid ""
 "Using MQ, writing a backport patch is a simple process.  All such a patch has "
 "to do is modify a piece of code that uses a kernel feature not present in the "
@@ -15707,7 +14785,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:389
+#: ../en/ch12-mq-collab.xml:389
 msgid ""
 "A useful goal when writing a good backport patch is to make your code look as "
 "if it was written for the older version of the kernel you're targeting.  The "
@@ -15721,7 +14799,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:402
+#: ../en/ch12-mq-collab.xml:402
 msgid ""
 "There are two reasons to divide backport patches into a distinct group, away "
 "from the <quote>regular</quote> patches whose effects they modify. The first "
@@ -15734,17 +14812,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch13-mq-collab.xml:417
+#: ../en/ch12-mq-collab.xml:417
 msgid "Useful tips for developing with MQ"
 msgstr "使用 MQ 开发的技巧"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch13-mq-collab.xml:420
+#: ../en/ch12-mq-collab.xml:420
 msgid "Organising patches in directories"
 msgstr "将补丁放到几个目录中"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:422
+#: ../en/ch12-mq-collab.xml:422
 msgid ""
 "If you're working on a substantial project with MQ, it's not difficult to "
 "accumulate a large number of patches.  For example, I have one patch "
@@ -15752,7 +14830,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:427
+#: ../en/ch12-mq-collab.xml:427
 msgid ""
 "If you can group these patches into separate logical categories, you can if "
 "you like store them in different directories; MQ has no problems with patch "
@@ -15760,12 +14838,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch13-mq-collab.xml:434
+#: ../en/ch12-mq-collab.xml:434
 msgid "Viewing the history of a patch"
 msgstr "察看补丁的历史"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:436
+#: ../en/ch12-mq-collab.xml:436
 msgid ""
 "If you're developing a set of patches over a long time, it's a good idea to "
 "maintain them in a repository, as discussed in section <xref linkend=\"sec.mq."
@@ -15778,7 +14856,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:448
+#: ../en/ch12-mq-collab.xml:448
 msgid ""
 "However, you can use the <literal role=\"hg-ext\">extdiff</literal> "
 "extension, which is bundled with Mercurial, to turn a diff of two versions of "
@@ -15791,18 +14869,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:459
+#: ../en/ch12-mq-collab.xml:459
 msgid ""
 "You can enable the <literal role=\"hg-ext\">extdiff</literal> extension in "
 "the usual way, by adding a line to the <literal role=\"rc-extensions"
-"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</"
+"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</"
 "filename>."
 msgstr ""
 
 #
 #. 	&example.hg-interdiff; 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:465
+#: ../en/ch12-mq-collab.xml:466
 msgid ""
 "The <command>interdiff</command> command expects to be passed the names of "
 "two files, but the <literal role=\"hg-ext\">extdiff</literal> extension "
@@ -15815,7 +14893,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:477
+#: ../en/ch12-mq-collab.xml:478
 msgid ""
 "With the <filename role=\"special\">hg-interdiff</filename> program in your "
 "shell's search path, you can run it as follows, from inside an MQ patch "
@@ -15823,16 +14901,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:482
+#: ../en/ch12-mq-collab.xml:482
 msgid ""
 "Since you'll probably want to use this long-winded command a lot, you can get "
 "<literal role=\"hg-ext\">hgext</literal> to make it available as a normal "
-"Mercurial command, again by editing your <filename role=\"special\"> /.hgrc</"
+"Mercurial command, again by editing your <filename role=\"special\">~/.hgrc</"
 "filename>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:489
+#: ../en/ch12-mq-collab.xml:489
 msgid ""
 "This directs <literal role=\"hg-ext\">hgext</literal> to make an "
 "<literal>interdiff</literal> command available, so you can now shorten the "
@@ -15841,7 +14919,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch13-mq-collab.xml:498
+#: ../en/ch12-mq-collab.xml:497
 msgid ""
 "The <command>interdiff</command> command works well only if the underlying "
 "files against which versions of a patch are generated remain the same.  If "
@@ -15850,7 +14928,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch13-mq-collab.xml:506
+#: ../en/ch12-mq-collab.xml:505
 msgid ""
 "The <literal role=\"hg-ext\">extdiff</literal> extension is useful for more "
 "than merely improving the presentation of MQ patches.  To read more about it, "
@@ -15858,12 +14936,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><title>
-#: ../en/ch14-hgext.xml:5
+#: ../en/ch13-hgext.xml:5
 msgid "Adding functionality with extensions"
 msgstr "使用扩展增加功能"
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch14-hgext.xml:7
+#: ../en/ch13-hgext.xml:7
 msgid ""
 "While the core of Mercurial is quite complete from a functionality "
 "standpoint, it's deliberately shorn of fancy features.  This approach of "
@@ -15872,7 +14950,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch14-hgext.xml:12
+#: ../en/ch13-hgext.xml:12
 msgid ""
 "However, Mercurial doesn't box you in with an inflexible command set: you can "
 "add features to it as <emphasis>extensions</emphasis> (sometimes known as "
@@ -15881,7 +14959,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:18
+#: ../en/ch13-hgext.xml:18
 msgid ""
 "Section <xref linkend=\"sec.tour-merge.fetch\"/> covers the <literal role="
 "\"hg-ext\">fetch</literal> extension; this combines pulling new changes and "
@@ -15890,7 +14968,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:24
+#: ../en/ch13-hgext.xml:24
 msgid ""
 "In chapter <xref linkend=\"chap.hook\"/>, we covered several extensions that "
 "are useful for hook-related functionality: <literal role=\"hg-ext\">acl</"
@@ -15900,7 +14978,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:33
+#: ../en/ch13-hgext.xml:33
 msgid ""
 "The Mercurial Queues patch management extension is so invaluable that it "
 "merits two chapters and an appendix all to itself. Chapter <xref linkend="
@@ -15910,7 +14988,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><para>
-#: ../en/ch14-hgext.xml:43
+#: ../en/ch13-hgext.xml:43
 msgid ""
 "In this chapter, we'll cover some of the other extensions that are available "
 "for Mercurial, and briefly touch on some of the machinery you'll need to know "
@@ -15918,7 +14996,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:48
+#: ../en/ch13-hgext.xml:48
 msgid ""
 "In section <xref linkend=\"sec.hgext.inotify\"/>, we'll discuss the "
 "possibility of <emphasis>huge</emphasis> performance improvements using the "
@@ -15926,21 +15004,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch14-hgext.xml:55
+#: ../en/ch13-hgext.xml:55
 msgid ""
 "Improve performance with the <literal role=\"hg-ext\">inotify</literal> "
 "extension"
 msgstr "使用扩展 <literal role=\"hg-ext\">inotify</literal> 以提高性能"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:58
+#: ../en/ch13-hgext.xml:58
 msgid ""
 "Are you interested in having some of the most common Mercurial operations run "
 "as much as a hundred times faster? Read on!"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:62
+#: ../en/ch13-hgext.xml:62
 msgid ""
 "Mercurial has great performance under normal circumstances.  For example, "
 "when you run the <command role=\"hg-cmd\">hg status</command> command, "
@@ -15952,7 +15030,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:72
+#: ../en/ch13-hgext.xml:72
 msgid ""
 "Because obtaining file status is crucial to good performance, the authors of "
 "Mercurial have optimised this code to within an inch of its life.  However, "
@@ -15964,7 +15042,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:82
+#: ../en/ch13-hgext.xml:82
 msgid ""
 "To put a number on the magnitude of this effect, I created a repository "
 "containing 150,000 managed files.  I timed <command role=\"hg-cmd\">hg "
@@ -15973,7 +15051,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:88
+#: ../en/ch13-hgext.xml:88
 msgid ""
 "Many modern operating systems contain a file notification facility. If a "
 "program signs up to an appropriate service, the operating system will notify "
@@ -15983,7 +15061,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:95
+#: ../en/ch13-hgext.xml:95
 msgid ""
 "Mercurial's <literal role=\"hg-ext\">inotify</literal> extension talks to the "
 "kernel's <literal>inotify</literal> component to optimise <command role=\"hg-"
@@ -15998,7 +15076,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:108
+#: ../en/ch13-hgext.xml:108
 msgid ""
 "Recall the ten seconds that I measured plain Mercurial as taking to run "
 "<command role=\"hg-cmd\">hg status</command> on a 150,000 file repository.  "
@@ -16008,12 +15086,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:115
+#: ../en/ch13-hgext.xml:115
 msgid "Before we continue, please pay attention to some caveats."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:118
+#: ../en/ch13-hgext.xml:118
 msgid ""
 "The <literal role=\"hg-ext\">inotify</literal> extension is Linux-specific.  "
 "Because it interfaces directly to the Linux kernel's <literal>inotify</"
@@ -16021,7 +15099,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:123
+#: ../en/ch13-hgext.xml:123
 msgid ""
 "It should work on any Linux distribution that was released after early 2005.  "
 "Older distributions are likely to have a kernel that lacks <literal>inotify</"
@@ -16030,7 +15108,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:130
+#: ../en/ch13-hgext.xml:130
 msgid ""
 "Not all filesystems are suitable for use with the <literal role=\"hg-ext"
 "\">inotify</literal> extension.  Network filesystems such as NFS are a non-"
@@ -16042,7 +15120,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:141
+#: ../en/ch13-hgext.xml:141
 msgid ""
 "The <literal role=\"hg-ext\">inotify</literal> extension is not yet shipped "
 "with Mercurial as of May 2007, so it's a little more involved to set up than "
@@ -16050,7 +15128,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:146
+#: ../en/ch13-hgext.xml:146
 msgid ""
 "The extension currently comes in two parts: a set of patches to the Mercurial "
 "source code, and a library of Python bindings to the <literal>inotify</"
@@ -16058,7 +15136,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch14-hgext.xml:150
+#: ../en/ch13-hgext.xml:150
 msgid ""
 "There are <emphasis>two</emphasis> Python <literal>inotify</literal> binding "
 "libraries.  One of them is called <literal>pyinotify</literal>, and is "
@@ -16068,14 +15146,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:157
+#: ../en/ch13-hgext.xml:157
 msgid ""
 "To get going, it's best to already have a functioning copy of Mercurial "
 "installed."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch14-hgext.xml:160
+#: ../en/ch13-hgext.xml:160
 msgid ""
 "If you follow the instructions below, you'll be <emphasis>replacing</"
 "emphasis> and overwriting any existing installation of Mercurial that you "
@@ -16084,14 +15162,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:167
+#: ../en/ch13-hgext.xml:167
 msgid ""
 "Clone the Python <literal>inotify</literal> binding repository.  Build and "
 "install it."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:175
+#: ../en/ch13-hgext.xml:174
 msgid ""
 "Clone the <filename class=\"directory\">crew</filename> Mercurial "
 "repository.  Clone the <literal role=\"hg-ext\">inotify</literal> patch "
@@ -16100,7 +15178,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:188
+#: ../en/ch13-hgext.xml:184
 msgid ""
 "Make sure that you have the Mercurial Queues extension, <literal role=\"hg-ext"
 "\">mq</literal>, enabled.  If you've never used MQ, read section <xref "
@@ -16108,7 +15186,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:194
+#: ../en/ch13-hgext.xml:190
 msgid ""
 "Go into the <filename class=\"directory\">inotify</filename> repo, and apply "
 "all of the <literal role=\"hg-ext\">inotify</literal> patches using the "
@@ -16117,27 +15195,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:204
+#: ../en/ch13-hgext.xml:199
 msgid ""
 "If you get an error message from <command role=\"hg-ext-mq\">qpush</command>, "
 "you should not continue.  Instead, ask for help."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:208
+#: ../en/ch13-hgext.xml:203
 msgid "Build and install the patched version of Mercurial."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:216
+#: ../en/ch13-hgext.xml:209
 msgid ""
 "Once you've build a suitably patched version of Mercurial, all you need to do "
 "to enable the <literal role=\"hg-ext\">inotify</literal> extension is add an "
-"entry to your <filename role=\"special\"> /.hgrc</filename>."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:221
+"entry to your <filename role=\"special\">~/.hgrc</filename>."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch13-hgext.xml:214
 msgid ""
 "When the <literal role=\"hg-ext\">inotify</literal> extension is enabled, "
 "Mercurial will automatically and transparently start the status daemon the "
@@ -16146,7 +15224,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:227
+#: ../en/ch13-hgext.xml:220
 msgid ""
 "The status daemon is started silently, and runs in the background.  If you "
 "look at a list of running processes after you've enabled the <literal role="
@@ -16156,7 +15234,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:235
+#: ../en/ch13-hgext.xml:228
 msgid ""
 "The first time you run a Mercurial command in a repository when you have the "
 "<literal role=\"hg-ext\">inotify</literal> extension enabled, it will run "
@@ -16172,7 +15250,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:249
+#: ../en/ch13-hgext.xml:242
 msgid ""
 "If you like, you can manually start a status daemon using the <command role="
 "\"hg-ext-inotify\">inserve</command> command.  This gives you slightly finer "
@@ -16182,7 +15260,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:256
+#: ../en/ch13-hgext.xml:249
 msgid ""
 "When you're using the <literal role=\"hg-ext\">inotify</literal> extension, "
 "you should notice <emphasis>no difference at all</emphasis> in Mercurial's "
@@ -16193,14 +15271,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch14-hgext.xml:267
+#: ../en/ch13-hgext.xml:260
 msgid ""
 "Flexible diff support with the <literal role=\"hg-ext\">extdiff</literal> "
 "extension"
 msgstr "使用扩展 <literal role=\"hg-ext\">extdiff</literal> 以扩展差异支持"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:270
+#: ../en/ch13-hgext.xml:263
 msgid ""
 "Mercurial's built-in <command role=\"hg-cmd\">hg diff</command> command "
 "outputs plaintext unified diffs."
@@ -16209,7 +15287,7 @@
 "不同。"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:275
+#: ../en/ch13-hgext.xml:268
 msgid ""
 "If you would like to use an external tool to display modifications, you'll "
 "want to use the <literal role=\"hg-ext\">extdiff</literal> extension.  This "
@@ -16217,16 +15295,16 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:280
+#: ../en/ch13-hgext.xml:273
 msgid ""
 "The <literal role=\"hg-ext\">extdiff</literal> extension is bundled with "
 "Mercurial, so it's easy to set up.  In the <literal role=\"rc-extensions"
-"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</"
+"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</"
 "filename>, simply add a one-line entry to enable the extension."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:286
+#: ../en/ch13-hgext.xml:280
 msgid ""
 "This introduces a command named <command role=\"hg-ext-extdiff\">extdiff</"
 "command>, which by default uses your system's <command>diff</command> command "
@@ -16235,7 +15313,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:294
+#: ../en/ch13-hgext.xml:288
 msgid ""
 "The result won't be exactly the same as with the built-in <command role=\"hg-"
 "cmd\">hg diff</command> variations, because the output of <command>diff</"
@@ -16243,7 +15321,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:299
+#: ../en/ch13-hgext.xml:293
 msgid ""
 "As the <quote><literal>making snapshot</literal></quote> lines of output "
 "above imply, the <command role=\"hg-ext-extdiff\">extdiff</command> command "
@@ -16257,7 +15335,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:312
+#: ../en/ch13-hgext.xml:306
 msgid ""
 "Snapshot directory names have the same base name as your repository. If your "
 "repository path is <filename class=\"directory\">/quux/bar/foo</filename>, "
@@ -16274,7 +15352,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:328
+#: ../en/ch13-hgext.xml:322
 msgid ""
 "The <command role=\"hg-ext-extdiff\">extdiff</command> command accepts two "
 "important options. The <option role=\"hg-ext-extdiff-cmd-extdiff-opt\">hg -p</"
@@ -16292,7 +15370,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:345
+#: ../en/ch13-hgext.xml:339
 msgid ""
 "As an example, here's how to run the normal system <command>diff</command> "
 "command, getting it to generate context diffs (using the <option role=\"cmd-"
@@ -16302,14 +15380,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:354
+#: ../en/ch13-hgext.xml:348
 msgid ""
 "Launching a visual diff tool is just as easy.  Here's how to launch the "
 "<command>kdiff3</command> viewer."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:358
+#: ../en/ch13-hgext.xml:352
 msgid ""
 "If your diff viewing command can't deal with directories, you can easily work "
 "around this with a little scripting.  For an example of such scripting in "
@@ -16319,12 +15397,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch14-hgext.xml:366
+#: ../en/ch13-hgext.xml:360
 msgid "Defining command aliases"
 msgstr "定义命令的别名"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:368
+#: ../en/ch13-hgext.xml:362
 msgid ""
 "It can be cumbersome to remember the options to both the <command role=\"hg-"
 "ext-extdiff\">extdiff</command> command and the diff viewer you want to use, "
@@ -16334,9 +15412,9 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:375
-msgid ""
-"All you need to do is edit your <filename role=\"special\"> /.hgrc</"
+#: ../en/ch13-hgext.xml:369
+msgid ""
+"All you need to do is edit your <filename role=\"special\">~/.hgrc</"
 "filename>, and add a section named <literal role=\"rc-extdiff\">extdiff</"
 "literal>.  Inside this section, you can define multiple commands.  Here's how "
 "to add a <literal>kdiff3</literal> command.  Once you've defined this, you "
@@ -16346,7 +15424,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:384
+#: ../en/ch13-hgext.xml:379
 msgid ""
 "If you leave the right hand side of the definition empty, as above, the "
 "<literal role=\"hg-ext\">extdiff</literal> extension uses the name of the "
@@ -16357,7 +15435,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:393
+#: ../en/ch13-hgext.xml:389
 msgid ""
 "You can also specify the default options that you want to invoke your diff "
 "viewing program with.  The prefix to use is <quote><literal>opts.</literal></"
@@ -16367,19 +15445,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch14-hgext.xml:406
+#: ../en/ch13-hgext.xml:403
 msgid ""
 "Cherrypicking changes with the <literal role=\"hg-ext\">transplant</literal> "
 "extension"
 msgstr "使用扩展 <literal role=\"hg-ext\">transplant</literal> 以挑选修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:409
+#: ../en/ch13-hgext.xml:406
 msgid "Need to have a long chat with Brendan about this."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch14-hgext.xml:413
+#: ../en/ch13-hgext.xml:410
 msgid ""
 "Send changes via email with the <literal role=\"hg-ext\">patchbomb</literal> "
 "extension"
@@ -16387,7 +15465,7 @@
 "使用扩展 <literal role=\"hg-ext\">patchbomb</literal> 通过 email 发送修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:416
+#: ../en/ch13-hgext.xml:413
 msgid ""
 "Many projects have a culture of <quote>change review</quote>, in which people "
 "send their modifications to a mailing list for others to read and comment on "
@@ -16397,7 +15475,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:424
+#: ../en/ch13-hgext.xml:421
 msgid ""
 "Mercurial makes it easy to send changes over email for review or application, "
 "via its <literal role=\"hg-ext\">patchbomb</literal> extension.  The "
@@ -16408,7 +15486,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:432
+#: ../en/ch13-hgext.xml:429
 msgid ""
 "As usual, the basic configuration of the <literal role=\"hg-ext\">patchbomb</"
 "literal> extension takes just one or two lines in your <filename role="
@@ -16416,14 +15494,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:437
+#: ../en/ch13-hgext.xml:435
 msgid ""
 "Once you've enabled the extension, you will have a new command available, "
 "named <command role=\"hg-ext-patchbomb\">email</command>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:441
+#: ../en/ch13-hgext.xml:439
 msgid ""
 "The safest and best way to invoke the <command role=\"hg-ext-patchbomb"
 "\">email</command> command is to <emphasis>always</emphasis> run it first "
@@ -16436,7 +15514,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:452
+#: ../en/ch13-hgext.xml:450
 msgid ""
 "The <command role=\"hg-ext-patchbomb\">email</command> command accepts the "
 "same kind of revision syntax as every other Mercurial command.  For example, "
@@ -16445,7 +15523,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:457
+#: ../en/ch13-hgext.xml:455
 msgid ""
 "You can also specify a <emphasis>repository</emphasis> to compare with.  If "
 "you provide a repository but no revisions, the <command role=\"hg-ext-"
@@ -16457,7 +15535,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:466
+#: ../en/ch13-hgext.xml:464
 msgid ""
 "It's perfectly safe to run the <command role=\"hg-ext-patchbomb\">email</"
 "command> command without the names of the people you want to send to: if you "
@@ -16468,7 +15546,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:474
+#: ../en/ch13-hgext.xml:472
 msgid ""
 "When you are sending just one revision, the <command role=\"hg-ext-patchbomb"
 "\">email</command> command will by default use the first line of the "
@@ -16476,7 +15554,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:479
+#: ../en/ch13-hgext.xml:477
 msgid ""
 "If you send multiple revisions, the <command role=\"hg-ext-patchbomb\">email</"
 "command> command will usually send one message per changeset.  It will "
@@ -16485,12 +15563,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch14-hgext.xml:486
+#: ../en/ch13-hgext.xml:484
 msgid "Changing the behaviour of patchbombs"
 msgstr "修改 patchbomb 的行为"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:488
+#: ../en/ch13-hgext.xml:486
 msgid ""
 "Not every project has exactly the same conventions for sending changes in "
 "email; the <literal role=\"hg-ext\">patchbomb</literal> extension tries to "
@@ -16498,7 +15576,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:494
+#: ../en/ch13-hgext.xml:492
 msgid ""
 "You can write a subject for the introductory message on the command line "
 "using the <option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -s</option> "
@@ -16506,7 +15584,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:500
+#: ../en/ch13-hgext.xml:498
 msgid ""
 "To change the email address from which the messages originate, use the "
 "<option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -f</option> option.  This "
@@ -16514,7 +15592,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:506
+#: ../en/ch13-hgext.xml:504
 msgid ""
 "The default behaviour is to send unified diffs (see section <xref linkend="
 "\"sec.mq.patch\"/> for a description of the format), one per message.  You "
@@ -16523,7 +15601,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:514
+#: ../en/ch13-hgext.xml:512
 msgid ""
 "Unified diffs are normally prefaced with a metadata header.  You can omit "
 "this, and send unadorned diffs, with the <option role=\"hg-ext-patchbomb-cmd-"
@@ -16531,7 +15609,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:520
+#: ../en/ch13-hgext.xml:518
 msgid ""
 "Diffs are normally sent <quote>inline</quote>, in the same body part as the "
 "description of a patch.  This makes it easiest for the largest number of "
@@ -16542,7 +15620,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:530
+#: ../en/ch13-hgext.xml:528
 msgid ""
 "Instead of sending mail messages, you can write them to an <literal>mbox</"
 "literal>-format mail folder using the <option role=\"hg-ext-patchbomb-cmd-"
@@ -16551,7 +15629,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch14-hgext.xml:537
+#: ../en/ch13-hgext.xml:535
 msgid ""
 "If you would like to add a <command>diffstat</command>-format summary to each "
 "patch, and one to the introductory message, use the <option role=\"hg-ext-"
@@ -16560,3 +15638,60 @@
 "the number of lines affected, and a histogram showing how much each file is "
 "modified.  This gives readers a qualitative glance at how complex a patch is."
 msgstr ""
+
+#~ msgid "Introduction"
+#~ msgstr "简介"
+
+#~ msgid "About revision control"
+#~ msgstr "关于版本控制"
+
+#~ msgid "Why use revision control?"
+#~ msgstr "为什么使用版本控制?"
+
+#~ msgid "The many names of revision control"
+#~ msgstr "版本控制的别名"
+
+#~ msgid "Revision control (RCS)"
+#~ msgstr "版本控制(RCS)"
+
+#~ msgid "Software configuration management (SCM), or configuration management"
+#~ msgstr "软件配置管理(SCM),或配置管理"
+
+#~ msgid "Source code management"
+#~ msgstr "源代码管理"
+
+#~ msgid "Source code control, or source control"
+#~ msgstr "源代码控制,或源控制"
+
+#~ msgid "Version control (VCS)"
+#~ msgstr "版本控制(VCS)"
+
+#~ msgid "A short history of revision control"
+#~ msgstr "版本控制简史"
+
+#~ msgid "Trends in revision control"
+#~ msgstr "版本控制的发展趋势"
+
+#~ msgid "A few of the advantages of distributed revision control"
+#~ msgstr "分布版本控制的优点"
+
+#~ msgid "Advantages for open source projects"
+#~ msgstr "开源项目的优点"
+
+#~ msgid "Advantages for commercial projects"
+#~ msgstr "商业项目的优点"
+
+#~ msgid "Why choose Mercurial?"
+#~ msgstr "为什么选择 Mercurial?"
+
+#~ msgid "Mercurial compared with other tools"
+#~ msgstr "Mercurial 与其它工具的比较"
+
+#~ msgid "Commercial tools"
+#~ msgstr "商业工具"
+
+#~ msgid "Choosing a revision control tool"
+#~ msgstr "选择版本控制工具"
+
+#~ msgid "Switching from another tool to Mercurial"
+#~ msgstr "从其它工具切换到 Mercurial"