changeset 740:8b73656f95c9

Update file location in po files
author Dongsheng Song <dongsheng.song@gmail.com>
date Tue, 17 Mar 2009 10:47:54 +0800
parents a13813534ccd
children a4b71115602d
files po/zh.po
diffstat 1 files changed, 839 insertions(+), 818 deletions(-) [+]
line wrap: on
line diff
--- a/po/zh.po	Tue Mar 17 10:43:45 2009 +0800
+++ b/po/zh.po	Tue Mar 17 10:47:54 2009 +0800
@@ -41,7 +41,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: hgbook 1.2\n"
-"POT-Creation-Date: 2009-03-12 16:06+0800\n"
+"POT-Creation-Date: 2009-03-17 10:44+0800\n"
 "PO-Revision-Date: 2009-03-16 18:32+0800\n"
 "Last-Translator: \n"
 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n"
@@ -2784,47 +2784,48 @@
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch02-tour-basic.xml:253
 msgid ""
-"Figure <xref linkend=\"fig.tour-basic.history\"/> provides a graphical "
-"representation of the history of the <filename class=\"directory\">hello</"
-"filename> repository, to make it a little easier to see which direction "
-"history is <quote>flowing</quote> in.  We'll be returning to this figure "
-"several times in this chapter and the chapter that follows."
+"Figure <xref endterm=\"fig.tour-basic.history.caption\" linkend=\"fig.tour-"
+"basic.history\"/> provides a graphical representation of the history of the "
+"<filename class=\"directory\">hello</filename> repository, to make it a "
+"little easier to see which direction history is <quote>flowing</quote> in.  "
+"We'll be returning to this figure several times in this chapter and the "
+"chapter that follows."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch02-tour-basic.xml:263
+#: ../en/ch02-tour-basic.xml:264
 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:264 ../en/ch03-tour-merge.xml:48
-#: ../en/ch03-tour-merge.xml:76 ../en/ch03-tour-merge.xml:124
-#: ../en/ch03-tour-merge.xml:181 ../en/ch03-tour-merge.xml:248
-#: ../en/ch04-concepts.xml:54 ../en/ch04-concepts.xml:104
-#: ../en/ch04-concepts.xml:189 ../en/ch04-concepts.xml:293
-#: ../en/ch04-concepts.xml:342 ../en/ch04-concepts.xml:356
-#: ../en/ch04-concepts.xml:396 ../en/ch04-concepts.xml:415
-#: ../en/ch04-concepts.xml:456 ../en/ch06-collab.xml:275
-#: ../en/ch09-undo.xml:363 ../en/ch09-undo.xml:411 ../en/ch09-undo.xml:476
-#: ../en/ch09-undo.xml:516 ../en/ch12-mq.xml:408
+#: ../en/ch02-tour-basic.xml:265 ../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
 msgid "XXX add text"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
-#: ../en/ch02-tour-basic.xml:265
+#: ../en/ch02-tour-basic.xml:266
 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:272
+#: ../en/ch02-tour-basic.xml:273
 msgid "Changesets, revisions, and talking to other people"
 msgstr "改变集,版本,与其它用户交互"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:275
+#: ../en/ch02-tour-basic.xml:276
 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 "
@@ -2836,7 +2837,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:285
+#: ../en/ch02-tour-basic.xml:286
 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</"
@@ -2847,13 +2848,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:294
+#: ../en/ch02-tour-basic.xml:295
 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:296
+#: ../en/ch02-tour-basic.xml:297
 msgid ""
 "while the hex string is the <emphasis>permanent, unchanging identifier</"
 "emphasis> that will always identify that exact changeset in <emphasis>every</"
@@ -2861,7 +2862,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:301
+#: ../en/ch02-tour-basic.xml:302
 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 "
@@ -2873,7 +2874,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:311
+#: ../en/ch02-tour-basic.xml:312
 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 "
@@ -2882,12 +2883,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:319
+#: ../en/ch02-tour-basic.xml:320
 msgid "Viewing specific revisions"
 msgstr "察看指定版本"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:321
+#: ../en/ch02-tour-basic.xml:322
 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 "
@@ -2897,7 +2898,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:330
+#: ../en/ch02-tour-basic.xml:331
 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 "
@@ -2906,7 +2907,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:338
+#: ../en/ch02-tour-basic.xml:339
 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 "
@@ -2914,12 +2915,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:345
+#: ../en/ch02-tour-basic.xml:346
 msgid "More detailed information"
 msgstr "更详细的信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:347
+#: ../en/ch02-tour-basic.xml:348
 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 "
@@ -2931,7 +2932,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:359
+#: ../en/ch02-tour-basic.xml:360
 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\">--"
@@ -2941,12 +2942,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:372
+#: ../en/ch02-tour-basic.xml:373
 msgid "All about command options"
 msgstr "命令选项"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:374
+#: ../en/ch02-tour-basic.xml:375
 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 "
@@ -2954,7 +2955,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:378
+#: ../en/ch02-tour-basic.xml:379
 msgid ""
 "Mercurial has a consistent and straightforward approach to dealing with the "
 "options that you can pass to commands.  It follows the conventions for "
@@ -2962,7 +2963,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:383
+#: ../en/ch02-tour-basic.xml:384
 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-"
@@ -2970,7 +2971,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:387
+#: ../en/ch02-tour-basic.xml:388
 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 "
@@ -2979,7 +2980,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:392
+#: ../en/ch02-tour-basic.xml:393
 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"
@@ -2987,7 +2988,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:396
+#: ../en/ch02-tour-basic.xml:397
 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 "
@@ -2996,7 +2997,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:402
+#: ../en/ch02-tour-basic.xml:403
 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 "
@@ -3004,7 +3005,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:406
+#: ../en/ch02-tour-basic.xml:407
 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-"
@@ -3013,19 +3014,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:414
+#: ../en/ch02-tour-basic.xml:415
 msgid "Making and reviewing changes"
 msgstr "创建和复审修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:416
+#: ../en/ch02-tour-basic.xml:417
 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:420
+#: ../en/ch02-tour-basic.xml:421
 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 "
@@ -3036,7 +3037,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:430
+#: ../en/ch02-tour-basic.xml:431
 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 "
@@ -3048,7 +3049,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:439
+#: ../en/ch02-tour-basic.xml:440
 msgid ""
 "In our <filename class=\"directory\">my-hello</filename> repository, we have "
 "a file <filename>hello.c</filename> that contains the classic <quote>hello, "
@@ -3061,14 +3062,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:452
+#: ../en/ch02-tour-basic.xml:453
 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:458
+#: ../en/ch02-tour-basic.xml:459
 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 "
@@ -3078,7 +3079,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:465
+#: ../en/ch02-tour-basic.xml:466
 msgid ""
 "The <quote><literal>M</literal></quote> indicates that Mercurial has noticed "
 "that we modified <filename>hello.c</filename>.  We didn't need to "
@@ -3088,7 +3089,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:473
+#: ../en/ch02-tour-basic.xml:474
 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> "
@@ -3097,12 +3098,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch02-tour-basic.xml:483
+#: ../en/ch02-tour-basic.xml:484
 msgid "Recording changes in a new changeset"
 msgstr "在新修改集中记录修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:485
+#: ../en/ch02-tour-basic.xml:486
 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 "
@@ -3111,7 +3112,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:492
+#: ../en/ch02-tour-basic.xml:493
 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 "
@@ -3119,12 +3120,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:498
+#: ../en/ch02-tour-basic.xml:499
 msgid "Setting up a username"
 msgstr "配置用户名称"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:500
+#: ../en/ch02-tour-basic.xml:501
 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 "
@@ -3135,7 +3136,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:509
+#: ../en/ch02-tour-basic.xml:510
 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, "
@@ -3143,14 +3144,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:514
+#: ../en/ch02-tour-basic.xml:515
 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:517
+#: ../en/ch02-tour-basic.xml:518
 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> "
@@ -3159,14 +3160,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch02-tour-basic.xml:524
+#: ../en/ch02-tour-basic.xml:525
 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:527
+#: ../en/ch02-tour-basic.xml:528
 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 "
@@ -3175,7 +3176,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:534
+#: ../en/ch02-tour-basic.xml:535
 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 "
@@ -3183,7 +3184,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:538
+#: ../en/ch02-tour-basic.xml:539
 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-"
@@ -3194,12 +3195,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch02-tour-basic.xml:547
+#: ../en/ch02-tour-basic.xml:548
 msgid "Creating a Mercurial configuration file"
 msgstr "创建 Mercurial 的配置文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:549
+#: ../en/ch02-tour-basic.xml:550
 msgid ""
 "To set a user name, use your favourite editor to create a file called "
 "<filename role=\"special\">.hgrc</filename> in your home directory.  "
@@ -3209,7 +3210,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:560
+#: ../en/ch02-tour-basic.xml:561
 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 "
@@ -3221,12 +3222,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch02-tour-basic.xml:573
+#: ../en/ch02-tour-basic.xml:574
 msgid "Choosing a user name"
 msgstr "选择用户名称"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch02-tour-basic.xml:575
+#: ../en/ch02-tour-basic.xml:576
 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 "
@@ -3235,7 +3236,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para>
-#: ../en/ch02-tour-basic.xml:582
+#: ../en/ch02-tour-basic.xml:583
 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 "
@@ -3244,12 +3245,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:592
+#: ../en/ch02-tour-basic.xml:593
 msgid "Writing a commit message"
 msgstr "写提交日志"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:594
+#: ../en/ch02-tour-basic.xml:595
 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.  "
@@ -3259,7 +3260,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:604
+#: ../en/ch02-tour-basic.xml:605
 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 "
@@ -3267,7 +3268,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:611
+#: ../en/ch02-tour-basic.xml:612
 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.  "
@@ -3275,12 +3276,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:617
+#: ../en/ch02-tour-basic.xml:618
 msgid "Writing a good commit message"
 msgstr "写好提交日志"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:619
+#: ../en/ch02-tour-basic.xml:620
 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 "
@@ -3290,7 +3291,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:633
+#: ../en/ch02-tour-basic.xml:634
 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 "
@@ -3299,7 +3300,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:639
+#: ../en/ch02-tour-basic.xml:640
 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 "
@@ -3307,12 +3308,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:646
+#: ../en/ch02-tour-basic.xml:647
 msgid "Aborting a commit"
 msgstr "终止提交"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:648
