# HG changeset patch # User Dongsheng Song # Date 1237258074 -28800 # Node ID 8b73656f95c97b7b80811039665b358e936bc527 # Parent a13813534ccdb9277456958064f99e9b86ed82ac Update file location in po files diff -r a13813534ccd -r 8b73656f95c9 po/zh.po --- 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 \n" @@ -2784,47 +2784,48 @@ #. type: Content of: #: ../en/ch02-tour-basic.xml:253 msgid "" -"Figure provides a graphical " -"representation of the history of the hello repository, to make it a little easier to see which direction " -"history is flowing in. We'll be returning to this figure " -"several times in this chapter and the chapter that follows." +"Figure provides a graphical representation of the history of the " +"hello repository, to make it a " +"little easier to see which direction history is flowing in. " +"We'll be returning to this figure several times in this chapter and the " +"chapter that follows." msgstr "" #. type: Content of: -#: ../en/ch02-tour-basic.xml:263 +#: ../en/ch02-tour-basic.xml:264 msgid "" "" msgstr "" #. type: Content of: -#: ../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: -#: ../en/ch02-tour-basic.xml:265 +#: ../en/ch02-tour-basic.xml:266 msgid "" "Graphical history of the hello " "repository" msgstr "" #. type: Content of: -#: ../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 ""