+#: ../en/ch02-tour-basic.xml:649
 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 "
@@ -3321,7 +3322,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:653
+#: ../en/ch02-tour-basic.xml:654
 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 "
@@ -3330,12 +3331,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:660
+#: ../en/ch02-tour-basic.xml:661
 msgid "Admiring our new handiwork"
 msgstr "欣赏我们的新手艺"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:662
+#: ../en/ch02-tour-basic.xml:663
 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 "
@@ -3344,19 +3345,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:671
+#: ../en/ch02-tour-basic.xml:672
 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:678
+#: ../en/ch02-tour-basic.xml:679
 msgid "Sharing changes"
 msgstr "共享修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch02-tour-basic.xml:680
+#: ../en/ch02-tour-basic.xml:681
 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="
@@ -3365,12 +3366,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:688
+#: ../en/ch02-tour-basic.xml:689
 msgid "Pulling changes from another repository"
 msgstr "从其它版本库取得修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:689
+#: ../en/ch02-tour-basic.xml:690
 msgid ""
 "To get started, let's clone our original <filename class=\"directory\">hello</"
 "filename> repository, which does not contain the change we just committed.  "
@@ -3379,7 +3380,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:697
+#: ../en/ch02-tour-basic.xml:698
 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 "
@@ -3392,7 +3393,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:710
+#: ../en/ch02-tour-basic.xml:711
 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 "
@@ -3401,7 +3402,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:717
+#: ../en/ch02-tour-basic.xml:718
 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 "
@@ -3409,7 +3410,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:724
+#: ../en/ch02-tour-basic.xml:725
 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 "
@@ -3418,12 +3419,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:732
+#: ../en/ch02-tour-basic.xml:733
 msgid "Updating the working directory"
 msgstr "更新工作目录"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:734
+#: ../en/ch02-tour-basic.xml:735
 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 "
@@ -3435,7 +3436,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:746
+#: ../en/ch02-tour-basic.xml:747
 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 "
@@ -3449,7 +3450,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:757
+#: ../en/ch02-tour-basic.xml:758
 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> "
@@ -3457,7 +3458,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:762
+#: ../en/ch02-tour-basic.xml:763
 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 "
@@ -3467,25 +3468,25 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:771
+#: ../en/ch02-tour-basic.xml:772
 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:777
-msgid ""
-"If you look back at figure <xref linkend=\"fig.tour-basic.history\"/>, you'll "
-"see arrows connecting each changeset.  The node that the arrow leads "
-"<emphasis>from</emphasis> in each case is a parent, and the node that the "
-"arrow leads <emphasis>to</emphasis> is its child.  The working directory has "
-"a parent in just the same way; this is the changeset that the working "
-"directory currently contains."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:786
+#: ../en/ch02-tour-basic.xml:778
+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 "
+"changeset.  The node that the arrow leads <emphasis>from</emphasis> in each "
+"case is a parent, and the node that the arrow leads <emphasis>to</emphasis> "
+"is its child.  The working directory has a parent in just the same way; this "
+"is the changeset that the working directory currently contains."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch02-tour-basic.xml:788
 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> "
@@ -3493,7 +3494,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:793
+#: ../en/ch02-tour-basic.xml:795
 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 "
@@ -3501,12 +3502,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch02-tour-basic.xml:801
+#: ../en/ch02-tour-basic.xml:803
 msgid "Pushing changes to another repository"
 msgstr "发布修改到其它版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:803
+#: ../en/ch02-tour-basic.xml:805
 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 "
@@ -3515,21 +3516,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:811
+#: ../en/ch02-tour-basic.xml:813
 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:817
+#: ../en/ch02-tour-basic.xml:819
 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:823
+#: ../en/ch02-tour-basic.xml:825
 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 "
@@ -3540,19 +3541,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:832
+#: ../en/ch02-tour-basic.xml:834
 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:839
+#: ../en/ch02-tour-basic.xml:841
 msgid "Sharing changes over a network"
 msgstr "通过网络共享修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:841
+#: ../en/ch02-tour-basic.xml:843
 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 "
@@ -3560,7 +3561,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch02-tour-basic.xml:849
+#: ../en/ch02-tour-basic.xml:851
 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 "
@@ -3622,7 +3623,8 @@
 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 "
-"illustrated in figure <xref linkend=\"fig.tour-merge.sep-repos\"/>."
+"illustrated in figure <xref endterm=\"fig.tour-merge.sep-repos.caption\" "
+"linkend=\"fig.tour-merge.sep-repos\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
@@ -3641,7 +3643,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:56
+#: ../en/ch03-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 "
@@ -3649,19 +3651,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:62
+#: ../en/ch03-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:66
+#: ../en/ch03-tour-merge.xml:67
 msgid "Head changesets"
 msgstr "顶点改变集"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:68
+#: ../en/ch03-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 "
@@ -3670,13 +3672,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:75
+#: ../en/ch03-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:78
+#: ../en/ch03-tour-merge.xml:79
 msgid ""
 "Repository contents after pulling from <filename class=\"directory\">my-"
 "hello</filename> into <filename class=\"directory\">my-new-hello</filename>"
@@ -3685,12 +3687,13 @@
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:85
 msgid ""
-"In figure <xref linkend=\"fig.tour-merge.pull\"/>, you can see the effect of "
-"the pull from <filename class=\"directory\">my-hello</filename> into "
-"<filename class=\"directory\">my-new-hello</filename>.  The history that was "
-"already present in <filename class=\"directory\">my-new-hello</filename> is "
-"untouched, but a new revision has been added.  By referring to figure <xref "
-"linkend=\"fig.tour-merge.sep-repos\"/>, we can see that the "
+"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="
+"\"directory\">my-hello</filename> into <filename class=\"directory\">my-new-"
+"hello</filename>.  The history that was already present in <filename class="
+"\"directory\">my-new-hello</filename> is untouched, but a new revision has "
+"been added.  By referring to figure <xref endterm=\"fig.tour-merge.sep-repos."
+"caption\" linkend=\"fig.tour-merge.sep-repos\"/>, we can see that the "
 "<emphasis>changeset ID</emphasis> remains the same in the new repository, but "
 "the <emphasis>revision number</emphasis> has changed.  (This, incidentally, "
 "is a fine example of why it's not safe to use revision numbers when "
@@ -3699,19 +3702,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:104
+#: ../en/ch03-tour-merge.xml:106
 msgid "Performing the merge"
 msgstr "执行合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:106
+#: ../en/ch03-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:112
+#: ../en/ch03-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 "
@@ -3721,19 +3724,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:123
+#: ../en/ch03-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:126
+#: ../en/ch03-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:131
+#: ../en/ch03-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 "
@@ -3742,12 +3745,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:141
+#: ../en/ch03-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:143
+#: ../en/ch03-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</"
@@ -3755,7 +3758,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:150
+#: ../en/ch03-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 "
@@ -3763,22 +3766,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:157
-msgid ""
-"In figure <xref linkend=\"fig.tour-merge.merge\"/>, you can see a "
-"representation of what happens to the working directory during the merge, and "
-"how this affects the repository when the commit happens.  During the merge, "
-"the working directory has two parent changesets, and these become the parents "
-"of the new changeset."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch03-tour-merge.xml:168
+#: ../en/ch03-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 "
+"directory during the merge, and how this affects the repository when the "
+"commit happens.  During the merge, the working directory has two parent "
+"changesets, and these become the parents of the new changeset."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><title>
+#: ../en/ch03-tour-merge.xml:169
 msgid "Merging conflicting changes"
 msgstr "合并有冲突的改变"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:170
+#: ../en/ch03-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 "
@@ -3790,27 +3793,28 @@
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
 #: ../en/ch03-tour-merge.xml:180
 msgid ""
-"<imageobject><imagedata fileref=\"images/tour-merge-conflict.png\"/></"
+"<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:182
+#: ../en/ch03-tour-merge.xml:183
 msgid "Conflicting changes to a document"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:186
-msgid ""
-"Figure <xref linkend=\"fig.tour-merge.conflict\"/> illustrates an instance of "
-"two conflicting changes to a document.  We started with a single version of "
-"the file; then we made some changes; while someone else made different "
-"changes to the same text.  Our task in resolving the conflicting changes is "
-"to decide what the file should look like."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:193
+#: ../en/ch03-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 "
+"document.  We started with a single version of the file; then we made some "
+"changes; while someone else made different changes to the same text.  Our "
+"task in resolving the conflicting changes is to decide what the file should "
+"look like."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch03-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 "
@@ -3823,7 +3827,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:204
+#: ../en/ch03-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> "
@@ -3831,24 +3835,25 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:210
+#: ../en/ch03-tour-merge.xml:213
 msgid "Using a graphical merge tool"
 msgstr "使用图形合并工具"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:212
+#: ../en/ch03-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 "
 "tools.  You can see a screenshot of <command>kdiff3</command> in action in "
-"figure <xref linkend=\"fig.tour-merge.kdiff3\"/>.  The kind of merge it is "
-"performing is called a <emphasis>three-way merge</emphasis>, because there "
-"are three different versions of the file of interest to us.  The tool thus "
-"splits the upper portion of the window into three panes:"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:222
+"figure <xref endterm=\"fig.tour-merge.kdiff3.caption\" linkend=\"fig.tour-"
+"merge.kdiff3\"/>.  The kind of merge it is performing is called a "
+"<emphasis>three-way merge</emphasis>, because there are three different "
+"versions of the file of interest to us.  The tool thus splits the upper "
+"portion of the window into three panes:"
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
+#: ../en/ch03-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 "
@@ -3856,21 +3861,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch03-tour-merge.xml:227
+#: ../en/ch03-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:230
+#: ../en/ch03-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:234
+#: ../en/ch03-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 "
@@ -3879,7 +3884,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:241
+#: ../en/ch03-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 "
@@ -3887,19 +3892,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch03-tour-merge.xml:247
-msgid ""
-"<imageobject><imagedata width=\"100%\" fileref=\"images/kdiff3.png\"/></"
+#: ../en/ch03-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:250
+#: ../en/ch03-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:255
+#: ../en/ch03-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 "
@@ -3908,7 +3913,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:261
+#: ../en/ch03-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 "
@@ -3918,25 +3923,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch03-tour-merge.xml:270
+#: ../en/ch03-tour-merge.xml:276
 msgid "A worked example"
 msgstr "合并实例"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:272
+#: ../en/ch03-tour-merge.xml:278
 msgid ""
 "In this example, we will reproduce the file modification history of figure "
-"<xref linkend=\"fig.tour-merge.conflict\"/> above.  Let's begin by creating a "
-"repository with a base version of our document."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:279
+"<xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-merge."
+"conflict\"/> above.  Let's begin by creating a repository with a base version "
+"of our document."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch03-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:284
+#: ../en/ch03-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 "
@@ -3945,14 +3951,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:292
+#: ../en/ch03-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:298
+#: ../en/ch03-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-"
@@ -3964,12 +3970,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:308
+#: ../en/ch03-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:313
+#: ../en/ch03-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, "
@@ -3978,7 +3984,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:319
+#: ../en/ch03-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 "
@@ -3988,7 +3994,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch03-tour-merge.xml:326
+#: ../en/ch03-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 "
@@ -3996,19 +4002,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch03-tour-merge.xml:335
+#: ../en/ch03-tour-merge.xml:342
 msgid "Simplifying the pull-merge-commit sequence"
 msgstr "简化拉-合并-提交程序"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:337
+#: ../en/ch03-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:343
+#: ../en/ch03-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 "
@@ -4016,7 +4022,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:347
+#: ../en/ch03-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 "
@@ -4024,7 +4030,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:352
+#: ../en/ch03-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 "
@@ -4034,7 +4040,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:359
+#: ../en/ch03-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 "
@@ -4048,7 +4054,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:372
+#: ../en/ch03-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 "
@@ -4058,7 +4064,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch03-tour-merge.xml:382
+#: ../en/ch03-tour-merge.xml:389
 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-"
@@ -4129,27 +4135,28 @@
 "much history, the revision data and index are combined in a single "
 "<quote><literal>.i</literal></quote> file.  The correspondence between a file "
 "in the working directory and the filelog that tracks its history in the "
-"repository is illustrated in figure <xref linkend=\"fig.concepts.filelog\"/>."
+"repository is illustrated in figure <xref endterm=\"fig.concepts.filelog."
+"caption\" linkend=\"fig.concepts.filelog\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:53
+#: ../en/ch04-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:56
+#: ../en/ch04-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:63
+#: ../en/ch04-concepts.xml:65
 msgid "Managing tracked files"
 msgstr "管理跟踪的文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:65
+#: ../en/ch04-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 "
@@ -4159,12 +4166,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:75
+#: ../en/ch04-concepts.xml:77
 msgid "Recording changeset information"
 msgstr "记录修改集信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:77
+#: ../en/ch04-concepts.xml:79
 msgid ""
 "The <emphasis>changelog</emphasis> contains information about each "
 "changeset.  Each revision records who committed a change, the changeset "
@@ -4173,12 +4180,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:85
+#: ../en/ch04-concepts.xml:87
 msgid "Relationships between revisions"
 msgstr "版本之间的关系"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:87
+#: ../en/ch04-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).  "
@@ -4188,28 +4195,28 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:94
+#: ../en/ch04-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 "
 "revision of the manifest.  A revision of the manifest stores a pointer to a "
 "single revision of each filelog tracked when that changeset was created.  "
-"These relationships are illustrated in figure <xref linkend=\"fig.concepts."
-"metadata\"/>."
+"These relationships are illustrated in figure <xref endterm=\"fig.concepts."
+"metadata.caption\" linkend=\"fig.concepts.metadata\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:103
+#: ../en/ch04-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:105
+#: ../en/ch04-concepts.xml:109
 msgid "Metadata relationships"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:110
+#: ../en/ch04-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 "
@@ -4221,24 +4228,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:123
+#: ../en/ch04-concepts.xml:127
 msgid "Safe, efficient storage"
 msgstr "安全,高效的存储"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:125
+#: ../en/ch04-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:130
+#: ../en/ch04-concepts.xml:134
 msgid "Efficient storage"
 msgstr "高效存储"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:132
+#: ../en/ch04-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 "
@@ -4248,7 +4255,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:140
+#: ../en/ch04-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 "
@@ -4258,12 +4265,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:149
+#: ../en/ch04-concepts.xml:153
 msgid "Safe operation"
 msgstr "安全操作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:151
+#: ../en/ch04-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 "
@@ -4272,7 +4279,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:157
+#: ../en/ch04-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 "
@@ -4284,7 +4291,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:167
+#: ../en/ch04-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 "
@@ -4292,12 +4299,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:174
+#: ../en/ch04-concepts.xml:178
 msgid "Fast retrieval"
 msgstr "快速检索"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:176
+#: ../en/ch04-concepts.xml:180
 msgid ""
 "Mercurial cleverly avoids a pitfall common to all earlier revision control "
 "systems: the problem of <emphasis>inefficient retrieval</emphasis>. Most "
@@ -4310,17 +4317,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:188
+#: ../en/ch04-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:190
+#: ../en/ch04-concepts.xml:195
 msgid "Snapshot of a revlog, with incremental deltas"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:195
+#: ../en/ch04-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 "
@@ -4332,20 +4339,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:204
-msgid ""
-"Figure <xref linkend=\"fig.concepts.snapshot\"/> illustrates the idea.  In an "
-"entry in a revlog's index file, Mercurial stores the range of entries from "
-"the data file that it must read to reconstruct a particular revision."
+#: ../en/ch04-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, "
+"Mercurial stores the range of entries from the data file that it must read to "
+"reconstruct a particular revision."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:210
+#: ../en/ch04-concepts.xml:216
 msgid "Aside: the influence of video compression"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:212
+#: ../en/ch04-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 "
@@ -4356,7 +4364,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:221
+#: ../en/ch04-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 "
@@ -4369,12 +4377,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:235
+#: ../en/ch04-concepts.xml:241
 msgid "Identification and strong integrity"
 msgstr "鉴别和强完整性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:237
+#: ../en/ch04-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 "
@@ -4382,7 +4390,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:242
+#: ../en/ch04-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 "
@@ -4391,7 +4399,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:249
+#: ../en/ch04-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 "
@@ -4399,7 +4407,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:254
+#: ../en/ch04-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 "
@@ -4410,12 +4418,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:266
+#: ../en/ch04-concepts.xml:272
 msgid "Revision history, branching, and merging"
 msgstr "修订历史,分支与合并"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:268
+#: ../en/ch04-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>.  "
@@ -4426,17 +4434,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:276
-msgid ""
-"In figure <xref linkend=\"fig.concepts.revlog\"/>, you can see an example of "
-"the conceptual structure of a revlog.  Filelogs, manifests, and changelogs "
-"all have this same structure; they differ only in the kind of data stored in "
-"each delta or snapshot."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch04-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 "
+"revlog.  Filelogs, manifests, and changelogs all have this same structure; "
+"they differ only in the kind of data stored in each delta or snapshot."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch04-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 "
 "parent slot contains the ID of its parent revision, and its second contains "
@@ -4447,24 +4455,29 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:292
+#: ../en/ch04-concepts.xml:300
 msgid "<imageobject><imagedata fileref=\"images/revlog.png\"/></imageobject>"
 msgstr ""
 
-#. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:299
+#. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para>
+#: ../en/ch04-concepts.xml:302
+msgid "Revision in revlog"
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><title>
+#: ../en/ch04-concepts.xml:309
 msgid "The working directory"
 msgstr "工作目录"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:301
+#: ../en/ch04-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:304
+#: ../en/ch04-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 "
@@ -4475,7 +4488,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:313
+#: ../en/ch04-concepts.xml:323
 msgid ""
 "The <emphasis>dirstate</emphasis> contains Mercurial's knowledge of the "
 "working directory.  This details which changeset the working directory is "
@@ -4484,7 +4497,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:319
+#: ../en/ch04-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 "
@@ -4499,12 +4512,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:333
+#: ../en/ch04-concepts.xml:343
 msgid "What happens when you commit"
 msgstr "当你提交时发生的事情"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:335
+#: ../en/ch04-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 "
@@ -4512,38 +4525,38 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:341
+#: ../en/ch04-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:343
+#: ../en/ch04-concepts.xml:354
 msgid "The working directory can have two parents"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:348
-msgid ""
-"Figure <xref linkend=\"fig.concepts.wdir\"/> shows the normal state of the "
-"working directory, where it has a single changeset as parent.  That changeset "
-"is the <emphasis>tip</emphasis>, the newest changeset in the repository that "
-"has no children."
+#: ../en/ch04-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 "
+"changeset as parent.  That changeset is the <emphasis>tip</emphasis>, the "
+"newest changeset in the repository that has no children."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:355
-msgid ""
-"<imageobject><imagedata fileref=\"images/wdir-after-commit.png\"/></"
+#: ../en/ch04-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:357
+#: ../en/ch04-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:362
+#: ../en/ch04-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 "
@@ -4553,23 +4566,23 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:370
+#: ../en/ch04-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 "
-"the null ID.  This is shown in figure <xref linkend=\"fig.concepts.wdir-after-"
-"commit\"/>.  Mercurial doesn't touch any of the files in the working "
-"directory when you commit; it just modifies the dirstate to note its new "
-"parents."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:381
+"the null ID.  This is shown in figure <xref endterm=\"fig.concepts.wdir-after-"
+"commit.caption\" linkend=\"fig.concepts.wdir-after-commit\"/>.  Mercurial "
+"doesn't touch any of the files in the working directory when you commit; it "
+"just modifies the dirstate to note its new parents."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><title>
+#: ../en/ch04-concepts.xml:396
 msgid "Creating a new head"
 msgstr "创建新顶点"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:383
+#: ../en/ch04-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 "
@@ -4578,22 +4591,24 @@
 "update the working directory to the changeset you're interested in, and then "
 "examine the files in the working directory directly to see their contents as "
 "they were when you committed that changeset.  The effect of this is shown in "
-"figure <xref linkend=\"fig.concepts.wdir-pre-branch\"/>."
+"figure <xref endterm=\"fig.concepts.wdir-pre-branch.caption\" linkend=\"fig."
+"concepts.wdir-pre-branch\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:395
-msgid ""
-"<imageobject><imagedata fileref=\"images/wdir-pre-branch.png\"/></imageobject>"
+#: ../en/ch04-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:397
+#: ../en/ch04-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:402
+#: ../en/ch04-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 "
@@ -4601,22 +4616,23 @@
 "the new changeset.  This new changeset has no children, so it becomes the new "
 "tip.  And the repository now contains two changesets that have no children; "
 "we call these <emphasis>heads</emphasis>.  You can see the structure that "
-"this creates in figure <xref linkend=\"fig.concepts.wdir-branch\"/>."
+"this creates in figure <xref endterm=\"fig.concepts.wdir-branch.caption\" "
+"linkend=\"fig.concepts.wdir-branch\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:414
-msgid ""
-"<imageobject><imagedata fileref=\"images/wdir-branch.png\"/></imageobject>"
+#: ../en/ch04-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:416
+#: ../en/ch04-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:422
+#: ../en/ch04-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> "
@@ -4630,7 +4646,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch04-concepts.xml:434
+#: ../en/ch04-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>, "
@@ -4641,32 +4657,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:446
+#: ../en/ch04-concepts.xml:467
 msgid "Merging heads"
 msgstr "合并顶点"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:448
+#: ../en/ch04-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 "
 "sets the second parent to the changeset you're merging with, as shown in "
-"figure <xref linkend=\"fig.concepts.wdir-merge\"/>."
+"figure <xref endterm=\"fig.concepts.wdir-merge.caption\" linkend=\"fig."
+"concepts.wdir-merge\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch04-concepts.xml:455
-msgid ""
-"<imageobject><imagedata fileref=\"images/wdir-merge.png\"/></imageobject>"
+#: ../en/ch04-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:457
+#: ../en/ch04-concepts.xml:481
 msgid "Merging two heads"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:461
+#: ../en/ch04-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 "
@@ -4674,33 +4691,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:466
+#: ../en/ch04-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:469
+#: ../en/ch04-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:473
+#: ../en/ch04-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:477
+#: ../en/ch04-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:481
+#: ../en/ch04-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 "
@@ -4708,14 +4725,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch04-concepts.xml:486
+#: ../en/ch04-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:490
+#: ../en/ch04-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 "
@@ -4724,7 +4741,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:497
+#: ../en/ch04-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</"
@@ -4734,7 +4751,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:504
+#: ../en/ch04-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 "
@@ -4745,12 +4762,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch04-concepts.xml:515
+#: ../en/ch04-concepts.xml:540
 msgid "Other interesting design features"
 msgstr "其它有趣的设计特性"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch04-concepts.xml:517
+#: ../en/ch04-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 "
@@ -4763,12 +4780,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:528
+#: ../en/ch04-concepts.xml:553
 msgid "Clever compression"
 msgstr "智能压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:530
+#: ../en/ch04-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> "
@@ -4777,7 +4794,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:536
+#: ../en/ch04-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> "
@@ -4787,7 +4804,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:544
+#: ../en/ch04-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</"
@@ -4797,12 +4814,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:553
+#: ../en/ch04-concepts.xml:578
 msgid "Network recompression"
 msgstr "网络重新压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:555
+#: ../en/ch04-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</"
@@ -4812,7 +4829,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:563
+#: ../en/ch04-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 "
@@ -4824,7 +4841,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:573
+#: ../en/ch04-concepts.xml:598
 msgid ""
 "(If the connection is over <command>ssh</command>, Mercurial "
 "<emphasis>doesn't</emphasis> recompress the stream, because <command>ssh</"
@@ -4832,22 +4849,22 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:581
+#: ../en/ch04-concepts.xml:606
 msgid "Read/write ordering and atomicity"
 msgstr "读写顺序与原子性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:583
+#: ../en/ch04-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 linkend=\"fig."
-"concepts.metadata\"/>, revisions in the changelog point to revisions in the "
-"manifest, and revisions in the manifest point to revisions in filelogs.  This "
-"hierarchy is deliberate."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:591
+"reader won't see a partial write.  If you recall figure <xref endterm=\"fig."
+"concepts.metadata.caption\" linkend=\"fig.concepts.metadata\"/>, revisions in "
+"the changelog point to revisions in the manifest, and revisions in the "
+"manifest point to revisions in filelogs.  This hierarchy is deliberate."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch04-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 "
@@ -4855,7 +4872,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:596
+#: ../en/ch04-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 "
@@ -4864,12 +4881,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:604
+#: ../en/ch04-concepts.xml:629
 msgid "Concurrent access"
 msgstr "并发访问"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:606
+#: ../en/ch04-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 "
@@ -4880,7 +4897,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:615
+#: ../en/ch04-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 "
@@ -4894,7 +4911,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:628
+#: ../en/ch04-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 "
@@ -4908,12 +4925,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch04-concepts.xml:640
+#: ../en/ch04-concepts.xml:665
 msgid "Safe dirstate access"
 msgstr "安全的目录状态访问"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch04-concepts.xml:642
+#: ../en/ch04-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 "
@@ -4925,12 +4942,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:655
+#: ../en/ch04-concepts.xml:680
 msgid "Avoiding seeks"
 msgstr "避免查找"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:657
+#: ../en/ch04-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 "
@@ -4938,7 +4955,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:661
+#: ../en/ch04-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 "
@@ -4947,7 +4964,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:667
+#: ../en/ch04-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 "
@@ -4960,7 +4977,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:678
+#: ../en/ch04-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.  "
@@ -4972,12 +4989,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch04-concepts.xml:690
+#: ../en/ch04-concepts.xml:715
 msgid "Other contents of the dirstate"
 msgstr "目录状态的其它内容"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:692
+#: ../en/ch04-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 "
@@ -4987,7 +5004,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:699
+#: ../en/ch04-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> "
@@ -4996,7 +5013,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch04-concepts.xml:706
+#: ../en/ch04-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 "
@@ -6035,7 +6052,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para>
-#: ../en/ch06-collab.xml:264 ../en/ch06-collab.xml:276
+#: ../en/ch06-collab.xml:264 ../en/ch06-collab.xml:278
 msgid "Feature branches"
 msgstr "特性分支"
 
@@ -6050,14 +6067,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch06-collab.xml:274
-msgid ""
-"<imageobject><imagedata fileref=\"images/feature-branches.png\"/></"
+#: ../en/ch06-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:280
+#: ../en/ch06-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, "
@@ -6065,12 +6082,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:287
+#: ../en/ch06-collab.xml:290
 msgid "The release train"
 msgstr "发布列车"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:289
+#: ../en/ch06-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 "
@@ -6078,7 +6095,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:294
+#: ../en/ch06-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 "
@@ -6088,12 +6105,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:303
+#: ../en/ch06-collab.xml:306
 msgid "The Linux kernel model"
 msgstr "Linux 内核模型"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:305
+#: ../en/ch06-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 "
@@ -6103,7 +6120,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:313
+#: ../en/ch06-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 "
@@ -6113,7 +6130,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:320
+#: ../en/ch06-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 "
@@ -6127,7 +6144,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:332
+#: ../en/ch06-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 "
@@ -6140,7 +6157,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:343
+#: ../en/ch06-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 "
@@ -6150,7 +6167,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:350
+#: ../en/ch06-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 "
@@ -6164,7 +6181,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:361
+#: ../en/ch06-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 "
@@ -6173,7 +6190,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:368
+#: ../en/ch06-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 "
@@ -6183,12 +6200,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:378
+#: ../en/ch06-collab.xml:381
 msgid "Pull-only versus shared-push collaboration"
 msgstr "只读与共享写协作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:380
+#: ../en/ch06-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 "
@@ -6197,7 +6214,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:386
+#: ../en/ch06-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 "
@@ -6208,7 +6225,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:394
+#: ../en/ch06-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 "
@@ -6217,12 +6234,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:402
+#: ../en/ch06-collab.xml:405
 msgid "Where collaboration meets branch management"
 msgstr "协作与分支管理"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:404
+#: ../en/ch06-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 "
@@ -6234,24 +6251,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:416
+#: ../en/ch06-collab.xml:419
 msgid "The technical side of sharing"
 msgstr "共享的技术因素"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:418
+#: ../en/ch06-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:423
+#: ../en/ch06-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:426
+#: ../en/ch06-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.  "
@@ -6260,7 +6277,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:431
+#: ../en/ch06-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 "
@@ -6273,21 +6290,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:442
+#: ../en/ch06-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:446
+#: ../en/ch06-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:450
+#: ../en/ch06-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 "
@@ -6295,7 +6312,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:455
+#: ../en/ch06-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-"
@@ -6303,7 +6320,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:459
+#: ../en/ch06-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 "
@@ -6314,12 +6331,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:469
+#: ../en/ch06-collab.xml:472
 msgid "A few things to keep in mind"
 msgstr "要牢记的几件事"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:471
+#: ../en/ch06-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 "
@@ -6328,7 +6345,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:477
+#: ../en/ch06-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 "
@@ -6339,7 +6356,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:486
+#: ../en/ch06-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 "
@@ -6348,7 +6365,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:492
+#: ../en/ch06-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 "
@@ -6358,12 +6375,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:502
+#: ../en/ch06-collab.xml:505
 msgid "Using the Secure Shell (ssh) protocol"
 msgstr "使用 ssh 协议"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:504
+#: ../en/ch06-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, "
@@ -6372,7 +6389,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:509
+#: ../en/ch06-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 "
@@ -6381,31 +6398,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:515
+#: ../en/ch06-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:520
+#: ../en/ch06-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:522
+#: ../en/ch06-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:525
+#: ../en/ch06-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:528
+#: ../en/ch06-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 "
@@ -6413,14 +6430,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:533
+#: ../en/ch06-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:537
+#: ../en/ch06-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 "
@@ -6428,13 +6445,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch06-collab.xml:542
+#: ../en/ch06-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:546
+#: ../en/ch06-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 "
@@ -6444,7 +6461,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:553
+#: ../en/ch06-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 "
@@ -6455,7 +6472,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:562
+#: ../en/ch06-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 "
@@ -6463,19 +6480,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:568
+#: ../en/ch06-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:575
+#: ../en/ch06-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:577
+#: ../en/ch06-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 "
@@ -6486,27 +6503,27 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:585
+#: ../en/ch06-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:588
+#: ../en/ch06-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:592
+#: ../en/ch06-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:595
+#: ../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, "
@@ -6515,7 +6532,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch06-collab.xml:604
+#: ../en/ch06-collab.xml:607
 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 "
@@ -6524,12 +6541,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:613
+#: ../en/ch06-collab.xml:616
 msgid "Generating a key pair"
 msgstr "产生密钥对"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:615
+#: ../en/ch06-collab.xml:618
 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, "
@@ -6539,7 +6556,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:623
+#: ../en/ch06-collab.xml:626
 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 "
@@ -6548,7 +6565,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:629
+#: ../en/ch06-collab.xml:632
 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 "
@@ -6559,7 +6576,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:638
+#: ../en/ch06-collab.xml:641
 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 "
@@ -6569,12 +6586,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:647
+#: ../en/ch06-collab.xml:650
 msgid "Using an authentication agent"
 msgstr "使用认证代理"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:649
+#: ../en/ch06-collab.xml:652
 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 "
@@ -6586,7 +6603,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:658
+#: ../en/ch06-collab.xml:661
 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 "
@@ -6596,7 +6613,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:665
+#: ../en/ch06-collab.xml:668
 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 "
@@ -6607,12 +6624,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:676
+#: ../en/ch06-collab.xml:679
 msgid "Configuring the server side properly"
 msgstr "正确配置服务器端"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:678
+#: ../en/ch06-collab.xml:681
 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 "
@@ -6622,7 +6639,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:686
+#: ../en/ch06-collab.xml:689
 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</"
@@ -6635,7 +6652,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:697
+#: ../en/ch06-collab.xml:700
 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 "
@@ -6644,7 +6661,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:704
+#: ../en/ch06-collab.xml:707
 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 "
@@ -6652,7 +6669,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:709
+#: ../en/ch06-collab.xml:712
 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 "
@@ -6660,7 +6677,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:714
+#: ../en/ch06-collab.xml:717
 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 "
@@ -6668,7 +6685,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:719
+#: ../en/ch06-collab.xml:722
 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 "
@@ -6680,7 +6697,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:729
+#: ../en/ch06-collab.xml:732
 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 "
@@ -6689,26 +6706,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:735
+#: ../en/ch06-collab.xml:738
 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:739
+#: ../en/ch06-collab.xml:742
 msgid "You might have stored the passphrase for the wrong key."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:742
+#: ../en/ch06-collab.xml:745
 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:745
+#: ../en/ch06-collab.xml:748
 msgid ""
 "Either the user's home directory or their <filename role=\"special\" class="
 "\"directory\">.ssh</filename> directory might have excessively liberal "
@@ -6719,7 +6736,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:754
+#: ../en/ch06-collab.xml:757
 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, "
@@ -6727,7 +6744,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:761
+#: ../en/ch06-collab.xml:764
 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 "
@@ -6735,7 +6752,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:766
+#: ../en/ch06-collab.xml:769
 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 "
@@ -6750,7 +6767,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:780
+#: ../en/ch06-collab.xml:783
 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 "
@@ -6758,7 +6775,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:785
+#: ../en/ch06-collab.xml:788
 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 "
@@ -6768,21 +6785,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:792
+#: ../en/ch06-collab.xml:795
 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:796
+#: ../en/ch06-collab.xml:799
 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:800
+#: ../en/ch06-collab.xml:803
 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 "
@@ -6791,7 +6808,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:807
+#: ../en/ch06-collab.xml:810
 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 "
@@ -6799,7 +6816,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:814
+#: ../en/ch06-collab.xml:817
 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 "
@@ -6810,12 +6827,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:824
+#: ../en/ch06-collab.xml:827
 msgid "Using compression with ssh"
 msgstr "通过 ssh 使用压缩"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:826
+#: ../en/ch06-collab.xml:829
 msgid ""
 "Mercurial does not compress data when it uses the ssh protocol, because the "
 "ssh protocol can transparently compress data.  However, the default behaviour "
@@ -6823,7 +6840,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:831
+#: ../en/ch06-collab.xml:834
 msgid ""
 "Over any network other than a fast LAN (even a wireless network), using "
 "compression is likely to significantly speed up Mercurial's network "
@@ -6833,7 +6850,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:838
+#: ../en/ch06-collab.xml:841
 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 "
@@ -6842,7 +6859,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:845
+#: ../en/ch06-collab.xml:848
 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 "
@@ -6851,7 +6868,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:852
+#: ../en/ch06-collab.xml:855
 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>-"
@@ -6861,19 +6878,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch06-collab.xml:863
+#: ../en/ch06-collab.xml:866
 msgid "Serving over HTTP using CGI"
 msgstr "使用 CGI 通过 HTTP 提供服务"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch06-collab.xml:865
+#: ../en/ch06-collab.xml:868
 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:869
+#: ../en/ch06-collab.xml:872
 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 "
@@ -6881,7 +6898,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch06-collab.xml:875
+#: ../en/ch06-collab.xml:878
 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 "
@@ -6891,33 +6908,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:885
+#: ../en/ch06-collab.xml:888
 msgid "Web server configuration checklist"
 msgstr "Web 服务器配置检查表"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:887
+#: ../en/ch06-collab.xml:890
 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:891
+#: ../en/ch06-collab.xml:894
 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:895
+#: ../en/ch06-collab.xml:898
 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:899
+#: ../en/ch06-collab.xml:902
 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 "
@@ -6925,7 +6942,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:905
+#: ../en/ch06-collab.xml:908
 msgid ""
 "If you don't have a web server installed, and don't have substantial "
 "experience configuring Apache, you should consider using the "
@@ -6938,12 +6955,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:918
+#: ../en/ch06-collab.xml:921
 msgid "Basic CGI configuration"
 msgstr "基本 CGI 配置"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:920
+#: ../en/ch06-collab.xml:923
 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 "
@@ -6953,7 +6970,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:929
+#: ../en/ch06-collab.xml:932
 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 "
@@ -6963,14 +6980,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:936 ../en/ch06-collab.xml:1109
+#: ../en/ch06-collab.xml:939 ../en/ch06-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:941
+#: ../en/ch06-collab.xml:944
 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 "
@@ -6983,12 +7000,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:955
+#: ../en/ch06-collab.xml:958
 msgid "What could <emphasis>possibly</emphasis> go wrong?"
 msgstr "什么<emphasis>可能</emphasis>会出错?"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:958
+#: ../en/ch06-collab.xml:961
 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://"
@@ -7002,7 +7019,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:972
+#: ../en/ch06-collab.xml:975
 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.  "
@@ -7015,7 +7032,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:983
+#: ../en/ch06-collab.xml:986
 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 "
@@ -7025,7 +7042,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:993
+#: ../en/ch06-collab.xml:996
 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 "
@@ -7035,7 +7052,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1000
+#: ../en/ch06-collab.xml:1003
 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 "
@@ -7043,7 +7060,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1011
+#: ../en/ch06-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</"
@@ -7052,7 +7069,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1018
+#: ../en/ch06-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 "
@@ -7060,7 +7077,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1024
+#: ../en/ch06-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>-"
@@ -7075,7 +7092,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1038
+#: ../en/ch06-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 "
@@ -7086,19 +7103,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1048
+#: ../en/ch06-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:1054
+#: ../en/ch06-collab.xml:1057
 msgid "Configuring lighttpd"
 msgstr "配置 lighttpd"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1056
+#: ../en/ch06-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 "
@@ -7109,7 +7126,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1066
+#: ../en/ch06-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 "
@@ -7121,7 +7138,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1078
+#: ../en/ch06-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 "
@@ -7132,12 +7149,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1091
+#: ../en/ch06-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:1093
+#: ../en/ch06-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 "
@@ -7147,7 +7164,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1101
+#: ../en/ch06-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</"
@@ -7158,7 +7175,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1114
+#: ../en/ch06-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</"
@@ -7168,7 +7185,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1123
+#: ../en/ch06-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 "
@@ -7180,7 +7197,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1133
+#: ../en/ch06-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 "
@@ -7189,7 +7206,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1141
+#: ../en/ch06-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></"
@@ -7201,7 +7218,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1150
+#: ../en/ch06-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 "
@@ -7215,7 +7232,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1164
+#: ../en/ch06-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>, "
@@ -7226,7 +7243,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1174
+#: ../en/ch06-collab.xml:1177
 msgid ""
 "The <filename role=\"special\">hgwebdir.cgi</filename> script will "
 "recursively search each directory listed in the <literal>collections</"
@@ -7235,7 +7252,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1180
+#: ../en/ch06-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 "
@@ -7246,12 +7263,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1190
+#: ../en/ch06-collab.xml:1193
 msgid "Explicitly specifying which repositories to publish"
 msgstr "明确指出要发布的版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1193
+#: ../en/ch06-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 "
@@ -7260,7 +7277,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1201
+#: ../en/ch06-collab.xml:1204
 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 "
@@ -7270,7 +7287,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1208
+#: ../en/ch06-collab.xml:1211
 msgid ""
 "If you wish, you can use both the <literal>collections</literal> and "
 "<literal>paths</literal> mechanisms simultaneously in a single configuration "
@@ -7278,7 +7295,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para>
-#: ../en/ch06-collab.xml:1214
+#: ../en/ch06-collab.xml:1217
 msgid ""
 "If multiple repositories have the same virtual path, <filename role=\"special"
 "\">hgwebdir.cgi</filename> will not report an error.  Instead, it will behave "
@@ -7286,12 +7303,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1223
+#: ../en/ch06-collab.xml:1226
 msgid "Downloading source archives"
 msgstr "下载源代码档案包"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1225
+#: ../en/ch06-collab.xml:1228
 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 "
@@ -7299,7 +7316,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1230
+#: ../en/ch06-collab.xml:1233
 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="
@@ -7308,12 +7325,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch06-collab.xml:1238
+#: ../en/ch06-collab.xml:1241
 msgid "Web configuration options"
 msgstr "Web 配置选项"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1240
+#: ../en/ch06-collab.xml:1243
 msgid ""
 "Mercurial's web interfaces (the <command role=\"hg-cmd\">hg serve</command> "
 "command, and the <filename role=\"special\">hgweb.cgi</filename> and "
@@ -7323,7 +7340,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1248
+#: ../en/ch06-collab.xml:1251
 msgid ""
 "<envar role=\"rc-item-web\">allow_archive</envar>: Determines which (if any) "
 "archive download mechanisms Mercurial supports.  If you enable this feature, "
@@ -7333,7 +7350,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1257
+#: ../en/ch06-collab.xml:1260
 msgid ""
 "<literal>bz2</literal>: A <command>tar</command> archive, compressed using "
 "<literal>bzip2</literal> compression.  This has the best compression ratio, "
@@ -7341,14 +7358,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1263
+#: ../en/ch06-collab.xml:1266
 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:1267
+#: ../en/ch06-collab.xml:1270
 msgid ""
 "<literal>zip</literal>: A <command>zip</command> archive, compressed using "
 "LZW compression.  This format has the worst compression ratio, but is widely "
@@ -7356,7 +7373,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1273
+#: ../en/ch06-collab.xml:1276
 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 "
@@ -7364,7 +7381,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1280
+#: ../en/ch06-collab.xml:1283
 msgid ""
 "<envar role=\"rc-item-web\">allowpull</envar>: Boolean.  Determines whether "
 "the web interface allows remote users to <command role=\"hg-cmd\">hg pull</"
@@ -7374,7 +7391,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1289
+#: ../en/ch06-collab.xml:1292
 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 "
@@ -7386,21 +7403,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1300
+#: ../en/ch06-collab.xml:1303
 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:1304
+#: ../en/ch06-collab.xml:1307
 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:1308
+#: ../en/ch06-collab.xml:1311
 msgid ""
 "<envar role=\"rc-item-web\">stripes</envar>: Integer.  If the web interface "
 "displays alternating <quote>stripes</quote> to make it easier to visually "
@@ -7409,7 +7426,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1314
+#: ../en/ch06-collab.xml:1317
 msgid ""
 "<envar role=\"rc-item-web\">style</envar>: Controls the template Mercurial "
 "uses to display the web interface.  Mercurial ships with two web templates, "
@@ -7420,7 +7437,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1325
+#: ../en/ch06-collab.xml:1328
 msgid ""
 "<envar role=\"rc-item-web\">templates</envar>: Path.  The directory in which "
 "to search for template files.  By default, Mercurial searches in the "
@@ -7428,7 +7445,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch06-collab.xml:1330
+#: ../en/ch06-collab.xml:1333
 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> "
@@ -7439,12 +7456,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1341
+#: ../en/ch06-collab.xml:1344
 msgid "Options specific to an individual repository"
 msgstr "针对单个版本库的选项"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1343
+#: ../en/ch06-collab.xml:1346
 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</"
@@ -7453,7 +7470,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1349
+#: ../en/ch06-collab.xml:1352
 msgid ""
 "<envar role=\"rc-item-web\">description</envar>: String.  A free-form (but "
 "preferably brief) string that describes the contents or purpose of the "
@@ -7461,7 +7478,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1354
+#: ../en/ch06-collab.xml:1357
 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 "
@@ -7469,13 +7486,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch06-collab.xml:1362
+#: ../en/ch06-collab.xml:1365
 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:1365
+#: ../en/ch06-collab.xml:1368
 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 "
@@ -7483,7 +7500,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1371
+#: ../en/ch06-collab.xml:1374
 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 "
@@ -7493,7 +7510,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1379
+#: ../en/ch06-collab.xml:1382
 msgid ""
 "<envar role=\"rc-item-web\">address</envar>: String.  The local address on "
 "which the server should listen for incoming connections.  By default, the "
@@ -7501,7 +7518,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1384
+#: ../en/ch06-collab.xml:1387
 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 "
@@ -7510,21 +7527,21 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para>
-#: ../en/ch06-collab.xml:1390
+#: ../en/ch06-collab.xml:1393
 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:1394
+#: ../en/ch06-collab.xml:1397
 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:1401
+#: ../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"
@@ -7533,7 +7550,7 @@
 "role=\"rc-web\">web</literal> 条目"
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1405
+#: ../en/ch06-collab.xml:1408
 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 "
@@ -7542,7 +7559,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
-#: ../en/ch06-collab.xml:1412
+#: ../en/ch06-collab.xml:1415
 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 "
@@ -9236,30 +9253,31 @@
 "backout</command> command has done.  &interaction.backout.simple.log; Notice "
 "that the new changeset that <command role=\"hg-cmd\">hg backout</command> has "
 "created is a child of the changeset we backed out.  It's easier to see this "
-"in figure <xref linkend=\"fig.undo.backout\"/>, which presents a graphical "
-"view of the change history.  As you can see, the history is nice and linear."
+"in figure <xref endterm=\"fig.undo.backout.caption\" linkend=\"fig.undo."
+"backout\"/>, which presents a graphical view of the change history.  As you "
+"can see, the history is nice and linear."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:362
-msgid ""
-"<imageobject><imagedata fileref=\"images/undo-simple.png\"/></imageobject>"
+#: ../en/ch09-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:364 ../en/ch09-undo.xml:477
+#: ../en/ch09-undo.xml:367 ../en/ch09-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:373
+#: ../en/ch09-undo.xml:376
 msgid "Backing out a non-tip change"
 msgstr "恢复非顶点的修改"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:375
+#: ../en/ch09-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 "
@@ -9267,14 +9285,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:382
+#: ../en/ch09-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:388
+#: ../en/ch09-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, "
@@ -9282,40 +9300,40 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:395
-msgid ""
-"As the graphical history in figure <xref linkend=\"fig.undo.backout-non-tip\"/"
-"> illustrates, Mercurial actually commits <emphasis>two</emphasis> changes in "
-"this kind of situation (the box-shaped nodes are the ones that Mercurial "
-"commits automatically).  Before Mercurial begins the backout process, it "
-"first remembers what the current parent of the working directory is.  It then "
-"backs out the target changeset, and commits that as a changeset.  Finally, it "
-"merges back to the previous parent of the working directory, and commits the "
-"result of the merge."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:406
+#: ../en/ch09-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 "
+"actually commits <emphasis>two</emphasis> changes in this kind of situation "
+"(the box-shaped nodes are the ones that Mercurial commits automatically).  "
+"Before Mercurial begins the backout process, it first remembers what the "
+"current parent of the working directory is.  It then backs out the target "
+"changeset, and commits that as a changeset.  Finally, it merges back to the "
+"previous parent of the working directory, and commits the result of the merge."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><sect2><para>
+#: ../en/ch09-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:410
-msgid ""
-"<imageobject><imagedata fileref=\"images/undo-non-tip.png\"/></imageobject>"
+#: ../en/ch09-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:412
+#: ../en/ch09-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:418
+#: ../en/ch09-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 "
@@ -9323,12 +9341,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
-#: ../en/ch09-undo.xml:423
+#: ../en/ch09-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:426
+#: ../en/ch09-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 "
@@ -9338,12 +9356,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:437
+#: ../en/ch09-undo.xml:443
 msgid "Gaining more control of the backout process"
 msgstr "在恢复处理中获得更多控制"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:439
+#: ../en/ch09-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-"
@@ -9356,14 +9374,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:452
+#: ../en/ch09-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:458
+#: ../en/ch09-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 "
@@ -9372,23 +9390,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:466
+#: ../en/ch09-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 linkend=\"fig.undo.backout-manual\"/>.  "
-"This makes it clear that when we use <command role=\"hg-cmd\">hg backout</"
-"command> to back out a change other than the tip, Mercurial adds a new head "
-"to the repository (the change it committed is box-shaped)."
+"revision history, in figure <xref endterm=\"fig.undo.backout-manual.caption\" "
+"linkend=\"fig.undo.backout-manual\"/>.  This makes it clear that when we use "
+"<command role=\"hg-cmd\">hg backout</command> to back out a change other than "
+"the tip, Mercurial adds a new head to the repository (the change it committed "
+"is box-shaped)."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:475
-msgid ""
-"<imageobject><imagedata fileref=\"images/undo-manual.png\"/></imageobject>"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:484
+#: ../en/ch09-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
 msgid ""
 "After the <command role=\"hg-cmd\">hg backout</command> command has "
 "completed, it leaves the new <quote>backout</quote> changeset as the parent "
@@ -9396,12 +9415,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:491
+#: ../en/ch09-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:495
+#: ../en/ch09-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 "
@@ -9412,59 +9431,60 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:505
+#: ../en/ch09-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:510
+#: ../en/ch09-undo.xml:518
 msgid ""
 "Afterwards, the graphical history of our repository looks like figure <xref "
-"linkend=\"fig.undo.backout-manual-merge\"/>."
+"endterm=\"fig.undo.backout-manual-merge.caption\" linkend=\"fig.undo.backout-"
+"manual-merge\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch09-undo.xml:515
-msgid ""
-"<imageobject><imagedata fileref=\"images/undo-manual-merge.png\"/></"
+#: ../en/ch09-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:517
+#: ../en/ch09-undo.xml:528
 msgid "Manually merging a backout change"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:524
+#: ../en/ch09-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:527
+#: ../en/ch09-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:530
+#: ../en/ch09-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:534
+#: ../en/ch09-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:538
+#: ../en/ch09-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 "
@@ -9472,14 +9492,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:543
+#: ../en/ch09-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:546
+#: ../en/ch09-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 "
@@ -9488,14 +9508,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para>
-#: ../en/ch09-undo.xml:553
+#: ../en/ch09-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:557
+#: ../en/ch09-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 "
@@ -9503,7 +9523,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:563
+#: ../en/ch09-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 "
@@ -9514,7 +9534,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:573
+#: ../en/ch09-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 "
@@ -9523,7 +9543,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:580
+#: ../en/ch09-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 "
@@ -9538,12 +9558,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:597
+#: ../en/ch09-undo.xml:608
 msgid "Changes that should never have been"
 msgstr "不该发生的修改"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:599
+#: ../en/ch09-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 "
@@ -9552,7 +9572,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:605
+#: ../en/ch09-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 "
@@ -9564,7 +9584,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:614
+#: ../en/ch09-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 "
@@ -9573,7 +9593,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:619
+#: ../en/ch09-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 "
@@ -9585,7 +9605,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:628
+#: ../en/ch09-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 "
@@ -9595,7 +9615,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:636
+#: ../en/ch09-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 "
@@ -9606,7 +9626,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:644
+#: ../en/ch09-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 "
@@ -9615,7 +9635,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:650
+#: ../en/ch09-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 "
@@ -9623,12 +9643,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:656
+#: ../en/ch09-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:659
+#: ../en/ch09-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 "
@@ -9638,7 +9658,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:666
+#: ../en/ch09-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 "
@@ -9650,7 +9670,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:676
+#: ../en/ch09-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 "
@@ -9658,12 +9678,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:683
+#: ../en/ch09-undo.xml:694
 msgid "Finding the source of a bug"
 msgstr "查找问题的根源"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:685
+#: ../en/ch09-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 "
@@ -9673,7 +9693,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:692
+#: ../en/ch09-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 "
@@ -9685,14 +9705,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:701
+#: ../en/ch09-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:704
+#: ../en/ch09-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, "
@@ -9700,7 +9720,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:709
+#: ../en/ch09-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 "
@@ -9709,7 +9729,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:716
+#: ../en/ch09-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 "
@@ -9718,14 +9738,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:723
+#: ../en/ch09-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:728
+#: ../en/ch09-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.  "
@@ -9735,7 +9755,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:735
+#: ../en/ch09-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 "
@@ -9749,7 +9769,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:748
+#: ../en/ch09-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 "
@@ -9762,7 +9782,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:758
+#: ../en/ch09-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 "
@@ -9775,7 +9795,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch09-undo.xml:769
+#: ../en/ch09-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 "
@@ -9785,18 +9805,18 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:777
+#: ../en/ch09-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:780
+#: ../en/ch09-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:784
+#: ../en/ch09-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 "
@@ -9805,14 +9825,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:791
+#: ../en/ch09-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:797
+#: ../en/ch09-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 "
@@ -9822,7 +9842,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:807
+#: ../en/ch09-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 "
@@ -9830,46 +9850,46 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:814
+#: ../en/ch09-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:817
+#: ../en/ch09-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:819
+#: ../en/ch09-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:824
+#: ../en/ch09-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:828
+#: ../en/ch09-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:831
+#: ../en/ch09-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:834
+#: ../en/ch09-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 "
@@ -9878,14 +9898,14 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:839
+#: ../en/ch09-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:844
+#: ../en/ch09-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, "
@@ -9895,7 +9915,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:852
+#: ../en/ch09-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 "
@@ -9904,7 +9924,7 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:859
+#: ../en/ch09-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> "
@@ -9915,26 +9935,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:869
+#: ../en/ch09-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:871
+#: ../en/ch09-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:875
+#: ../en/ch09-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:880
+#: ../en/ch09-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 "
@@ -9943,26 +9963,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:886
+#: ../en/ch09-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:890
+#: ../en/ch09-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:895
+#: ../en/ch09-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:900
+#: ../en/ch09-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 "
@@ -9974,13 +9994,13 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:911
+#: ../en/ch09-undo.xml:922
 msgid "Cleaning up after your search"
 msgstr "搜索后的清理"
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:913
+#: ../en/ch09-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 "
@@ -9992,17 +10012,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch09-undo.xml:928
+#: ../en/ch09-undo.xml:939
 msgid "Tips for finding bugs effectively"
 msgstr "有效查找问题的技巧"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:931
+#: ../en/ch09-undo.xml:942
 msgid "Give consistent input"
 msgstr "给出一致的输入"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:933
+#: ../en/ch09-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 "
@@ -10014,12 +10034,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:945
+#: ../en/ch09-undo.xml:956
 msgid "Automate as much as possible"
 msgstr "尽量自动"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:947
+#: ../en/ch09-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.  "
@@ -10029,7 +10049,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:955
+#: ../en/ch09-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 "
@@ -10040,24 +10060,24 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:964
+#: ../en/ch09-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:966
+#: ../en/ch09-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:968
+#: ../en/ch09-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:971
+#: ../en/ch09-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 "
@@ -10068,12 +10088,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:981
+#: ../en/ch09-undo.xml:992
 msgid "Check your results"
 msgstr "检查你的结果"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:983
+#: ../en/ch09-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 "
@@ -10082,32 +10102,32 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch09-undo.xml:989
+#: ../en/ch09-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:993
+#: ../en/ch09-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:997
+#: ../en/ch09-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:1003
+#: ../en/ch09-undo.xml:1014
 msgid "Beware interference between bugs"
 msgstr "谨防问题之间的冲突"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1005
+#: ../en/ch09-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, "
@@ -10117,7 +10137,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1013
+#: ../en/ch09-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 "
@@ -10129,7 +10149,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1023
+#: ../en/ch09-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 "
@@ -10138,7 +10158,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1030
+#: ../en/ch09-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 "
@@ -10147,12 +10167,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch09-undo.xml:1039
+#: ../en/ch09-undo.xml:1050
 msgid "Bracket your search lazily"
 msgstr "减少你的查找工作"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1041
+#: ../en/ch09-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 "
@@ -10162,7 +10182,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1049
+#: ../en/ch09-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</"
@@ -10173,7 +10193,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch09-undo.xml:1058
+#: ../en/ch09-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 "
@@ -13954,22 +13974,23 @@
 "<command role=\"hg-ext-mq\">qpop</command> command.  MQ still <emphasis>knows "
 "about</emphasis>, or manages, a popped patch, but the patch no longer has a "
 "corresponding changeset in the repository, and the working directory does not "
-"contain the changes made by the patch.  Figure <xref linkend=\"fig.mq.stack\"/"
-"> illustrates the difference between applied and tracked patches."
+"contain the changes made by the patch.  Figure <xref endterm=\"fig.mq.stack."
+"caption\" linkend=\"fig.mq.stack\"/> illustrates the difference between "
+"applied and tracked patches."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject>
-#: ../en/ch12-mq.xml:407
+#: ../en/ch12-mq.xml:408
 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:409
+#: ../en/ch12-mq.xml:410
 msgid "Applied and unapplied patches in the MQ patch stack"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:414
+#: ../en/ch12-mq.xml:415
 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 "
@@ -13979,7 +14000,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:423
+#: ../en/ch12-mq.xml:424
 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 "
@@ -13987,12 +14008,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:431
+#: ../en/ch12-mq.xml:432
 msgid "Pushing and popping many patches"
 msgstr "压入或弹出多个补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:433
+#: ../en/ch12-mq.xml:434
 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 "
@@ -14005,12 +14026,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:450
+#: ../en/ch12-mq.xml:451
 msgid "Safety checks, and overriding them"
 msgstr "安全的检查,然后覆盖它们"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:452
+#: ../en/ch12-mq.xml:453
 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 "
@@ -14022,7 +14043,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:464
+#: ../en/ch12-mq.xml:465
 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 "
@@ -14036,12 +14057,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:479
+#: ../en/ch12-mq.xml:480
 msgid "Working on several patches at once"
 msgstr "同时处理多个补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:481
+#: ../en/ch12-mq.xml:482
 msgid ""
 "The <command role=\"hg-ext-mq\">qrefresh</command> command always refreshes "
 "the <emphasis>topmost</emphasis> applied patch.  This means that you can "
@@ -14050,7 +14071,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:488
+#: ../en/ch12-mq.xml:489
 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 "
@@ -14066,12 +14087,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:505
+#: ../en/ch12-mq.xml:506
 msgid "More about patches"
 msgstr "关于补丁的更多信息"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:507
+#: ../en/ch12-mq.xml:508
 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> "
@@ -14079,12 +14100,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:513
+#: ../en/ch12-mq.xml:514
 msgid "The strip count"
 msgstr "修剪计数"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:515
+#: ../en/ch12-mq.xml:516
 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 "
@@ -14094,7 +14115,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:522
+#: ../en/ch12-mq.xml:523
 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 "
@@ -14108,7 +14129,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:535
+#: ../en/ch12-mq.xml:536
 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 "
@@ -14119,7 +14140,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:543
+#: ../en/ch12-mq.xml:544
 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 "
@@ -14133,7 +14154,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:556
+#: ../en/ch12-mq.xml:557
 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. "
@@ -14143,7 +14164,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:564
+#: ../en/ch12-mq.xml:565
 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 "
@@ -14160,12 +14181,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:583
+#: ../en/ch12-mq.xml:584
 msgid "Strategies for applying a patch"
 msgstr "应用补丁的策略"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:585
+#: ../en/ch12-mq.xml:586
 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 "
@@ -14175,7 +14196,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:592
+#: ../en/ch12-mq.xml:593
 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 "
@@ -14186,7 +14207,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:601
+#: ../en/ch12-mq.xml:602
 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-"
@@ -14197,7 +14218,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:610
+#: ../en/ch12-mq.xml:611
 msgid ""
 "When neither of these techniques works, <command>patch</command> prints a "
 "message saying that the hunk in question was rejected.  It saves rejected "
@@ -14214,33 +14235,33 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:628
+#: ../en/ch12-mq.xml:629
 msgid "Some quirks of patch representation"
 msgstr "补丁的一些特性"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:630
+#: ../en/ch12-mq.xml:631
 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:633
+#: ../en/ch12-mq.xml:634
 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:637
+#: ../en/ch12-mq.xml:638
 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:641
+#: ../en/ch12-mq.xml:642
 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 "
@@ -14249,7 +14270,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:647
+#: ../en/ch12-mq.xml:648
 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</"
@@ -14257,7 +14278,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:653
+#: ../en/ch12-mq.xml:654
 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 "
@@ -14266,7 +14287,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:659
+#: ../en/ch12-mq.xml:660
 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</"
@@ -14274,12 +14295,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:666
+#: ../en/ch12-mq.xml:667
 msgid "Beware the fuzz"
 msgstr "当心毛刺"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:668
+#: ../en/ch12-mq.xml:669
 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 "
@@ -14291,7 +14312,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:678
+#: ../en/ch12-mq.xml:679
 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 "
@@ -14304,12 +14325,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:691
+#: ../en/ch12-mq.xml:692
 msgid "Handling rejection"
 msgstr "处理拒绝"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:693
+#: ../en/ch12-mq.xml:694
 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"
@@ -14318,7 +14339,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:699
+#: ../en/ch12-mq.xml:700
 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, "
@@ -14327,7 +14348,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:705
+#: ../en/ch12-mq.xml:706
 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</"
@@ -14335,7 +14356,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:710
+#: ../en/ch12-mq.xml:711
 msgid ""
 "If you're feeling adventurous, Neil Brown, a Linux kernel hacker, wrote a "
 "tool called <command>wiggle</command> <citation>web:wiggle</citation>, which "
@@ -14344,7 +14365,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:716
+#: ../en/ch12-mq.xml:717
 msgid ""
 "Another Linux kernel hacker, Chris Mason (the author of Mercurial Queues), "
 "wrote a similar tool called <command>mpatch</command> <citation>web:mpatch</"
@@ -14354,31 +14375,31 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:725
+#: ../en/ch12-mq.xml:726
 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:728
+#: ../en/ch12-mq.xml:729
 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:731
+#: ../en/ch12-mq.xml:732
 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:735
+#: ../en/ch12-mq.xml:736
 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:739
+#: ../en/ch12-mq.xml:740
 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, "
@@ -14388,12 +14409,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:751
+#: ../en/ch12-mq.xml:752
 msgid "Getting the best performance out of MQ"
 msgstr "MQ 的性能"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:753
+#: ../en/ch12-mq.xml:754
 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 "
@@ -14404,7 +14425,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:762
+#: ../en/ch12-mq.xml:763
 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 "
@@ -14416,14 +14437,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:773
+#: ../en/ch12-mq.xml:774
 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:777
+#: ../en/ch12-mq.xml:778
 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-"
@@ -14435,7 +14456,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:788
+#: ../en/ch12-mq.xml:789
 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 "
@@ -14447,7 +14468,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:798
+#: ../en/ch12-mq.xml:799
 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; "
@@ -14455,12 +14476,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:805
+#: ../en/ch12-mq.xml:806
 msgid "Updating your patches when the underlying code changes"
 msgstr "当基础代码改变时,更新补丁的方法"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:808
+#: ../en/ch12-mq.xml:809
 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 "
@@ -14471,7 +14492,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:817
+#: ../en/ch12-mq.xml:818
 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 "
@@ -14485,7 +14506,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:829
+#: ../en/ch12-mq.xml:830
 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 "
@@ -14495,7 +14516,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:836
+#: ../en/ch12-mq.xml:837
 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 "
@@ -14504,19 +14525,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:842
+#: ../en/ch12-mq.xml:843
 msgid "The process is a little involved."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:844
+#: ../en/ch12-mq.xml:845
 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:848
+#: ../en/ch12-mq.xml:849
 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="
@@ -14531,7 +14552,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:862
+#: ../en/ch12-mq.xml:863
 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</"
@@ -14539,7 +14560,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:867
+#: ../en/ch12-mq.xml:868
 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 "
@@ -14547,7 +14568,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch12-mq.xml:872
+#: ../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</"
@@ -14557,7 +14578,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:882
+#: ../en/ch12-mq.xml:883
 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="
@@ -14569,14 +14590,14 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:892
+#: ../en/ch12-mq.xml:893
 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:895
+#: ../en/ch12-mq.xml:896
 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="
@@ -14588,12 +14609,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:907
+#: ../en/ch12-mq.xml:908
 msgid "Identifying patches"
 msgstr "标识补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:909
+#: ../en/ch12-mq.xml:910
 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 "
@@ -14603,7 +14624,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:916
+#: ../en/ch12-mq.xml:917
 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 "
@@ -14612,7 +14633,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:922
+#: ../en/ch12-mq.xml:923
 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 "
@@ -14621,7 +14642,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:928
+#: ../en/ch12-mq.xml:929
 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 "
@@ -14634,38 +14655,38 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:940
+#: ../en/ch12-mq.xml:941
 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:943
+#: ../en/ch12-mq.xml:944
 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:947
+#: ../en/ch12-mq.xml:948
 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:950
+#: ../en/ch12-mq.xml:951
 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:954
+#: ../en/ch12-mq.xml:955
 msgid "subdir"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:959
+#: ../en/ch12-mq.xml:960
 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 "
@@ -14673,7 +14694,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:964
+#: ../en/ch12-mq.xml:965
 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 "
@@ -14684,19 +14705,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:977
+#: ../en/ch12-mq.xml:978
 msgid "Useful things to know about"
 msgstr "其它需要了解的东西"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:979
+#: ../en/ch12-mq.xml:980
 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:984
+#: ../en/ch12-mq.xml:985
 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 "
@@ -14707,7 +14728,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:993
+#: ../en/ch12-mq.xml:994
 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 "
@@ -14717,12 +14738,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1004
+#: ../en/ch12-mq.xml:1005
 msgid "Managing patches in a repository"
 msgstr "在版本库管理补丁"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1006
+#: ../en/ch12-mq.xml:1007
 msgid ""
 "Because MQ's <filename role=\"special\" class=\"directory\">.hg/patches</"
 "filename> directory resides outside a Mercurial repository's working "
@@ -14731,7 +14752,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1012
+#: ../en/ch12-mq.xml:1013
 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 "
@@ -14742,7 +14763,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1021
+#: ../en/ch12-mq.xml:1022
 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 "
@@ -14754,7 +14775,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1031
+#: ../en/ch12-mq.xml:1032
 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 "
@@ -14762,12 +14783,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1037
+#: ../en/ch12-mq.xml:1038
 msgid "MQ support for patch repositories"
 msgstr "MQ 支持补丁版本库"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1039
+#: ../en/ch12-mq.xml:1040
 msgid ""
 "MQ helps you to work with the <filename role=\"special\" class=\"directory\">."
 "hg/patches</filename> directory as a repository; when you prepare a "
@@ -14778,7 +14799,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch12-mq.xml:1049
+#: ../en/ch12-mq.xml:1050
 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="
@@ -14789,7 +14810,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><note><para>
-#: ../en/ch12-mq.xml:1058
+#: ../en/ch12-mq.xml:1059
 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 "
@@ -14798,7 +14819,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1065
+#: ../en/ch12-mq.xml:1066
 msgid ""
 "As a convenience, if MQ notices that the <filename class=\"directory\">.hg/"
 "patches</filename> directory is a repository, it will automatically <command "
@@ -14806,7 +14827,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1070
+#: ../en/ch12-mq.xml:1071
 msgid ""
 "MQ provides a shortcut command, <command role=\"hg-ext-mq\">qcommit</"
 "command>, that runs <command role=\"hg-cmd\">hg commit</command> in the "
@@ -14815,7 +14836,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1076
+#: ../en/ch12-mq.xml:1077
 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 "
@@ -14824,26 +14845,26 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1086
+#: ../en/ch12-mq.xml:1087
 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:1091
+#: ../en/ch12-mq.xml:1092
 msgid "A few things to watch out for"
 msgstr "需要注意的事情"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1093
+#: ../en/ch12-mq.xml:1094
 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:1096
+#: ../en/ch12-mq.xml:1097
 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 "
@@ -14857,12 +14878,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1112
+#: ../en/ch12-mq.xml:1113
 msgid "Third party tools for working with patches"
 msgstr "操作补丁的第三方工具"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1114
+#: ../en/ch12-mq.xml:1115
 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 "
@@ -14870,7 +14891,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1118
+#: ../en/ch12-mq.xml:1119
 msgid ""
 "The <command>diffstat</command> command <citation>web:diffstat</citation> "
 "generates a histogram of the modifications made to each file in a patch.  It "
@@ -14883,7 +14904,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1132
+#: ../en/ch12-mq.xml:1133
 msgid ""
 "The <literal role=\"package\">patchutils</literal> package <citation>web:"
 "patchutils</citation> is invaluable. It provides a set of small utilities "
@@ -14898,12 +14919,12 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1148
+#: ../en/ch12-mq.xml:1149
 msgid "Good ways to work with patches"
 msgstr "操作补丁的好习惯"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1150
+#: ../en/ch12-mq.xml:1151
 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 "
@@ -14912,7 +14933,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1156
+#: ../en/ch12-mq.xml:1157
 msgid ""
 "Give your patches descriptive names.  A good name for a patch might be "
 "<filename>rework-device-alloc.patch</filename>, because it will immediately "
@@ -14926,7 +14947,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1168
+#: ../en/ch12-mq.xml:1169
 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 "
@@ -14939,7 +14960,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1178
+#: ../en/ch12-mq.xml:1179
 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="
@@ -14950,17 +14971,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1189
+#: ../en/ch12-mq.xml:1190
 msgid "MQ cookbook"
 msgstr "MQ 手册"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1192
+#: ../en/ch12-mq.xml:1193
 msgid "Manage <quote>trivial</quote> patches"
 msgstr "管理<quote>琐碎的</quote>补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1194
+#: ../en/ch12-mq.xml:1195
 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 "
@@ -14969,26 +14990,26 @@
 
 #
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1199
+#: ../en/ch12-mq.xml:1200
 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:1204
+#: ../en/ch12-mq.xml:1205
 msgid "Continue by creating a patch stack and making your changes."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1209
+#: ../en/ch12-mq.xml:1210
 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:1215
+#: ../en/ch12-mq.xml:1216
 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"
@@ -14998,17 +15019,17 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1223
+#: ../en/ch12-mq.xml:1224
 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:1230
+#: ../en/ch12-mq.xml:1231
 msgid "Combining entire patches"
 msgstr "组合全部的补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1232
+#: ../en/ch12-mq.xml:1233
 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, "
@@ -15018,7 +15039,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1240
+#: ../en/ch12-mq.xml:1241
 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</"
@@ -15029,19 +15050,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch12-mq.xml:1251
+#: ../en/ch12-mq.xml:1252
 msgid "Merging part of one patch into another"
 msgstr "合并补丁的部分内容到其它补丁"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1253
+#: ../en/ch12-mq.xml:1254
 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:1257
+#: ../en/ch12-mq.xml:1258
 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="
@@ -15055,7 +15076,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1270
+#: ../en/ch12-mq.xml:1271
 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 "
@@ -15064,32 +15085,32 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1278
+#: ../en/ch12-mq.xml:1279
 msgid "This command prints three different kinds of number:"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
-#: ../en/ch12-mq.xml:1281
+#: ../en/ch12-mq.xml:1282
 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:1285
+#: ../en/ch12-mq.xml:1286
 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:1288
+#: ../en/ch12-mq.xml:1289
 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:1292
+#: ../en/ch12-mq.xml:1293
 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 "
@@ -15099,7 +15120,7 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch12-mq.xml:1300
+#: ../en/ch12-mq.xml:1301
 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="
@@ -15107,19 +15128,19 @@
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch12-mq.xml:1307
+#: ../en/ch12-mq.xml:1308
 msgid "Differences between quilt and MQ"
 msgstr "MQ 与 quilt 的区别"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch12-mq.xml:1309
+#: ../en/ch12-mq.xml:1310
 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:1313
+#: ../en/ch12-mq.xml:1314
 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 "
@@ -15765,7 +15786,7 @@
 msgstr ""
 
 #
-#. 	&example.hg-interdiff;
+#. 	&example.hg-interdiff; 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch13-mq-collab.xml:465
 msgid ""