Mercurial > hgbook
diff po/zh.po @ 749:7e7c47481e4f
Oops, this is the real merge for my hg's oddity
author | Dongsheng Song <dongsheng.song@gmail.com> |
---|---|
date | Fri, 20 Mar 2009 16:43:35 +0800 |
parents | c2cefd9f9893 |
children | 6b1577ef5135 |
line wrap: on
line diff
--- a/po/zh.po Fri Mar 20 15:40:06 2009 +0800 +++ b/po/zh.po Fri Mar 20 16:43:35 2009 +0800 @@ -41,7 +41,7 @@ msgid "" msgstr "" "Project-Id-Version: hgbook 1.2\n" -"POT-Creation-Date: 2009-03-18 19:48+0800\n" +"POT-Creation-Date: 2009-03-20 15:47+0800\n" "PO-Revision-Date: 2009-03-18 19:50+0800\n" "Last-Translator: \n" "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n" @@ -475,15 +475,16 @@ "patches</command>." msgstr "" -#. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:42 -msgid "" -"\\subsection{<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a " -"patch from the <filename role=\"special\">series</filename> file}" -msgstr "" +#. type: Content of: <book><appendix><sect1><sect2><title> +#: ../en/appB-mq-ref.xml:43 +#, fuzzy +msgid "" +"<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a patch from the " +"<filename role=\"special\">series</filename> file}" +msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:47 +#: ../en/appB-mq-ref.xml:48 msgid "" "The <command role=\"hg-ext-mq\">qdelete</command> command removes the entry " "for a patch from the <filename role=\"special\">series</filename> file in the " @@ -494,21 +495,21 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:56 ../en/appB-mq-ref.xml:98 ../en/appB-mq-ref.xml:156 -#: ../en/appB-mq-ref.xml:196 ../en/appB-mq-ref.xml:263 -#: ../en/appB-mq-ref.xml:334 ../en/appB-mq-ref.xml:403 -#: ../en/appB-mq-ref.xml:496 +#: ../en/appB-mq-ref.xml:57 ../en/appB-mq-ref.xml:99 ../en/appB-mq-ref.xml:157 +#: ../en/appB-mq-ref.xml:197 ../en/appB-mq-ref.xml:264 +#: ../en/appB-mq-ref.xml:335 ../en/appB-mq-ref.xml:404 +#: ../en/appB-mq-ref.xml:497 msgid "Options:" msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:58 +#: ../en/appB-mq-ref.xml:59 msgid "" "<option role=\"hg-ext-mq-cmd-qdel-opt\">-f</option>: Delete the patch file." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:65 +#: ../en/appB-mq-ref.xml:66 msgid "" "<command role=\"hg-ext-mq\">qdiff</command>&emdash;print a diff of the " "topmost applied patch" @@ -516,7 +517,7 @@ "<command role=\"hg-ext-mq\">qdiff</command>&emdash;显示最新应用补丁的差异" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:68 +#: ../en/appB-mq-ref.xml:69 msgid "" "The <command role=\"hg-ext-mq\">qdiff</command> command prints a diff of the " "topmost applied patch. It is equivalent to <command role=\"hg-cmd\">hg diff -" @@ -524,7 +525,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:74 +#: ../en/appB-mq-ref.xml:75 msgid "" "<command role=\"hg-ext-mq\">qfold</command>&emdash;merge (<quote>fold</" "quote>) several patches into one" @@ -533,7 +534,7 @@ "</quote>)成一个" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:77 +#: ../en/appB-mq-ref.xml:78 msgid "" "The <command role=\"hg-ext-mq\">qfold</command> command merges multiple " "patches into the topmost applied patch, so that the topmost applied patch " @@ -541,7 +542,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:82 +#: ../en/appB-mq-ref.xml:83 msgid "" "The patches to fold must not be applied; <command role=\"hg-ext-mq\">qfold</" "command> will exit with an error if any is. The order in which patches are " @@ -551,7 +552,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:90 +#: ../en/appB-mq-ref.xml:91 msgid "" "The comments from the folded patches are appended to the comments of the " "destination patch, with each block of comments separated by three asterisk " @@ -561,14 +562,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:100 +#: ../en/appB-mq-ref.xml:101 msgid "" "<option role=\"hg-ext-mq-cmd-qfold-opt\">-e</option>: Edit the commit message " "and patch description for the newly folded patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:105 +#: ../en/appB-mq-ref.xml:106 msgid "" "<option role=\"hg-ext-mq-cmd-qfold-opt\">-l</option>: Use the contents of the " "given file as the new commit message and patch description for the folded " @@ -576,21 +577,21 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:110 +#: ../en/appB-mq-ref.xml:111 msgid "" "<option role=\"hg-ext-mq-cmd-qfold-opt\">-m</option>: Use the given text as " "the new commit message and patch description for the folded patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:118 +#: ../en/appB-mq-ref.xml:119 msgid "" "<command role=\"hg-ext-mq\">qheader</command>&emdash;display the header/" "description of a patch" msgstr "<command role=\"hg-ext-mq\">qheader</command>&emdash;显示补丁头部描述" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:122 +#: ../en/appB-mq-ref.xml:123 msgid "" "The <command role=\"hg-ext-mq\">qheader</command> command prints the header, " "or description, of a patch. By default, it prints the header of the topmost " @@ -598,7 +599,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:129 +#: ../en/appB-mq-ref.xml:130 msgid "" "<command role=\"hg-ext-mq\">qimport</command>&emdash;import a third-party " "patch into the queue" @@ -606,7 +607,7 @@ "<command role=\"hg-ext-mq\">qimport</command>&emdash;将第三方补丁导入队列" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:132 +#: ../en/appB-mq-ref.xml:133 msgid "" "The <command role=\"hg-ext-mq\">qimport</command> command adds an entry for " "an external patch to the <filename role=\"special\">series</filename> file, " @@ -616,7 +617,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:140 +#: ../en/appB-mq-ref.xml:141 msgid "" "If the <filename role=\"special\" class=\"directory\">.hg/patches</filename> " "directory is a repository, <command role=\"hg-ext-mq\">qimport</command> " @@ -625,14 +626,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:148 +#: ../en/appB-mq-ref.xml:149 msgid "" "<command role=\"hg-ext-mq\">qinit</command>&emdash;prepare a repository to " "work with MQ" msgstr "<command role=\"hg-ext-mq\">qinit</command>&emdash;为使用 MQ 配置版本库" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:151 +#: ../en/appB-mq-ref.xml:152 msgid "" "The <command role=\"hg-ext-mq\">qinit</command> command prepares a repository " "to work with MQ. It creates a directory called <filename role=\"special\" " @@ -640,7 +641,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:158 +#: ../en/appB-mq-ref.xml:159 msgid "" "<option role=\"hg-ext-mq-cmd-qinit-opt\">-c</option>: Create <filename role=" "\"special\" class=\"directory\">.hg/patches</filename> as a repository in its " @@ -649,7 +650,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:168 +#: ../en/appB-mq-ref.xml:169 msgid "" "When the <filename role=\"special\" class=\"directory\">.hg/patches</" "filename> directory is a repository, the <command role=\"hg-ext-mq\">qimport</" @@ -658,12 +659,12 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:177 +#: ../en/appB-mq-ref.xml:178 msgid "<command role=\"hg-ext-mq\">qnew</command>&emdash;create a new patch" msgstr "<command role=\"hg-ext-mq\">qnew</command>&emdash;创建新补丁" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:180 +#: ../en/appB-mq-ref.xml:181 msgid "" "The <command role=\"hg-ext-mq\">qnew</command> command creates a new patch. " "It takes one mandatory argument, the name to use for the patch file. The " @@ -673,7 +674,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:188 +#: ../en/appB-mq-ref.xml:189 msgid "" "If <command role=\"hg-ext-mq\">qnew</command> finds modified files in the " "working directory, it will refuse to create a new patch unless the <option " @@ -683,7 +684,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:198 +#: ../en/appB-mq-ref.xml:199 msgid "" "<option role=\"hg-ext-mq-cmd-qnew-opt\">-f</option>: Create a new patch if " "the contents of the working directory are modified. Any outstanding " @@ -692,7 +693,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:205 +#: ../en/appB-mq-ref.xml:206 msgid "" "<option role=\"hg-ext-mq-cmd-qnew-opt\">-m</option>: Use the given text as " "the commit message. This text will be stored at the beginning of the patch " @@ -700,14 +701,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:214 +#: ../en/appB-mq-ref.xml:215 msgid "" "<command role=\"hg-ext-mq\">qnext</command>&emdash;print the name of the next " "patch" msgstr "<command role=\"hg-ext-mq\">qnext</command>&emdash;显示下个补丁的名称" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:217 +#: ../en/appB-mq-ref.xml:218 msgid "" "The <command role=\"hg-ext-mq\">qnext</command> command prints the name name " "of the next patch in the <filename role=\"special\">series</filename> file " @@ -716,13 +717,13 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:226 +#: ../en/appB-mq-ref.xml:227 msgid "" "<command role=\"hg-ext-mq\">qpop</command>&emdash;pop patches off the stack" msgstr "<command role=\"hg-ext-mq\">qpop</command>&emdash;删除堆栈顶部的补丁" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:229 +#: ../en/appB-mq-ref.xml:230 msgid "" "The <command role=\"hg-ext-mq\">qpop</command> command removes applied " "patches from the top of the stack of applied patches. By default, it removes " @@ -730,7 +731,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:233 +#: ../en/appB-mq-ref.xml:234 msgid "" "This command removes the changesets that represent the popped patches from " "the repository, and updates the working directory to undo the effects of the " @@ -738,7 +739,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:237 +#: ../en/appB-mq-ref.xml:238 msgid "" "This command takes an optional argument, which it uses as the name or index " "of the patch to pop to. If given a name, it will pop patches until the named " @@ -750,7 +751,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:247 +#: ../en/appB-mq-ref.xml:248 msgid "" "The <command role=\"hg-ext-mq\">qpop</command> command does not read or write " "patches or the <filename role=\"special\">series</filename> file. It is thus " @@ -761,7 +762,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:256 +#: ../en/appB-mq-ref.xml:257 msgid "" "By default, the <command role=\"hg-ext-mq\">qpop</command> command will not " "pop any patches if the working directory has been modified. You can override " @@ -770,7 +771,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:265 +#: ../en/appB-mq-ref.xml:266 msgid "" "<option role=\"hg-ext-mq-cmd-qpop-opt\">-a</option>: Pop all applied " "patches. This returns the repository to its state before you applied any " @@ -778,21 +779,21 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:270 +#: ../en/appB-mq-ref.xml:271 msgid "" "<option role=\"hg-ext-mq-cmd-qpop-opt\">-f</option>: Forcibly revert any " "modifications to the working directory when popping." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:275 +#: ../en/appB-mq-ref.xml:276 msgid "" "<option role=\"hg-ext-mq-cmd-qpop-opt\">-n</option>: Pop a patch from the " "named queue." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:280 +#: ../en/appB-mq-ref.xml:281 msgid "" "The <command role=\"hg-ext-mq\">qpop</command> command removes one line from " "the end of the <filename role=\"special\">status</filename> file for each " @@ -800,14 +801,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:287 +#: ../en/appB-mq-ref.xml:288 msgid "" "<command role=\"hg-ext-mq\">qprev</command>&emdash;print the name of the " "previous patch" msgstr "<command role=\"hg-ext-mq\">qprev</command>&emdash;显示上个补丁的名称" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:290 +#: ../en/appB-mq-ref.xml:291 msgid "" "The <command role=\"hg-ext-mq\">qprev</command> command prints the name of " "the patch in the <filename role=\"special\">series</filename> file that comes " @@ -816,32 +817,32 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:299 +#: ../en/appB-mq-ref.xml:300 msgid "" "<command role=\"hg-ext-mq\">qpush</command>&emdash;push patches onto the stack" msgstr "<command role=\"hg-ext-mq\">qpush</command>&emdash;增加补丁到堆栈" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:302 +#: ../en/appB-mq-ref.xml:303 msgid "" "The <command role=\"hg-ext-mq\">qpush</command> command adds patches onto the " "applied stack. By default, it adds only one patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:306 +#: ../en/appB-mq-ref.xml:307 msgid "" "This command creates a new changeset to represent each applied patch, and " "updates the working directory to apply the effects of the patches." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:310 +#: ../en/appB-mq-ref.xml:311 msgid "The default data used when creating a changeset are as follows:" msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:313 +#: ../en/appB-mq-ref.xml:314 msgid "" "The commit date and time zone are the current date and time zone. Because " "these data are used to compute the identity of a changeset, this means that " @@ -851,14 +852,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:321 +#: ../en/appB-mq-ref.xml:322 msgid "" "The author is the same as the default used by the <command role=\"hg-cmd\">hg " "commit</command> command." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:325 +#: ../en/appB-mq-ref.xml:326 msgid "" "The commit message is any text from the patch file that comes before the " "first diff header. If there is no such text, a default commit message is " @@ -866,14 +867,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:330 +#: ../en/appB-mq-ref.xml:331 msgid "" "If a patch contains a Mercurial patch header (XXX add link), the information " "in the patch header overrides these defaults." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:336 +#: ../en/appB-mq-ref.xml:337 msgid "" "<option role=\"hg-ext-mq-cmd-qpush-opt\">-a</option>: Push all unapplied " "patches from the <filename role=\"special\">series</filename> file until " @@ -881,14 +882,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:342 +#: ../en/appB-mq-ref.xml:343 msgid "" "<option role=\"hg-ext-mq-cmd-qpush-opt\">-l</option>: Add the name of the " "patch to the end of the commit message." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:346 +#: ../en/appB-mq-ref.xml:347 msgid "" "<option role=\"hg-ext-mq-cmd-qpush-opt\">-m</option>: If a patch fails to " "apply cleanly, use the entry for the patch in another saved queue to compute " @@ -898,14 +899,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:354 +#: ../en/appB-mq-ref.xml:355 msgid "" "<option role=\"hg-ext-mq-cmd-qpush-opt\">-n</option>: Use the named queue if " "merging while pushing." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:359 +#: ../en/appB-mq-ref.xml:360 msgid "" "The <command role=\"hg-ext-mq\">qpush</command> command reads, but does not " "modify, the <filename role=\"special\">series</filename> file. It appends " @@ -914,14 +915,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:367 +#: ../en/appB-mq-ref.xml:368 msgid "" "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;update the topmost " "applied patch" msgstr "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;更新最新的补丁" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:371 +#: ../en/appB-mq-ref.xml:372 msgid "" "The <command role=\"hg-ext-mq\">qrefresh</command> command updates the " "topmost applied patch. It modifies the patch, removes the old changeset that " @@ -930,28 +931,28 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:377 +#: ../en/appB-mq-ref.xml:378 msgid "" "The <command role=\"hg-ext-mq\">qrefresh</command> command looks for the " "following modifications:" msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:380 +#: ../en/appB-mq-ref.xml:381 msgid "" "Changes to the commit message, i.e. the text before the first diff header in " "the patch file, are reflected in the new changeset that represents the patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:385 +#: ../en/appB-mq-ref.xml:386 msgid "" "Modifications to tracked files in the working directory are added to the " "patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:388 +#: ../en/appB-mq-ref.xml:389 msgid "" "Changes to the files tracked using <command role=\"hg-cmd\">hg add</command>, " "<command role=\"hg-cmd\">hg copy</command>, <command role=\"hg-cmd\">hg " @@ -961,7 +962,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:397 +#: ../en/appB-mq-ref.xml:398 msgid "" "Even if <command role=\"hg-ext-mq\">qrefresh</command> detects no changes, it " "still recreates the changeset that represents the patch. This causes the " @@ -970,33 +971,33 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:405 +#: ../en/appB-mq-ref.xml:406 msgid "" "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-e</option>: Modify the commit " "and patch description, using the preferred text editor." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:410 +#: ../en/appB-mq-ref.xml:411 msgid "" "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-m</option>: Modify the commit " "message and patch description, using the given text." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:415 +#: ../en/appB-mq-ref.xml:416 msgid "" "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-l</option>: Modify the commit " "message and patch description, using text from the given file." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:423 +#: ../en/appB-mq-ref.xml:424 msgid "<command role=\"hg-ext-mq\">qrename</command>&emdash;rename a patch" msgstr "<command role=\"hg-ext-mq\">qrename</command>&emdash;改名补丁" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:426 +#: ../en/appB-mq-ref.xml:427 msgid "" "The <command role=\"hg-ext-mq\">qrename</command> command renames a patch, " "and changes the entry for the patch in the <filename role=\"special\">series</" @@ -1004,7 +1005,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:430 +#: ../en/appB-mq-ref.xml:431 msgid "" "With a single argument, <command role=\"hg-ext-mq\">qrename</command> renames " "the topmost applied patch. With two arguments, it renames its first argument " @@ -1012,37 +1013,37 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:437 +#: ../en/appB-mq-ref.xml:438 msgid "" "<command role=\"hg-ext-mq\">qrestore</command>&emdash;restore saved queue " "state" msgstr "<command role=\"hg-ext-mq\">qrestore</command>&emdash;恢复保存的队列" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:441 +#: ../en/appB-mq-ref.xml:442 msgid "XXX No idea what this does." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:445 +#: ../en/appB-mq-ref.xml:446 msgid "" "<command role=\"hg-ext-mq\">qsave</command>&emdash;save current queue state" msgstr "<command role=\"hg-ext-mq\">qsave</command>&emdash;保存当前的队列状态" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:448 +#: ../en/appB-mq-ref.xml:449 msgid "XXX Likewise." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:452 +#: ../en/appB-mq-ref.xml:453 msgid "" "<command role=\"hg-ext-mq\">qseries</command>&emdash;print the entire patch " "series" msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:455 +#: ../en/appB-mq-ref.xml:456 msgid "" "The <command role=\"hg-ext-mq\">qseries</command> command prints the entire " "patch series from the <filename role=\"special\">series</filename> file. It " @@ -1051,21 +1052,21 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:463 +#: ../en/appB-mq-ref.xml:464 msgid "" "<command role=\"hg-ext-mq\">qtop</command>&emdash;print the name of the " "current patch" msgstr "<command role=\"hg-ext-mq\">qtop</command>&emdash;显示当前补丁的名称" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:466 +#: ../en/appB-mq-ref.xml:467 msgid "" "The <command role=\"hg-ext-mq\">qtop</command> prints the name of the topmost " "currently applied patch." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:471 +#: ../en/appB-mq-ref.xml:472 msgid "" "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;print patches not yet " "applied" @@ -1073,7 +1074,7 @@ "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;显示尚未应用的补丁" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:475 +#: ../en/appB-mq-ref.xml:476 msgid "" "The <command role=\"hg-ext-mq\">qunapplied</command> command prints the names " "of patches from the <filename role=\"special\">series</filename> file that " @@ -1082,14 +1083,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:483 +#: ../en/appB-mq-ref.xml:484 msgid "" "<command role=\"hg-cmd\">hg strip</command>&emdash;remove a revision and " "descendants" msgstr "<command role=\"hg-cmd\">hg strip</command>&emdash;删除一个版本及其后继" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:486 +#: ../en/appB-mq-ref.xml:487 msgid "" "The <command role=\"hg-cmd\">hg strip</command> command removes a revision, " "and all of its descendants, from the repository. It undoes the effects of " @@ -1098,7 +1099,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:492 +#: ../en/appB-mq-ref.xml:493 msgid "" "The <command role=\"hg-cmd\">hg strip</command> command saves a backup of the " "removed changesets in a bundle, so that they can be reapplied if removed in " @@ -1106,14 +1107,14 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:498 +#: ../en/appB-mq-ref.xml:499 msgid "" "<option role=\"hg-opt-strip\">-b</option>: Save unrelated changesets that are " "intermixed with the stripped changesets in the backup bundle." msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:502 +#: ../en/appB-mq-ref.xml:503 msgid "" "<option role=\"hg-opt-strip\">-f</option>: If a branch has multiple heads, " "remove all heads. XXX This should be renamed, and use <literal>-f</literal> " @@ -1121,22 +1122,22 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> -#: ../en/appB-mq-ref.xml:507 +#: ../en/appB-mq-ref.xml:508 msgid "<option role=\"hg-opt-strip\">-n</option>: Do not save a backup bundle." msgstr "" #. type: Content of: <book><appendix><sect1><title> -#: ../en/appB-mq-ref.xml:514 +#: ../en/appB-mq-ref.xml:515 msgid "MQ file reference" msgstr "MQ 文件参考" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:517 +#: ../en/appB-mq-ref.xml:518 msgid "The <filename role=\"special\">series</filename> file" msgstr "<filename role=\"special\">序列</filename>文件" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:520 +#: ../en/appB-mq-ref.xml:521 msgid "" "The <filename role=\"special\">series</filename> file contains a list of the " "names of all patches that MQ can apply. It is represented as a list of " @@ -1145,7 +1146,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:526 +#: ../en/appB-mq-ref.xml:527 msgid "" "Lines may contain comments. A comment begins with the <quote><literal>#</" "literal></quote> character, and extends to the end of the line. Empty lines, " @@ -1153,7 +1154,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:531 +#: ../en/appB-mq-ref.xml:532 msgid "" "You will often need to edit the <filename role=\"special\">series</filename> " "file by hand, hence the support for comments and empty lines noted above. " @@ -1164,7 +1165,7 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:540 +#: ../en/appB-mq-ref.xml:541 msgid "" "Placing the <filename role=\"special\">series</filename> file under revision " "control is also supported; it is a good idea to place all of the patches that " @@ -1175,12 +1176,12 @@ msgstr "" #. type: Content of: <book><appendix><sect1><sect2><title> -#: ../en/appB-mq-ref.xml:550 +#: ../en/appB-mq-ref.xml:551 msgid "The <filename role=\"special\">status</filename> file" msgstr "<filename role=\"special\">状态</filename>文件" #. type: Content of: <book><appendix><sect1><sect2><para> -#: ../en/appB-mq-ref.xml:553 +#: ../en/appB-mq-ref.xml:554 msgid "" "The <filename role=\"special\">status</filename> file contains the names and " "changeset hashes of all patches that MQ currently has applied. Unlike the " @@ -1519,941 +1520,17 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch01-intro.xml:5 -msgid "Introduction" -msgstr "简介" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:8 -msgid "About revision control" -msgstr "关于版本控制" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:10 -msgid "" -"Revision control is the process of managing multiple versions of a piece of " -"information. In its simplest form, this is something that many people do by " -"hand: every time you modify a file, save it under a new name that contains a " -"number, each one higher than the number of the preceding version." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:16 -msgid "" -"Manually managing multiple versions of even a single file is an error-prone " -"task, though, so software tools to help automate this process have long been " -"available. The earliest automated revision control tools were intended to " -"help a single user to manage revisions of a single file. Over the past few " -"decades, the scope of revision control tools has expanded greatly; they now " -"manage multiple files, and help multiple people to work together. The best " -"modern revision control tools have no problem coping with thousands of people " -"working together on projects that consist of hundreds of thousands of files." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:28 -msgid "Why use revision control?" -msgstr "为什么使用版本控制?" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:30 -msgid "" -"There are a number of reasons why you or your team might want to use an " -"automated revision control tool for a project." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:34 -msgid "" -"It will track the history and evolution of your project, so you don't have " -"to. For every change, you'll have a log of <emphasis>who</emphasis> made it; " -"<emphasis>why</emphasis> they made it; <emphasis>when</emphasis> they made " -"it; and <emphasis>what</emphasis> the change was." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:41 -msgid "" -"When you're working with other people, revision control software makes it " -"easier for you to collaborate. For example, when people more or less " -"simultaneously make potentially incompatible changes, the software will help " -"you to identify and resolve those conflicts." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:47 -msgid "" -"It can help you to recover from mistakes. If you make a change that later " -"turns out to be in error, you can revert to an earlier version of one or more " -"files. In fact, a <emphasis>really</emphasis> good revision control tool " -"will even help you to efficiently figure out exactly when a problem was " -"introduced (see section <xref linkend=\"sec.undo.bisect\"/> for details)." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:54 -msgid "" -"It will help you to work simultaneously on, and manage the drift between, " -"multiple versions of your project." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:57 -msgid "" -"Most of these reasons are equally valid---at least in theory---whether you're " -"working on a project by yourself, or with a hundred other people." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:61 -msgid "" -"A key question about the practicality of revision control at these two " -"different scales (<quote>lone hacker</quote> and <quote>huge team</quote>) is " -"how its <emphasis>benefits</emphasis> compare to its <emphasis>costs</" -"emphasis>. A revision control tool that's difficult to understand or use is " -"going to impose a high cost." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:69 -msgid "" -"A five-hundred-person project is likely to collapse under its own weight " -"almost immediately without a revision control tool and process. In this case, " -"the cost of using revision control might hardly seem worth considering, since " -"<emphasis>without</emphasis> it, failure is almost guaranteed." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:76 -msgid "" -"On the other hand, a one-person <quote>quick hack</quote> might seem like a " -"poor place to use a revision control tool, because surely the cost of using " -"one must be close to the overall cost of the project. Right?" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:81 -msgid "" -"Mercurial uniquely supports <emphasis>both</emphasis> of these scales of " -"development. You can learn the basics in just a few minutes, and due to its " -"low overhead, you can apply revision control to the smallest of projects with " -"ease. Its simplicity means you won't have a lot of abstruse concepts or " -"command sequences competing for mental space with whatever you're " -"<emphasis>really</emphasis> trying to do. At the same time, Mercurial's high " -"performance and peer-to-peer nature let you scale painlessly to handle large " -"projects." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:91 -msgid "" -"No revision control tool can rescue a poorly run project, but a good choice " -"of tools can make a huge difference to the fluidity with which you can work " -"on a project." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:97 -msgid "The many names of revision control" -msgstr "版本控制的别名" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:99 -msgid "" -"Revision control is a diverse field, so much so that it doesn't actually have " -"a single name or acronym. Here are a few of the more common names and " -"acronyms you'll encounter:" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:104 -msgid "Revision control (RCS)" -msgstr "版本控制(RCS)" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:105 -msgid "Software configuration management (SCM), or configuration management" -msgstr "软件配置管理(SCM),或配置管理" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:107 -msgid "Source code management" -msgstr "源代码管理" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:108 -msgid "Source code control, or source control" -msgstr "源代码控制,或源控制" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:110 -msgid "Version control (VCS)" -msgstr "版本控制(VCS)" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:112 -msgid "" -"Some people claim that these terms actually have different meanings, but in " -"practice they overlap so much that there's no agreed or even useful way to " -"tease them apart." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:119 -msgid "A short history of revision control" -msgstr "版本控制简史" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:121 -msgid "" -"The best known of the old-time revision control tools is SCCS (Source Code " -"Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s. " -"SCCS operated on individual files, and required every person working on a " -"project to have access to a shared workspace on a single system. Only one " -"person could modify a file at any time; arbitration for access to files was " -"via locks. It was common for people to lock files, and later forget to " -"unlock them, preventing anyone else from modifying those files without the " -"help of an administrator." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:132 -msgid "" -"Walter Tichy developed a free alternative to SCCS in the early 1980s; he " -"called his program RCS (Revision Control System). Like SCCS, RCS required " -"developers to work in a single shared workspace, and to lock files to prevent " -"multiple people from modifying them simultaneously." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:138 -msgid "" -"Later in the 1980s, Dick Grune used RCS as a building block for a set of " -"shell scripts he initially called cmt, but then renamed to CVS (Concurrent " -"Versions System). The big innovation of CVS was that it let developers work " -"simultaneously and somewhat independently in their own personal workspaces. " -"The personal workspaces prevented developers from stepping on each other's " -"toes all the time, as was common with SCCS and RCS. Each developer had a copy " -"of every project file, and could modify their copies independently. They had " -"to merge their edits prior to committing changes to the central repository." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:149 -msgid "" -"Brian Berliner took Grune's original scripts and rewrote them in C, releasing " -"in 1989 the code that has since developed into the modern version of CVS. " -"CVS subsequently acquired the ability to operate over a network connection, " -"giving it a client/server architecture. CVS's architecture is centralised; " -"only the server has a copy of the history of the project. Client workspaces " -"just contain copies of recent versions of the project's files, and a little " -"metadata to tell them where the server is. CVS has been enormously " -"successful; it is probably the world's most widely used revision control " -"system." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:160 -msgid "" -"In the early 1990s, Sun Microsystems developed an early distributed revision " -"control system, called TeamWare. A TeamWare workspace contains a complete " -"copy of the project's history. TeamWare has no notion of a central " -"repository. (CVS relied upon RCS for its history storage; TeamWare used " -"SCCS.)" -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:167 -msgid "" -"As the 1990s progressed, awareness grew of a number of problems with CVS. It " -"records simultaneous changes to multiple files individually, instead of " -"grouping them together as a single logically atomic operation. It does not " -"manage its file hierarchy well; it is easy to make a mess of a repository by " -"renaming files and directories. Worse, its source code is difficult to read " -"and maintain, which made the <quote>pain level</quote> of fixing these " -"architectural problems prohibitive." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:177 -msgid "" -"In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, " -"started a project to replace it with a tool that would have a better " -"architecture and cleaner code. The result, Subversion, does not stray from " -"CVS's centralised client/server model, but it adds multi-file atomic commits, " -"better namespace management, and a number of other features that make it a " -"generally better tool than CVS. Since its initial release, it has rapidly " -"grown in popularity." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:186 -msgid "" -"More or less simultaneously, Graydon Hoare began working on an ambitious " -"distributed revision control system that he named Monotone. While Monotone " -"addresses many of CVS's design flaws and has a peer-to-peer architecture, it " -"goes beyond earlier (and subsequent) revision control tools in a number of " -"innovative ways. It uses cryptographic hashes as identifiers, and has an " -"integral notion of <quote>trust</quote> for code from different sources." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:195 -msgid "" -"Mercurial began life in 2005. While a few aspects of its design are " -"influenced by Monotone, Mercurial focuses on ease of use, high performance, " -"and scalability to very large projects." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:202 -msgid "Trends in revision control" -msgstr "版本控制的发展趋势" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:204 -msgid "" -"There has been an unmistakable trend in the development and use of revision " -"control tools over the past four decades, as people have become familiar with " -"the capabilities of their tools and constrained by their limitations." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:209 -msgid "" -"The first generation began by managing single files on individual computers. " -"Although these tools represented a huge advance over ad-hoc manual revision " -"control, their locking model and reliance on a single computer limited them " -"to small, tightly-knit teams." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:215 -msgid "" -"The second generation loosened these constraints by moving to network-" -"centered architectures, and managing entire projects at a time. As projects " -"grew larger, they ran into new problems. With clients needing to talk to " -"servers very frequently, server scaling became an issue for large projects. " -"An unreliable network connection could prevent remote users from being able " -"to talk to the server at all. As open source projects started making read-" -"only access available anonymously to anyone, people without commit privileges " -"found that they could not use the tools to interact with a project in a " -"natural way, as they could not record their changes." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:227 -msgid "" -"The current generation of revision control tools is peer-to-peer in nature. " -"All of these systems have dropped the dependency on a single central server, " -"and allow people to distribute their revision control data to where it's " -"actually needed. Collaboration over the Internet has moved from constrained " -"by technology to a matter of choice and consensus. Modern tools can operate " -"offline indefinitely and autonomously, with a network connection only needed " -"when syncing changes with another repository." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:239 -msgid "A few of the advantages of distributed revision control" -msgstr "分布版本控制的优点" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:242 -msgid "" -"Even though distributed revision control tools have for several years been as " -"robust and usable as their previous-generation counterparts, people using " -"older tools have not yet necessarily woken up to their advantages. There are " -"a number of ways in which distributed tools shine relative to centralised " -"ones." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:249 -msgid "" -"For an individual developer, distributed tools are almost always much faster " -"than centralised tools. This is for a simple reason: a centralised tool " -"needs to talk over the network for many common operations, because most " -"metadata is stored in a single copy on the central server. A distributed " -"tool stores all of its metadata locally. All else being equal, talking over " -"the network adds overhead to a centralised tool. Don't underestimate the " -"value of a snappy, responsive tool: you're going to spend a lot of time " -"interacting with your revision control software." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:260 -msgid "" -"Distributed tools are indifferent to the vagaries of your server " -"infrastructure, again because they replicate metadata to so many locations. " -"If you use a centralised system and your server catches fire, you'd better " -"hope that your backup media are reliable, and that your last backup was " -"recent and actually worked. With a distributed tool, you have many backups " -"available on every contributor's computer." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:268 -msgid "" -"The reliability of your network will affect distributed tools far less than " -"it will centralised tools. You can't even use a centralised tool without a " -"network connection, except for a few highly constrained commands. With a " -"distributed tool, if your network connection goes down while you're working, " -"you may not even notice. The only thing you won't be able to do is talk to " -"repositories on other computers, something that is relatively rare compared " -"with local operations. If you have a far-flung team of collaborators, this " -"may be significant." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:279 -msgid "Advantages for open source projects" -msgstr "开源项目的优点" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:281 -msgid "" -"If you take a shine to an open source project and decide that you would like " -"to start hacking on it, and that project uses a distributed revision control " -"tool, you are at once a peer with the people who consider themselves the " -"<quote>core</quote> of that project. If they publish their repositories, you " -"can immediately copy their project history, start making changes, and record " -"your work, using the same tools in the same ways as insiders. By contrast, " -"with a centralised tool, you must use the software in a <quote>read only</" -"quote> mode unless someone grants you permission to commit changes to their " -"central server. Until then, you won't be able to record changes, and your " -"local modifications will be at risk of corruption any time you try to update " -"your client's view of the repository." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch01-intro.xml:297 -msgid "The forking non-problem" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch01-intro.xml:299 -msgid "" -"It has been suggested that distributed revision control tools pose some sort " -"of risk to open source projects because they make it easy to <quote>fork</" -"quote> the development of a project. A fork happens when there are " -"differences in opinion or attitude between groups of developers that cause " -"them to decide that they can't work together any longer. Each side takes a " -"more or less complete copy of the project's source code, and goes off in its " -"own direction." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch01-intro.xml:309 -msgid "" -"Sometimes the camps in a fork decide to reconcile their differences. With a " -"centralised revision control system, the <emphasis>technical</emphasis> " -"process of reconciliation is painful, and has to be performed largely by " -"hand. You have to decide whose revision history is going to <quote>win</" -"quote>, and graft the other team's changes into the tree somehow. This " -"usually loses some or all of one side's revision history." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch01-intro.xml:318 -msgid "" -"What distributed tools do with respect to forking is they make forking the " -"<emphasis>only</emphasis> way to develop a project. Every single change that " -"you make is potentially a fork point. The great strength of this approach is " -"that a distributed revision control tool has to be really good at " -"<emphasis>merging</emphasis> forks, because forks are absolutely fundamental: " -"they happen all the time." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch01-intro.xml:327 -msgid "" -"If every piece of work that everybody does, all the time, is framed in terms " -"of forking and merging, then what the open source world refers to as a " -"<quote>fork</quote> becomes <emphasis>purely</emphasis> a social issue. If " -"anything, distributed tools <emphasis>lower</emphasis> the likelihood of a " -"fork:" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:334 -msgid "" -"They eliminate the social distinction that centralised tools impose: that " -"between insiders (people with commit access) and outsiders (people without)." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:338 -msgid "" -"They make it easier to reconcile after a social fork, because all that's " -"involved from the perspective of the revision control software is just " -"another merge." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch01-intro.xml:343 -msgid "" -"Some people resist distributed tools because they want to retain tight " -"control over their projects, and they believe that centralised tools give " -"them this control. However, if you're of this belief, and you publish your " -"CVS or Subversion repositories publicly, there are plenty of tools available " -"that can pull out your entire project's history (albeit slowly) and recreate " -"it somewhere that you don't control. So while your control in this case is " -"illusory, you are forgoing the ability to fluidly collaborate with whatever " -"people feel compelled to mirror and fork your history." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:358 -msgid "Advantages for commercial projects" -msgstr "商业项目的优点" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:360 -msgid "" -"Many commercial projects are undertaken by teams that are scattered across " -"the globe. Contributors who are far from a central server will see slower " -"command execution and perhaps less reliability. Commercial revision control " -"systems attempt to ameliorate these problems with remote-site replication add-" -"ons that are typically expensive to buy and cantankerous to administer. A " -"distributed system doesn't suffer from these problems in the first place. " -"Better yet, you can easily set up multiple authoritative servers, say one per " -"site, so that there's no redundant communication between repositories over " -"expensive long-haul network links." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:372 -msgid "" -"Centralised revision control systems tend to have relatively low " -"scalability. It's not unusual for an expensive centralised system to fall " -"over under the combined load of just a few dozen concurrent users. Once " -"again, the typical response tends to be an expensive and clunky replication " -"facility. Since the load on a central server---if you have one at all---is " -"many times lower with a distributed tool (because all of the data is " -"replicated everywhere), a single cheap server can handle the needs of a much " -"larger team, and replication to balance load becomes a simple matter of " -"scripting." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:384 -msgid "" -"If you have an employee in the field, troubleshooting a problem at a " -"customer's site, they'll benefit from distributed revision control. The tool " -"will let them generate custom builds, try different fixes in isolation from " -"each other, and search efficiently through history for the sources of bugs " -"and regressions in the customer's environment, all without needing to connect " -"to your company's network." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:395 -msgid "Why choose Mercurial?" -msgstr "为什么选择 Mercurial?" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:397 -msgid "" -"Mercurial has a unique set of properties that make it a particularly good " -"choice as a revision control system." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:400 -msgid "It is easy to learn and use." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:401 -msgid "It is lightweight." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:402 -msgid "It scales excellently." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:403 -msgid "It is easy to customise." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:406 -msgid "" -"If you are at all familiar with revision control systems, you should be able " -"to get up and running with Mercurial in less than five minutes. Even if not, " -"it will take no more than a few minutes longer. Mercurial's command and " -"feature sets are generally uniform and consistent, so you can keep track of a " -"few general rules instead of a host of exceptions." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:413 -msgid "" -"On a small project, you can start working with Mercurial in moments. Creating " -"new changes and branches; transferring changes around (whether locally or " -"over a network); and history and status operations are all fast. Mercurial " -"attempts to stay nimble and largely out of your way by combining low " -"cognitive overhead with blazingly fast operations." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:420 -msgid "" -"The usefulness of Mercurial is not limited to small projects: it is used by " -"projects with hundreds to thousands of contributors, each containing tens of " -"thousands of files and hundreds of megabytes of source code." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:425 -msgid "" -"If the core functionality of Mercurial is not enough for you, it's easy to " -"build on. Mercurial is well suited to scripting tasks, and its clean " -"internals and implementation in Python make it easy to add features in the " -"form of extensions. There are a number of popular and useful extensions " -"already available, ranging from helping to identify bugs to improving " -"performance." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:435 -msgid "Mercurial compared with other tools" -msgstr "Mercurial 与其它工具的比较" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:437 -msgid "" -"Before you read on, please understand that this section necessarily reflects " -"my own experiences, interests, and (dare I say it) biases. I have used every " -"one of the revision control tools listed below, in most cases for several " -"years at a time." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:445 ../en/ch01-intro.xml:656 -msgid "Subversion" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:447 -msgid "" -"Subversion is a popular revision control tool, developed to replace CVS. It " -"has a centralised client/server architecture." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:451 -msgid "" -"Subversion and Mercurial have similarly named commands for performing the " -"same operations, so if you're familiar with one, it is easy to learn to use " -"the other. Both tools are portable to all popular operating systems." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:456 -msgid "" -"Prior to version 1.5, Subversion had no useful support for merges. At the " -"time of writing, its merge tracking capability is new, and known to be <ulink " -"url=\"http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced." -"html#svn.branchmerge.advanced.finalword\">complicated and buggy</ulink>." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:462 -msgid "" -"Mercurial has a substantial performance advantage over Subversion on every " -"revision control operation I have benchmarked. I have measured its advantage " -"as ranging from a factor of two to a factor of six when compared with " -"Subversion 1.4.3's <emphasis>ra_local</emphasis> file store, which is the " -"fastest access method available. In more realistic deployments involving a " -"network-based store, Subversion will be at a substantially larger " -"disadvantage. Because many Subversion commands must talk to the server and " -"Subversion does not have useful replication facilities, server capacity and " -"network bandwidth become bottlenecks for modestly large projects." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:475 -msgid "" -"Additionally, Subversion incurs substantial storage overhead to avoid network " -"transactions for a few common operations, such as finding modified files " -"(<literal>status</literal>) and displaying modifications against the current " -"revision (<literal>diff</literal>). As a result, a Subversion working copy " -"is often the same size as, or larger than, a Mercurial repository and working " -"directory, even though the Mercurial repository contains a complete history " -"of the project." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:485 -msgid "" -"Subversion is widely supported by third party tools. Mercurial currently " -"lags considerably in this area. This gap is closing, however, and indeed " -"some of Mercurial's GUI tools now outshine their Subversion equivalents. " -"Like Mercurial, Subversion has an excellent user manual." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:491 -msgid "" -"Because Subversion doesn't store revision history on the client, it is well " -"suited to managing projects that deal with lots of large, opaque binary " -"files. If you check in fifty revisions to an incompressible 10MB file, " -"Subversion's client-side space usage stays constant The space used by any " -"distributed SCM will grow rapidly in proportion to the number of revisions, " -"because the differences between each revision are large." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:500 -msgid "" -"In addition, it's often difficult or, more usually, impossible to merge " -"different versions of a binary file. Subversion's ability to let a user lock " -"a file, so that they temporarily have the exclusive right to commit changes " -"to it, can be a significant advantage to a project where binary files are " -"widely used." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:507 -msgid "" -"Mercurial can import revision history from a Subversion repository. It can " -"also export revision history to a Subversion repository. This makes it easy " -"to <quote>test the waters</quote> and use Mercurial and Subversion in " -"parallel before deciding to switch. History conversion is incremental, so " -"you can perform an initial conversion, then small additional conversions " -"afterwards to bring in new changes." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:519 ../en/ch01-intro.xml:658 -msgid "Git" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:521 -msgid "" -"Git is a distributed revision control tool that was developed for managing " -"the Linux kernel source tree. Like Mercurial, its early design was somewhat " -"influenced by Monotone." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:526 -msgid "" -"Git has a very large command set, with version 1.5.0 providing 139 individual " -"commands. It has something of a reputation for being difficult to learn. " -"Compared to Git, Mercurial has a strong focus on simplicity." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:531 -msgid "" -"In terms of performance, Git is extremely fast. In several cases, it is " -"faster than Mercurial, at least on Linux, while Mercurial performs better on " -"other operations. However, on Windows, the performance and general level of " -"support that Git provides is, at the time of writing, far behind that of " -"Mercurial." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:538 -msgid "" -"While a Mercurial repository needs no maintenance, a Git repository requires " -"frequent manual <quote>repacks</quote> of its metadata. Without these, " -"performance degrades, while space usage grows rapidly. A server that " -"contains many Git repositories that are not rigorously and frequently " -"repacked will become heavily disk-bound during backups, and there have been " -"instances of daily backups taking far longer than 24 hours as a result. A " -"freshly packed Git repository is slightly smaller than a Mercurial " -"repository, but an unpacked repository is several orders of magnitude larger." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:549 -msgid "" -"The core of Git is written in C. Many Git commands are implemented as shell " -"or Perl scripts, and the quality of these scripts varies widely. I have " -"encountered several instances where scripts charged along blindly in the " -"presence of errors that should have been fatal." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:555 -msgid "Mercurial can import revision history from a Git repository." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:561 ../en/ch01-intro.xml:657 -msgid "CVS" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:563 -msgid "" -"CVS is probably the most widely used revision control tool in the world. Due " -"to its age and internal untidiness, it has been only lightly maintained for " -"many years." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:567 -msgid "" -"It has a centralised client/server architecture. It does not group related " -"file changes into atomic commits, making it easy for people to <quote>break " -"the build</quote>: one person can successfully commit part of a change and " -"then be blocked by the need for a merge, causing other people to see only a " -"portion of the work they intended to do. This also affects how you work with " -"project history. If you want to see all of the modifications someone made as " -"part of a task, you will need to manually inspect the descriptions and " -"timestamps of the changes made to each file involved (if you even know what " -"those files were)." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:579 -msgid "" -"CVS has a muddled notion of tags and branches that I will not attempt to even " -"describe. It does not support renaming of files or directories well, making " -"it easy to corrupt a repository. It has almost no internal consistency " -"checking capabilities, so it is usually not even possible to tell whether or " -"how a repository is corrupt. I would not recommend CVS for any project, " -"existing or new." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:587 -msgid "" -"Mercurial can import CVS revision history. However, there are a few caveats " -"that apply; these are true of every other revision control tool's CVS " -"importer, too. Due to CVS's lack of atomic changes and unversioned " -"filesystem hierarchy, it is not possible to reconstruct CVS history " -"completely accurately; some guesswork is involved, and renames will usually " -"not show up. Because a lot of advanced CVS administration has to be done by " -"hand and is hence error-prone, it's common for CVS importers to run into " -"multiple problems with corrupted repositories (completely bogus revision " -"timestamps and files that have remained locked for over a decade are just two " -"of the less interesting problems I can recall from personal experience)." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:601 -msgid "Mercurial can import revision history from a CVS repository." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:607 -msgid "Commercial tools" -msgstr "商业工具" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:609 -msgid "" -"Perforce has a centralised client/server architecture, with no client-side " -"caching of any data. Unlike modern revision control tools, Perforce requires " -"that a user run a command to inform the server about every file they intend " -"to edit." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:615 -msgid "" -"The performance of Perforce is quite good for small teams, but it falls off " -"rapidly as the number of users grows beyond a few dozen. Modestly large " -"Perforce installations require the deployment of proxies to cope with the " -"load their users generate." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch01-intro.xml:624 -msgid "Choosing a revision control tool" -msgstr "选择版本控制工具" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:626 -msgid "" -"With the exception of CVS, all of the tools listed above have unique " -"strengths that suit them to particular styles of work. There is no single " -"revision control tool that is best in all situations." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:631 -msgid "" -"As an example, Subversion is a good choice for working with frequently edited " -"binary files, due to its centralised nature and support for file locking." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch01-intro.xml:635 -msgid "" -"I personally find Mercurial's properties of simplicity, performance, and good " -"merge support to be a compelling combination that has served me well for " -"several years." -msgstr "" - -#. type: Content of: <book><chapter><sect1><title> -#: ../en/ch01-intro.xml:643 -msgid "Switching from another tool to Mercurial" -msgstr "从其它工具切换到 Mercurial" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:645 -msgid "" -"Mercurial is bundled with an extension named <literal role=\"hg-ext" -"\">convert</literal>, which can incrementally import revision history from " -"several other revision control tools. By <quote>incremental</quote>, I mean " -"that you can convert all of a project's history to date in one go, then rerun " -"the conversion later to obtain new changes that happened after the initial " -"conversion." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:653 -msgid "" -"The revision control tools supported by <literal role=\"hg-ext\">convert</" -"literal> are as follows:" -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch01-intro.xml:659 -msgid "Darcs" -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:661 -msgid "" -"In addition, <literal role=\"hg-ext\">convert</literal> can export changes " -"from Mercurial to Subversion. This makes it possible to try Subversion and " -"Mercurial in parallel before committing to a switchover, without risking the " -"loss of any work." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch01-intro.xml:667 -msgid "" -"The <command role=\"hg-ext-conver\">convert</command> command is easy to " -"use. Simply point it at the path or URL of the source repository, optionally " -"give it the name of the destination repository, and it will start working. " -"After the initial conversion, just run the same command again to import new " -"changes." -msgstr "" - -#. type: Content of: <book><chapter><title> -#: ../en/ch02-tour-basic.xml:5 +#: ../en/ch01-tour-basic.xml:5 msgid "A tour of Mercurial: the basics" msgstr "Mercurial 教程: 基础知识" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:8 +#: ../en/ch01-tour-basic.xml:8 msgid "Installing Mercurial on your system" msgstr "安装 Mercurial" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:10 +#: ../en/ch01-tour-basic.xml:10 msgid "" "Prebuilt binary packages of Mercurial are available for every popular " "operating system. These make it easy to start using Mercurial on your " @@ -2463,12 +1540,12 @@ "用 Mercurial 变得很容易。" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:15 +#: ../en/ch01-tour-basic.xml:15 msgid "Linux" msgstr "Linux" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:17 +#: ../en/ch01-tour-basic.xml:17 msgid "" "Because each Linux distribution has its own packaging tools, policies, and " "rate of development, it's difficult to give a comprehensive set of " @@ -2481,7 +1558,7 @@ "使用的发行版的 Mercurial 维护者的活跃程度。" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:24 +#: ../en/ch01-tour-basic.xml:24 msgid "" "To keep things simple, I will focus on installing Mercurial from the command " "line under the most popular Linux distributions. Most of these distributions " @@ -2493,39 +1570,39 @@ "Mercurial;寻找的包名称是 <literal>mercurial</literal>。" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:32 +#: ../en/ch01-tour-basic.xml:32 msgid "Debian:" msgstr "Debian:" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:34 +#: ../en/ch01-tour-basic.xml:34 msgid "Fedora Core:" msgstr "Fedora Core:" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:36 +#: ../en/ch01-tour-basic.xml:36 msgid "Gentoo:" msgstr "Gentoo:" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:38 +#: ../en/ch01-tour-basic.xml:38 msgid "OpenSUSE:" msgstr "OpenSUSE:" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:40 +#: ../en/ch01-tour-basic.xml:40 msgid "" "Ubuntu: Ubuntu's Mercurial package is based on Debian's. To install it, run " "the following command." msgstr "Ubuntu: Ubuntu 的 Mercurial 包基于 Debian。安装时,使用如下命令:" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:48 +#: ../en/ch01-tour-basic.xml:48 msgid "Solaris" msgstr "Solaris" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:50 +#: ../en/ch01-tour-basic.xml:50 msgid "" "SunFreeWare, at <ulink url=\"http://www.sunfreeware.com\">http://www." "sunfreeware.com</ulink>, is a good source for a large number of pre-built " @@ -2537,12 +1614,12 @@ "和 64 位包,包含 Mercurial 的当前版本。" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:58 +#: ../en/ch01-tour-basic.xml:58 msgid "Mac OS X" msgstr "Mac OS X" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:60 +#: ../en/ch01-tour-basic.xml:60 msgid "" "Lee Cantey publishes an installer of Mercurial for Mac OS X at <ulink url=" "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " @@ -2553,7 +1630,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:69 +#: ../en/ch01-tour-basic.xml:69 msgid "" "It's also possible to install Mercurial using Fink or MacPorts, two popular " "free package managers for Mac OS X. If you have Fink, use <command>sudo apt-" @@ -2562,12 +1639,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:77 +#: ../en/ch01-tour-basic.xml:77 msgid "Windows" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:79 +#: ../en/ch01-tour-basic.xml:79 msgid "" "Lee Cantey publishes an installer of Mercurial for Windows at <ulink url=" "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " @@ -2575,7 +1652,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch02-tour-basic.xml:86 +#: ../en/ch01-tour-basic.xml:86 msgid "" "The Windows version of Mercurial does not automatically convert line endings " "between Windows and Unix styles. If you want to share work with Unix users, " @@ -2583,12 +1660,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:96 +#: ../en/ch01-tour-basic.xml:96 msgid "Getting started" msgstr "开始" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:98 +#: ../en/ch01-tour-basic.xml:98 msgid "" "To begin, we'll use the <command role=\"hg-cmd\">hg version</command> command " "to find out whether Mercurial is actually installed properly. The actual " @@ -2597,12 +1674,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:107 +#: ../en/ch01-tour-basic.xml:107 msgid "Built-in help" msgstr "内置帮助" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:109 +#: ../en/ch01-tour-basic.xml:109 msgid "" "Mercurial provides a built-in help system. This is invaluable for those " "times when you find yourself stuck trying to remember how to run a command. " @@ -2613,7 +1690,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:120 +#: ../en/ch01-tour-basic.xml:120 msgid "" "For a more impressive level of detail (which you won't usually need) run " "<command role=\"hg-cmd\">hg help <option role=\"hg-opt-global\">-v</option></" @@ -2623,12 +1700,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:131 +#: ../en/ch01-tour-basic.xml:131 msgid "Working with a repository" msgstr "使用版本库" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:133 +#: ../en/ch01-tour-basic.xml:133 msgid "" "In Mercurial, everything happens inside a <emphasis>repository</emphasis>. " "The repository for a project contains all of the files that <quote>belong to</" @@ -2636,7 +1713,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:139 +#: ../en/ch01-tour-basic.xml:139 msgid "" "There's nothing particularly magical about a repository; it is simply a " "directory tree in your filesystem that Mercurial treats as special. You can " @@ -2645,12 +1722,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:146 +#: ../en/ch01-tour-basic.xml:146 msgid "Making a local copy of a repository" msgstr "创建版本库的工作副本" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:148 +#: ../en/ch01-tour-basic.xml:148 msgid "" "<emphasis>Copying</emphasis> a repository is just a little bit special. " "While you could use a normal file copying command to make a copy of a " @@ -2660,21 +1737,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:157 +#: ../en/ch01-tour-basic.xml:157 msgid "" "If our clone succeeded, we should now have a local directory called <filename " "class=\"directory\">hello</filename>. This directory will contain some files." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:163 +#: ../en/ch01-tour-basic.xml:163 msgid "" "These files have the same contents and history in our repository as they do " "in the repository we cloned." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:166 +#: ../en/ch01-tour-basic.xml:166 msgid "" "Every Mercurial repository is complete, self-contained, and independent. It " "contains its own private copy of a project's files and history. A cloned " @@ -2684,7 +1761,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:173 +#: ../en/ch01-tour-basic.xml:173 msgid "" "What this means for now is that we're free to experiment with our repository, " "safe in the knowledge that it's a private <quote>sandbox</quote> that won't " @@ -2692,12 +1769,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:179 +#: ../en/ch01-tour-basic.xml:179 msgid "What's in a repository?" msgstr "什么是版本库?" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:181 +#: ../en/ch01-tour-basic.xml:181 msgid "" "When we take a more detailed look inside a repository, we can see that it " "contains a directory named <filename class=\"directory\">.hg</filename>. " @@ -2705,7 +1782,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:188 +#: ../en/ch01-tour-basic.xml:188 msgid "" "The contents of the <filename class=\"directory\">.hg</filename> directory " "and its subdirectories are private to Mercurial. Every other file and " @@ -2713,7 +1790,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:194 +#: ../en/ch01-tour-basic.xml:194 msgid "" "To introduce a little terminology, the <filename class=\"directory\">.hg</" "filename> directory is the <quote>real</quote> repository, and all of the " @@ -2726,12 +1803,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:209 +#: ../en/ch01-tour-basic.xml:209 msgid "A tour through history" msgstr "回溯历史" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:211 +#: ../en/ch01-tour-basic.xml:211 msgid "" "One of the first things we might want to do with a new, unfamiliar repository " "is understand its history. The <command role=\"hg-cmd\">hg log</command> " @@ -2739,7 +1816,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:218 +#: ../en/ch01-tour-basic.xml:218 msgid "" "By default, this command prints a brief paragraph of output for each change " "to the project that was recorded. In Mercurial terminology, we call each of " @@ -2748,14 +1825,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:224 +#: ../en/ch01-tour-basic.xml:224 msgid "" "The fields in a record of output from <command role=\"hg-cmd\">hg log</" "command> are as follows." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:227 +#: ../en/ch01-tour-basic.xml:227 msgid "" "<literal>changeset</literal>: This field has the format of a number, followed " "by a colon, followed by a hexadecimal string. These are " @@ -2765,7 +1842,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:233 +#: ../en/ch01-tour-basic.xml:233 msgid "" "<literal>user</literal>: The identity of the person who created the " "changeset. This is a free-form field, but it most often contains a person's " @@ -2773,7 +1850,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:237 +#: ../en/ch01-tour-basic.xml:237 msgid "" "<literal>date</literal>: The date and time on which the changeset was " "created, and the timezone in which it was created. (The date and time are " @@ -2782,21 +1859,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:242 +#: ../en/ch01-tour-basic.xml:242 msgid "" "<literal>summary</literal>: The first line of the text message that the " "creator of the changeset entered to describe the changeset." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:245 +#: ../en/ch01-tour-basic.xml:245 msgid "" "The default output printed by <command role=\"hg-cmd\">hg log</command> is " "purely a summary; it is missing a lot of detail." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:249 +#: ../en/ch01-tour-basic.xml:249 msgid "" "Figure <xref endterm=\"fig.tour-basic.history.caption\" linkend=\"fig.tour-" "basic.history\"/> provides a graphical representation of the history of the " @@ -2807,39 +1884,39 @@ msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> -#: ../en/ch02-tour-basic.xml:260 +#: ../en/ch01-tour-basic.xml:260 msgid "" "<imageobject><imagedata fileref=\"images/tour-history.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><textobject><phrase> -#: ../en/ch02-tour-basic.xml:261 ../en/ch03-tour-merge.xml:48 -#: ../en/ch03-tour-merge.xml:78 ../en/ch03-tour-merge.xml:126 -#: ../en/ch03-tour-merge.xml:182 ../en/ch03-tour-merge.xml:254 -#: ../en/ch04-concepts.xml:56 ../en/ch04-concepts.xml:108 -#: ../en/ch04-concepts.xml:194 ../en/ch04-concepts.xml:301 -#: ../en/ch04-concepts.xml:353 ../en/ch04-concepts.xml:370 -#: ../en/ch04-concepts.xml:414 ../en/ch04-concepts.xml:436 -#: ../en/ch04-concepts.xml:480 ../en/ch06-collab.xml:277 -#: ../en/ch09-undo.xml:366 ../en/ch09-undo.xml:417 ../en/ch09-undo.xml:485 -#: ../en/ch09-undo.xml:527 ../en/ch12-mq.xml:409 +#: ../en/ch01-tour-basic.xml:261 ../en/ch02-tour-merge.xml:48 +#: ../en/ch02-tour-merge.xml:78 ../en/ch02-tour-merge.xml:126 +#: ../en/ch02-tour-merge.xml:182 ../en/ch02-tour-merge.xml:254 +#: ../en/ch03-concepts.xml:56 ../en/ch03-concepts.xml:108 +#: ../en/ch03-concepts.xml:194 ../en/ch03-concepts.xml:301 +#: ../en/ch03-concepts.xml:353 ../en/ch03-concepts.xml:370 +#: ../en/ch03-concepts.xml:414 ../en/ch03-concepts.xml:436 +#: ../en/ch03-concepts.xml:480 ../en/ch05-collab.xml:277 +#: ../en/ch08-undo.xml:366 ../en/ch08-undo.xml:417 ../en/ch08-undo.xml:485 +#: ../en/ch08-undo.xml:527 ../en/ch11-mq.xml:410 msgid "XXX add text" msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> -#: ../en/ch02-tour-basic.xml:262 +#: ../en/ch01-tour-basic.xml:262 msgid "" "Graphical history of the <filename class=\"directory\">hello</filename> " "repository" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:269 +#: ../en/ch01-tour-basic.xml:269 msgid "Changesets, revisions, and talking to other people" msgstr "改变集,版本,与其它用户交互" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:272 +#: ../en/ch01-tour-basic.xml:272 msgid "" "As English is a notoriously sloppy language, and computer science has a " "hallowed history of terminological confusion (why use one term when four will " @@ -2851,7 +1928,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:282 +#: ../en/ch01-tour-basic.xml:282 msgid "" "While it doesn't matter what <emphasis>word</emphasis> you use to refer to " "the concept of <quote>a changeset</quote>, the <emphasis>identifier</" @@ -2862,13 +1939,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:291 +#: ../en/ch01-tour-basic.xml:291 msgid "" "The revision number is <emphasis>only valid in that repository</emphasis>," msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:293 +#: ../en/ch01-tour-basic.xml:293 msgid "" "while the hex string is the <emphasis>permanent, unchanging identifier</" "emphasis> that will always identify that exact changeset in <emphasis>every</" @@ -2876,7 +1953,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:298 +#: ../en/ch01-tour-basic.xml:298 msgid "" "This distinction is important. If you send someone an email talking about " "<quote>revision 33</quote>, there's a high likelihood that their revision 33 " @@ -2888,7 +1965,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:308 +#: ../en/ch01-tour-basic.xml:308 msgid "" "Mercurial uses revision numbers purely as a convenient shorthand. If you " "need to discuss a changeset with someone, or make a record of a changeset for " @@ -2897,12 +1974,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:316 +#: ../en/ch01-tour-basic.xml:316 msgid "Viewing specific revisions" msgstr "察看指定版本" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:318 +#: ../en/ch01-tour-basic.xml:318 msgid "" "To narrow the output of <command role=\"hg-cmd\">hg log</command> down to a " "single revision, use the <option role=\"hg-opt-log\">-r</option> (or <option " @@ -2912,7 +1989,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:327 +#: ../en/ch01-tour-basic.xml:327 msgid "" "If you want to see the history of several revisions without having to list " "each one, you can use <emphasis>range notation</emphasis>; this lets you " @@ -2921,7 +1998,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:335 +#: ../en/ch01-tour-basic.xml:335 msgid "" "Mercurial also honours the order in which you specify revisions, so <command " "role=\"hg-cmd\">hg log -r 2:4</command> prints 2, 3, and 4. while <command " @@ -2929,12 +2006,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:342 +#: ../en/ch01-tour-basic.xml:342 msgid "More detailed information" msgstr "更详细的信息" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:344 +#: ../en/ch01-tour-basic.xml:344 msgid "" "While the summary information printed by <command role=\"hg-cmd\">hg log</" "command> is useful if you already know what you're looking for, you may need " @@ -2946,7 +2023,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:356 +#: ../en/ch01-tour-basic.xml:356 msgid "" "If you want to see both the description and content of a change, add the " "<option role=\"hg-opt-log\">-p</option> (or <option role=\"hg-opt-log\">--" @@ -2956,12 +2033,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:369 +#: ../en/ch01-tour-basic.xml:369 msgid "All about command options" msgstr "命令选项" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:371 +#: ../en/ch01-tour-basic.xml:371 msgid "" "Let's take a brief break from exploring Mercurial commands to discuss a " "pattern in the way that they work; you may find this useful to keep in mind " @@ -2969,7 +2046,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:375 +#: ../en/ch01-tour-basic.xml:375 msgid "" "Mercurial has a consistent and straightforward approach to dealing with the " "options that you can pass to commands. It follows the conventions for " @@ -2977,7 +2054,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:380 +#: ../en/ch01-tour-basic.xml:380 msgid "" "Every option has a long name. For example, as we've already seen, the " "<command role=\"hg-cmd\">hg log</command> command accepts a <option role=\"hg-" @@ -2985,7 +2062,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:384 +#: ../en/ch01-tour-basic.xml:384 msgid "" "Most options have short names, too. Instead of <option role=\"hg-opt-log\">--" "rev</option>, we can use <option role=\"hg-opt-log\">-r</option>. (The " @@ -2994,7 +2071,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:389 +#: ../en/ch01-tour-basic.xml:389 msgid "" "Long options start with two dashes (e.g. <option role=\"hg-opt-log\">--rev</" "option>), while short options start with one (e.g. <option role=\"hg-opt-log" @@ -3002,7 +2079,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:393 +#: ../en/ch01-tour-basic.xml:393 msgid "" "Option naming and usage is consistent across commands. For example, every " "command that lets you specify a changeset ID or revision number accepts both " @@ -3011,7 +2088,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:399 +#: ../en/ch01-tour-basic.xml:399 msgid "" "In the examples throughout this book, I use short options instead of long. " "This just reflects my own preference, so don't read anything significant into " @@ -3019,7 +2096,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:403 +#: ../en/ch01-tour-basic.xml:403 msgid "" "Most commands that print output of some kind will print more output when " "passed a <option role=\"hg-opt-global\">-v</option> (or <option role=\"hg-opt-" @@ -3028,19 +2105,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:411 +#: ../en/ch01-tour-basic.xml:411 msgid "Making and reviewing changes" msgstr "创建和复审修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:413 +#: ../en/ch01-tour-basic.xml:413 msgid "" "Now that we have a grasp of viewing history in Mercurial, let's take a look " "at making some changes and examining them." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:417 +#: ../en/ch01-tour-basic.xml:417 msgid "" "The first thing we'll do is isolate our experiment in a repository of its " "own. We use the <command role=\"hg-cmd\">hg clone</command> command, but we " @@ -3051,7 +2128,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:427 +#: ../en/ch01-tour-basic.xml:427 msgid "" "As an aside, it's often good practice to keep a <quote>pristine</quote> copy " "of a remote repository around, which you can then make temporary clones of to " @@ -3063,7 +2140,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:436 +#: ../en/ch01-tour-basic.xml:436 msgid "" "In our <filename class=\"directory\">my-hello</filename> repository, we have " "a file <filename>hello.c</filename> that contains the classic <quote>hello, " @@ -3076,14 +2153,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:449 +#: ../en/ch01-tour-basic.xml:449 msgid "" "Mercurial's <command role=\"hg-cmd\">hg status</command> command will tell us " "what Mercurial knows about the files in the repository." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:455 +#: ../en/ch01-tour-basic.xml:455 msgid "" "The <command role=\"hg-cmd\">hg status</command> command prints no output for " "some files, but a line starting with <quote><literal>M</literal></quote> for " @@ -3093,7 +2170,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:462 +#: ../en/ch01-tour-basic.xml:462 msgid "" "The <quote><literal>M</literal></quote> indicates that Mercurial has noticed " "that we modified <filename>hello.c</filename>. We didn't need to " @@ -3103,7 +2180,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:470 +#: ../en/ch01-tour-basic.xml:470 msgid "" "It's a little bit helpful to know that we've modified <filename>hello.c</" "filename>, but we might prefer to know exactly <emphasis>what</emphasis> " @@ -3112,12 +2189,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:480 +#: ../en/ch01-tour-basic.xml:480 msgid "Recording changes in a new changeset" msgstr "在新修改集中记录修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:482 +#: ../en/ch01-tour-basic.xml:482 msgid "" "We can modify files, build and test our changes, and use <command role=\"hg-" "cmd\">hg status</command> and <command role=\"hg-cmd\">hg diff</command> to " @@ -3126,7 +2203,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:489 +#: ../en/ch01-tour-basic.xml:489 msgid "" "The <command role=\"hg-cmd\">hg commit</command> command lets us create a new " "changeset; we'll usually refer to this as <quote>making a commit</quote> or " @@ -3134,12 +2211,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:495 +#: ../en/ch01-tour-basic.xml:495 msgid "Setting up a username" msgstr "配置用户名称" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:497 +#: ../en/ch01-tour-basic.xml:497 msgid "" "When you try to run <command role=\"hg-cmd\">hg commit</command> for the " "first time, it is not guaranteed to succeed. Mercurial records your name and " @@ -3150,7 +2227,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:506 +#: ../en/ch01-tour-basic.xml:506 msgid "" "If you specify a <option role=\"hg-opt-commit\">-u</option> option to the " "<command role=\"hg-cmd\">hg commit</command> command on the command line, " @@ -3158,14 +2235,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:511 +#: ../en/ch01-tour-basic.xml:511 msgid "" "If you have set the <envar>HGUSER</envar> environment variable, this is " "checked next." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:514 +#: ../en/ch01-tour-basic.xml:514 msgid "" "If you create a file in your home directory called <filename role=\"special" "\">.hgrc</filename>, with a <envar role=\"rc-item-ui\">username</envar> " @@ -3174,14 +2251,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:521 +#: ../en/ch01-tour-basic.xml:521 msgid "" "If you have set the <envar>EMAIL</envar> environment variable, this will be " "used next." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch02-tour-basic.xml:524 +#: ../en/ch01-tour-basic.xml:524 msgid "" "Mercurial will query your system to find out your local user name and host " "name, and construct a username from these components. Since this often " @@ -3190,7 +2267,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:531 +#: ../en/ch01-tour-basic.xml:531 msgid "" "If all of these mechanisms fail, Mercurial will fail, printing an error " "message. In this case, it will not let you commit until you set up a " @@ -3198,7 +2275,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:535 +#: ../en/ch01-tour-basic.xml:535 msgid "" "You should think of the <envar>HGUSER</envar> environment variable and the " "<option role=\"hg-opt-commit\">-u</option> option to the <command role=\"hg-" @@ -3209,12 +2286,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch02-tour-basic.xml:544 +#: ../en/ch01-tour-basic.xml:544 msgid "Creating a Mercurial configuration file" msgstr "创建 Mercurial 的配置文件" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch02-tour-basic.xml:546 +#: ../en/ch01-tour-basic.xml:546 msgid "" "To set a user name, use your favourite editor to create a file called " "<filename role=\"special\">.hgrc</filename> in your home directory. " @@ -3224,7 +2301,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch02-tour-basic.xml:557 +#: ../en/ch01-tour-basic.xml:558 msgid "" "The <quote><literal>[ui]</literal></quote> line begins a <emphasis>section</" "emphasis> of the config file, so you can read the <quote><literal>username " @@ -3236,12 +2313,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch02-tour-basic.xml:570 +#: ../en/ch01-tour-basic.xml:571 msgid "Choosing a user name" msgstr "选择用户名称" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch02-tour-basic.xml:572 +#: ../en/ch01-tour-basic.xml:573 msgid "" "You can use any text you like as the value of the <literal>username</literal> " "config item, since this information is for reading by other people, but for " @@ -3250,7 +2327,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> -#: ../en/ch02-tour-basic.xml:579 +#: ../en/ch01-tour-basic.xml:580 msgid "" "Mercurial's built-in web server obfuscates email addresses, to make it more " "difficult for the email harvesting tools that spammers use. This reduces the " @@ -3259,12 +2336,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:589 +#: ../en/ch01-tour-basic.xml:590 msgid "Writing a commit message" msgstr "写提交日志" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:591 +#: ../en/ch01-tour-basic.xml:592 msgid "" "When we commit a change, Mercurial drops us into a text editor, to enter a " "message that will describe the modifications we've made in this changeset. " @@ -3274,7 +2351,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:601 +#: ../en/ch01-tour-basic.xml:602 msgid "" "The editor that the <command role=\"hg-cmd\">hg commit</command> command " "drops us into will contain an empty line, followed by a number of lines " @@ -3282,7 +2359,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:608 +#: ../en/ch01-tour-basic.xml:609 msgid "" "Mercurial ignores the lines that start with <quote><literal>HG:</literal></" "quote>; it uses them only to tell us which files it's recording changes to. " @@ -3290,12 +2367,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:614 +#: ../en/ch01-tour-basic.xml:615 msgid "Writing a good commit message" msgstr "写好提交日志" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:616 +#: ../en/ch01-tour-basic.xml:617 msgid "" "Since <command role=\"hg-cmd\">hg log</command> only prints the first line of " "a commit message by default, it's best to write a commit message whose first " @@ -3305,7 +2382,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:630 +#: ../en/ch01-tour-basic.xml:631 msgid "" "As far as the remainder of the contents of the commit message are concerned, " "there are no hard-and-fast rules. Mercurial itself doesn't interpret or care " @@ -3314,7 +2391,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:636 +#: ../en/ch01-tour-basic.xml:637 msgid "" "My personal preference is for short, but informative, commit messages that " "tell me something that I can't figure out with a quick glance at the output " @@ -3322,12 +2399,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:643 +#: ../en/ch01-tour-basic.xml:644 msgid "Aborting a commit" msgstr "终止提交" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:645 +#: ../en/ch01-tour-basic.xml:646 msgid "" "If you decide that you don't want to commit while in the middle of editing a " "commit message, simply exit from your editor without saving the file that " @@ -3336,7 +2413,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:650 +#: ../en/ch01-tour-basic.xml:651 msgid "" "If we run the <command role=\"hg-cmd\">hg commit</command> command without " "any arguments, it records all of the changes we've made, as reported by " @@ -3345,12 +2422,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:657 +#: ../en/ch01-tour-basic.xml:658 msgid "Admiring our new handiwork" msgstr "欣赏我们的新手艺" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:659 +#: ../en/ch01-tour-basic.xml:660 msgid "" "Once we've finished the commit, we can use the <command role=\"hg-cmd\">hg " "tip</command> command to display the changeset we just created. This command " @@ -3359,19 +2436,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:668 +#: ../en/ch01-tour-basic.xml:669 msgid "" "We refer to the newest revision in the repository as the tip revision, or " "simply the tip." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch02-tour-basic.xml:675 +#: ../en/ch01-tour-basic.xml:676 msgid "Sharing changes" msgstr "共享修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch02-tour-basic.xml:677 +#: ../en/ch01-tour-basic.xml:678 msgid "" "We mentioned earlier that repositories in Mercurial are self-contained. This " "means that the changeset we just created exists only in our <filename class=" @@ -3380,12 +2457,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:685 +#: ../en/ch01-tour-basic.xml:686 msgid "Pulling changes from another repository" msgstr "从其它版本库取得修改" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:686 +#: ../en/ch01-tour-basic.xml:687 msgid "" "To get started, let's clone our original <filename class=\"directory\">hello</" "filename> repository, which does not contain the change we just committed. " @@ -3394,7 +2471,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:694 +#: ../en/ch01-tour-basic.xml:695 msgid "" "We'll use the <command role=\"hg-cmd\">hg pull</command> command to bring " "changes from <filename class=\"directory\">my-hello</filename> into <filename " @@ -3407,7 +2484,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:707 +#: ../en/ch01-tour-basic.xml:708 msgid "" "(Of course, someone could cause more changesets to appear in the repository " "that we ran <command role=\"hg-cmd\">hg incoming</command> in, before we get " @@ -3416,7 +2493,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:714 +#: ../en/ch01-tour-basic.xml:715 msgid "" "Bringing changes into a repository is a simple matter of running the <command " "role=\"hg-cmd\">hg pull</command> command, and telling it which repository to " @@ -3424,7 +2501,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:721 +#: ../en/ch01-tour-basic.xml:722 msgid "" "As you can see from the before-and-after output of <command role=\"hg-cmd" "\">hg tip</command>, we have successfully pulled changes into our " @@ -3433,12 +2510,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:729 +#: ../en/ch01-tour-basic.xml:730 msgid "Updating the working directory" msgstr "更新工作目录" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:731 +#: ../en/ch01-tour-basic.xml:732 msgid "" "We have so far glossed over the relationship between a repository and its " "working directory. The <command role=\"hg-cmd\">hg pull</command> command " @@ -3450,7 +2527,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:743 +#: ../en/ch01-tour-basic.xml:744 msgid "" "It might seem a bit strange that <command role=\"hg-cmd\">hg pull</command> " "doesn't update the working directory automatically. There's actually a good " @@ -3464,7 +2541,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:754 +#: ../en/ch01-tour-basic.xml:755 msgid "" "However, since pull-then-update is such a common thing to do, Mercurial lets " "you combine the two by passing the <option role=\"hg-opt-pull\">-u</option> " @@ -3472,7 +2549,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:759 +#: ../en/ch01-tour-basic.xml:760 msgid "" "If you look back at the output of <command role=\"hg-cmd\">hg pull</command> " "in section <xref linkend=\"sec.tour.pull\"/> when we ran it without <option " @@ -3482,14 +2559,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:768 +#: ../en/ch01-tour-basic.xml:769 msgid "" "To find out what revision the working directory is at, use the <command role=" "\"hg-cmd\">hg parents</command> command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:774 +#: ../en/ch01-tour-basic.xml:775 msgid "" "If you look back at figure <xref endterm=\"fig.tour-basic.history.caption\" " "linkend=\"fig.tour-basic.history\"/>, you'll see arrows connecting each " @@ -3500,7 +2577,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:784 +#: ../en/ch01-tour-basic.xml:785 msgid "" "To update the working directory to a particular revision, give a revision " "number or changeset ID to the <command role=\"hg-cmd\">hg update</command> " @@ -3508,7 +2585,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:791 +#: ../en/ch01-tour-basic.xml:792 msgid "" "If you omit an explicit revision, <command role=\"hg-cmd\">hg update</" "command> will update to the tip revision, as shown by the second call to " @@ -3516,12 +2593,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:799 +#: ../en/ch01-tour-basic.xml:800 msgid "Pushing changes to another repository" msgstr "发布修改到其它版本库" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:801 +#: ../en/ch01-tour-basic.xml:802 msgid "" "Mercurial lets us push changes to another repository, from the repository " "we're currently visiting. As with the example of <command role=\"hg-cmd\">hg " @@ -3530,21 +2607,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:809 +#: ../en/ch01-tour-basic.xml:810 msgid "" "The <command role=\"hg-cmd\">hg outgoing</command> command tells us what " "changes would be pushed into another repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:815 +#: ../en/ch01-tour-basic.xml:816 msgid "" "And the <command role=\"hg-cmd\">hg push</command> command does the actual " "push." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:821 +#: ../en/ch01-tour-basic.xml:822 msgid "" "As with <command role=\"hg-cmd\">hg pull</command>, the <command role=\"hg-cmd" "\">hg push</command> command does not update the working directory in the " @@ -3555,19 +2632,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:830 +#: ../en/ch01-tour-basic.xml:831 msgid "" "What happens if we try to pull or push changes and the receiving repository " "already has those changes? Nothing too exciting." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch02-tour-basic.xml:837 +#: ../en/ch01-tour-basic.xml:838 msgid "Sharing changes over a network" msgstr "通过网络共享修改" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:839 +#: ../en/ch01-tour-basic.xml:840 msgid "" "The commands we have covered in the previous few sections are not limited to " "working with local repositories. Each works in exactly the same fashion over " @@ -3575,7 +2652,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch02-tour-basic.xml:847 +#: ../en/ch01-tour-basic.xml:848 msgid "" "In this example, we can see what changes we could push to the remote " "repository, but the repository is understandably not set up to let anonymous " @@ -3583,12 +2660,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch03-tour-merge.xml:5 +#: ../en/ch02-tour-merge.xml:5 msgid "A tour of Mercurial: merging work" msgstr "Mercurial 教程: 合并工作" #. type: Content of: <book><chapter><para> -#: ../en/ch03-tour-merge.xml:7 +#: ../en/ch02-tour-merge.xml:7 msgid "" "We've now covered cloning a repository, making changes in a repository, and " "pulling or pushing changes from one repository into another. Our next step " @@ -3596,19 +2673,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch03-tour-merge.xml:13 +#: ../en/ch02-tour-merge.xml:13 msgid "Merging streams of work" msgstr "合并的流程" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:15 +#: ../en/ch02-tour-merge.xml:15 msgid "" "Merging is a fundamental part of working with a distributed revision control " "tool." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch03-tour-merge.xml:18 +#: ../en/ch02-tour-merge.xml:18 msgid "" "Alice and Bob each have a personal copy of a repository for a project they're " "collaborating on. Alice fixes a bug in her repository; Bob adds a new " @@ -3617,7 +2694,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch03-tour-merge.xml:24 +#: ../en/ch02-tour-merge.xml:24 msgid "" "I frequently work on several different tasks for a single project at once, " "each safely isolated in its own repository. Working this way means that I " @@ -3625,7 +2702,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:30 +#: ../en/ch02-tour-merge.xml:30 msgid "" "Because merging is such a common thing to need to do, Mercurial makes it " "easy. Let's walk through the process. We'll begin by cloning yet another " @@ -3633,7 +2710,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:37 +#: ../en/ch02-tour-merge.xml:37 msgid "" "We should now have two copies of <filename>hello.c</filename> with different " "contents. The histories of the two repositories have also diverged, as " @@ -3642,14 +2719,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> -#: ../en/ch03-tour-merge.xml:47 +#: ../en/ch02-tour-merge.xml:47 msgid "" "<imageobject><imagedata fileref=\"images/tour-merge-sep-repos.png\"/></" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> -#: ../en/ch03-tour-merge.xml:49 +#: ../en/ch02-tour-merge.xml:49 msgid "" "Divergent recent histories of the <filename class=\"directory\">my-hello</" "filename> and <filename class=\"directory\">my-new-hello</filename> " @@ -3657,7 +2734,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:57 +#: ../en/ch02-tour-merge.xml:57 msgid "" "We already know that pulling changes from our <filename class=\"directory" "\">my-hello</filename> repository will have no effect on the working " @@ -3665,19 +2742,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:63 +#: ../en/ch02-tour-merge.xml:63 msgid "" "However, the <command role=\"hg-cmd\">hg pull</command> command says " "something about <quote>heads</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch03-tour-merge.xml:67 +#: ../en/ch02-tour-merge.xml:67 msgid "Head changesets" msgstr "顶点改变集" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:69 +#: ../en/ch02-tour-merge.xml:69 msgid "" "A head is a change that has no descendants, or children, as they're also " "known. The tip revision is thus a head, because the newest revision in a " @@ -3686,20 +2763,20 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch03-tour-merge.xml:77 +#: ../en/ch02-tour-merge.xml:77 msgid "" "<imageobject><imagedata fileref=\"images/tour-merge-pull.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch03-tour-merge.xml:79 +#: ../en/ch02-tour-merge.xml:79 msgid "" "Repository contents after pulling from <filename class=\"directory\">my-" "hello</filename> into <filename class=\"directory\">my-new-hello</filename>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:85 +#: ../en/ch02-tour-merge.xml:85 msgid "" "In figure <xref endterm=\"fig.tour-merge.pull.caption\" linkend=\"fig.tour-" "merge.pull\"/>, you can see the effect of the pull from <filename class=" @@ -3716,19 +2793,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch03-tour-merge.xml:106 +#: ../en/ch02-tour-merge.xml:106 msgid "Performing the merge" msgstr "执行合并" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:108 +#: ../en/ch02-tour-merge.xml:108 msgid "" "What happens if we try to use the normal <command role=\"hg-cmd\">hg update</" "command> command to update to the new tip?" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:114 +#: ../en/ch02-tour-merge.xml:114 msgid "" "Mercurial is telling us that the <command role=\"hg-cmd\">hg update</command> " "command won't do a merge; it won't update the working directory when it " @@ -3738,19 +2815,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch03-tour-merge.xml:125 +#: ../en/ch02-tour-merge.xml:125 msgid "" "<imageobject><imagedata fileref=\"images/tour-merge-merge.png\"/></" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch03-tour-merge.xml:127 +#: ../en/ch02-tour-merge.xml:127 msgid "Working directory and repository during merge, and following commit" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:132 +#: ../en/ch02-tour-merge.xml:132 msgid "" "This updates the working directory so that it contains changes from " "<emphasis>both</emphasis> heads, which is reflected in both the output of " @@ -3759,12 +2836,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch03-tour-merge.xml:142 +#: ../en/ch02-tour-merge.xml:142 msgid "Committing the results of the merge" msgstr "提交合并结果" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:144 +#: ../en/ch02-tour-merge.xml:144 msgid "" "Whenever we've done a merge, <command role=\"hg-cmd\">hg parents</command> " "will display two parents until we <command role=\"hg-cmd\">hg commit</" @@ -3772,7 +2849,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:151 +#: ../en/ch02-tour-merge.xml:151 msgid "" "We now have a new tip revision; notice that it has <emphasis>both</emphasis> " "of our former heads as its parents. These are the same revisions that were " @@ -3780,7 +2857,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:158 +#: ../en/ch02-tour-merge.xml:158 msgid "" "In figure <xref endterm=\"fig.tour-merge.merge.caption\" linkend=\"fig.tour-" "merge.merge\"/>, you can see a representation of what happens to the working " @@ -3790,12 +2867,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch03-tour-merge.xml:169 +#: ../en/ch02-tour-merge.xml:169 msgid "Merging conflicting changes" msgstr "合并有冲突的改变" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:171 +#: ../en/ch02-tour-merge.xml:171 msgid "" "Most merges are simple affairs, but sometimes you'll find yourself merging " "changes where each modifies the same portions of the same files. Unless both " @@ -3805,19 +2882,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> -#: ../en/ch03-tour-merge.xml:180 +#: ../en/ch02-tour-merge.xml:180 msgid "" "<imageobject><imagedata fileref=\"images/tour-merge-conflict.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> -#: ../en/ch03-tour-merge.xml:183 +#: ../en/ch02-tour-merge.xml:183 msgid "Conflicting changes to a document" msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:188 +#: ../en/ch02-tour-merge.xml:188 msgid "" "Figure <xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-" "merge.conflict\"/> illustrates an instance of two conflicting changes to a " @@ -3828,7 +2905,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:196 +#: ../en/ch02-tour-merge.xml:196 msgid "" "Mercurial doesn't have a built-in facility for handling conflicts. Instead, " "it runs an external program called <command>hgmerge</command>. This is a " @@ -3841,7 +2918,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:207 +#: ../en/ch02-tour-merge.xml:207 msgid "" "It's also possible to get Mercurial to run another program or script instead " "of <command>hgmerge</command>, by setting the <envar>HGMERGE</envar> " @@ -3849,12 +2926,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch03-tour-merge.xml:213 +#: ../en/ch02-tour-merge.xml:213 msgid "Using a graphical merge tool" msgstr "使用图形合并工具" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:215 +#: ../en/ch02-tour-merge.xml:215 msgid "" "My preferred graphical merge tool is <command>kdiff3</command>, which I'll " "use to describe the features that are common to graphical file merging " @@ -3867,7 +2944,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch03-tour-merge.xml:226 +#: ../en/ch02-tour-merge.xml:226 msgid "" "At the left is the <emphasis>base</emphasis> version of the file, i.e. the " "most recent version from which the two versions we're trying to merge are " @@ -3875,21 +2952,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch03-tour-merge.xml:231 +#: ../en/ch02-tour-merge.xml:231 msgid "" "In the middle is <quote>our</quote> version of the file, with the contents " "that we modified." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch03-tour-merge.xml:234 +#: ../en/ch02-tour-merge.xml:234 msgid "" "On the right is <quote>their</quote> version of the file, the one that from " "the changeset that we're trying to merge with." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:238 +#: ../en/ch02-tour-merge.xml:238 msgid "" "In the pane below these is the current <emphasis>result</emphasis> of the " "merge. Our task is to replace all of the red text, which indicates unresolved " @@ -3898,7 +2975,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:245 +#: ../en/ch02-tour-merge.xml:245 msgid "" "All four of these panes are <emphasis>locked together</emphasis>; if we " "scroll vertically or horizontally in any of them, the others are updated to " @@ -3906,19 +2983,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch03-tour-merge.xml:252 +#: ../en/ch02-tour-merge.xml:252 msgid "" "<imageobject><imagedata width=\"100%\" fileref=\"images/kdiff3.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch03-tour-merge.xml:255 +#: ../en/ch02-tour-merge.xml:255 msgid "Using <command>kdiff3</command> to merge versions of a file" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:261 +#: ../en/ch02-tour-merge.xml:261 msgid "" "For each conflicting portion of the file, we can choose to resolve the " "conflict using some combination of text from the base version, ours, or " @@ -3927,7 +3004,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:267 +#: ../en/ch02-tour-merge.xml:267 msgid "" "There are <emphasis>many</emphasis> file merging tools available, too many to " "cover here. They vary in which platforms they are available for, and in " @@ -3937,12 +3014,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch03-tour-merge.xml:276 +#: ../en/ch02-tour-merge.xml:276 msgid "A worked example" msgstr "合并实例" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:278 +#: ../en/ch02-tour-merge.xml:278 msgid "" "In this example, we will reproduce the file modification history of figure " "<xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-merge." @@ -3951,12 +3028,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:286 +#: ../en/ch02-tour-merge.xml:286 msgid "We'll clone the repository and make a change to the file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:291 +#: ../en/ch02-tour-merge.xml:291 msgid "" "And another clone, to simulate someone else making a change to the file. " "(This hints at the idea that it's not all that unusual to merge with yourself " @@ -3965,14 +3042,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:299 +#: ../en/ch02-tour-merge.xml:299 msgid "" "Having created two different versions of the file, we'll set up an " "environment suitable for running our merge." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:305 +#: ../en/ch02-tour-merge.xml:305 msgid "" "In this example, I won't use Mercurial's normal <command>hgmerge</command> " "program to do the merge, because it would drop my nice automated example-" @@ -3984,12 +3061,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:315 +#: ../en/ch02-tour-merge.xml:315 msgid "<emphasis role=\"bold\">XXX FIX THIS EXAMPLE.</emphasis>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:320 +#: ../en/ch02-tour-merge.xml:320 msgid "" "Because <command>merge</command> can't resolve the conflicting changes, it " "leaves <emphasis>merge markers</emphasis> inside the file that has conflicts, " @@ -3998,7 +3075,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:326 +#: ../en/ch02-tour-merge.xml:326 msgid "" "Mercurial can tell from the way <command>merge</command> exits that it wasn't " "able to merge successfully, so it tells us what commands we'll need to run if " @@ -4008,7 +3085,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch03-tour-merge.xml:333 +#: ../en/ch02-tour-merge.xml:333 msgid "" "If automatic or manual merges fail, there's nothing to prevent us from " "<quote>fixing up</quote> the affected files ourselves, and committing the " @@ -4016,19 +3093,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch03-tour-merge.xml:342 +#: ../en/ch02-tour-merge.xml:342 msgid "Simplifying the pull-merge-commit sequence" msgstr "简化拉-合并-提交程序" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:344 +#: ../en/ch02-tour-merge.xml:344 msgid "" "The process of merging changes as outlined above is straightforward, but " "requires running three commands in sequence." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:350 +#: ../en/ch02-tour-merge.xml:350 msgid "" "In the case of the final commit, you also need to enter a commit message, " "which is almost always going to be a piece of uninteresting " @@ -4036,7 +3113,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:354 +#: ../en/ch02-tour-merge.xml:354 msgid "" "It would be nice to reduce the number of steps needed, if this were " "possible. Indeed, Mercurial is distributed with an extension called <literal " @@ -4044,7 +3121,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:359 +#: ../en/ch02-tour-merge.xml:359 msgid "" "Mercurial provides a flexible extension mechanism that lets people extend its " "functionality, while keeping the core of Mercurial small and easy to deal " @@ -4054,7 +3131,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:366 +#: ../en/ch02-tour-merge.xml:366 msgid "" "The <literal role=\"hg-ext\">fetch</literal> extension adds a new command " "called, not surprisingly, <command role=\"hg-cmd\">hg fetch</command>. This " @@ -4068,7 +3145,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:379 +#: ../en/ch02-tour-merge.xml:379 msgid "" "Enabling the <literal role=\"hg-ext\">fetch</literal> extension is easy. " "Edit your <filename role=\"special\">.hgrc</filename>, and either go to the " @@ -4078,7 +3155,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch03-tour-merge.xml:389 +#: ../en/ch02-tour-merge.xml:388 msgid "" "(Normally, on the right-hand side of the <quote><literal>=</literal></quote> " "would appear the location of the extension, but since the <literal role=\"hg-" @@ -4087,12 +3164,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch04-concepts.xml:5 +#: ../en/ch03-concepts.xml:5 msgid "Behind the scenes" msgstr "Mercurial 内幕" #. type: Content of: <book><chapter><para> -#: ../en/ch04-concepts.xml:7 +#: ../en/ch03-concepts.xml:7 msgid "" "Unlike many revision control systems, the concepts upon which Mercurial is " "built are simple enough that it's easy to understand how the software really " @@ -4101,7 +3178,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch04-concepts.xml:13 +#: ../en/ch03-concepts.xml:13 msgid "" "This understanding gives me confidence that Mercurial has been carefully " "designed to be both <emphasis>safe</emphasis> and <emphasis>efficient</" @@ -4111,7 +3188,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch04-concepts.xml:20 +#: ../en/ch03-concepts.xml:20 msgid "" "In this chapter, we'll initially cover the core concepts behind Mercurial's " "design, then continue to discuss some of the interesting details of its " @@ -4119,17 +3196,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch04-concepts.xml:25 +#: ../en/ch03-concepts.xml:25 msgid "Mercurial's historical record" msgstr "Mercurial 的历史记录" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:28 +#: ../en/ch03-concepts.xml:28 msgid "Tracking the history of a single file" msgstr "跟踪单一文件的历史" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:30 +#: ../en/ch03-concepts.xml:30 msgid "" "When Mercurial tracks modifications to a file, it stores the history of that " "file in a metadata object called a <emphasis>filelog</emphasis>. Each entry " @@ -4141,7 +3218,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:41 +#: ../en/ch03-concepts.xml:41 msgid "" "A file that is large, or has a lot of history, has its filelog stored in " "separate data (<quote><literal>.d</literal></quote> suffix) and index " @@ -4154,23 +3231,23 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:55 +#: ../en/ch03-concepts.xml:55 msgid "<imageobject><imagedata fileref=\"images/filelog.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:57 +#: ../en/ch03-concepts.xml:57 msgid "" "Relationships between files in working directory and filelogs in repository" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:65 +#: ../en/ch03-concepts.xml:65 msgid "Managing tracked files" msgstr "管理跟踪的文件" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:67 +#: ../en/ch03-concepts.xml:67 msgid "" "Mercurial uses a structure called a <emphasis>manifest</emphasis> to collect " "together information about the files that it tracks. Each entry in the " @@ -4180,12 +3257,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:77 +#: ../en/ch03-concepts.xml:77 msgid "Recording changeset information" msgstr "记录修改集信息" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:79 +#: ../en/ch03-concepts.xml:79 msgid "" "The <emphasis>changelog</emphasis> contains information about each " "changeset. Each revision records who committed a change, the changeset " @@ -4194,12 +3271,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:87 +#: ../en/ch03-concepts.xml:87 msgid "Relationships between revisions" msgstr "版本之间的关系" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:89 +#: ../en/ch03-concepts.xml:89 msgid "" "Within a changelog, a manifest, or a filelog, each revision stores a pointer " "to its immediate parent (or to its two parents, if it's a merge revision). " @@ -4209,7 +3286,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:96 +#: ../en/ch03-concepts.xml:96 msgid "" "For every changeset in a repository, there is exactly one revision stored in " "the changelog. Each revision of the changelog contains a pointer to a single " @@ -4220,17 +3297,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:107 +#: ../en/ch03-concepts.xml:107 msgid "<imageobject><imagedata fileref=\"images/metadata.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:109 +#: ../en/ch03-concepts.xml:109 msgid "Metadata relationships" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:114 +#: ../en/ch03-concepts.xml:114 msgid "" "As the illustration shows, there is <emphasis>not</emphasis> a <quote>one to " "one</quote> relationship between revisions in the changelog, manifest, or " @@ -4242,24 +3319,24 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch04-concepts.xml:127 +#: ../en/ch03-concepts.xml:127 msgid "Safe, efficient storage" msgstr "安全,高效的存储" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:129 +#: ../en/ch03-concepts.xml:129 msgid "" "The underpinnings of changelogs, manifests, and filelogs are provided by a " "single structure called the <emphasis>revlog</emphasis>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:134 +#: ../en/ch03-concepts.xml:134 msgid "Efficient storage" msgstr "高效存储" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:136 +#: ../en/ch03-concepts.xml:136 msgid "" "The revlog provides efficient storage of revisions using a <emphasis>delta</" "emphasis> mechanism. Instead of storing a complete copy of a file for each " @@ -4269,7 +3346,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:144 +#: ../en/ch03-concepts.xml:144 msgid "" "Some obsolete revision control systems can only work with deltas of text " "files. They must either store binary files as complete snapshots or encoded " @@ -4279,12 +3356,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:153 +#: ../en/ch03-concepts.xml:153 msgid "Safe operation" msgstr "安全操作" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:155 +#: ../en/ch03-concepts.xml:155 msgid "" "Mercurial only ever <emphasis>appends</emphasis> data to the end of a revlog " "file. It never modifies a section of a file after it has written it. This is " @@ -4293,7 +3370,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:161 +#: ../en/ch03-concepts.xml:161 msgid "" "In addition, Mercurial treats every write as part of a <emphasis>transaction</" "emphasis> that can span a number of files. A transaction is " @@ -4305,7 +3382,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:171 +#: ../en/ch03-concepts.xml:171 msgid "" "The fact that Mercurial only appends to files makes it easier to provide this " "transactional guarantee. The easier it is to do stuff like this, the more " @@ -4313,12 +3390,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:178 +#: ../en/ch03-concepts.xml:178 msgid "Fast retrieval" msgstr "快速检索" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:180 +#: ../en/ch03-concepts.xml:180 msgid "" "Mercurial cleverly avoids a pitfall common to all earlier revision control " "systems: the problem of <emphasis>inefficient retrieval</emphasis>. Most " @@ -4331,17 +3408,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:193 +#: ../en/ch03-concepts.xml:193 msgid "<imageobject><imagedata fileref=\"images/snapshot.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:195 +#: ../en/ch03-concepts.xml:195 msgid "Snapshot of a revlog, with incremental deltas" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:200 +#: ../en/ch03-concepts.xml:200 msgid "" "The innovation that Mercurial applies to this problem is simple but " "effective. Once the cumulative amount of delta information stored since the " @@ -4353,7 +3430,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:209 +#: ../en/ch03-concepts.xml:209 msgid "" "Figure <xref endterm=\"fig.concepts.snapshot.caption\" linkend=\"fig.concepts." "snapshot\"/> illustrates the idea. In an entry in a revlog's index file, " @@ -4362,12 +3439,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch04-concepts.xml:216 +#: ../en/ch03-concepts.xml:216 msgid "Aside: the influence of video compression" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:218 +#: ../en/ch03-concepts.xml:218 msgid "" "If you're familiar with video compression or have ever watched a TV feed " "through a digital cable or satellite service, you may know that most video " @@ -4378,7 +3455,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:227 +#: ../en/ch03-concepts.xml:227 msgid "" "Because it's possible for a video stream to <quote>drop out</quote> " "occasionally due to signal glitches, and to limit the accumulation of " @@ -4391,12 +3468,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:241 +#: ../en/ch03-concepts.xml:241 msgid "Identification and strong integrity" msgstr "鉴别和强完整性" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:243 +#: ../en/ch03-concepts.xml:243 msgid "" "Along with delta or snapshot information, a revlog entry contains a " "cryptographic hash of the data that it represents. This makes it difficult " @@ -4404,7 +3481,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:248 +#: ../en/ch03-concepts.xml:248 msgid "" "Hashes provide more than a mere check against corruption; they are used as " "the identifiers for revisions. The changeset identification hashes that you " @@ -4413,7 +3490,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:255 +#: ../en/ch03-concepts.xml:255 msgid "" "Mercurial verifies that hashes are correct when it retrieves file revisions " "and when it pulls changes from another repository. If it encounters an " @@ -4421,7 +3498,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:260 +#: ../en/ch03-concepts.xml:260 msgid "" "In addition to the effect it has on retrieval efficiency, Mercurial's use of " "periodic snapshots makes it more robust against partial data corruption. If " @@ -4432,12 +3509,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch04-concepts.xml:272 +#: ../en/ch03-concepts.xml:272 msgid "Revision history, branching, and merging" msgstr "修订历史,分支与合并" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:274 +#: ../en/ch03-concepts.xml:274 msgid "" "Every entry in a Mercurial revlog knows the identity of its immediate " "ancestor revision, usually referred to as its <emphasis>parent</emphasis>. " @@ -4448,7 +3525,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:282 +#: ../en/ch03-concepts.xml:282 msgid "" "In figure <xref endterm=\"fig.concepts.revlog.caption\" linkend=\"fig." "concepts.revlog\"/>, you can see an example of the conceptual structure of a " @@ -4457,7 +3534,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:289 +#: ../en/ch03-concepts.xml:289 msgid "" "The first revision in a revlog (at the bottom of the image) has the null ID " "in both of its parent slots. For a <quote>normal</quote> revision, its first " @@ -4469,29 +3546,29 @@ msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:300 +#: ../en/ch03-concepts.xml:300 msgid "<imageobject><imagedata fileref=\"images/revlog.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:302 +#: ../en/ch03-concepts.xml:302 msgid "Revision in revlog" msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch04-concepts.xml:309 +#: ../en/ch03-concepts.xml:309 msgid "The working directory" msgstr "工作目录" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:311 +#: ../en/ch03-concepts.xml:311 msgid "" "In the working directory, Mercurial stores a snapshot of the files from the " "repository as of a particular changeset." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:314 +#: ../en/ch03-concepts.xml:314 msgid "" "The working directory <quote>knows</quote> which changeset it contains. When " "you update the working directory to contain a particular changeset, Mercurial " @@ -4502,7 +3579,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:323 +#: ../en/ch03-concepts.xml:323 msgid "" "The <emphasis>dirstate</emphasis> contains Mercurial's knowledge of the " "working directory. This details which changeset the working directory is " @@ -4511,7 +3588,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:329 +#: ../en/ch03-concepts.xml:329 msgid "" "Just as a revision of a revlog has room for two parents, so that it can " "represent either a normal revision (with one parent) or a merge of two " @@ -4526,12 +3603,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:343 +#: ../en/ch03-concepts.xml:343 msgid "What happens when you commit" msgstr "当你提交时发生的事情" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:345 +#: ../en/ch03-concepts.xml:345 msgid "" "The dirstate stores parent information for more than just book-keeping " "purposes. Mercurial uses the parents of the dirstate as <emphasis>the " @@ -4539,17 +3616,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:352 +#: ../en/ch03-concepts.xml:352 msgid "<imageobject><imagedata fileref=\"images/wdir.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:354 +#: ../en/ch03-concepts.xml:354 msgid "The working directory can have two parents" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:359 +#: ../en/ch03-concepts.xml:359 msgid "" "Figure <xref endterm=\"fig.concepts.wdir.caption\" linkend=\"fig.concepts.wdir" "\"/> shows the normal state of the working directory, where it has a single " @@ -4558,19 +3635,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:368 +#: ../en/ch03-concepts.xml:368 msgid "" "<imageobject><imagedata fileref=\"images/wdir-after-commit.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:371 +#: ../en/ch03-concepts.xml:371 msgid "The working directory gains new parents after a commit" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:376 +#: ../en/ch03-concepts.xml:376 msgid "" "It's useful to think of the working directory as <quote>the changeset I'm " "about to commit</quote>. Any files that you tell Mercurial that you've " @@ -4580,7 +3657,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:384 +#: ../en/ch03-concepts.xml:384 msgid "" "After a commit, Mercurial will update the parents of the working directory, " "so that the first parent is the ID of the new changeset, and the second is " @@ -4591,12 +3668,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:396 +#: ../en/ch03-concepts.xml:396 msgid "Creating a new head" msgstr "创建新顶点" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:398 +#: ../en/ch03-concepts.xml:398 msgid "" "It's perfectly normal to update the working directory to a changeset other " "than the current tip. For example, you might want to know what your project " @@ -4610,19 +3687,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:412 +#: ../en/ch03-concepts.xml:412 msgid "" "<imageobject><imagedata fileref=\"images/wdir-pre-branch.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:415 +#: ../en/ch03-concepts.xml:415 msgid "The working directory, updated to an older changeset" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:420 +#: ../en/ch03-concepts.xml:420 msgid "" "Having updated the working directory to an older changeset, what happens if " "you make some changes, and then commit? Mercurial behaves in the same way as " @@ -4635,18 +3712,18 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:434 +#: ../en/ch03-concepts.xml:434 msgid "" "<imageobject><imagedata fileref=\"images/wdir-branch.png\"/> </imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:437 +#: ../en/ch03-concepts.xml:437 msgid "After a commit made while synced to an older changeset" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch04-concepts.xml:443 +#: ../en/ch03-concepts.xml:443 msgid "" "If you're new to Mercurial, you should keep in mind a common <quote>error</" "quote>, which is to use the <command role=\"hg-cmd\">hg pull</command> " @@ -4660,7 +3737,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch04-concepts.xml:455 +#: ../en/ch03-concepts.xml:455 msgid "" "I put the word <quote>error</quote> in quotes because all that you need to do " "to rectify this situation is <command role=\"hg-cmd\">hg merge</command>, " @@ -4671,12 +3748,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:467 +#: ../en/ch03-concepts.xml:467 msgid "Merging heads" msgstr "合并顶点" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:469 +#: ../en/ch03-concepts.xml:469 msgid "" "When you run the <command role=\"hg-cmd\">hg merge</command> command, " "Mercurial leaves the first parent of the working directory unchanged, and " @@ -4686,18 +3763,18 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch04-concepts.xml:478 +#: ../en/ch03-concepts.xml:478 msgid "" "<imageobject><imagedata fileref=\"images/wdir-merge.png\"/> </imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch04-concepts.xml:481 +#: ../en/ch03-concepts.xml:481 msgid "Merging two heads" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:486 +#: ../en/ch03-concepts.xml:486 msgid "" "Mercurial also has to modify the working directory, to merge the files " "managed in the two changesets. Simplified a little, the merging process goes " @@ -4705,33 +3782,33 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:491 +#: ../en/ch03-concepts.xml:491 msgid "If neither changeset has modified a file, do nothing with that file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:494 +#: ../en/ch03-concepts.xml:494 msgid "" "If one changeset has modified a file, and the other hasn't, create the " "modified copy of the file in the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:498 +#: ../en/ch03-concepts.xml:498 msgid "" "If one changeset has removed a file, and the other hasn't (or has also " "deleted it), delete the file from the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:502 +#: ../en/ch03-concepts.xml:502 msgid "" "If one changeset has removed a file, but the other has modified the file, ask " "the user what to do: keep the modified file, or remove it?" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:506 +#: ../en/ch03-concepts.xml:506 msgid "" "If both changesets have modified a file, invoke an external merge program to " "choose the new contents for the merged file. This may require input from the " @@ -4739,14 +3816,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch04-concepts.xml:511 +#: ../en/ch03-concepts.xml:511 msgid "" "If one changeset has modified a file, and the other has renamed or copied the " "file, make sure that the changes follow the new name of the file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:515 +#: ../en/ch03-concepts.xml:515 msgid "" "There are more details&emdash;merging has plenty of corner cases&emdash;but " "these are the most common choices that are involved in a merge. As you can " @@ -4755,7 +3832,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:522 +#: ../en/ch03-concepts.xml:522 msgid "" "When you're thinking about what happens when you commit after a merge, once " "again the working directory is <quote>the changeset I'm about to commit</" @@ -4765,7 +3842,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:529 +#: ../en/ch03-concepts.xml:529 msgid "" "Mercurial lets you perform multiple merges, but you must commit the results " "of each individual merge as you go. This is necessary because Mercurial only " @@ -4776,12 +3853,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch04-concepts.xml:540 +#: ../en/ch03-concepts.xml:540 msgid "Other interesting design features" msgstr "其它有趣的设计特性" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch04-concepts.xml:542 +#: ../en/ch03-concepts.xml:542 msgid "" "In the sections above, I've tried to highlight some of the most important " "aspects of Mercurial's design, to illustrate that it pays careful attention " @@ -4794,12 +3871,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:553 +#: ../en/ch03-concepts.xml:553 msgid "Clever compression" msgstr "智能压缩" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:555 +#: ../en/ch03-concepts.xml:555 msgid "" "When appropriate, Mercurial will store both snapshots and deltas in " "compressed form. It does this by always <emphasis>trying to</emphasis> " @@ -4808,7 +3885,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:561 +#: ../en/ch03-concepts.xml:561 msgid "" "This means that Mercurial does <quote>the right thing</quote> when storing a " "file whose native form is compressed, such as a <literal>zip</literal> " @@ -4818,7 +3895,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:569 +#: ../en/ch03-concepts.xml:569 msgid "" "Deltas between revisions of a compressed file are usually larger than " "snapshots of the file, and Mercurial again does <quote>the right thing</" @@ -4828,12 +3905,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch04-concepts.xml:578 +#: ../en/ch03-concepts.xml:578 msgid "Network recompression" msgstr "网络重新压缩" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:580 +#: ../en/ch03-concepts.xml:580 msgid "" "When storing revisions on disk, Mercurial uses the <quote>deflate</quote> " "compression algorithm (the same one used by the popular <literal>zip</" @@ -4843,7 +3920,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:588 +#: ../en/ch03-concepts.xml:588 msgid "" "If the connection is over HTTP, Mercurial recompresses the entire stream of " "data using a compression algorithm that gives a better compression ratio (the " @@ -4855,7 +3932,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:598 +#: ../en/ch03-concepts.xml:598 msgid "" "(If the connection is over <command>ssh</command>, Mercurial " "<emphasis>doesn't</emphasis> recompress the stream, because <command>ssh</" @@ -4863,12 +3940,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:606 +#: ../en/ch03-concepts.xml:606 msgid "Read/write ordering and atomicity" msgstr "读写顺序与原子性" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:608 +#: ../en/ch03-concepts.xml:608 msgid "" "Appending to files isn't the whole story when it comes to guaranteeing that a " "reader won't see a partial write. If you recall figure <xref endterm=\"fig." @@ -4878,7 +3955,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:616 +#: ../en/ch03-concepts.xml:616 msgid "" "A writer starts a transaction by writing filelog and manifest data, and " "doesn't write any changelog data until those are finished. A reader starts " @@ -4886,7 +3963,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:621 +#: ../en/ch03-concepts.xml:621 msgid "" "Since the writer has always finished writing filelog and manifest data before " "it writes to the changelog, a reader will never read a pointer to a partially " @@ -4895,12 +3972,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:629 +#: ../en/ch03-concepts.xml:629 msgid "Concurrent access" msgstr "并发访问" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:631 +#: ../en/ch03-concepts.xml:631 msgid "" "The read/write ordering and atomicity guarantees mean that Mercurial never " "needs to <emphasis>lock</emphasis> a repository when it's reading data, even " @@ -4911,7 +3988,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:640 +#: ../en/ch03-concepts.xml:640 msgid "" "The lockless nature of reading means that if you're sharing a repository on a " "multi-user system, you don't need to grant other local users permission to " @@ -4925,7 +4002,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:653 +#: ../en/ch03-concepts.xml:653 msgid "" "Mercurial uses locks to ensure that only one process can write to a " "repository at a time (the locking mechanism is safe even over filesystems " @@ -4939,12 +4016,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch04-concepts.xml:665 +#: ../en/ch03-concepts.xml:665 msgid "Safe dirstate access" msgstr "安全的目录状态访问" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch04-concepts.xml:667 +#: ../en/ch03-concepts.xml:667 msgid "" "As with revision data, Mercurial doesn't take a lock to read the dirstate " "file; it does acquire a lock to write it. To avoid the possibility of " @@ -4956,12 +4033,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:680 +#: ../en/ch03-concepts.xml:680 msgid "Avoiding seeks" msgstr "避免查找" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:682 +#: ../en/ch03-concepts.xml:682 msgid "" "Critical to Mercurial's performance is the avoidance of seeks of the disk " "head, since any seek is far more expensive than even a comparatively large " @@ -4969,7 +4046,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:686 +#: ../en/ch03-concepts.xml:686 msgid "" "This is why, for example, the dirstate is stored in a single file. If there " "were a dirstate file per directory that Mercurial tracked, the disk would " @@ -4978,7 +4055,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:692 +#: ../en/ch03-concepts.xml:692 msgid "" "Mercurial also uses a <quote>copy on write</quote> scheme when cloning a " "repository on local storage. Instead of copying every revlog file from the " @@ -4991,7 +4068,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:703 +#: ../en/ch03-concepts.xml:703 msgid "" "A few revision control developers have pointed out that this idea of making a " "complete private copy of a file is not very efficient in its use of storage. " @@ -5003,12 +4080,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch04-concepts.xml:715 +#: ../en/ch03-concepts.xml:715 msgid "Other contents of the dirstate" msgstr "目录状态的其它内容" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:717 +#: ../en/ch03-concepts.xml:717 msgid "" "Because Mercurial doesn't force you to tell it when you're modifying a file, " "it uses the dirstate to store some extra information so it can determine " @@ -5018,7 +4095,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:724 +#: ../en/ch03-concepts.xml:724 msgid "" "When you explicitly <command role=\"hg-cmd\">hg add</command>, <command role=" "\"hg-cmd\">hg remove</command>, <command role=\"hg-cmd\">hg rename</command> " @@ -5027,7 +4104,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch04-concepts.xml:731 +#: ../en/ch03-concepts.xml:731 msgid "" "When Mercurial is checking the states of files in the working directory, it " "first checks a file's modification time. If that has not changed, the file " @@ -5041,17 +4118,17 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch05-daily.xml:5 +#: ../en/ch04-daily.xml:5 msgid "Mercurial in daily use" msgstr "Mercurial 的日常使用" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch05-daily.xml:8 +#: ../en/ch04-daily.xml:8 msgid "Telling Mercurial which files to track" msgstr "告诉 Mercurial 要跟踪哪些文件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:10 +#: ../en/ch04-daily.xml:10 msgid "" "Mercurial does not work with files in your repository unless you tell it to " "manage them. The <command role=\"hg-cmd\">hg status</command> command will " @@ -5061,7 +4138,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:17 +#: ../en/ch04-daily.xml:17 msgid "" "To tell Mercurial to track a file, use the <command role=\"hg-cmd\">hg add</" "command> command. Once you have added a file, the entry in the output of " @@ -5070,7 +4147,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:26 +#: ../en/ch04-daily.xml:26 msgid "" "After you run a <command role=\"hg-cmd\">hg commit</command>, the files that " "you added before the commit will no longer be listed in the output of " @@ -5084,7 +4161,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:38 +#: ../en/ch04-daily.xml:38 msgid "" "Once you add a file, Mercurial doesn't do anything with it immediately. " "Instead, it will take a snapshot of the file's state the next time you " @@ -5093,12 +4170,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:45 +#: ../en/ch04-daily.xml:45 msgid "Explicit versus implicit file naming" msgstr "明确与隐含文件命名" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:47 +#: ../en/ch04-daily.xml:47 msgid "" "A useful behaviour that Mercurial has is that if you pass the name of a " "directory to a command, every Mercurial command will treat this as <quote>I " @@ -5107,7 +4184,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:54 +#: ../en/ch04-daily.xml:54 msgid "" "Notice in this example that Mercurial printed the names of the files it " "added, whereas it didn't do so when we added the file named <filename>a</" @@ -5115,7 +4192,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:59 +#: ../en/ch04-daily.xml:59 msgid "" "What's going on is that in the former case, we explicitly named the file to " "add on the command line, so the assumption that Mercurial makes in such cases " @@ -5123,7 +4200,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:64 +#: ../en/ch04-daily.xml:64 msgid "" "However, when we <emphasis>imply</emphasis> the names of files by giving the " "name of a directory, Mercurial takes the extra step of printing the name of " @@ -5133,12 +4210,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:73 +#: ../en/ch04-daily.xml:73 msgid "Aside: Mercurial tracks files, not directories" msgstr "旁白: Mercurial 只跟踪文件,不跟踪目录" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:75 +#: ../en/ch04-daily.xml:75 msgid "" "Mercurial does not track directory information. Instead, it tracks the path " "to a file. Before creating a file, it first creates any missing directory " @@ -5149,7 +4226,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:84 +#: ../en/ch04-daily.xml:84 msgid "" "Empty directories are rarely useful, and there are unintrusive workarounds " "that you can use to achieve an appropriate effect. The developers of " @@ -5158,7 +4235,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:91 +#: ../en/ch04-daily.xml:91 msgid "" "If you need an empty directory in your repository, there are a few ways to " "achieve this. One is to create a directory, then <command role=\"hg-cmd\">hg " @@ -5169,20 +4246,20 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:102 +#: ../en/ch04-daily.xml:102 msgid "" "Another way to tackle a need for an empty directory is to simply create one " "in your automated build scripts before they will need it." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch05-daily.xml:109 +#: ../en/ch04-daily.xml:109 msgid "How to stop tracking a file" msgstr "如何停止跟踪文件" # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:111 +#: ../en/ch04-daily.xml:111 msgid "" "Once you decide that a file no longer belongs in your repository, use the " "<command role=\"hg-cmd\">hg remove</command> command; this deletes the file, " @@ -5192,7 +4269,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:120 +#: ../en/ch04-daily.xml:120 msgid "" "After you <command role=\"hg-cmd\">hg remove</command> a file, Mercurial will " "no longer track changes to that file, even if you recreate a file with the " @@ -5203,36 +4280,36 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:129 +#: ../en/ch04-daily.xml:129 msgid "Removing a file does not affect its history" msgstr "删除文件不影响历史" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:131 +#: ../en/ch04-daily.xml:131 msgid "It is important to understand that removing a file has only two effects." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch05-daily.xml:134 +#: ../en/ch04-daily.xml:134 msgid "It removes the current version of the file from the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch05-daily.xml:137 +#: ../en/ch04-daily.xml:137 msgid "" "It stops Mercurial from tracking changes to the file, from the time of the " "next commit." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:140 +#: ../en/ch04-daily.xml:140 msgid "" "Removing a file <emphasis>does not</emphasis> in any way alter the " "<emphasis>history</emphasis> of the file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:143 +#: ../en/ch04-daily.xml:143 msgid "" "If you update the working directory to a changeset in which a file that you " "have removed was still tracked, it will reappear in the working directory, " @@ -5242,12 +4319,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:153 +#: ../en/ch04-daily.xml:153 msgid "Missing files" msgstr "丢失的文件" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:155 +#: ../en/ch04-daily.xml:155 msgid "" "Mercurial considers a file that you have deleted, but not used <command role=" "\"hg-cmd\">hg remove</command> to delete, to be <emphasis>missing</" @@ -5257,7 +4334,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:165 +#: ../en/ch04-daily.xml:165 msgid "" "If your repository contains a file that <command role=\"hg-cmd\">hg status</" "command> reports as missing, and you want the file to stay gone, you can run " @@ -5267,7 +4344,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:175 +#: ../en/ch04-daily.xml:175 msgid "" "On the other hand, if you deleted the missing file by accident, give <command " "role=\"hg-cmd\">hg revert</command> the name of the file to recover. It will " @@ -5275,12 +4352,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:184 +#: ../en/ch04-daily.xml:184 msgid "Aside: why tell Mercurial explicitly to remove a file?" msgstr "旁白: 为什么要明确告诉 Mercurial 删除文件?" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:187 +#: ../en/ch04-daily.xml:187 msgid "" "You might wonder why Mercurial requires you to explicitly tell it that you " "are deleting a file. Early during the development of Mercurial, it let you " @@ -5291,12 +4368,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:198 +#: ../en/ch04-daily.xml:198 msgid "Useful shorthand&emdash;adding and removing files in one step" msgstr "有用的速记&emdash;一个步骤添加和删除文件" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:201 +#: ../en/ch04-daily.xml:201 msgid "" "Mercurial offers a combination command, <command role=\"hg-cmd\">hg " "addremove</command>, that adds untracked files and marks missing files as " @@ -5304,7 +4381,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:207 +#: ../en/ch04-daily.xml:207 msgid "" "The <command role=\"hg-cmd\">hg commit</command> command also provides a " "<option role=\"hg-opt-commit\">-A</option> option that performs this same add-" @@ -5312,12 +4389,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch05-daily.xml:217 +#: ../en/ch04-daily.xml:217 msgid "Copying files" msgstr "复制文件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:219 +#: ../en/ch04-daily.xml:219 msgid "" "Mercurial provides a <command role=\"hg-cmd\">hg copy</command> command that " "lets you make a new copy of a file. When you copy a file using this command, " @@ -5327,12 +4404,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:227 +#: ../en/ch04-daily.xml:227 msgid "The results of copying during a merge" msgstr "合并期间的复制结果" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:229 +#: ../en/ch04-daily.xml:229 msgid "" "What happens during a merge is that changes <quote>follow</quote> a copy. To " "best illustrate what this means, let's create an example. We'll start with " @@ -5340,28 +4417,28 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:236 +#: ../en/ch04-daily.xml:236 msgid "" "We need to do some work in parallel, so that we'll have something to merge. " "So let's clone our repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:242 +#: ../en/ch04-daily.xml:242 msgid "" "Back in our initial repository, let's use the <command role=\"hg-cmd\">hg " "copy</command> command to make a copy of the first file we created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:248 +#: ../en/ch04-daily.xml:248 msgid "" "If we look at the output of the <command role=\"hg-cmd\">hg status</command> " "command afterwards, the copied file looks just like a normal added file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:254 +#: ../en/ch04-daily.xml:254 msgid "" "But if we pass the <option role=\"hg-opt-status\">-C</option> option to " "<command role=\"hg-cmd\">hg status</command>, it prints another line of " @@ -5370,14 +4447,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:262 +#: ../en/ch04-daily.xml:262 msgid "" "Now, back in the repository we cloned, let's make a change in parallel. " "We'll add a line of content to the original file that we created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:268 +#: ../en/ch04-daily.xml:268 msgid "" "Now we have a modified <filename>file</filename> in this repository. When we " "pull the changes from the first repository, and merge the two heads, " @@ -5386,19 +4463,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:278 +#: ../en/ch04-daily.xml:278 msgid "Why should changes follow copies?" msgstr "为什么复制后需要后续修改?" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:280 +#: ../en/ch04-daily.xml:280 msgid "" "This behaviour, of changes to a file propagating out to copies of the file, " "might seem esoteric, but in most cases it's highly desirable." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:284 +#: ../en/ch04-daily.xml:284 msgid "" "First of all, remember that this propagation <emphasis>only</emphasis> " "happens when you merge. So if you <command role=\"hg-cmd\">hg copy</command> " @@ -5407,7 +4484,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:290 +#: ../en/ch04-daily.xml:290 msgid "" "The second thing to know is that modifications will only propagate across a " "copy as long as the repository that you're pulling changes from " @@ -5415,7 +4492,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:295 +#: ../en/ch04-daily.xml:295 msgid "" "The reason that Mercurial does this is as follows. Let's say I make an " "important bug fix in a source file, and commit my changes. Meanwhile, you've " @@ -5425,7 +4502,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:302 +#: ../en/ch04-daily.xml:302 msgid "" "If you pulled and merged my changes, and Mercurial <emphasis>didn't</" "emphasis> propagate changes across copies, your source file would now contain " @@ -5434,7 +4511,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:308 +#: ../en/ch04-daily.xml:308 msgid "" "By automatically propagating the change that fixed the bug from the original " "file to the copy, Mercurial prevents this class of problem. To my knowledge, " @@ -5443,7 +4520,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:314 +#: ../en/ch04-daily.xml:314 msgid "" "Once your change history has a record that the copy and subsequent merge " "occurred, there's usually no further need to propagate changes from the " @@ -5452,12 +4529,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:322 +#: ../en/ch04-daily.xml:322 msgid "How to make changes <emphasis>not</emphasis> follow a copy" msgstr "如何让复制后<emphasis>不</emphasis>修改?" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:325 +#: ../en/ch04-daily.xml:325 msgid "" "If, for some reason, you decide that this business of automatically " "propagating changes across copies is not for you, simply use your system's " @@ -5469,12 +4546,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:338 +#: ../en/ch04-daily.xml:338 msgid "Behaviour of the <command role=\"hg-cmd\">hg copy</command> command" msgstr "命令 <command role=\"hg-cmd\">hg copy</command> 的特性" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:341 +#: ../en/ch04-daily.xml:341 msgid "" "When you use the <command role=\"hg-cmd\">hg copy</command> command, " "Mercurial makes a copy of each source file as it currently stands in the " @@ -5486,7 +4563,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:351 +#: ../en/ch04-daily.xml:351 msgid "" "The <command role=\"hg-cmd\">hg copy</command> command acts similarly to the " "Unix <command>cp</command> command (you can use the <command role=\"hg-cmd" @@ -5497,21 +4574,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:362 +#: ../en/ch04-daily.xml:362 msgid "" "If the destination is a directory, Mercurial copies its sources into that " "directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:367 +#: ../en/ch04-daily.xml:367 msgid "" "Copying a directory is recursive, and preserves the directory structure of " "the source." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:373 +#: ../en/ch04-daily.xml:373 msgid "" "If the source and destination are both directories, the source tree is " "recreated in the destination directory." @@ -5519,7 +4596,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:378 +#: ../en/ch04-daily.xml:378 msgid "" "As with the <command role=\"hg-cmd\">hg rename</command> command, if you copy " "a file manually and then want Mercurial to know that you've copied the file, " @@ -5528,12 +4605,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch05-daily.xml:389 +#: ../en/ch04-daily.xml:389 msgid "Renaming files" msgstr "改名文件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:391 +#: ../en/ch04-daily.xml:391 msgid "" "It's rather more common to need to rename a file than to make a copy of it. " "The reason I discussed the <command role=\"hg-cmd\">hg copy</command> command " @@ -5543,7 +4620,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:399 +#: ../en/ch04-daily.xml:399 msgid "" "When you use the <command role=\"hg-cmd\">hg rename</command> command, " "Mercurial makes a copy of each source file, then deletes it and marks the " @@ -5551,14 +4628,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:405 +#: ../en/ch04-daily.xml:405 msgid "" "The <command role=\"hg-cmd\">hg status</command> command shows the newly " "copied file as added, and the copied-from file as removed." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:411 +#: ../en/ch04-daily.xml:411 msgid "" "As with the results of a <command role=\"hg-cmd\">hg copy</command>, we must " "use the <option role=\"hg-opt-status\">-C</option> option to <command role=" @@ -5567,7 +4644,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:420 +#: ../en/ch04-daily.xml:420 msgid "" "As with <command role=\"hg-cmd\">hg remove</command> and <command role=\"hg-" "cmd\">hg copy</command>, you can tell Mercurial about a rename after the fact " @@ -5578,19 +4655,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:430 +#: ../en/ch04-daily.xml:430 msgid "Renaming files and merging changes" msgstr "改名文件与合并修改" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:432 +#: ../en/ch04-daily.xml:432 msgid "" "Since Mercurial's rename is implemented as copy-and-remove, the same " "propagation of changes happens when you merge after a rename as after a copy." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:436 +#: ../en/ch04-daily.xml:436 msgid "" "If I modify a file, and you rename it to a new name, and then we merge our " "respective changes, my modifications to the file under its original name will " @@ -5600,7 +4677,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:443 +#: ../en/ch04-daily.xml:443 msgid "" "Whereas having changes follow a copy is a feature where you can perhaps nod " "and say <quote>yes, that might be useful,</quote> it should be clear that " @@ -5610,12 +4687,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:452 +#: ../en/ch04-daily.xml:452 msgid "Divergent renames and merging" msgstr "改名与合并的分歧" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:454 +#: ../en/ch04-daily.xml:454 msgid "" "The case of diverging names occurs when two developers start with a " "file&emdash;let's call it <filename>foo</filename>&emdash;in their respective " @@ -5623,17 +4700,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:461 +#: ../en/ch04-daily.xml:461 msgid "Anne renames the file to <filename>bar</filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:465 +#: ../en/ch04-daily.xml:465 msgid "Meanwhile, Bob renames it to <filename>quux</filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:470 +#: ../en/ch04-daily.xml:470 msgid "" "I like to think of this as a conflict because each developer has expressed " "different intentions about what the file ought to be named." @@ -5641,7 +4718,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:474 +#: ../en/ch04-daily.xml:474 msgid "" "What do you think should happen when they merge their work? Mercurial's " "actual behaviour is that it always preserves <emphasis>both</emphasis> names " @@ -5649,19 +4726,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:481 +#: ../en/ch04-daily.xml:481 msgid "" "Notice that Mercurial does warn about the divergent renames, but it leaves it " "up to you to do something about the divergence after the merge." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:487 +#: ../en/ch04-daily.xml:487 msgid "Convergent renames and merging" msgstr "收敛改名与合并" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:489 +#: ../en/ch04-daily.xml:489 msgid "" "Another kind of rename conflict occurs when two people choose to rename " "different <emphasis>source</emphasis> files to the same " @@ -5670,12 +4747,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch05-daily.xml:497 +#: ../en/ch04-daily.xml:497 msgid "Other name-related corner cases" msgstr "其它名称相关的角落" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch05-daily.xml:499 +#: ../en/ch04-daily.xml:499 msgid "" "Mercurial has a longstanding bug in which it fails to handle a merge where " "one side has a file with a given name, while another has a directory with the " @@ -5684,19 +4761,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch05-daily.xml:511 +#: ../en/ch04-daily.xml:511 msgid "Recovering from mistakes" msgstr "从错误恢复" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:513 +#: ../en/ch04-daily.xml:513 msgid "" "Mercurial has some useful commands that will help you to recover from some " "common mistakes." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:516 +#: ../en/ch04-daily.xml:516 msgid "" "The <command role=\"hg-cmd\">hg revert</command> command lets you undo " "changes that you have made to your working directory. For example, if you " @@ -5708,7 +4785,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:526 +#: ../en/ch04-daily.xml:526 msgid "" "It's useful to remember that the <command role=\"hg-cmd\">hg revert</command> " "command is useful for changes that you have not yet committed. Once you've " @@ -5717,7 +4794,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch05-daily.xml:532 +#: ../en/ch04-daily.xml:532 msgid "" "For more information about the <command role=\"hg-cmd\">hg revert</command> " "command, and details about how to deal with changes you have already " @@ -5725,12 +4802,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch06-collab.xml:5 +#: ../en/ch05-collab.xml:5 msgid "Collaborating with other people" msgstr "团体协作" #. type: Content of: <book><chapter><para> -#: ../en/ch06-collab.xml:7 +#: ../en/ch05-collab.xml:7 msgid "" "As a completely decentralised tool, Mercurial doesn't impose any policy on " "how people ought to work with each other. However, if you're new to " @@ -5739,19 +4816,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:14 +#: ../en/ch05-collab.xml:14 msgid "Mercurial's web interface" msgstr "Mercurial 的 web 接口" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:16 +#: ../en/ch05-collab.xml:16 msgid "" "Mercurial has a powerful web interface that provides several useful " "capabilities." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:19 +#: ../en/ch05-collab.xml:19 msgid "" "For interactive use, the web interface lets you browse a single repository or " "a collection of repositories. You can view the history of a repository, " @@ -5760,7 +4837,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:24 +#: ../en/ch05-collab.xml:24 msgid "" "Also for human consumption, the web interface provides an RSS feed of the " "changes in a repository. This lets you <quote>subscribe</quote> to a " @@ -5772,7 +4849,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:34 +#: ../en/ch05-collab.xml:34 msgid "" "The web interface also lets remote users clone a repository, pull changes " "from it, and (when the server is configured to permit it) push changes back " @@ -5781,7 +4858,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:40 +#: ../en/ch05-collab.xml:40 msgid "" "The easiest way to get started with the web interface is to use your web " "browser to visit an existing repository, such as the master Mercurial " @@ -5790,7 +4867,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:45 +#: ../en/ch05-collab.xml:45 msgid "" "If you're interested in providing a web interface to your own repositories, " "Mercurial provides two ways to do this. The first is using the <command role=" @@ -5804,12 +4881,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:60 +#: ../en/ch05-collab.xml:60 msgid "Collaboration models" msgstr "协作模型" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:62 +#: ../en/ch05-collab.xml:62 msgid "" "With a suitably flexible tool, making decisions about workflow is much more " "of a social engineering challenge than a technical one. Mercurial imposes few " @@ -5819,12 +4896,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:70 +#: ../en/ch05-collab.xml:70 msgid "Factors to keep in mind" msgstr "要牢记的因素" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:72 +#: ../en/ch05-collab.xml:72 msgid "" "The most important aspect of any model that you must keep in mind is how well " "it matches the needs and capabilities of the people who will be using it. " @@ -5833,7 +4910,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:78 +#: ../en/ch05-collab.xml:78 msgid "" "I once put together a workflow model that seemed to make perfect sense to me, " "but that caused a considerable amount of consternation and strife within my " @@ -5846,7 +4923,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:88 +#: ../en/ch05-collab.xml:88 msgid "" "Don't sweep foreseeable social or technical problems under the rug. Whatever " "scheme you put into effect, you should plan for mistakes and problem " @@ -5860,12 +4937,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:102 +#: ../en/ch05-collab.xml:102 msgid "Informal anarchy" msgstr "无政府状态" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:104 +#: ../en/ch05-collab.xml:104 msgid "" "I wouldn't suggest an <quote>anything goes</quote> approach as something " "sustainable, but it's a model that's easy to grasp, and it works perfectly " @@ -5873,7 +4950,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:109 +#: ../en/ch05-collab.xml:109 msgid "" "As one example, many projects have a loose-knit group of collaborators who " "rarely physically meet each other. Some groups like to overcome the " @@ -5885,7 +4962,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:118 +#: ../en/ch05-collab.xml:118 msgid "" "A sprint is the perfect place to use the <command role=\"hg-cmd\">hg serve</" "command> command, since <command role=\"hg-cmd\">hg serve</command> does not " @@ -5900,7 +4977,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:132 +#: ../en/ch05-collab.xml:132 msgid "" "The charm, and the problem, with doing things in an ad hoc fashion like this " "is that only people who know about your changes, and where they are, can see " @@ -5910,12 +4987,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:141 +#: ../en/ch05-collab.xml:141 msgid "A single central repository" msgstr "单一中央版本库" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:143 +#: ../en/ch05-collab.xml:143 msgid "" "For smaller projects migrating from a centralised revision control tool, " "perhaps the easiest way to get started is to have changes flow through a " @@ -5924,7 +5001,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:149 +#: ../en/ch05-collab.xml:149 msgid "" "Contributors start by cloning a copy of this repository. They can pull " "changes from it whenever they need to, and some (perhaps all) developers have " @@ -5933,7 +5010,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:154 +#: ../en/ch05-collab.xml:154 msgid "" "Under this model, it can still often make sense for people to pull changes " "directly from each other, without going through the central repository. " @@ -5946,7 +5023,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:165 +#: ../en/ch05-collab.xml:165 msgid "" "In this kind of scenario, people usually use the <command>ssh</command> " "protocol to securely push changes to the central repository, as documented in " @@ -5958,12 +5035,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:178 +#: ../en/ch05-collab.xml:178 msgid "Working with multiple branches" msgstr "使用多个分支工作" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:180 +#: ../en/ch05-collab.xml:180 msgid "" "Projects of any significant size naturally tend to make progress on several " "fronts simultaneously. In the case of software, it's common for a project to " @@ -5977,7 +5054,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:193 +#: ../en/ch05-collab.xml:193 msgid "" "Mercurial is particularly well suited to managing a number of simultaneous, " "but not identical, branches. Each <quote>development direction</quote> can " @@ -5988,19 +5065,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:202 +#: ../en/ch05-collab.xml:202 msgid "" "Here's an example of how this can work in practice. Let's say you have one " "<quote>main branch</quote> on a central server." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:208 +#: ../en/ch05-collab.xml:208 msgid "People clone it, make changes locally, test them, and push them back." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:211 +#: ../en/ch05-collab.xml:211 msgid "" "Once the main branch reaches a release milestone, you can use the <command " "role=\"hg-cmd\">hg tag</command> command to give a permanent name to the " @@ -6008,12 +5085,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:217 +#: ../en/ch05-collab.xml:217 msgid "Let's say some ongoing development occurs on the main branch." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:222 +#: ../en/ch05-collab.xml:222 msgid "" "Using the tag that was recorded at the milestone, people who clone that " "repository at any time in the future can use <command role=\"hg-cmd\">hg " @@ -6023,7 +5100,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:230 +#: ../en/ch05-collab.xml:230 msgid "" "In addition, immediately after the main branch is tagged, someone can then " "clone the main branch on the server to a new <quote>stable</quote> branch, " @@ -6031,7 +5108,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:236 +#: ../en/ch05-collab.xml:236 msgid "" "Someone who needs to make a change to the stable branch can then clone " "<emphasis>that</emphasis> repository, make their changes, commit, and push " @@ -6039,7 +5116,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:242 +#: ../en/ch05-collab.xml:242 msgid "" "Because Mercurial repositories are independent, and Mercurial doesn't move " "changes around automatically, the stable and main branches are " @@ -6049,7 +5126,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:249 +#: ../en/ch05-collab.xml:249 msgid "" "You'll often want all of your bugfixes on the stable branch to show up on the " "main branch, too. Rather than rewrite a bugfix on the main branch, you can " @@ -6058,7 +5135,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:257 +#: ../en/ch05-collab.xml:257 msgid "" "The main branch will still contain changes that are not on the stable branch, " "but it will also contain all of the bugfixes from the stable branch. The " @@ -6066,12 +5143,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch06-collab.xml:264 ../en/ch06-collab.xml:278 +#: ../en/ch05-collab.xml:264 ../en/ch05-collab.xml:278 msgid "Feature branches" msgstr "特性分支" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:266 +#: ../en/ch05-collab.xml:266 msgid "" "For larger projects, an effective way to manage change is to break up a team " "into smaller groups. Each group has a shared branch of its own, cloned from " @@ -6081,14 +5158,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch06-collab.xml:275 +#: ../en/ch05-collab.xml:275 msgid "" "<imageobject><imagedata fileref=\"images/feature-branches.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:283 +#: ../en/ch05-collab.xml:283 msgid "" "When a particular feature is deemed to be in suitable shape, someone on that " "feature team pulls and merges from the master branch into the feature branch, " @@ -6096,12 +5173,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:290 +#: ../en/ch05-collab.xml:290 msgid "The release train" msgstr "发布列车" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:292 +#: ../en/ch05-collab.xml:292 msgid "" "Some projects are organised on a <quote>train</quote> basis: a release is " "scheduled to happen every few months, and whatever features are ready when " @@ -6109,7 +5186,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:297 +#: ../en/ch05-collab.xml:297 msgid "" "This model resembles working with feature branches. The difference is that " "when a feature branch misses a train, someone on the feature team pulls and " @@ -6119,12 +5196,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:306 +#: ../en/ch05-collab.xml:306 msgid "The Linux kernel model" msgstr "Linux 内核模型" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:308 +#: ../en/ch05-collab.xml:308 msgid "" "The development of the Linux kernel has a shallow hierarchical structure, " "surrounded by a cloud of apparent chaos. Because most Linux developers use " @@ -6134,7 +5211,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:316 +#: ../en/ch05-collab.xml:316 msgid "" "At the center of the community sits Linus Torvalds, the creator of Linux. He " "publishes a single source repository that is considered the " @@ -6144,7 +5221,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:323 +#: ../en/ch05-collab.xml:323 msgid "" "Linus has a number of <quote>trusted lieutenants</quote>. As a general rule, " "he pulls whatever changes they publish, in most cases without even reviewing " @@ -6158,7 +5235,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:335 +#: ../en/ch05-collab.xml:335 msgid "" "Individual lieutenants have their own approaches to reviewing, accepting, and " "publishing changes; and for deciding when to feed them to Linus. In " @@ -6171,7 +5248,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:346 +#: ../en/ch05-collab.xml:346 msgid "" "This model has two notable features. The first is that it's <quote>pull " "only</quote>. You have to ask, convince, or beg another developer to take a " @@ -6181,7 +5258,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:353 +#: ../en/ch05-collab.xml:353 msgid "" "The second is that it's based on reputation and acclaim. If you're an " "unknown, Linus will probably ignore changes from you without even " @@ -6195,7 +5272,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:364 +#: ../en/ch05-collab.xml:364 msgid "" "Reputation and acclaim don't necessarily cross subsystem or <quote>people</" "quote> boundaries. If you're a respected but specialised storage hacker, and " @@ -6204,7 +5281,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:371 +#: ../en/ch05-collab.xml:371 msgid "" "To people who come from more orderly project backgrounds, the comparatively " "chaotic Linux kernel development process often seems completely insane. It's " @@ -6214,12 +5291,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:381 +#: ../en/ch05-collab.xml:381 msgid "Pull-only versus shared-push collaboration" msgstr "只读与共享写协作" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:383 +#: ../en/ch05-collab.xml:383 msgid "" "A perpetual source of heat in the open source community is whether a " "development model in which people only ever pull changes from others is " @@ -6228,7 +5305,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:389 +#: ../en/ch05-collab.xml:389 msgid "" "Typically, the backers of the shared-push model use tools that actively " "enforce this approach. If you're using a centralised revision control tool " @@ -6239,7 +5316,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:397 +#: ../en/ch05-collab.xml:397 msgid "" "A good distributed revision control tool, such as Mercurial, will support " "both models. You and your collaborators can then structure how you work " @@ -6248,12 +5325,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:405 +#: ../en/ch05-collab.xml:405 msgid "Where collaboration meets branch management" msgstr "协作与分支管理" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:407 +#: ../en/ch05-collab.xml:407 msgid "" "Once you and your team set up some shared repositories and start propagating " "changes back and forth between local and shared repos, you begin to face a " @@ -6265,24 +5342,24 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:419 +#: ../en/ch05-collab.xml:419 msgid "The technical side of sharing" msgstr "共享的技术因素" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:421 +#: ../en/ch05-collab.xml:421 msgid "" "The remainder of this chapter is devoted to the question of serving data to " "your collaborators." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:426 +#: ../en/ch05-collab.xml:426 msgid "Informal sharing with <command role=\"hg-cmd\">hg serve</command>" msgstr "使用 <command role=\"hg-cmd\">hg serve</command> 进行非正式共享" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:429 +#: ../en/ch05-collab.xml:429 msgid "" "Mercurial's <command role=\"hg-cmd\">hg serve</command> command is " "wonderfully suited to small, tight-knit, and fast-paced group environments. " @@ -6291,7 +5368,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:434 +#: ../en/ch05-collab.xml:434 msgid "" "Run <command role=\"hg-cmd\">hg serve</command> inside a repository, and in " "under a second it will bring up a specialised HTTP server; this will accept " @@ -6304,21 +5381,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:445 +#: ../en/ch05-collab.xml:445 msgid "" "The <command role=\"hg-cmd\">hg serve</command> command is <emphasis>not</" "emphasis> a general-purpose web server. It can do only two things:" msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:449 +#: ../en/ch05-collab.xml:449 msgid "" "Allow people to browse the history of the repository it's serving, from their " "normal web browsers." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:453 +#: ../en/ch05-collab.xml:453 msgid "" "Speak Mercurial's wire protocol, so that people can <command role=\"hg-cmd" "\">hg clone</command> or <command role=\"hg-cmd\">hg pull</command> changes " @@ -6326,7 +5403,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:458 +#: ../en/ch05-collab.xml:458 msgid "" "In particular, <command role=\"hg-cmd\">hg serve</command> won't allow remote " "users to <emphasis>modify</emphasis> your repository. It's intended for read-" @@ -6334,7 +5411,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:462 +#: ../en/ch05-collab.xml:462 msgid "" "If you're getting started with Mercurial, there's nothing to prevent you from " "using <command role=\"hg-cmd\">hg serve</command> to serve up a repository on " @@ -6345,12 +5422,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:472 +#: ../en/ch05-collab.xml:472 msgid "A few things to keep in mind" msgstr "要牢记的几件事" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:474 +#: ../en/ch05-collab.xml:474 msgid "" "Because it provides unauthenticated read access to all clients, you should " "only use <command role=\"hg-cmd\">hg serve</command> in an environment where " @@ -6359,7 +5436,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:480 +#: ../en/ch05-collab.xml:480 msgid "" "The <command role=\"hg-cmd\">hg serve</command> command knows nothing about " "any firewall software you might have installed on your system or network. It " @@ -6370,7 +5447,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:489 +#: ../en/ch05-collab.xml:489 msgid "" "By default, <command role=\"hg-cmd\">hg serve</command> listens for incoming " "connections on port 8000. If another process is already listening on the " @@ -6379,7 +5456,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:495 +#: ../en/ch05-collab.xml:495 msgid "" "Normally, when <command role=\"hg-cmd\">hg serve</command> starts, it prints " "no output, which can be a bit unnerving. If you'd like to confirm that it is " @@ -6389,12 +5466,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:505 +#: ../en/ch05-collab.xml:505 msgid "Using the Secure Shell (ssh) protocol" msgstr "使用 ssh 协议" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:507 +#: ../en/ch05-collab.xml:507 msgid "" "You can pull and push changes securely over a network connection using the " "Secure Shell (<literal>ssh</literal>) protocol. To use this successfully, " @@ -6403,7 +5480,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:512 +#: ../en/ch05-collab.xml:512 msgid "" "If you're not familiar with ssh, it's a network protocol that lets you " "securely communicate with another computer. To use it with Mercurial, you'll " @@ -6412,31 +5489,31 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:518 +#: ../en/ch05-collab.xml:518 msgid "" "(If you <emphasis>are</emphasis> familiar with ssh, you'll probably find some " "of the material that follows to be elementary in nature.)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:523 +#: ../en/ch05-collab.xml:523 msgid "How to read and write ssh URLs" msgstr "如何读写 ssh 路径" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:525 +#: ../en/ch05-collab.xml:525 msgid "An ssh URL tends to look like this:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:528 +#: ../en/ch05-collab.xml:528 msgid "" "The <quote><literal>ssh://</literal></quote> part tells Mercurial to use the " "ssh protocol." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:531 +#: ../en/ch05-collab.xml:531 msgid "" "The <quote><literal>bos@</literal></quote> component indicates what username " "to log into the server as. You can leave this out if the remote username is " @@ -6444,28 +5521,28 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:536 +#: ../en/ch05-collab.xml:536 msgid "" "The <quote><literal>hg.serpentine.com</literal></quote> gives the hostname of " "the server to log into." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:540 +#: ../en/ch05-collab.xml:540 msgid "" "The <quote>:22</quote> identifies the port number to connect to the server " -"on. The default port is 22, so you only need to specify this part if you're " -"<emphasis>not</emphasis> using port 22." +"on. The default port is 22, so you only need to specify a colon and port " +"number if you're <emphasis>not</emphasis> using port 22." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:545 +#: ../en/ch05-collab.xml:545 msgid "" "The remainder of the URL is the local path to the repository on the server." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:549 +#: ../en/ch05-collab.xml:549 msgid "" "There's plenty of scope for confusion with the path component of ssh URLs, as " "there is no standard way for tools to interpret it. Some programs behave " @@ -6475,7 +5552,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:556 +#: ../en/ch05-collab.xml:556 msgid "" "Mercurial treats the path to a repository on the server as relative to the " "remote user's home directory. For example, if user <literal>foo</literal> on " @@ -6486,7 +5563,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:565 +#: ../en/ch05-collab.xml:565 msgid "" "If you want to specify a path relative to another user's home directory, you " "can use a path that starts with a tilde character followed by the user's name " @@ -6494,19 +5571,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:571 +#: ../en/ch05-collab.xml:571 msgid "" "And if you really want to specify an <emphasis>absolute</emphasis> path on " "the server, begin the path component with two slashes, as in this example." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:578 +#: ../en/ch05-collab.xml:578 msgid "Finding an ssh client for your system" msgstr "为你的系统寻找 ssh 客户端" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:580 +#: ../en/ch05-collab.xml:580 msgid "" "Almost every Unix-like system comes with OpenSSH preinstalled. If you're " "using such a system, run <literal>which ssh</literal> to find out if the " @@ -6517,50 +5594,50 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:588 +#: ../en/ch05-collab.xml:588 msgid "" "On Windows, you'll first need to download a suitable ssh client. There are " "two alternatives." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:591 +#: ../en/ch05-collab.xml:591 msgid "" "Simon Tatham's excellent PuTTY package <citation>web:putty</citation> " "provides a complete suite of ssh client commands." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:595 +#: ../en/ch05-collab.xml:595 msgid "" "If you have a high tolerance for pain, you can use the Cygwin port of OpenSSH." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:598 -msgid "" -"In either case, you'll need to edit your \\hgini\\ file to tell Mercurial " -"where to find the actual client command. For example, if you're using PuTTY, " -"you'll need to use the <command>plink</command> command as a command-line ssh " -"client." +#: ../en/ch05-collab.xml:598 +msgid "" +"In either case, you'll need to edit your <filename role=\"special\">hg.ini</" +"filename> file to tell Mercurial where to find the actual client command. " +"For example, if you're using PuTTY, you'll need to use the <command>plink</" +"command> command as a command-line ssh client." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch06-collab.xml:607 +#: ../en/ch05-collab.xml:608 msgid "" "The path to <command>plink</command> shouldn't contain any whitespace " "characters, or Mercurial may not be able to run it correctly (so putting it " -"in <filename class=\"directory\">C:\\\\Program Files</filename> is probably " -"not a good idea)." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:616 +"in <filename class=\"directory\">C:\\Program Files</filename> is probably not " +"a good idea)." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><title> +#: ../en/ch05-collab.xml:617 msgid "Generating a key pair" msgstr "产生密钥对" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:618 +#: ../en/ch05-collab.xml:619 msgid "" "To avoid the need to repetitively type a password every time you need to use " "your ssh client, I recommend generating a key pair. On a Unix-like system, " @@ -6570,7 +5647,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:626 +#: ../en/ch05-collab.xml:627 msgid "" "When you generate a key pair, it's usually <emphasis>highly</emphasis> " "advisable to protect it with a passphrase. (The only time that you might not " @@ -6579,7 +5656,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:632 +#: ../en/ch05-collab.xml:633 msgid "" "Simply generating a key pair isn't enough, however. You'll need to add the " "public key to the set of authorised keys for whatever user you're logging in " @@ -6590,7 +5667,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:641 +#: ../en/ch05-collab.xml:642 msgid "" "On a Unix-like system, your public key will have a <filename>.pub</filename> " "extension. If you're using <command>puttygen</command> on Windows, you can " @@ -6600,12 +5677,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:650 +#: ../en/ch05-collab.xml:651 msgid "Using an authentication agent" msgstr "使用认证代理" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:652 +#: ../en/ch05-collab.xml:653 msgid "" "An authentication agent is a daemon that stores passphrases in memory (so it " "will forget passphrases if you log out and log back in again). An ssh client " @@ -6617,7 +5694,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:661 +#: ../en/ch05-collab.xml:662 msgid "" "The downside of storing passphrases in an agent is that it's possible for a " "well-prepared attacker to recover the plain text of your passphrases, in some " @@ -6627,7 +5704,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:668 +#: ../en/ch05-collab.xml:669 msgid "" "On Unix-like systems, the agent is called <command>ssh-agent</command>, and " "it's often run automatically for you when you log in. You'll need to use the " @@ -6638,12 +5715,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:679 +#: ../en/ch05-collab.xml:680 msgid "Configuring the server side properly" msgstr "正确配置服务器端" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:681 +#: ../en/ch05-collab.xml:682 msgid "" "Because ssh can be fiddly to set up if you're new to it, there's a variety of " "things that can go wrong. Add Mercurial on top, and there's plenty more " @@ -6653,7 +5730,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:689 +#: ../en/ch05-collab.xml:690 msgid "" "Before you try using Mercurial to talk to an ssh server, it's best to make " "sure that you can use the normal <command>ssh</command> or <command>putty</" @@ -6666,7 +5743,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:700 +#: ../en/ch05-collab.xml:701 msgid "" "The first thing to be sure of on the server side is that you can actually log " "in from another machine at all. If you can't use <command>ssh</command> or " @@ -6675,7 +5752,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:707 +#: ../en/ch05-collab.xml:708 msgid "" "If you get a <quote>connection refused</quote> error, either there isn't an " "SSH daemon running on the server at all, or it's inaccessible due to firewall " @@ -6683,7 +5760,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:712 +#: ../en/ch05-collab.xml:713 msgid "" "If you get a <quote>no route to host</quote> error, you either have an " "incorrect address for the server or a seriously locked down firewall that " @@ -6691,7 +5768,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:717 +#: ../en/ch05-collab.xml:718 msgid "" "If you get a <quote>permission denied</quote> error, you may have mistyped " "the username on the server, or you could have mistyped your key's passphrase " @@ -6699,7 +5776,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:722 +#: ../en/ch05-collab.xml:723 msgid "" "In summary, if you're having trouble talking to the server's ssh daemon, " "first make sure that one is running at all. On many systems it will be " @@ -6711,7 +5788,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:732 +#: ../en/ch05-collab.xml:733 msgid "" "If you're using an authentication agent on the client side to store " "passphrases for your keys, you ought to be able to log into the server " @@ -6720,26 +5797,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:738 +#: ../en/ch05-collab.xml:739 msgid "" "You might have forgotten to use <command>ssh-add</command> or " "<command>pageant</command> to store the passphrase." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:742 +#: ../en/ch05-collab.xml:743 msgid "You might have stored the passphrase for the wrong key." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:745 +#: ../en/ch05-collab.xml:746 msgid "" "If you're being prompted for the remote user's password, there are another " "few possible problems to check." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:748 +#: ../en/ch05-collab.xml:749 msgid "" "Either the user's home directory or their <filename role=\"special\" class=" "\"directory\">.ssh</filename> directory might have excessively liberal " @@ -6750,7 +5827,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:757 +#: ../en/ch05-collab.xml:758 msgid "" "The user's <filename role=\"special\">authorized_keys</filename> file may " "have a problem. If anyone other than the user owns or can write to that file, " @@ -6758,7 +5835,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:764 +#: ../en/ch05-collab.xml:765 msgid "" "In the ideal world, you should be able to run the following command " "successfully, and it should print exactly one line of output, the current " @@ -6766,7 +5843,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:769 +#: ../en/ch05-collab.xml:770 msgid "" "If, on your server, you have login scripts that print banners or other junk " "even when running non-interactive commands like this, you should fix them " @@ -6781,7 +5858,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:783 +#: ../en/ch05-collab.xml:784 msgid "" "Once you've verified that plain old ssh is working with your server, the next " "step is to ensure that Mercurial runs on the server. The following command " @@ -6789,7 +5866,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:788 +#: ../en/ch05-collab.xml:791 msgid "" "If you see an error message instead of normal <command role=\"hg-cmd\">hg " "version</command> output, this is usually because you haven't installed " @@ -6799,21 +5876,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:795 +#: ../en/ch05-collab.xml:798 msgid "" "Is Mercurial really installed on the server at all? I know this sounds " "trivial, but it's worth checking!" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:799 +#: ../en/ch05-collab.xml:802 msgid "" "Maybe your shell's search path (usually set via the <envar>PATH</envar> " "environment variable) is simply misconfigured." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:803 +#: ../en/ch05-collab.xml:806 msgid "" "Perhaps your <envar>PATH</envar> environment variable is only being set to " "point to the location of the <command>hg</command> executable if the login " @@ -6822,7 +5899,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:810 +#: ../en/ch05-collab.xml:813 msgid "" "The <envar>PYTHONPATH</envar> environment variable may need to contain the " "path to the Mercurial Python modules. It might not be set at all; it could " @@ -6830,7 +5907,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:817 +#: ../en/ch05-collab.xml:820 msgid "" "If you can run <command role=\"hg-cmd\">hg version</command> over an ssh " "connection, well done! You've got the server and client sorted out. You " @@ -6841,12 +5918,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:827 +#: ../en/ch05-collab.xml:830 msgid "Using compression with ssh" msgstr "通过 ssh 使用压缩" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:829 +#: ../en/ch05-collab.xml:832 msgid "" "Mercurial does not compress data when it uses the ssh protocol, because the " "ssh protocol can transparently compress data. However, the default behaviour " @@ -6854,7 +5931,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:834 +#: ../en/ch05-collab.xml:837 msgid "" "Over any network other than a fast LAN (even a wireless network), using " "compression is likely to significantly speed up Mercurial's network " @@ -6864,16 +5941,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:841 +#: ../en/ch05-collab.xml:844 msgid "" "Both <command>ssh</command> and <command>plink</command> accept a <option " "role=\"cmd-opt-ssh\">-C</option> option which turns on compression. You can " -"easily edit your <filename role=\"special\"> /.hgrc</filename>\\ to enable " +"easily edit your <filename role=\"special\">~/.hgrc</filename> to enable " "compression for all of Mercurial's uses of the ssh protocol." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:848 +#: ../en/ch05-collab.xml:852 msgid "" "If you use <command>ssh</command>, you can configure it to always use " "compression when talking to your server. To do this, edit your <filename " @@ -6882,7 +5959,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:855 +#: ../en/ch05-collab.xml:860 msgid "" "This defines an alias, <literal>hg</literal>. When you use it on the " "<command>ssh</command> command line or in a Mercurial <literal>ssh</literal>-" @@ -6892,19 +5969,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch06-collab.xml:866 +#: ../en/ch05-collab.xml:871 msgid "Serving over HTTP using CGI" msgstr "使用 CGI 通过 HTTP 提供服务" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:868 +#: ../en/ch05-collab.xml:873 msgid "" "Depending on how ambitious you are, configuring Mercurial's CGI interface can " "take anything from a few moments to several hours." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch06-collab.xml:872 +#: ../en/ch05-collab.xml:877 msgid "" "We'll begin with the simplest of examples, and work our way towards a more " "complex configuration. Even for the most basic case, you're almost certainly " @@ -6912,7 +5989,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><note><para> -#: ../en/ch06-collab.xml:878 +#: ../en/ch05-collab.xml:883 msgid "" "Configuring a web server is a complex, fiddly, and highly system-dependent " "activity. I can't possibly give you instructions that will cover anything " @@ -6922,33 +5999,33 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:888 +#: ../en/ch05-collab.xml:893 msgid "Web server configuration checklist" msgstr "Web 服务器配置检查表" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:890 +#: ../en/ch05-collab.xml:895 msgid "" "Before you continue, do take a few moments to check a few aspects of your " "system's setup." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:894 +#: ../en/ch05-collab.xml:899 msgid "" "Do you have a web server installed at all? Mac OS X ships with Apache, but " "many other systems may not have a web server installed." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:898 +#: ../en/ch05-collab.xml:903 msgid "" "If you have a web server installed, is it actually running? On most systems, " "even if one is present, it will be disabled by default." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch06-collab.xml:902 +#: ../en/ch05-collab.xml:907 msgid "" "Is your server configured to allow you to run CGI programs in the directory " "where you plan to do so? Most servers default to explicitly disabling the " @@ -6956,7 +6033,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:908 +#: ../en/ch05-collab.xml:913 msgid "" "If you don't have a web server installed, and don't have substantial " "experience configuring Apache, you should consider using the " @@ -6969,22 +6046,22 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:921 +#: ../en/ch05-collab.xml:926 msgid "Basic CGI configuration" msgstr "基本 CGI 配置" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:923 +#: ../en/ch05-collab.xml:928 msgid "" "On Unix-like systems, it's common for users to have a subdirectory named " "something like <filename class=\"directory\">public_html</filename> in their " "home directory, from which they can serve up web pages. A file named " "<filename>foo</filename> in this directory will be accessible at a URL of the " -"form <literal>http://www.example.com/\\ {</literal>username/foo}." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:932 +"form <literal>http://www.example.com/username/foo</literal>." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><para> +#: ../en/ch05-collab.xml:936 msgid "" "To get started, find the <filename role=\"special\">hgweb.cgi</filename> " "script that should be present in your Mercurial installation. If you can't " @@ -6994,14 +6071,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:939 ../en/ch06-collab.xml:1112 +#: ../en/ch05-collab.xml:943 ../en/ch05-collab.xml:1112 msgid "" "You'll need to copy this script into your <filename class=\"directory" "\">public_html</filename> directory, and ensure that it's executable." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:944 +#: ../en/ch05-collab.xml:948 msgid "" "The <literal>755</literal> argument to <command>chmod</command> is a little " "more general than just making the script executable: it ensures that the " @@ -7014,12 +6091,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:958 +#: ../en/ch05-collab.xml:962 msgid "What could <emphasis>possibly</emphasis> go wrong?" msgstr "什么<emphasis>可能</emphasis>会出错?" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:961 +#: ../en/ch05-collab.xml:965 msgid "" "Once you've copied the CGI script into place, go into a web browser, and try " "to open the URL <ulink url=\"http://myhostname/ myuser/hgweb.cgi\">http://" @@ -7033,7 +6110,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:975 +#: ../en/ch05-collab.xml:979 msgid "" "Your web server may have per-user directories disabled. If you're using " "Apache, search your config file for a <literal>UserDir</literal> directive. " @@ -7046,7 +6123,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:986 +#: ../en/ch05-collab.xml:990 msgid "" "Your file access permissions may be too restrictive. The web server must be " "able to traverse your home directory and directories under your <filename " @@ -7056,7 +6133,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:996 +#: ../en/ch05-collab.xml:1000 msgid "" "The other possibility with permissions is that you might get a completely " "empty window when you try to load the script. In this case, it's likely that " @@ -7066,15 +6143,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1003 +#: ../en/ch05-collab.xml:1007 msgid "" "Your web server may be configured to disallow execution of CGI programs in " "your per-user web directory. Here's Apache's default per-user configuration " "from my Fedora system." msgstr "" -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1014 +#. type: CDATA +#: ../en/ch05-collab.xml:1012 +#, no-wrap +msgid "&ch06-apache-config.lst;]]" +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><sect3><para> +#: ../en/ch05-collab.xml:1014 msgid "" "If you find a similar-looking <literal>Directory</literal> group in your " "Apache configuration, the directive to look at inside it is <literal>Options</" @@ -7083,7 +6166,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1021 +#: ../en/ch05-collab.xml:1021 msgid "" "If you find that Apache serves you the text of the CGI script instead of " "executing it, you may need to either uncomment (if already present) or add a " @@ -7091,7 +6174,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1027 +#: ../en/ch05-collab.xml:1027 msgid "" "The next possibility is that you might be served with a colourful Python " "backtrace claiming that it can't import a <literal>mercurial</literal>-" @@ -7106,7 +6189,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1041 +#: ../en/ch05-collab.xml:1041 msgid "" "Finally, you are <emphasis>certain</emphasis> to by served with another " "colourful Python backtrace: this one will complain that it can't find " @@ -7117,19 +6200,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1051 +#: ../en/ch05-collab.xml:1051 msgid "" "At this point, when you try to reload the page, you should be presented with " "a nice HTML view of your repository's history. Whew!" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:1057 +#: ../en/ch05-collab.xml:1057 msgid "Configuring lighttpd" msgstr "配置 lighttpd" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1059 +#: ../en/ch05-collab.xml:1059 msgid "" "To be exhaustive in my experiments, I tried configuring the increasingly " "popular <literal>lighttpd</literal> web server to serve the same repository " @@ -7140,7 +6223,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1069 +#: ../en/ch05-collab.xml:1069 msgid "" "Once I had Apache running, getting <literal>lighttpd</literal> to serve the " "repository was a snap (in other words, even if you're trying to use " @@ -7152,7 +6235,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1081 +#: ../en/ch05-collab.xml:1081 msgid "" "With this done, <literal>lighttpd</literal> ran immediately for me. If I had " "configured <literal>lighttpd</literal> before Apache, I'd almost certainly " @@ -7163,12 +6246,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:1094 +#: ../en/ch05-collab.xml:1094 msgid "Sharing multiple repositories with one CGI script" msgstr "使用一个 CGI 脚本共享多个版本库" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1096 +#: ../en/ch05-collab.xml:1096 msgid "" "The <filename role=\"special\">hgweb.cgi</filename> script only lets you " "publish a single repository, which is an annoying restriction. If you want " @@ -7178,7 +6261,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1104 +#: ../en/ch05-collab.xml:1104 msgid "" "The procedure to configure <filename role=\"special\">hgwebdir.cgi</filename> " "is only a little more involved than for <filename role=\"special\">hgweb.cgi</" @@ -7189,7 +6272,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1117 +#: ../en/ch05-collab.xml:1117 msgid "" "With basic configuration out of the way, try to visit <ulink url=\"http://" "myhostname/ myuser/hgwebdir.cgi\">http://myhostname/ myuser/hgwebdir.cgi</" @@ -7199,7 +6282,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1126 +#: ../en/ch05-collab.xml:1126 msgid "" "The <filename role=\"special\">hgwebdir.cgi</filename> script relies on an " "external configuration file. By default, it searches for a file named " @@ -7211,7 +6294,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1136 +#: ../en/ch05-collab.xml:1136 msgid "" "The easiest way to configure <filename role=\"special\">hgwebdir.cgi</" "filename> is with a section named <literal>collections</literal>. This will " @@ -7220,7 +6303,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1144 +#: ../en/ch05-collab.xml:1144 msgid "" "Mercurial interprets this by looking at the directory name on the " "<emphasis>right</emphasis> hand side of the <quote><literal>=</literal></" @@ -7232,7 +6315,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1153 +#: ../en/ch05-collab.xml:1153 msgid "" "Given the example above, if we have a repository whose local path is " "<filename class=\"directory\">/my/root/this/repo</filename>, the CGI script " @@ -7246,7 +6329,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1167 +#: ../en/ch05-collab.xml:1167 msgid "" "If we replace <filename class=\"directory\">/my/root</filename> on the left " "hand side of this example with <filename class=\"directory\">/my</filename>, " @@ -7257,7 +6340,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1177 +#: ../en/ch05-collab.xml:1177 msgid "" "The <filename role=\"special\">hgwebdir.cgi</filename> script will " "recursively search each directory listed in the <literal>collections</" @@ -7266,7 +6349,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1183 +#: ../en/ch05-collab.xml:1183 msgid "" "The <literal>collections</literal> mechanism makes it easy to publish many " "repositories in a <quote>fire and forget</quote> manner. You only need to " @@ -7277,12 +6360,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:1193 +#: ../en/ch05-collab.xml:1193 msgid "Explicitly specifying which repositories to publish" msgstr "明确指出要发布的版本库" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1196 +#: ../en/ch05-collab.xml:1196 msgid "" "In addition to the <literal>collections</literal> mechanism, the <filename " "role=\"special\">hgwebdir.cgi</filename> script allows you to publish a " @@ -7291,7 +6374,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1204 +#: ../en/ch05-collab.xml:1205 msgid "" "In this case, the virtual path (the component that will appear in a URL) is " "on the left hand side of each definition, while the path to the repository is " @@ -7301,7 +6384,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1211 +#: ../en/ch05-collab.xml:1212 msgid "" "If you wish, you can use both the <literal>collections</literal> and " "<literal>paths</literal> mechanisms simultaneously in a single configuration " @@ -7309,7 +6392,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> -#: ../en/ch06-collab.xml:1217 +#: ../en/ch05-collab.xml:1218 msgid "" "If multiple repositories have the same virtual path, <filename role=\"special" "\">hgwebdir.cgi</filename> will not report an error. Instead, it will behave " @@ -7317,12 +6400,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:1226 +#: ../en/ch05-collab.xml:1227 msgid "Downloading source archives" msgstr "下载源代码档案包" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1228 +#: ../en/ch05-collab.xml:1229 msgid "" "Mercurial's web interface lets users download an archive of any revision. " "This archive will contain a snapshot of the working directory as of that " @@ -7330,21 +6413,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1233 +#: ../en/ch05-collab.xml:1234 msgid "" "By default, this feature is not enabled. To enable it, you'll need to add an " "<envar role=\"rc-item-web\">allow_archive</envar> item to the <literal role=" -"\"rc-web\">web</literal> section of your <filename role=\"special\"> /.hgrc</" +"\"rc-web\">web</literal> section of your <filename role=\"special\">~/.hgrc</" "filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch06-collab.xml:1241 +#: ../en/ch05-collab.xml:1242 msgid "Web configuration options" msgstr "Web 配置选项" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1243 +#: ../en/ch05-collab.xml:1244 msgid "" "Mercurial's web interfaces (the <command role=\"hg-cmd\">hg serve</command> " "command, and the <filename role=\"special\">hgweb.cgi</filename> and " @@ -7354,7 +6437,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1251 +#: ../en/ch05-collab.xml:1252 msgid "" "<envar role=\"rc-item-web\">allow_archive</envar>: Determines which (if any) " "archive download mechanisms Mercurial supports. If you enable this feature, " @@ -7364,7 +6447,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1260 +#: ../en/ch05-collab.xml:1261 msgid "" "<literal>bz2</literal>: A <command>tar</command> archive, compressed using " "<literal>bzip2</literal> compression. This has the best compression ratio, " @@ -7372,14 +6455,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1266 +#: ../en/ch05-collab.xml:1267 msgid "" "<literal>gz</literal>: A <command>tar</command> archive, compressed using " "<literal>gzip</literal> compression." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1270 +#: ../en/ch05-collab.xml:1271 msgid "" "<literal>zip</literal>: A <command>zip</command> archive, compressed using " "LZW compression. This format has the worst compression ratio, but is widely " @@ -7387,7 +6470,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1276 +#: ../en/ch05-collab.xml:1277 msgid "" "If you provide an empty list, or don't have an <envar role=\"rc-item-web" "\">allow_archive</envar> entry at all, this feature will be disabled. Here " @@ -7395,7 +6478,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1283 +#: ../en/ch05-collab.xml:1284 msgid "" "<envar role=\"rc-item-web\">allowpull</envar>: Boolean. Determines whether " "the web interface allows remote users to <command role=\"hg-cmd\">hg pull</" @@ -7405,33 +6488,33 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1292 +#: ../en/ch05-collab.xml:1293 msgid "" "<envar role=\"rc-item-web\">contact</envar>: String. A free-form (but " "preferably brief) string identifying the person or group in charge of the " "repository. This often contains the name and email address of a person or " "mailing list. It often makes sense to place this entry in a repository's own " "<filename role=\"special\">.hg/hgrc</filename> file, but it can make sense to " -"use in a global <filename role=\"special\"> /.hgrc</filename>\\ if every " +"use in a global <filename role=\"special\">~/.hgrc</filename> if every " "repository has a single maintainer." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1303 +#: ../en/ch05-collab.xml:1304 msgid "" "<envar role=\"rc-item-web\">maxchanges</envar>: Integer. The default maximum " "number of changesets to display in a single page of output." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1307 +#: ../en/ch05-collab.xml:1308 msgid "" "<envar role=\"rc-item-web\">maxfiles</envar>: Integer. The default maximum " "number of modified files to display in a single page of output." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1311 +#: ../en/ch05-collab.xml:1312 msgid "" "<envar role=\"rc-item-web\">stripes</envar>: Integer. If the web interface " "displays alternating <quote>stripes</quote> to make it easier to visually " @@ -7440,7 +6523,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1317 +#: ../en/ch05-collab.xml:1318 msgid "" "<envar role=\"rc-item-web\">style</envar>: Controls the template Mercurial " "uses to display the web interface. Mercurial ships with two web templates, " @@ -7451,7 +6534,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1328 +#: ../en/ch05-collab.xml:1330 msgid "" "<envar role=\"rc-item-web\">templates</envar>: Path. The directory in which " "to search for template files. By default, Mercurial searches in the " @@ -7459,32 +6542,32 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch06-collab.xml:1333 +#: ../en/ch05-collab.xml:1335 msgid "" "If you are using <filename role=\"special\">hgwebdir.cgi</filename>, you can " "place a few configuration items in a <literal role=\"rc-web\">web</literal> " "section of the <filename role=\"special\">hgweb.config</filename> file " -"instead of a <filename role=\"special\"> /.hgrc</filename>\\ file, for " +"instead of a <filename role=\"special\">~/.hgrc</filename> file, for " "convenience. These items are <envar role=\"rc-item-web\">motd</envar> and " "<envar role=\"rc-item-web\">style</envar>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:1344 +#: ../en/ch05-collab.xml:1346 msgid "Options specific to an individual repository" msgstr "针对单个版本库的选项" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1346 +#: ../en/ch05-collab.xml:1348 msgid "" "A few <literal role=\"rc-web\">web</literal> configuration items ought to be " "placed in a repository's local <filename role=\"special\">.hg/hgrc</" -"filename>, rather than a user's or global <filename role=\"special\"> /.hgrc</" +"filename>, rather than a user's or global <filename role=\"special\">~/.hgrc</" "filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1352 +#: ../en/ch05-collab.xml:1353 msgid "" "<envar role=\"rc-item-web\">description</envar>: String. A free-form (but " "preferably brief) string that describes the contents or purpose of the " @@ -7492,7 +6575,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1357 +#: ../en/ch05-collab.xml:1358 msgid "" "<envar role=\"rc-item-web\">name</envar>: String. The name to use for the " "repository in the web interface. This overrides the default name, which is " @@ -7500,21 +6583,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:1365 +#: ../en/ch05-collab.xml:1366 msgid "" "Options specific to the <command role=\"hg-cmd\">hg serve</command> command" msgstr "命令 <command role=\"hg-cmd\">hg serve</command> 的选项" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1368 +#: ../en/ch05-collab.xml:1369 msgid "" "Some of the items in the <literal role=\"rc-web\">web</literal> section of a " -"<filename role=\"special\"> /.hgrc</filename>\\ file are only for use with " -"the <command role=\"hg-cmd\">hg serve</command> command." +"<filename role=\"special\">~/.hgrc</filename> file are only for use with the " +"<command role=\"hg-cmd\">hg serve</command> command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1374 +#: ../en/ch05-collab.xml:1375 msgid "" "<envar role=\"rc-item-web\">accesslog</envar>: Path. The name of a file into " "which to write an access log. By default, the <command role=\"hg-cmd\">hg " @@ -7524,7 +6607,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1382 +#: ../en/ch05-collab.xml:1383 msgid "" "<envar role=\"rc-item-web\">address</envar>: String. The local address on " "which the server should listen for incoming connections. By default, the " @@ -7532,7 +6615,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1387 +#: ../en/ch05-collab.xml:1388 msgid "" "<envar role=\"rc-item-web\">errorlog</envar>: Path. The name of a file into " "which to write an error log. By default, the <command role=\"hg-cmd\">hg " @@ -7541,30 +6624,31 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1393 +#: ../en/ch05-collab.xml:1394 msgid "" "<envar role=\"rc-item-web\">ipv6</envar>: Boolean. Whether to use the IPv6 " "protocol. By default, IPv6 is not used." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch06-collab.xml:1397 +#: ../en/ch05-collab.xml:1398 msgid "" "<envar role=\"rc-item-web\">port</envar>: Integer. The TCP port number on " "which the server should listen. The default port number used is 8000." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch06-collab.xml:1404 -msgid "" -"Choosing the right <filename role=\"special\"> /.hgrc</filename>\\ file to " -"add <literal role=\"rc-web\">web</literal> items to" +#: ../en/ch05-collab.xml:1405 +#, fuzzy +msgid "" +"Choosing the right <filename role=\"special\">~/.hgrc</filename> file to add " +"<literal role=\"rc-web\">web</literal> items to" msgstr "" "选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal " "role=\"rc-web\">web</literal> 条目" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1408 +#: ../en/ch05-collab.xml:1409 msgid "" "It is important to remember that a web server like Apache or " "<literal>lighttpd</literal> will run under a user ID that is different to " @@ -7573,38 +6657,37 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch06-collab.xml:1415 +#: ../en/ch05-collab.xml:1416 msgid "" "If you add <literal role=\"rc-web\">web</literal> items to your own personal " -"<filename role=\"special\"> /.hgrc</filename>\\ file, CGI scripts won't read " -"that <filename role=\"special\"> /.hgrc</filename>\\ file. Those settings " -"will thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</" +"<filename role=\"special\">~/.hgrc</filename> file, CGI scripts won't read " +"that <filename role=\"special\">~/.hgrc</filename> file. Those settings will " +"thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</" "command> command when you run it. To cause CGI scripts to see your settings, " -"either create a <filename role=\"special\"> /.hgrc</filename>\\ file in the " +"either create a <filename role=\"special\">~/.hgrc</filename> file in the " "home directory of the user ID that runs your web server, or add those " -"settings to a system-wide <filename role=\"special\"> /.hgrc</filename>\\ " -"file." +"settings to a system-wide <filename role=\"special\">~/.hgrc</filename> file." msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch07-filenames.xml:5 +#: ../en/ch06-filenames.xml:5 msgid "File names and pattern matching" msgstr "文件名称与模式匹配" #. type: Content of: <book><chapter><para> -#: ../en/ch07-filenames.xml:7 +#: ../en/ch06-filenames.xml:7 msgid "" "Mercurial provides mechanisms that let you work with file names in a " "consistent and expressive way." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:11 +#: ../en/ch06-filenames.xml:11 msgid "Simple file naming" msgstr "简单文件名称" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:13 +#: ../en/ch06-filenames.xml:13 msgid "" "Mercurial uses a unified piece of machinery <quote>under the hood</quote> to " "handle file names. Every command behaves uniformly with respect to file " @@ -7612,7 +6695,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:18 +#: ../en/ch06-filenames.xml:18 msgid "" "If you explicitly name real files on the command line, Mercurial works with " "exactly those files, as you would expect. &interaction.filenames.files;" @@ -7620,7 +6703,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:22 +#: ../en/ch06-filenames.xml:22 msgid "" "When you provide a directory name, Mercurial will interpret this as " "<quote>operate on every file in this directory and its subdirectories</" @@ -7630,12 +6713,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:33 +#: ../en/ch06-filenames.xml:33 msgid "Running commands without any file names" msgstr "不提供文件名称的执行命令" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:35 +#: ../en/ch06-filenames.xml:35 msgid "" "Mercurial's commands that work with file names have useful default behaviours " "when you invoke them without providing any file names or patterns. What kind " @@ -7645,14 +6728,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:42 +#: ../en/ch06-filenames.xml:42 msgid "" "Most commands will operate on the entire working directory. This is what the " "<command role=\"hg-cmd\">hg add</command> command does, for example." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:46 +#: ../en/ch06-filenames.xml:46 msgid "" "If the command has effects that are difficult or impossible to reverse, it " "will force you to explicitly provide at least one name or pattern (see " @@ -7662,7 +6745,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:54 +#: ../en/ch06-filenames.xml:54 msgid "" "It's easy to work around these default behaviours if they don't suit you. If " "a command normally operates on the whole working directory, you can invoke it " @@ -7672,7 +6755,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:62 +#: ../en/ch06-filenames.xml:62 msgid "" "Along the same lines, some commands normally print file names relative to the " "root of the repository, even if you're invoking them from a subdirectory. " @@ -7685,12 +6768,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:76 +#: ../en/ch06-filenames.xml:76 msgid "Telling you what's going on" msgstr "告诉你正在做什么" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:78 +#: ../en/ch06-filenames.xml:78 msgid "" "The <command role=\"hg-cmd\">hg add</command> example in the preceding " "section illustrates something else that's helpful about Mercurial commands. " @@ -7700,7 +6783,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:85 +#: ../en/ch06-filenames.xml:85 msgid "" "The principle here is of <emphasis>least surprise</emphasis>. If you've " "exactly named a file on the command line, there's no point in repeating it " @@ -7710,7 +6793,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:92 +#: ../en/ch06-filenames.xml:92 msgid "" "For commands that behave this way, you can silence them using the <option " "role=\"hg-opt-global\">-q</option> option. You can also get them to print " @@ -7719,12 +6802,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:100 +#: ../en/ch06-filenames.xml:100 msgid "Using patterns to identify files" msgstr "使用模式标识文件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:102 +#: ../en/ch06-filenames.xml:102 msgid "" "In addition to working with file and directory names, Mercurial lets you use " "<emphasis>patterns</emphasis> to identify files. Mercurial's pattern " @@ -7732,7 +6815,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:106 +#: ../en/ch06-filenames.xml:106 msgid "" "On Unix-like systems (Linux, MacOS, etc.), the job of matching file names to " "patterns normally falls to the shell. On these systems, you must explicitly " @@ -7742,21 +6825,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:113 +#: ../en/ch06-filenames.xml:113 msgid "" "To provide a pattern in place of a regular name on the command line, the " "mechanism is simple:" msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:116 +#: ../en/ch06-filenames.xml:116 msgid "" "That is, a pattern is identified by a short text string that says what kind " "of pattern this is, followed by a colon, followed by the actual pattern." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:120 +#: ../en/ch06-filenames.xml:120 msgid "" "Mercurial supports two kinds of pattern syntax. The most frequently used is " "called <literal>glob</literal>; this is the same kind of pattern matching " @@ -7765,7 +6848,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:125 +#: ../en/ch06-filenames.xml:125 msgid "" "When Mercurial does automatic pattern matching on Windows, it uses " "<literal>glob</literal> syntax. You can thus omit the <quote><literal>glob:</" @@ -7773,14 +6856,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:130 +#: ../en/ch06-filenames.xml:130 msgid "" "The <literal>re</literal> syntax is more powerful; it lets you specify " "patterns using regular expressions, also known as regexps." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:134 +#: ../en/ch06-filenames.xml:134 msgid "" "By the way, in the examples that follow, notice that I'm careful to wrap all " "of my patterns in quote characters, so that they won't get expanded by the " @@ -7788,12 +6871,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch07-filenames.xml:140 +#: ../en/ch06-filenames.xml:140 msgid "Shell-style <literal>glob</literal> patterns" msgstr "外壳风格的 <literal>glob</literal> 模式" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:142 +#: ../en/ch06-filenames.xml:142 msgid "" "This is an overview of the kinds of patterns you can use when you're matching " "on glob patterns." @@ -7801,7 +6884,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:145 +#: ../en/ch06-filenames.xml:145 msgid "" "The <quote><literal>*</literal></quote> character matches any string, within " "a single directory." @@ -7809,7 +6892,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:150 +#: ../en/ch06-filenames.xml:150 msgid "" "The <quote><literal>**</literal></quote> pattern matches any string, and " "crosses directory boundaries. It's not a standard Unix glob token, but it's " @@ -7818,13 +6901,13 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:157 +#: ../en/ch06-filenames.xml:157 msgid "" "The <quote><literal>?</literal></quote> pattern matches any single character." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:162 +#: ../en/ch06-filenames.xml:162 msgid "" "The <quote><literal>[</literal></quote> character begins a " "<emphasis>character class</emphasis>. This matches any single character " @@ -7835,7 +6918,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:172 +#: ../en/ch06-filenames.xml:172 msgid "" "If the first character after the <quote><literal>[</literal></quote> in a " "character class is a <quote><literal>!</literal></quote>, it " @@ -7844,7 +6927,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:178 +#: ../en/ch06-filenames.xml:178 msgid "" "A <quote><literal>{</literal></quote> begins a group of subpatterns, where " "the whole group matches if any subpattern in the group matches. The " @@ -7853,13 +6936,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch07-filenames.xml:187 +#: ../en/ch06-filenames.xml:187 msgid "Watch out!" msgstr "千万小心!" # #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch07-filenames.xml:189 +#: ../en/ch06-filenames.xml:189 msgid "" "Don't forget that if you want to match a pattern in any directory, you should " "not be using the <quote><literal>*</literal></quote> match-any token, as this " @@ -7869,12 +6952,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch07-filenames.xml:201 +#: ../en/ch06-filenames.xml:201 msgid "Regular expression matching with <literal>re</literal> patterns" msgstr "使用 <literal>re</literal> 模式的正则表达式匹配" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:204 +#: ../en/ch06-filenames.xml:204 msgid "" "Mercurial accepts the same regular expression syntax as the Python " "programming language (it uses Python's regexp engine internally). This is " @@ -7883,7 +6966,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:210 +#: ../en/ch06-filenames.xml:210 msgid "" "I won't discuss Mercurial's regexp dialect in any detail here, as regexps are " "not often used. Perl-style regexps are in any case already exhaustively " @@ -7893,7 +6976,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:217 +#: ../en/ch06-filenames.xml:217 msgid "" "A regexp is matched against an entire file name, relative to the root of the " "repository. In other words, even if you're already in subbdirectory " @@ -7903,7 +6986,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:224 +#: ../en/ch06-filenames.xml:224 msgid "" "One thing to note, if you're familiar with Perl-style regexps, is that " "Mercurial's are <emphasis>rooted</emphasis>. That is, a regexp starts " @@ -7913,12 +6996,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:234 +#: ../en/ch06-filenames.xml:234 msgid "Filtering files" msgstr "过滤文件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:236 +#: ../en/ch06-filenames.xml:236 msgid "" "Not only does Mercurial give you a variety of ways to specify files; it lets " "you further winnow those files using <emphasis>filters</emphasis>. Commands " @@ -7926,7 +7009,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:241 +#: ../en/ch06-filenames.xml:241 msgid "" "<option role=\"hg-opt-global\">-I</option>, or <option role=\"hg-opt-global" "\">--include</option>, lets you specify a pattern that file names must match " @@ -7934,7 +7017,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:246 +#: ../en/ch06-filenames.xml:246 msgid "" "<option role=\"hg-opt-global\">-X</option>, or <option role=\"hg-opt-global" "\">--exclude</option>, gives you a way to <emphasis>avoid</emphasis> " @@ -7942,7 +7025,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:251 +#: ../en/ch06-filenames.xml:251 msgid "" "You can provide multiple <option role=\"hg-opt-global\">-I</option> and " "<option role=\"hg-opt-global\">-X</option> options on the command line, and " @@ -7951,36 +7034,36 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:258 +#: ../en/ch06-filenames.xml:258 msgid "" "You can read a <option role=\"hg-opt-global\">-I</option> filter as " "<quote>process only the files that match this filter</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:264 +#: ../en/ch06-filenames.xml:264 msgid "" "The <option role=\"hg-opt-global\">-X</option> filter is best read as " "<quote>process only the files that don't match this pattern</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:272 +#: ../en/ch06-filenames.xml:272 msgid "Ignoring unwanted files and directories" msgstr "忽略不需要的文件和目录" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:274 +#: ../en/ch06-filenames.xml:274 msgid "XXX." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch07-filenames.xml:278 +#: ../en/ch06-filenames.xml:278 msgid "Case sensitivity" msgstr "大小写敏感性" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:280 +#: ../en/ch06-filenames.xml:280 msgid "" "If you're working in a mixed development environment that contains both Linux " "(or other Unix) systems and Macs or Windows systems, you should keep in the " @@ -7991,7 +7074,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:289 +#: ../en/ch06-filenames.xml:289 msgid "" "Operating systems and filesystems differ in the way they handle the " "<emphasis>case</emphasis> of characters in file and directory names. There " @@ -7999,7 +7082,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:294 +#: ../en/ch06-filenames.xml:294 msgid "" "Completely case insensitive. Uppercase and lowercase versions of a letter " "are treated as identical, both when creating a file and during subsequent " @@ -8007,7 +7090,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:299 +#: ../en/ch06-filenames.xml:299 msgid "" "Case preserving, but insensitive. When a file or directory is created, the " "case of its name is stored, and can be retrieved and displayed by the " @@ -8019,7 +7102,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch07-filenames.xml:310 +#: ../en/ch06-filenames.xml:310 msgid "" "Case sensitive. The case of a name is significant at all times. The names " "<filename>foo</filename> and {FoO} identify different files. This is the way " @@ -8027,7 +7110,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch07-filenames.xml:316 +#: ../en/ch06-filenames.xml:316 msgid "" "On Unix-like systems, it is possible to have any or all of the above ways of " "handling case in action at once. For example, if you use a USB thumb drive " @@ -8036,12 +7119,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch07-filenames.xml:323 +#: ../en/ch06-filenames.xml:323 msgid "Safe, portable repository storage" msgstr "安全,可移植的版本库存储" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:325 +#: ../en/ch06-filenames.xml:325 msgid "" "Mercurial's repository storage mechanism is <emphasis>case safe</emphasis>. " "It translates file names so that they can be safely stored on both case " @@ -8052,12 +7135,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch07-filenames.xml:336 +#: ../en/ch06-filenames.xml:336 msgid "Detecting case conflicts" msgstr "检测大小写冲突" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:338 +#: ../en/ch06-filenames.xml:338 msgid "" "When operating in the working directory, Mercurial honours the naming policy " "of the filesystem where the working directory is located. If the filesystem " @@ -8066,7 +7149,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:344 +#: ../en/ch06-filenames.xml:344 msgid "" "An important aspect of this approach is that it is possible to commit a " "changeset on a case sensitive (typically Linux or Unix) filesystem that will " @@ -8079,7 +7162,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:355 +#: ../en/ch06-filenames.xml:355 msgid "" "If a Windows or Mac user pulls this change, they will not initially have a " "problem, because Mercurial's repository storage mechanism is case safe. " @@ -8091,12 +7174,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch07-filenames.xml:367 +#: ../en/ch06-filenames.xml:367 msgid "Fixing a case conflict" msgstr "修正大小写冲突" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:369 +#: ../en/ch06-filenames.xml:369 msgid "" "If you are using Windows or a Mac in a mixed environment where some of your " "collaborators are using Linux or Unix, and Mercurial reports a case folding " @@ -8106,7 +7189,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:376 +#: ../en/ch06-filenames.xml:376 msgid "" "Just find a nearby Linux or Unix box, clone the problem repository onto it, " "and use Mercurial's <command role=\"hg-cmd\">hg rename</command> command to " @@ -8118,7 +7201,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch07-filenames.xml:386 +#: ../en/ch06-filenames.xml:386 msgid "" "The changeset with case-conflicting names will remain in your project's " "history, and you still won't be able to <command role=\"hg-cmd\">hg update</" @@ -8127,7 +7210,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch07-filenames.xml:393 +#: ../en/ch06-filenames.xml:393 msgid "" "Prior to version 0.9.3, Mercurial did not use a case safe repository storage " "mechanism, and did not detect case folding conflicts. If you are using an " @@ -8136,12 +7219,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch08-branch.xml:5 +#: ../en/ch07-branch.xml:5 msgid "Managing releases and branchy development" msgstr "发布管理与分支开发" #. type: Content of: <book><chapter><para> -#: ../en/ch08-branch.xml:7 +#: ../en/ch07-branch.xml:7 msgid "" "Mercurial provides several mechanisms for you to manage a project that is " "making progress on multiple fronts at once. To understand these mechanisms, " @@ -8149,7 +7232,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch08-branch.xml:12 +#: ../en/ch07-branch.xml:12 msgid "" "Many software projects issue periodic <quote>major</quote> releases that " "contain substantial new features. In parallel, they may issue <quote>minor</" @@ -8158,7 +7241,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch08-branch.xml:18 +#: ../en/ch07-branch.xml:18 msgid "" "In this chapter, we'll start by talking about how to keep records of project " "milestones such as releases. We'll then continue on to talk about the flow " @@ -8167,12 +7250,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:25 +#: ../en/ch07-branch.xml:25 msgid "Giving a persistent name to a revision" msgstr "给版本指定一个永久的名称" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:27 +#: ../en/ch07-branch.xml:27 msgid "" "Once you decide that you'd like to call a particular revision a " "<quote>release</quote>, it's a good idea to record the identity of that " @@ -8183,7 +7266,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:34 +#: ../en/ch07-branch.xml:34 msgid "" "Mercurial lets you give a permanent name to any revision using the <command " "role=\"hg-cmd\">hg tag</command> command. Not surprisingly, these names are " @@ -8191,7 +7274,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:40 +#: ../en/ch07-branch.xml:40 msgid "" "A tag is nothing more than a <quote>symbolic name</quote> for a revision. " "Tags exist purely for your convenience, so that you have a handy permanent " @@ -8202,22 +7285,22 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch08-branch.xml:49 +#: ../en/ch07-branch.xml:49 msgid "Colon (ASCII 58, <quote><literal>:</literal></quote>)" msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch08-branch.xml:52 +#: ../en/ch07-branch.xml:52 msgid "Carriage return (ASCII 13, <quote><literal>\\r</literal></quote>)" msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch08-branch.xml:55 +#: ../en/ch07-branch.xml:55 msgid "Newline (ASCII 10, <quote><literal>\\n</literal></quote>)" msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:59 +#: ../en/ch07-branch.xml:59 msgid "" "You can use the <command role=\"hg-cmd\">hg tags</command> command to display " "the tags present in your repository. In the output, each tagged revision is " @@ -8226,7 +7309,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:67 +#: ../en/ch07-branch.xml:67 msgid "" "Notice that <literal>tip</literal> is listed in the output of <command role=" "\"hg-cmd\">hg tags</command>. The <literal>tip</literal> tag is a special " @@ -8235,7 +7318,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:73 +#: ../en/ch07-branch.xml:73 msgid "" "In the output of the <command role=\"hg-cmd\">hg tags</command> command, tags " "are listed in reverse order, by revision number. This usually means that " @@ -8245,7 +7328,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:80 +#: ../en/ch07-branch.xml:80 msgid "" "When you run <command role=\"hg-cmd\">hg log</command>, if it displays a " "revision that has tags associated with it, it will print those tags." @@ -8253,7 +7336,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:86 +#: ../en/ch07-branch.xml:86 msgid "" "Any time you need to provide a revision ID to a Mercurial command, the " "command will accept a tag name in its place. Internally, Mercurial will " @@ -8261,7 +7344,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:93 +#: ../en/ch07-branch.xml:93 msgid "" "There's no limit on the number of tags you can have in a repository, or on " "the number of tags that a single revision can have. As a practical matter, " @@ -8272,7 +7355,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:101 +#: ../en/ch07-branch.xml:101 msgid "" "For example, if your project has milestones as frequent as every few days, " "it's perfectly reasonable to tag each one of those. But if you have a " @@ -8283,14 +7366,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:109 +#: ../en/ch07-branch.xml:109 msgid "" "If you want to remove a tag that you no longer want, use <command role=\"hg-" "cmd\">hg tag --remove</command>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:114 +#: ../en/ch07-branch.xml:114 msgid "" "You can also modify a tag at any time, so that it identifies a different " "revision, by simply issuing a new <command role=\"hg-cmd\">hg tag</command> " @@ -8300,7 +7383,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:123 +#: ../en/ch07-branch.xml:123 msgid "" "There will still be a permanent record of the previous identity of the tag, " "but Mercurial will no longer use it. There's thus no penalty to tagging the " @@ -8310,7 +7393,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:129 +#: ../en/ch07-branch.xml:129 msgid "" "Mercurial stores tags in a normal revision-controlled file in your " "repository. If you've created any tags, you'll find them in a file named " @@ -8322,12 +7405,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch08-branch.xml:142 +#: ../en/ch07-branch.xml:142 msgid "Handling tag conflicts during a merge" msgstr "在合并期间处理标签冲突" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:144 +#: ../en/ch07-branch.xml:144 msgid "" "You won't often need to care about the <filename role=\"special\">.hgtags</" "filename> file, but it sometimes makes its presence known during a merge. " @@ -8337,7 +7420,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:151 +#: ../en/ch07-branch.xml:151 msgid "" "If you're resolving a conflict in the <filename role=\"special\">.hgtags</" "filename> file during a merge, there's one twist to modifying the <filename " @@ -8348,7 +7431,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:161 +#: ../en/ch07-branch.xml:161 msgid "" "An unfortunate consequence of this design is that you can't actually verify " "that your merged <filename role=\"special\">.hgtags</filename> file is " @@ -8362,12 +7445,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch08-branch.xml:176 +#: ../en/ch07-branch.xml:176 msgid "Tags and cloning" msgstr "标签与克隆" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:178 +#: ../en/ch07-branch.xml:178 msgid "" "You may have noticed that the <command role=\"hg-cmd\">hg clone</command> " "command has a <option role=\"hg-opt-clone\">-r</option> option that lets you " @@ -8377,7 +7460,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:186 +#: ../en/ch07-branch.xml:186 msgid "" "Recall that a tag is stored as a revision to the <filename role=\"special\">." "hgtags</filename> file, so that when you create a tag, the changeset in which " @@ -8391,12 +7474,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch08-branch.xml:201 +#: ../en/ch07-branch.xml:201 msgid "When permanent tags are too much" msgstr "当永久标签太多的时候" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:203 +#: ../en/ch07-branch.xml:203 msgid "" "Since Mercurial's tags are revision controlled and carried around with a " "project's history, everyone you work with will see the tags you create. But " @@ -8407,7 +7490,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch08-branch.xml:213 +#: ../en/ch07-branch.xml:213 msgid "" "For cases like this, what you might want to use are <emphasis>local</" "emphasis> tags. You can create a local tag with the <option role=\"hg-opt-tag" @@ -8421,12 +7504,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:228 +#: ../en/ch07-branch.xml:228 msgid "The flow of changes&emdash;big picture vs. little" msgstr "修改流程&emdash;宏观与微观" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:230 +#: ../en/ch07-branch.xml:230 msgid "" "To return to the outline I sketched at the beginning of a chapter, let's " "think about a project that has multiple concurrent pieces of work under " @@ -8434,7 +7517,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:234 +#: ../en/ch07-branch.xml:234 msgid "" "There might be a push for a new <quote>main</quote> release; a new minor " "bugfix release to the last main release; and an unexpected <quote>hot fix</" @@ -8442,7 +7525,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:239 +#: ../en/ch07-branch.xml:239 msgid "" "The usual way people refer to these different concurrent directions of " "development is as <quote>branches</quote>. However, we've already seen " @@ -8452,14 +7535,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch08-branch.xml:246 +#: ../en/ch07-branch.xml:246 msgid "" "<quote>Big picture</quote> branches represent the sweep of a project's " "evolution; people give them names, and talk about them in conversation." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch08-branch.xml:250 +#: ../en/ch07-branch.xml:250 msgid "" "<quote>Little picture</quote> branches are artefacts of the day-to-day " "activity of developing and merging changes. They expose the narrative of how " @@ -8467,12 +7550,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:258 +#: ../en/ch07-branch.xml:258 msgid "Managing big-picture branches in repositories" msgstr "在版本库中管理分支" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:260 +#: ../en/ch07-branch.xml:260 msgid "" "The easiest way to isolate a <quote>big picture</quote> branch in Mercurial " "is in a dedicated repository. If you have an existing shared " @@ -8483,14 +7566,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:270 +#: ../en/ch07-branch.xml:270 msgid "" "You can then clone a new shared <literal>myproject-1.0.1</literal> repository " "as of that tag." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:276 +#: ../en/ch07-branch.xml:276 msgid "" "Afterwards, if someone needs to work on a bug fix that ought to go into an " "upcoming 1.0.1 minor release, they clone the <literal>myproject-1.0.1</" @@ -8498,19 +7581,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:283 +#: ../en/ch07-branch.xml:283 msgid "" "Meanwhile, development for the next major release can continue, isolated and " "unabated, in the <literal>myproject</literal> repository." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:291 +#: ../en/ch07-branch.xml:291 msgid "Don't repeat yourself: merging across branches" msgstr "不要重复劳动:在分支间合并" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:293 +#: ../en/ch07-branch.xml:293 msgid "" "In many cases, if you have a bug to fix on a maintenance branch, the chances " "are good that the bug exists on your project's main branch (and possibly " @@ -8520,26 +7603,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:301 +#: ../en/ch07-branch.xml:301 msgid "" "In the simplest instance, all you need to do is pull changes from your " "maintenance branch into your local clone of the target branch." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:307 +#: ../en/ch07-branch.xml:307 msgid "" "You'll then need to merge the heads of the two branches, and push back to the " "main branch." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:314 +#: ../en/ch07-branch.xml:314 msgid "Naming branches within one repository" msgstr "版本库中的命名分支" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:316 +#: ../en/ch07-branch.xml:316 msgid "" "In most instances, isolating branches in repositories is the right approach. " "Its simplicity makes it easy to understand; and so it's hard to make " @@ -8549,7 +7632,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:323 +#: ../en/ch07-branch.xml:323 msgid "" "If you're more in the <quote>power user</quote> category (<emphasis>and</" "emphasis> your collaborators are too), there is an alternative way of " @@ -8562,7 +7645,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:334 +#: ../en/ch07-branch.xml:334 msgid "" "The key to working this way is that Mercurial lets you assign a persistent " "<emphasis>name</emphasis> to a branch. There always exists a branch named " @@ -8572,7 +7655,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:341 +#: ../en/ch07-branch.xml:341 msgid "" "As an example, when you run the <command role=\"hg-cmd\">hg commit</command> " "command, and it pops up your editor so that you can enter a commit message, " @@ -8582,7 +7665,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:348 +#: ../en/ch07-branch.xml:348 msgid "" "To start working with named branches, use the <command role=\"hg-cmd\">hg " "branches</command> command. This command lists the named branches already " @@ -8590,14 +7673,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:355 +#: ../en/ch07-branch.xml:355 msgid "" "Since you haven't created any named branches yet, the only one that exists is " "<literal>default</literal>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:358 +#: ../en/ch07-branch.xml:358 msgid "" "To find out what the <quote>current</quote> branch is, run the <command role=" "\"hg-cmd\">hg branch</command> command, giving it no arguments. This tells " @@ -8606,7 +7689,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:365 +#: ../en/ch07-branch.xml:365 msgid "" "To create a new branch, run the <command role=\"hg-cmd\">hg branch</command> " "command again. This time, give it one argument: the name of the branch you " @@ -8614,7 +7697,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:371 +#: ../en/ch07-branch.xml:371 msgid "" "After you've created a branch, you might wonder what effect the <command role=" "\"hg-cmd\">hg branch</command> command has had. What do the <command role=" @@ -8623,7 +7706,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:378 +#: ../en/ch07-branch.xml:378 msgid "" "Nothing has changed in the working directory, and there's been no new history " "created. As this suggests, running the <command role=\"hg-cmd\">hg branch</" @@ -8632,7 +7715,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:385 +#: ../en/ch07-branch.xml:385 msgid "" "When you commit a change, Mercurial records the name of the branch on which " "you committed. Once you've switched from the <literal>default</literal> " @@ -8643,7 +7726,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:395 +#: ../en/ch07-branch.xml:395 msgid "" "The <command role=\"hg-cmd\">hg log</command>-like commands will print the " "branch name of every changeset that's not on the <literal>default</literal> " @@ -8652,7 +7735,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:400 +#: ../en/ch07-branch.xml:400 msgid "" "Once you've named a branch and committed a change with that name, every " "subsequent commit that descends from that change will inherit the same branch " @@ -8661,19 +7744,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:408 +#: ../en/ch07-branch.xml:408 msgid "" "In practice, this is something you won't do very often, as branch names tend " "to have fairly long lifetimes. (This isn't a rule, just an observation.)" msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:414 +#: ../en/ch07-branch.xml:414 msgid "Dealing with multiple named branches in a repository" msgstr "在版本库中处理多个命名分支" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:417 +#: ../en/ch07-branch.xml:417 msgid "" "If you have more than one named branch in a repository, Mercurial will " "remember the branch that your working directory on when you start a command " @@ -8686,7 +7769,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:427 +#: ../en/ch07-branch.xml:427 msgid "" "This behaviour is a little subtle, so let's see it in action. First, let's " "remind ourselves what branch we're currently on, and what branches are in our " @@ -8694,14 +7777,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:433 +#: ../en/ch07-branch.xml:433 msgid "" "We're on the <literal>bar</literal> branch, but there also exists an older " "<command role=\"hg-cmd\">hg foo</command> branch." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:437 +#: ../en/ch07-branch.xml:437 msgid "" "We can <command role=\"hg-cmd\">hg update</command> back and forth between " "the tips of the <literal>foo</literal> and <literal>bar</literal> branches " @@ -8712,7 +7795,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:446 +#: ../en/ch07-branch.xml:446 msgid "" "If we go back to the <literal>foo</literal> branch and then run <command role=" "\"hg-cmd\">hg update</command>, it will keep us on <literal>foo</literal>, " @@ -8721,19 +7804,19 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:453 +#: ../en/ch07-branch.xml:453 msgid "" "Committing a new change on the <literal>foo</literal> branch introduces a new " "head." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:460 +#: ../en/ch07-branch.xml:460 msgid "Branch names and merging" msgstr "分支名称与合并" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:462 +#: ../en/ch07-branch.xml:462 msgid "" "As you've probably noticed, merges in Mercurial are not symmetrical. Let's " "say our repository has two heads, 17 and 23. If I <command role=\"hg-cmd" @@ -8745,7 +7828,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:472 +#: ../en/ch07-branch.xml:472 msgid "" "This affects Mercurial's choice of branch name when you merge. After a " "merge, Mercurial will retain the branch name of the first parent when you " @@ -8755,7 +7838,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:479 +#: ../en/ch07-branch.xml:479 msgid "" "It's not unusual for a repository to contain multiple heads, each with the " "same branch name. Let's say I'm working on the <literal>foo</literal> " @@ -8767,7 +7850,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:487 +#: ../en/ch07-branch.xml:487 msgid "" "But if I'm working on the <literal>bar</literal> branch, and I merge work " "from the <literal>foo</literal> branch, the result will remain on the " @@ -8775,7 +7858,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:493 +#: ../en/ch07-branch.xml:493 msgid "" "To give a more concrete example, if I'm working on the <literal>bleeding-" "edge</literal> branch, and I want to bring in the latest fixes from the " @@ -8785,12 +7868,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch08-branch.xml:502 +#: ../en/ch07-branch.xml:502 msgid "Branch naming is generally useful" msgstr "分支名称通常都很有用" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:504 +#: ../en/ch07-branch.xml:504 msgid "" "You shouldn't think of named branches as applicable only to situations where " "you have multiple long-lived branches cohabiting in a single repository. " @@ -8798,7 +7881,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:509 +#: ../en/ch07-branch.xml:509 msgid "" "In the simplest case, giving a name to each branch gives you a permanent " "record of which branch a changeset originated on. This gives you more " @@ -8807,7 +7890,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch08-branch.xml:514 +#: ../en/ch07-branch.xml:514 msgid "" "If you're working with shared repositories, you can set up a <literal role=" "\"hook\">pretxnchangegroup</literal> hook on each that will block incoming " @@ -8819,12 +7902,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch09-undo.xml:5 +#: ../en/ch08-undo.xml:5 msgid "Finding and fixing mistakes" msgstr "查找和修改错误" #. type: Content of: <book><chapter><para> -#: ../en/ch09-undo.xml:7 +#: ../en/ch08-undo.xml:7 msgid "" "To err might be human, but to really handle the consequences well takes a top-" "notch revision control system. In this chapter, we'll discuss some of the " @@ -8834,17 +7917,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:15 +#: ../en/ch08-undo.xml:15 msgid "Erasing local history" msgstr "销毁本地历史" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:18 +#: ../en/ch08-undo.xml:18 msgid "The accidental commit" msgstr "意外的提交" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:20 +#: ../en/ch08-undo.xml:20 msgid "" "I have the occasional but persistent problem of typing rather more quickly " "than I can think, which sometimes results in me committing a changeset that " @@ -8855,12 +7938,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:31 +#: ../en/ch08-undo.xml:31 msgid "Rolling back a transaction" msgstr "回滚一个事务" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:33 +#: ../en/ch08-undo.xml:33 msgid "" "In section <xref linkend=\"sec.concepts.txn\"/>, I mentioned that Mercurial " "treats each modification of a repository as a <emphasis>transaction</" @@ -8873,7 +7956,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:43 +#: ../en/ch08-undo.xml:43 msgid "" "Here's a mistake that I often find myself making: committing a change in " "which I've created a new file, but forgotten to <command role=\"hg-cmd\">hg " @@ -8881,14 +7964,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:50 +#: ../en/ch08-undo.xml:50 msgid "" "Looking at the output of <command role=\"hg-cmd\">hg status</command> after " "the commit immediately confirms the error." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:56 +#: ../en/ch08-undo.xml:56 msgid "" "The commit captured the changes to the file <filename>a</filename>, but not " "the new file <filename>b</filename>. If I were to push this changeset to a " @@ -8899,7 +7982,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:65 +#: ../en/ch08-undo.xml:65 msgid "" "However, luck is with me&emdash;I've caught my error before I pushed the " "changeset. I use the <command role=\"hg-cmd\">hg rollback</command> command, " @@ -8907,7 +7990,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:72 +#: ../en/ch08-undo.xml:72 msgid "" "Notice that the changeset is no longer present in the repository's history, " "and the working directory once again thinks that the file <filename>a</" @@ -8918,12 +8001,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:85 +#: ../en/ch08-undo.xml:85 msgid "The erroneous pull" msgstr "错误的抓取" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:87 +#: ../en/ch08-undo.xml:87 msgid "" "It's common practice with Mercurial to maintain separate development branches " "of a project in different repositories. Your development team might have one " @@ -8932,7 +8015,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:94 +#: ../en/ch08-undo.xml:94 msgid "" "Given this, you can imagine that the consequences could be messy if you had a " "local <quote>0.9</quote> repository, and accidentally pulled changes from the " @@ -8945,7 +8028,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:106 +#: ../en/ch08-undo.xml:106 msgid "" "The <command role=\"hg-cmd\">hg rollback</command> command will work nicely " "to expunge all of the changesets that you just pulled. Mercurial groups all " @@ -8955,12 +8038,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:115 +#: ../en/ch08-undo.xml:115 msgid "Rolling back is useless once you've pushed" msgstr "当完成推送后,回滚是无效的" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:117 +#: ../en/ch08-undo.xml:117 msgid "" "The value of the <command role=\"hg-cmd\">hg rollback</command> command drops " "to zero once you've pushed your changes to another repository. Rolling back " @@ -8971,7 +8054,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:126 +#: ../en/ch08-undo.xml:126 msgid "" "If you've pushed a change to another repository&emdash;particularly if it's a " "shared repository&emdash;it has essentially <quote>escaped into the wild,</" @@ -8982,7 +8065,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:135 +#: ../en/ch08-undo.xml:135 msgid "" "(If you absolutely know for sure that the change you want to roll back is the " "most recent change in the repository that you pushed to, <emphasis>and</" @@ -8994,12 +8077,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:147 +#: ../en/ch08-undo.xml:147 msgid "You can only roll back once" msgstr "你只能回滚一次" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:149 +#: ../en/ch08-undo.xml:149 msgid "" "Mercurial stores exactly one transaction in its transaction log; that " "transaction is the most recent one that occurred in the repository. This " @@ -9009,19 +8092,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:158 +#: ../en/ch08-undo.xml:158 msgid "" "Once you've rolled back one transaction in a repository, you can't roll back " "again in that repository until you perform another commit or pull." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:165 +#: ../en/ch08-undo.xml:165 msgid "Reverting the mistaken change" msgstr "撤销错误的修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:167 +#: ../en/ch08-undo.xml:167 msgid "" "If you make a modification to a file, and decide that you really didn't want " "to change the file at all, and you haven't yet committed your changes, the " @@ -9033,7 +8116,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:176 +#: ../en/ch08-undo.xml:176 msgid "" "Let's illustrate how the <command role=\"hg-cmd\">hg revert</command> command " "works with yet another small example. We'll begin by modifying a file that " @@ -9041,14 +8124,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:183 +#: ../en/ch08-undo.xml:183 msgid "" "If we don't want that change, we can simply <command role=\"hg-cmd\">hg " "revert</command> the file." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:189 +#: ../en/ch08-undo.xml:189 msgid "" "The <command role=\"hg-cmd\">hg revert</command> command provides us with an " "extra degree of safety by saving our modified file with a <filename>.orig</" @@ -9056,7 +8139,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:196 +#: ../en/ch08-undo.xml:196 msgid "" "Here is a summary of the cases that the <command role=\"hg-cmd\">hg revert</" "command> command can deal with. We will describe each of these in more " @@ -9064,26 +8147,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:201 +#: ../en/ch08-undo.xml:201 msgid "If you modify a file, it will restore the file to its unmodified state." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:204 +#: ../en/ch08-undo.xml:204 msgid "" "If you <command role=\"hg-cmd\">hg add</command> a file, it will undo the " "<quote>added</quote> state of the file, but leave the file itself untouched." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:208 +#: ../en/ch08-undo.xml:208 msgid "" "If you delete a file without telling Mercurial, it will restore the file to " "its unmodified contents." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:211 +#: ../en/ch08-undo.xml:211 msgid "" "If you use the <command role=\"hg-cmd\">hg remove</command> command to remove " "a file, it will undo the <quote>removed</quote> state of the file, and " @@ -9091,12 +8174,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:218 +#: ../en/ch08-undo.xml:218 msgid "File management errors" msgstr "文件管理错误" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:220 +#: ../en/ch08-undo.xml:220 msgid "" "The <command role=\"hg-cmd\">hg revert</command> command is useful for more " "than just modified files. It lets you reverse the results of all of " @@ -9106,7 +8189,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:226 +#: ../en/ch08-undo.xml:226 msgid "" "If you <command role=\"hg-cmd\">hg add</command> a file, then decide that in " "fact you don't want Mercurial to track it, use <command role=\"hg-cmd\">hg " @@ -9115,7 +8198,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:234 +#: ../en/ch08-undo.xml:234 msgid "" "Similarly, if you ask Mercurial to <command role=\"hg-cmd\">hg remove</" "command> a file, you can use <command role=\"hg-cmd\">hg revert</command> to " @@ -9127,7 +8210,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:245 +#: ../en/ch08-undo.xml:245 msgid "" "If you revert a <command role=\"hg-cmd\">hg copy</command>, the copied-to " "file remains in your working directory afterwards, untracked. Since a copy " @@ -9136,12 +8219,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch09-undo.xml:254 +#: ../en/ch08-undo.xml:254 msgid "A slightly special case: reverting a rename" msgstr "一个稍微特别的案例:撤销改名" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:256 +#: ../en/ch08-undo.xml:256 msgid "" "If you <command role=\"hg-cmd\">hg rename</command> a file, there is one " "small detail that you should remember. When you <command role=\"hg-cmd\">hg " @@ -9150,7 +8233,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:264 +#: ../en/ch08-undo.xml:264 msgid "" "As you can see from the output of <command role=\"hg-cmd\">hg status</" "command>, the renamed-to file is no longer identified as added, but the " @@ -9159,19 +8242,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:273 +#: ../en/ch08-undo.xml:273 msgid "" "So remember, to revert a <command role=\"hg-cmd\">hg rename</command>, you " "must provide <emphasis>both</emphasis> the source and destination names." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:278 +#: ../en/ch08-undo.xml:278 msgid "% TODO: the output doesn't look like it will be removed!" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:281 +#: ../en/ch08-undo.xml:281 msgid "" "(By the way, if you rename a file, then modify the renamed-to file, then " "revert both components of the rename, when Mercurial restores the file that " @@ -9181,19 +8264,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:288 +#: ../en/ch08-undo.xml:288 msgid "" "These fiddly aspects of reverting a rename arguably constitute a small bug in " "Mercurial." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:295 +#: ../en/ch08-undo.xml:295 msgid "Dealing with committed changes" msgstr "处理已经提交的修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:297 +#: ../en/ch08-undo.xml:297 msgid "" "Consider a case where you have committed a change $a$, and another change $b$ " "on top of it; you then realise that change $a$ was incorrect. Mercurial lets " @@ -9202,7 +8285,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:303 +#: ../en/ch08-undo.xml:303 msgid "" "Before you read this section, here's something to keep in mind: the <command " "role=\"hg-cmd\">hg backout</command> command undoes changes by " @@ -9213,12 +8296,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:312 +#: ../en/ch08-undo.xml:312 msgid "Backing out a changeset" msgstr "恢复一个修改集" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:314 +#: ../en/ch08-undo.xml:314 msgid "" "The <command role=\"hg-cmd\">hg backout</command> command lets you " "<quote>undo</quote> the effects of an entire changeset in an automated " @@ -9230,7 +8313,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:323 +#: ../en/ch08-undo.xml:323 msgid "" "The operation of the <command role=\"hg-cmd\">hg backout</command> command is " "a little intricate, so let's illustrate it with some examples. First, we'll " @@ -9238,7 +8321,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:330 +#: ../en/ch08-undo.xml:330 msgid "" "The <command role=\"hg-cmd\">hg backout</command> command takes a single " "changeset ID as its argument; this is the changeset to back out. Normally, " @@ -9249,17 +8332,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:341 +#: ../en/ch08-undo.xml:341 msgid "Backing out the tip changeset" msgstr "恢复顶点修改集" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:343 +#: ../en/ch08-undo.xml:343 msgid "We're going to start by backing out the last changeset we committed." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:348 +#: ../en/ch08-undo.xml:348 msgid "" "You can see that the second line from <filename>myfile</filename> is no " "longer present. Taking a look at the output of <command role=\"hg-cmd\">hg " @@ -9273,25 +8356,25 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch09-undo.xml:364 +#: ../en/ch08-undo.xml:364 msgid "" "<imageobject><imagedata fileref=\"images/undo-simple.png\"/> </imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch09-undo.xml:367 ../en/ch09-undo.xml:486 +#: ../en/ch08-undo.xml:367 ../en/ch08-undo.xml:486 msgid "" "Backing out a change using the <command role=\"hg-cmd\">hg backout</command> " "command" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:376 +#: ../en/ch08-undo.xml:376 msgid "Backing out a non-tip change" msgstr "恢复非顶点的修改" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:378 +#: ../en/ch08-undo.xml:378 msgid "" "If you want to back out a change other than the last one you committed, pass " "the <option role=\"hg-opt-backout\">--merge</option> option to the <command " @@ -9299,14 +8382,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:385 +#: ../en/ch08-undo.xml:385 msgid "" "This makes backing out any changeset a <quote>one-shot</quote> operation " "that's usually simple and fast." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:391 +#: ../en/ch08-undo.xml:391 msgid "" "If you take a look at the contents of <filename>myfile</filename> after the " "backout finishes, you'll see that the first and third changes are present, " @@ -9314,7 +8397,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:398 +#: ../en/ch08-undo.xml:398 msgid "" "As the graphical history in figure <xref endterm=\"fig.undo.backout-non-tip." "caption\" linkend=\"fig.undo.backout-non-tip\"/> illustrates, Mercurial " @@ -9327,27 +8410,27 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:410 +#: ../en/ch08-undo.xml:410 msgid "" "% TODO: to me it looks like mercurial doesn't commit the second merge " "automatically!" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch09-undo.xml:415 +#: ../en/ch08-undo.xml:415 msgid "" "<imageobject><imagedata fileref=\"images/undo-non-tip.png\"/> </imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch09-undo.xml:418 +#: ../en/ch08-undo.xml:418 msgid "" "Automated backout of a non-tip change using the <command role=\"hg-cmd\">hg " "backout</command> command" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:424 +#: ../en/ch08-undo.xml:424 msgid "" "The result is that you end up <quote>back where you were</quote>, only with " "some extra history that undoes the effect of the changeset you wanted to back " @@ -9355,12 +8438,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch09-undo.xml:429 +#: ../en/ch08-undo.xml:429 msgid "Always use the <option role=\"hg-opt-backout\">--merge</option> option" msgstr "始终使用选项 <option role=\"hg-opt-backout\">--merge</option>" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch09-undo.xml:432 +#: ../en/ch08-undo.xml:432 msgid "" "In fact, since the <option role=\"hg-opt-backout\">--merge</option> option " "will do the <quote>right thing</quote> whether or not the changeset you're " @@ -9370,12 +8453,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:443 +#: ../en/ch08-undo.xml:443 msgid "Gaining more control of the backout process" msgstr "在恢复处理中获得更多控制" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:445 +#: ../en/ch08-undo.xml:445 msgid "" "While I've recommended that you always use the <option role=\"hg-opt-backout" "\">--merge</option> option when backing out a change, the <command role=\"hg-" @@ -9388,14 +8471,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:458 +#: ../en/ch08-undo.xml:458 msgid "" "As with our earlier example, We'll commit a third changeset, then back out " "its parent, and see what happens." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:464 +#: ../en/ch08-undo.xml:464 msgid "" "Our new changeset is again a descendant of the changeset we backout out; it's " "thus a new head, <emphasis>not</emphasis> a descendant of the changeset that " @@ -9404,7 +8487,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:472 +#: ../en/ch08-undo.xml:472 msgid "" "Again, it's easier to see what has happened by looking at a graph of the " "revision history, in figure <xref endterm=\"fig.undo.backout-manual.caption\" " @@ -9415,13 +8498,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch09-undo.xml:483 +#: ../en/ch08-undo.xml:483 msgid "" "<imageobject><imagedata fileref=\"images/undo-manual.png\"/> </imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:492 +#: ../en/ch08-undo.xml:492 msgid "" "After the <command role=\"hg-cmd\">hg backout</command> command has " "completed, it leaves the new <quote>backout</quote> changeset as the parent " @@ -9429,12 +8512,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:499 +#: ../en/ch08-undo.xml:499 msgid "Now we have two isolated sets of changes." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:503 +#: ../en/ch08-undo.xml:503 msgid "" "Let's think about what we expect to see as the contents of <filename>myfile</" "filename> now. The first change should be present, because we've never " @@ -9445,14 +8528,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:513 +#: ../en/ch08-undo.xml:513 msgid "" "To get the third change back into the file, we just do a normal merge of our " "two heads." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:518 +#: ../en/ch08-undo.xml:518 msgid "" "Afterwards, the graphical history of our repository looks like figure <xref " "endterm=\"fig.undo.backout-manual-merge.caption\" linkend=\"fig.undo.backout-" @@ -9460,45 +8543,45 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch09-undo.xml:525 +#: ../en/ch08-undo.xml:525 msgid "" "<imageobject><imagedata fileref=\"images/undo-manual-merge.png\"/> </" "imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch09-undo.xml:528 +#: ../en/ch08-undo.xml:528 msgid "Manually merging a backout change" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:535 +#: ../en/ch08-undo.xml:535 msgid "Why <command role=\"hg-cmd\">hg backout</command> works as it does" msgstr "<command role=\"hg-cmd\">hg backout</command> 的内幕" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:538 +#: ../en/ch08-undo.xml:538 msgid "" "Here's a brief description of how the <command role=\"hg-cmd\">hg backout</" "command> command works." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:541 +#: ../en/ch08-undo.xml:541 msgid "" "It ensures that the working directory is <quote>clean</quote>, i.e. that the " "output of <command role=\"hg-cmd\">hg status</command> would be empty." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:545 +#: ../en/ch08-undo.xml:545 msgid "" "It remembers the current parent of the working directory. Let's call this " "changeset <literal>orig</literal>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:549 +#: ../en/ch08-undo.xml:549 msgid "" "It does the equivalent of a <command role=\"hg-cmd\">hg update</command> to " "sync the working directory to the changeset you want to back out. Let's call " @@ -9506,14 +8589,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:554 +#: ../en/ch08-undo.xml:554 msgid "" "It finds the parent of that changeset. Let's call that changeset " "<literal>parent</literal>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:557 +#: ../en/ch08-undo.xml:557 msgid "" "For each file that the <literal>backout</literal> changeset affected, it does " "the equivalent of a <command role=\"hg-cmd\">hg revert -r parent</command> on " @@ -9522,14 +8605,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:564 +#: ../en/ch08-undo.xml:564 msgid "" "It commits the result as a new changeset. This changeset has " "<literal>backout</literal> as its parent." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:568 +#: ../en/ch08-undo.xml:568 msgid "" "If you specify <option role=\"hg-opt-backout\">--merge</option> on the " "command line, it merges with <literal>orig</literal>, and commits the result " @@ -9537,7 +8620,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:574 +#: ../en/ch08-undo.xml:574 msgid "" "An alternative way to implement the <command role=\"hg-cmd\">hg backout</" "command> command would be to <command role=\"hg-cmd\">hg export</command> the " @@ -9548,7 +8631,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:584 +#: ../en/ch08-undo.xml:584 msgid "" "The reason that <command role=\"hg-cmd\">hg backout</command> does an update, " "a commit, a merge, and another commit is to give the merge machinery the best " @@ -9557,7 +8640,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:591 +#: ../en/ch08-undo.xml:591 msgid "" "If you're backing out a changeset that's 100 revisions back in your project's " "history, the chances that the <command>patch</command> command will be able " @@ -9572,12 +8655,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:608 +#: ../en/ch08-undo.xml:608 msgid "Changes that should never have been" msgstr "不该发生的修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:610 +#: ../en/ch08-undo.xml:610 msgid "" "Most of the time, the <command role=\"hg-cmd\">hg backout</command> command " "is exactly what you need if you want to undo the effects of a change. It " @@ -9586,7 +8669,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:616 +#: ../en/ch08-undo.xml:616 msgid "" "On rare occasions, though, you may find that you've committed a change that " "really should not be present in the repository at all. For example, it would " @@ -9598,7 +8681,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:625 +#: ../en/ch08-undo.xml:625 msgid "" "Before I discuss the options that you have if you commit a <quote>brown paper " "bag</quote> change (the kind that's so bad that you want to pull a brown " @@ -9607,7 +8690,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:630 +#: ../en/ch08-undo.xml:630 msgid "" "Since Mercurial treats history as accumulative&emdash;every change builds on " "top of all changes that preceded it&emdash;you generally can't just make " @@ -9619,7 +8702,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:639 +#: ../en/ch08-undo.xml:639 msgid "" "After you've pushed a bad change to another repository, you <emphasis>could</" "emphasis> still use <command role=\"hg-cmd\">hg rollback</command> to make " @@ -9629,7 +8712,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:647 +#: ../en/ch08-undo.xml:647 msgid "" "If a situation like this arises, and you know which repositories your bad " "change has propagated into, you can <emphasis>try</emphasis> to get rid of " @@ -9640,7 +8723,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:655 +#: ../en/ch08-undo.xml:655 msgid "" "If you've committed one or more changes <emphasis>after</emphasis> the change " "that you'd like to see disappear, your options are further reduced. Mercurial " @@ -9649,7 +8732,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:661 +#: ../en/ch08-undo.xml:661 msgid "" "XXX This needs filling out. The <literal>hg-replay</literal> script in the " "<literal>examples</literal> directory works, but doesn't handle merge " @@ -9657,12 +8740,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:667 +#: ../en/ch08-undo.xml:667 msgid "Protect yourself from <quote>escaped</quote> changes" msgstr "使用<quote>校验</quote>修改来保护你自己" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:670 +#: ../en/ch08-undo.xml:670 msgid "" "If you've committed some changes to your local repository and they've been " "pushed or pulled somewhere else, this isn't necessarily a disaster. You can " @@ -9672,7 +8755,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:677 +#: ../en/ch08-undo.xml:677 msgid "" "By configuring some hooks on that repository to validate incoming changesets " "(see chapter <xref linkend=\"chap.hook\"/>), you can automatically prevent " @@ -9684,7 +8767,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:687 +#: ../en/ch08-undo.xml:687 msgid "" "For instance, an incoming change hook that verifies that a changeset will " "actually compile can prevent people from inadvertantly <quote>breaking the " @@ -9692,12 +8775,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:694 +#: ../en/ch08-undo.xml:694 msgid "Finding the source of a bug" msgstr "查找问题的根源" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:696 +#: ../en/ch08-undo.xml:696 msgid "" "While it's all very well to be able to back out a changeset that introduced a " "bug, this requires that you know which changeset to back out. Mercurial " @@ -9707,7 +8790,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:703 +#: ../en/ch08-undo.xml:703 msgid "" "The idea behind the <command role=\"hg-cmd\">hg bisect</command> command is " "that a changeset has introduced some change of behaviour that you can " @@ -9719,14 +8802,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:712 +#: ../en/ch08-undo.xml:712 msgid "" "Here are a few scenarios to help you understand how you might apply this " "command." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:715 +#: ../en/ch08-undo.xml:715 msgid "" "The most recent version of your software has a bug that you remember wasn't " "present a few weeks ago, but you don't know when it was introduced. Here, " @@ -9734,7 +8817,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:720 +#: ../en/ch08-undo.xml:720 msgid "" "You fixed a bug in a rush, and now it's time to close the entry in your " "team's bug database. The bug database requires a changeset ID when you close " @@ -9743,7 +8826,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:727 +#: ../en/ch08-undo.xml:727 msgid "" "Your software works correctly, but runs 15% slower than the last time you " "measured it. You want to know which changeset introduced the performance " @@ -9752,14 +8835,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:734 +#: ../en/ch08-undo.xml:734 msgid "" "The sizes of the components of your project that you ship exploded recently, " "and you suspect that something changed in the way you build your project." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:739 +#: ../en/ch08-undo.xml:739 msgid "" "From these examples, it should be clear that the <command role=\"hg-cmd\">hg " "bisect</command> command is not useful only for finding the sources of bugs. " @@ -9769,7 +8852,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:746 +#: ../en/ch08-undo.xml:746 msgid "" "We'll introduce a little bit of terminology here, just to make it clear which " "parts of the search process are your responsibility, and which are " @@ -9783,7 +8866,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:759 +#: ../en/ch08-undo.xml:759 msgid "" "One simple way to automate the searching process would be simply to probe " "every changeset. However, this scales poorly. If it took ten minutes to " @@ -9796,7 +8879,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:769 +#: ../en/ch08-undo.xml:769 msgid "" "What the <command role=\"hg-cmd\">hg bisect</command> command does is use its " "knowledge of the <quote>shape</quote> of your project's revision history to " @@ -9809,7 +8892,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch09-undo.xml:780 +#: ../en/ch08-undo.xml:780 msgid "" "The <command role=\"hg-cmd\">hg bisect</command> command is aware of the " "<quote>branchy</quote> nature of a Mercurial project's revision history, so " @@ -9819,18 +8902,18 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:788 +#: ../en/ch08-undo.xml:788 msgid "Using the <command role=\"hg-cmd\">hg bisect</command> command" msgstr "使用命令 <command role=\"hg-cmd\">hg bisect</command>" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:791 +#: ../en/ch08-undo.xml:791 msgid "" "Here's an example of <command role=\"hg-cmd\">hg bisect</command> in action." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch09-undo.xml:795 +#: ../en/ch08-undo.xml:795 msgid "" "In versions 0.9.5 and earlier of Mercurial, <command role=\"hg-cmd\">hg " "bisect</command> was not a core command: it was distributed with Mercurial as " @@ -9839,14 +8922,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:802 +#: ../en/ch08-undo.xml:802 msgid "" "Now let's create a repository, so that we can try out the <command role=\"hg-" "cmd\">hg bisect</command> command in isolation." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:808 +#: ../en/ch08-undo.xml:808 msgid "" "We'll simulate a project that has a bug in it in a simple-minded way: create " "trivial changes in a loop, and nominate one specific change that will have " @@ -9856,7 +8939,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:818 +#: ../en/ch08-undo.xml:818 msgid "" "The next thing that we'd like to do is figure out how to use the <command " "role=\"hg-cmd\">hg bisect</command> command. We can use Mercurial's normal " @@ -9864,46 +8947,46 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:825 +#: ../en/ch08-undo.xml:825 msgid "" "The <command role=\"hg-cmd\">hg bisect</command> command works in steps. " "Each step proceeds as follows." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:828 +#: ../en/ch08-undo.xml:828 msgid "You run your binary test." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:830 +#: ../en/ch08-undo.xml:830 msgid "" "If the test succeeded, you tell <command role=\"hg-cmd\">hg bisect</command> " "by running the <command role=\"hg-cmd\">hg bisect good</command> command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:835 +#: ../en/ch08-undo.xml:835 msgid "" "If it failed, run the <command role=\"hg-cmd\">hg bisect bad</command> " "command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:839 +#: ../en/ch08-undo.xml:839 msgid "" "The command uses your information to decide which changeset to test next." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> -#: ../en/ch09-undo.xml:842 +#: ../en/ch08-undo.xml:842 msgid "" "It updates the working directory to that changeset, and the process begins " "again." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:845 +#: ../en/ch08-undo.xml:845 msgid "" "The process ends when <command role=\"hg-cmd\">hg bisect</command> identifies " "a unique changeset that marks the point where your test transitioned from " @@ -9912,14 +8995,14 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:850 +#: ../en/ch08-undo.xml:850 msgid "" "To start the search, we must run the <command role=\"hg-cmd\">hg bisect --" "reset</command> command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:855 +#: ../en/ch08-undo.xml:855 msgid "" "In our case, the binary test we use is simple: we check to see if any file in " "the repository contains the string <quote>i have a gub</quote>. If it does, " @@ -9929,7 +9012,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:863 +#: ../en/ch08-undo.xml:863 msgid "" "Most of the time, the revision to which the working directory is synced " "(usually the tip) already exhibits the problem introduced by the buggy " @@ -9938,7 +9021,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:870 +#: ../en/ch08-undo.xml:870 msgid "" "Our next task is to nominate a changeset that we know <emphasis>doesn't</" "emphasis> have the bug; the <command role=\"hg-cmd\">hg bisect</command> " @@ -9949,26 +9032,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:880 +#: ../en/ch08-undo.xml:880 msgid "Notice that this command printed some output." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:882 +#: ../en/ch08-undo.xml:882 msgid "" "It told us how many changesets it must consider before it can identify the " "one that introduced the bug, and how many tests that will require." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:886 +#: ../en/ch08-undo.xml:886 msgid "" "It updated the working directory to the next changeset to test, and told us " "which changeset it's testing." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:891 +#: ../en/ch08-undo.xml:891 msgid "" "We now run our test in the working directory. We use the <command>grep</" "command> command to see if our <quote>bad</quote> file is present in the " @@ -9977,26 +9060,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:897 +#: ../en/ch08-undo.xml:897 msgid "" "This test looks like a perfect candidate for automation, so let's turn it " "into a shell function." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:901 +#: ../en/ch08-undo.xml:901 msgid "" "We can now run an entire test step with a single command, <literal>mytest</" "literal>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:906 +#: ../en/ch08-undo.xml:906 msgid "A few more invocations of our canned test step command, and we're done." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:911 +#: ../en/ch08-undo.xml:911 msgid "" "Even though we had 40 changesets to search through, the <command role=\"hg-cmd" "\">hg bisect</command> command let us find the changeset that introduced our " @@ -10008,13 +9091,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:922 +#: ../en/ch08-undo.xml:922 msgid "Cleaning up after your search" msgstr "搜索后的清理" # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:924 +#: ../en/ch08-undo.xml:924 msgid "" "When you're finished using the <command role=\"hg-cmd\">hg bisect</command> " "command in a repository, you can use the <command role=\"hg-cmd\">hg bisect " @@ -10026,17 +9109,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch09-undo.xml:939 +#: ../en/ch08-undo.xml:939 msgid "Tips for finding bugs effectively" msgstr "有效查找问题的技巧" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:942 +#: ../en/ch08-undo.xml:942 msgid "Give consistent input" msgstr "给出一致的输入" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:944 +#: ../en/ch08-undo.xml:944 msgid "" "The <command role=\"hg-cmd\">hg bisect</command> command requires that you " "correctly report the result of every test you perform. If you tell it that a " @@ -10048,12 +9131,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:956 +#: ../en/ch08-undo.xml:956 msgid "Automate as much as possible" msgstr "尽量自动" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:958 +#: ../en/ch08-undo.xml:958 msgid "" "When I started using the <command role=\"hg-cmd\">hg bisect</command> " "command, I tried a few times to run my tests by hand, on the command line. " @@ -10063,7 +9146,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:966 +#: ../en/ch08-undo.xml:966 msgid "" "My initial problems with driving the <command role=\"hg-cmd\">hg bisect</" "command> command by hand occurred even with simple searches on small " @@ -10074,24 +9157,24 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:975 +#: ../en/ch08-undo.xml:975 msgid "The key to automated testing is twofold:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:977 +#: ../en/ch08-undo.xml:977 msgid "always test for the same symptom, and" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:979 +#: ../en/ch08-undo.xml:979 msgid "" "always feed consistent input to the <command role=\"hg-cmd\">hg bisect</" "command> command." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:982 +#: ../en/ch08-undo.xml:982 msgid "" "In my tutorial example above, the <command>grep</command> command tests for " "the symptom, and the <literal>if</literal> statement takes the result of this " @@ -10102,12 +9185,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:992 +#: ../en/ch08-undo.xml:992 msgid "Check your results" msgstr "检查你的结果" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:994 +#: ../en/ch08-undo.xml:994 msgid "" "Because the output of a <command role=\"hg-cmd\">hg bisect</command> search " "is only as good as the input you give it, don't take the changeset it reports " @@ -10116,32 +9199,32 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:1000 +#: ../en/ch08-undo.xml:1000 msgid "" "The changeset that it reports as the first bad revision. Your test should " "still report this as bad." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:1004 +#: ../en/ch08-undo.xml:1004 msgid "" "The parent of that changeset (either parent, if it's a merge). Your test " "should report this changeset as good." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch09-undo.xml:1008 +#: ../en/ch08-undo.xml:1008 msgid "" "A child of that changeset. Your test should report this changeset as bad." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:1014 +#: ../en/ch08-undo.xml:1014 msgid "Beware interference between bugs" msgstr "谨防问题之间的冲突" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1016 +#: ../en/ch08-undo.xml:1016 msgid "" "It's possible that your search for one bug could be disrupted by the presence " "of another. For example, let's say your software crashes at revision 100, " @@ -10151,7 +9234,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1024 +#: ../en/ch08-undo.xml:1024 msgid "" "It is possible that this other bug completely <quote>masks</quote> yours, " "which is to say that it occurs before your bug has a chance to manifest " @@ -10163,7 +9246,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1034 +#: ../en/ch08-undo.xml:1034 msgid "" "A different problem could arise if your test for a bug's presence is not " "specific enough. If you check for <quote>my program crashes</quote>, then " @@ -10172,7 +9255,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1041 +#: ../en/ch08-undo.xml:1041 msgid "" "Another useful situation in which to use <command role=\"hg-cmd\">hg bisect --" "skip</command> is if you can't test a revision because your project was in a " @@ -10181,12 +9264,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch09-undo.xml:1050 +#: ../en/ch08-undo.xml:1050 msgid "Bracket your search lazily" msgstr "减少你的查找工作" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1052 +#: ../en/ch08-undo.xml:1052 msgid "" "Choosing the first <quote>good</quote> and <quote>bad</quote> changesets that " "will mark the end points of your search is often easy, but it bears a little " @@ -10196,7 +9279,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1060 +#: ../en/ch08-undo.xml:1060 msgid "" "If you're having trouble remembering when a suitable <quote>good</quote> " "change was, so that you can tell <command role=\"hg-cmd\">hg bisect</" @@ -10207,7 +9290,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch09-undo.xml:1069 +#: ../en/ch08-undo.xml:1069 msgid "" "Even if you end up <quote>early</quote> by thousands of changesets or months " "of history, you will only add a handful of tests to the total number that " @@ -10216,12 +9299,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch10-hook.xml:5 +#: ../en/ch09-hook.xml:5 msgid "Handling repository events with hooks" msgstr "使用钩子处理版本库事件" #. type: Content of: <book><chapter><para> -#: ../en/ch10-hook.xml:7 +#: ../en/ch09-hook.xml:7 msgid "" "Mercurial offers a powerful mechanism to let you perform automated actions in " "response to events that occur in a repository. In some cases, you can even " @@ -10229,7 +9312,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch10-hook.xml:12 +#: ../en/ch09-hook.xml:12 msgid "" "The name Mercurial uses for one of these actions is a <emphasis>hook</" "emphasis>. Hooks are called <quote>triggers</quote> in some revision control " @@ -10237,12 +9320,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:18 +#: ../en/ch09-hook.xml:18 msgid "An overview of hooks in Mercurial" msgstr "Mercurial 钩子概述" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:20 +#: ../en/ch09-hook.xml:20 msgid "" "Here is a brief list of the hooks that Mercurial supports. We will revisit " "each of these hooks in more detail later, in section <xref linkend=\"sec.hook." @@ -10250,21 +9333,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:25 +#: ../en/ch09-hook.xml:25 msgid "" "<literal role=\"hook\">changegroup</literal>: This is run after a group of " "changesets has been brought into the repository from elsewhere." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:29 +#: ../en/ch09-hook.xml:29 msgid "" "<literal role=\"hook\">commit</literal>: This is run after a new changeset " "has been created in the local repository." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:33 +#: ../en/ch09-hook.xml:33 msgid "" "<literal role=\"hook\">incoming</literal>: This is run once for each new " "changeset that is brought into the repository from elsewhere. Notice the " @@ -10273,42 +9356,42 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:40 +#: ../en/ch09-hook.xml:40 msgid "" "<literal role=\"hook\">outgoing</literal>: This is run after a group of " "changesets has been transmitted from this repository." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:44 +#: ../en/ch09-hook.xml:44 msgid "" "<literal role=\"hook\">prechangegroup</literal>: This is run before starting " "to bring a group of changesets into the repository." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:49 +#: ../en/ch09-hook.xml:49 msgid "" "<literal role=\"hook\">precommit</literal>: Controlling. This is run before " "starting a commit." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:53 +#: ../en/ch09-hook.xml:53 msgid "" "<literal role=\"hook\">preoutgoing</literal>: Controlling. This is run before " "starting to transmit a group of changesets from this repository." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:58 +#: ../en/ch09-hook.xml:58 msgid "" "<literal role=\"hook\">pretag</literal>: Controlling. This is run before " "creating a tag." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:62 +#: ../en/ch09-hook.xml:62 msgid "" "<literal role=\"hook\">pretxnchangegroup</literal>: Controlling. This is run " "after a group of changesets has been brought into the local repository from " @@ -10317,7 +9400,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:70 +#: ../en/ch09-hook.xml:70 msgid "" "<literal role=\"hook\">pretxncommit</literal>: Controlling. This is run after " "a new changeset has been created in the local repository, but before the " @@ -10325,27 +9408,27 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:76 +#: ../en/ch09-hook.xml:76 msgid "" "<literal role=\"hook\">preupdate</literal>: Controlling. This is run before " "starting an update or merge of the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:81 +#: ../en/ch09-hook.xml:81 msgid "" "<literal role=\"hook\">tag</literal>: This is run after a tag is created." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:85 +#: ../en/ch09-hook.xml:85 msgid "" "<literal role=\"hook\">update</literal>: This is run after an update or merge " "of the working directory has finished." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:90 +#: ../en/ch09-hook.xml:90 msgid "" "Each of the hooks whose description begins with the word <quote>Controlling</" "quote> has the ability to determine whether an activity can proceed. If the " @@ -10354,17 +9437,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:99 +#: ../en/ch09-hook.xml:99 msgid "Hooks and security" msgstr "钩子与安全性" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:102 +#: ../en/ch09-hook.xml:102 msgid "Hooks are run with your privileges" msgstr "钩子以你的特权执行" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:104 +#: ../en/ch09-hook.xml:104 msgid "" "When you run a Mercurial command in a repository, and the command causes a " "hook to run, that hook runs on <emphasis>your</emphasis> system, under " @@ -10375,16 +9458,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:115 +#: ../en/ch09-hook.xml:115 msgid "" "In some cases, you may be exposed to hooks that you did not install " "yourself. If you work with Mercurial on an unfamiliar system, Mercurial will " -"run hooks defined in that system's global <filename role=\"special\"> /.hgrc</" -"filename>\\ file." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:122 +"run hooks defined in that system's global <filename role=\"special\">~/.hgrc</" +"filename> file." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><para> +#: ../en/ch09-hook.xml:122 msgid "" "If you are working with a repository owned by another user, Mercurial can run " "hooks defined in that user's repository, but it will still run them as " @@ -10396,7 +9479,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch10-hook.xml:134 +#: ../en/ch09-hook.xml:134 msgid "" "This only applies if you are pulling from a repository on a local or network " "filesystem. If you're pulling over http or ssh, any <literal role=\"hook" @@ -10405,7 +9488,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:142 +#: ../en/ch09-hook.xml:142 msgid "" "XXX To see what hooks are defined in a repository, use the <command role=\"hg-" "cmd\">hg config hooks</command> command. If you are working in one " @@ -10416,12 +9499,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:153 +#: ../en/ch09-hook.xml:153 msgid "Hooks do not propagate" msgstr "钩子不会传播" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:155 +#: ../en/ch09-hook.xml:155 msgid "" "In Mercurial, hooks are not revision controlled, and do not propagate when " "you clone, or pull from, a repository. The reason for this is simple: a hook " @@ -10430,7 +9513,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:162 +#: ../en/ch09-hook.xml:162 msgid "" "It would be extremely reckless for any distributed revision control system to " "implement revision-controlled hooks, as this would offer an easily " @@ -10439,7 +9522,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:168 +#: ../en/ch09-hook.xml:168 msgid "" "Since Mercurial does not propagate hooks, if you are collaborating with other " "people on a common project, you should not assume that they are using the " @@ -10448,22 +9531,22 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:175 +#: ../en/ch09-hook.xml:175 msgid "" "In a corporate intranet, this is somewhat easier to control, as you can for " "example provide a <quote>standard</quote> installation of Mercurial on an NFS " -"filesystem, and use a site-wide <filename role=\"special\"> /.hgrc</filename>" -"\\ file to define hooks that all users will see. However, this too has its " +"filesystem, and use a site-wide <filename role=\"special\">~/.hgrc</filename> " +"file to define hooks that all users will see. However, this too has its " "limits; see below." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:185 +#: ../en/ch09-hook.xml:184 msgid "Hooks can be overridden" msgstr "钩子可以被覆盖" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:187 +#: ../en/ch09-hook.xml:186 msgid "" "Mercurial allows you to override a hook definition by redefining the hook. " "You can disable it by setting its value to the empty string, or change its " @@ -10471,31 +9554,31 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:192 -msgid "" -"If you deploy a system- or site-wide <filename role=\"special\"> /.hgrc</" -"filename>\\ file that defines some hooks, you should thus understand that " -"your users can disable or override those hooks." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:200 +#: ../en/ch09-hook.xml:191 +msgid "" +"If you deploy a system- or site-wide <filename role=\"special\">~/.hgrc</" +"filename> file that defines some hooks, you should thus understand that your " +"users can disable or override those hooks." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><title> +#: ../en/ch09-hook.xml:199 msgid "Ensuring that critical hooks are run" msgstr "确保关键钩子的执行" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:202 +#: ../en/ch09-hook.xml:201 msgid "" "Sometimes you may want to enforce a policy that you do not want others to be " "able to work around. For example, you may have a requirement that every " "changeset must pass a rigorous set of tests. Defining this requirement via a " -"hook in a site-wide <filename role=\"special\"> /.hgrc</filename>\\ won't " -"work for remote users on laptops, and of course local users can subvert it at " -"will by overriding the hook." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:211 +"hook in a site-wide <filename role=\"special\">~/.hgrc</filename> won't work " +"for remote users on laptops, and of course local users can subvert it at will " +"by overriding the hook." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><para> +#: ../en/ch09-hook.xml:210 msgid "" "Instead, you can set up your policies for use of Mercurial so that people are " "expected to propagate changes through a well-known <quote>canonical</quote> " @@ -10503,7 +9586,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:217 +#: ../en/ch09-hook.xml:216 msgid "" "One way to do this is via a combination of social engineering and " "technology. Set up a restricted-access account; users can push changes over " @@ -10513,7 +9596,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:226 +#: ../en/ch09-hook.xml:225 msgid "" "When someone pushes a changeset to the server that everyone pulls from, the " "server will test the changeset before it accepts it as permanent, and reject " @@ -10523,12 +9606,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:237 +#: ../en/ch09-hook.xml:236 msgid "Care with <literal>pretxn</literal> hooks in a shared-access repository" msgstr "在共享版本库中注意 <literal>pretxn</literal> 钩子" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:240 +#: ../en/ch09-hook.xml:239 msgid "" "If you want to use hooks to do some automated work in a repository that a " "number of people have shared access to, you need to be careful in how you do " @@ -10536,7 +9619,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:245 +#: ../en/ch09-hook.xml:244 msgid "" "Mercurial only locks a repository when it is writing to the repository, and " "only the parts of Mercurial that write to the repository pay attention to " @@ -10545,7 +9628,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:252 +#: ../en/ch09-hook.xml:251 msgid "" "Because Mercurial is careful with the order in which it reads and writes " "data, it does not need to acquire a lock when it wants to read data from the " @@ -10555,7 +9638,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:260 +#: ../en/ch09-hook.xml:259 msgid "" "With great performance comes a trade-off, though, one which has the potential " "to cause you trouble unless you're aware of it. To describe this requires a " @@ -10564,7 +9647,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:267 +#: ../en/ch09-hook.xml:266 msgid "" "When Mercurial <emphasis>writes</emphasis> metadata, it writes it straight " "into the destination file. It writes file data first, then manifest data " @@ -10576,7 +9659,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:278 +#: ../en/ch09-hook.xml:277 msgid "" "When Mercurial <emphasis>reads</emphasis> metadata, it reads the changelog " "first, then everything else. Since a reader will only access parts of the " @@ -10585,7 +9668,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:284 +#: ../en/ch09-hook.xml:283 msgid "" "Some controlling hooks (<literal role=\"hook\">pretxncommit</literal> and " "<literal role=\"hook\">pretxnchangegroup</literal>) run when a transaction is " @@ -10594,7 +9677,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:292 +#: ../en/ch09-hook.xml:291 msgid "" "If one of these hooks runs for long, it opens a window of time during which a " "reader can see the metadata for changesets that are not yet permanent, and " @@ -10603,12 +9686,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:300 +#: ../en/ch09-hook.xml:299 msgid "The problem illustrated" msgstr "问题的演示" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:302 +#: ../en/ch09-hook.xml:301 msgid "" "In principle, a good use for the <literal role=\"hook\">pretxnchangegroup</" "literal> hook would be to automatically build and test incoming changes " @@ -10620,7 +9703,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:313 +#: ../en/ch09-hook.xml:312 msgid "" "The safest technological answer to this challenge is to set up such a " "<quote>gatekeeper</quote> repository as <emphasis>unidirectional</emphasis>. " @@ -10633,7 +9716,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:325 +#: ../en/ch09-hook.xml:324 msgid "" "In practice, putting a centralised bottleneck like this in place is not often " "a good idea, and transaction visibility has nothing to do with the problem. " @@ -10645,7 +9728,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:336 +#: ../en/ch09-hook.xml:335 msgid "" "An approach that scales better is to get people to build and test before they " "push, then run automated builds and tests centrally <emphasis>after</" @@ -10655,12 +9738,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:347 +#: ../en/ch09-hook.xml:346 msgid "A short tutorial on using hooks" msgstr "使用钩子的简短指南" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:349 +#: ../en/ch09-hook.xml:348 msgid "" "It is easy to write a Mercurial hook. Let's start with a hook that runs when " "you finish a <command role=\"hg-cmd\">hg commit</command>, and simply prints " @@ -10669,15 +9752,15 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:356 +#: ../en/ch09-hook.xml:355 msgid "All hooks follow the pattern in this example." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:360 +#: ../en/ch09-hook.xml:359 msgid "" "You add an entry to the <literal role=\"rc-hooks\">hooks</literal> section of " -"your <filename role=\"special\"> /.hgrc</filename>. On the left is the name " +"your <filename role=\"special\">~/.hgrc</filename>. On the left is the name " "of the event to trigger on; on the right is the action to take. As you can " "see, you can run an arbitrary shell command in a hook. Mercurial passes " "extra information to the hook using environment variables (look for " @@ -10685,19 +9768,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:370 +#: ../en/ch09-hook.xml:369 msgid "Performing multiple actions per event" msgstr "每个事件执行多个操作" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:372 +#: ../en/ch09-hook.xml:371 msgid "" "Quite often, you will want to define more than one hook for a particular kind " "of event, as shown below." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:377 +#: ../en/ch09-hook.xml:376 msgid "" "Mercurial lets you do this by adding an <emphasis>extension</emphasis> to the " "end of a hook's name. You extend a hook's name by giving the name of the " @@ -10708,7 +9791,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:388 +#: ../en/ch09-hook.xml:387 msgid "" "To give a well-defined order of execution when there are multiple hooks " "defined for an event, Mercurial sorts hooks by extension, and executes the " @@ -10718,7 +9801,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:397 +#: ../en/ch09-hook.xml:396 msgid "" "It is a good idea to use a somewhat descriptive extension when you define a " "new hook. This will help you to remember what the hook was for. If the hook " @@ -10729,12 +9812,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:408 +#: ../en/ch09-hook.xml:407 msgid "Controlling whether an activity can proceed" msgstr "控制处理的活动" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:410 +#: ../en/ch09-hook.xml:409 msgid "" "In our earlier examples, we used the <literal role=\"hook\">commit</literal> " "hook, which is run after a commit has completed. This is one of several " @@ -10743,7 +9826,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:417 +#: ../en/ch09-hook.xml:416 msgid "" "Mercurial defines a number of events that occur before an activity starts; or " "after it starts, but before it finishes. Hooks that trigger on these events " @@ -10752,7 +9835,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:423 +#: ../en/ch09-hook.xml:422 msgid "" "The <literal role=\"hook\">pretxncommit</literal> hook runs after a commit " "has all but completed. In other words, the metadata representing the " @@ -10763,7 +9846,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:432 +#: ../en/ch09-hook.xml:431 msgid "" "If the <literal role=\"hook\">pretxncommit</literal> hook exits with a status " "code of zero, the transaction is allowed to complete; the commit finishes; " @@ -10774,19 +9857,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:444 +#: ../en/ch09-hook.xml:443 msgid "" "The hook in the example above checks that a commit comment contains a bug " "ID. If it does, the commit can complete. If not, the commit is rolled back." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:452 +#: ../en/ch09-hook.xml:451 msgid "Writing your own hooks" msgstr "编写钩子" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:454 +#: ../en/ch09-hook.xml:453 msgid "" "When you are writing a hook, you might find it useful to run Mercurial either " "with the <option role=\"hg-opt-global\">-v</option> option, or the <envar " @@ -10795,12 +9878,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:463 +#: ../en/ch09-hook.xml:462 msgid "Choosing how your hook should run" msgstr "选择钩子的执行方式" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:465 +#: ../en/ch09-hook.xml:464 msgid "" "You can write a hook either as a normal program&emdash;typically a shell " "script&emdash;or as a Python function that is executed within the Mercurial " @@ -10808,7 +9891,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:470 +#: ../en/ch09-hook.xml:469 msgid "" "Writing a hook as an external program has the advantage that it requires no " "knowledge of Mercurial's internals. You can call normal Mercurial commands " @@ -10817,7 +9900,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:477 +#: ../en/ch09-hook.xml:476 msgid "" "An in-process Python hook has complete access to the Mercurial API, and does " "not <quote>shell out</quote> to another process, so it is inherently faster " @@ -10827,7 +9910,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:485 +#: ../en/ch09-hook.xml:484 msgid "" "If you are comfortable with Python, or require high performance, writing your " "hooks in Python may be a good choice. However, when you have a " @@ -10836,12 +9919,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:494 +#: ../en/ch09-hook.xml:493 msgid "Hook parameters" msgstr "钩子的参数" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:496 +#: ../en/ch09-hook.xml:495 msgid "" "Mercurial calls each hook with a set of well-defined parameters. In Python, " "a parameter is passed as a keyword argument to your hook function. For an " @@ -10849,7 +9932,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:502 +#: ../en/ch09-hook.xml:501 msgid "" "Whether your hook is written in Python or as a shell script, the hook-" "specific parameter names and values will be the same. A boolean parameter " @@ -10862,12 +9945,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:516 +#: ../en/ch09-hook.xml:515 msgid "Hook return values and activity control" msgstr "钩子的返回值与活动控制" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:518 +#: ../en/ch09-hook.xml:517 msgid "" "A hook that executes successfully must exit with a status of zero if " "external, or return boolean <quote>false</quote> if in-process. Failure is " @@ -10877,35 +9960,35 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:526 +#: ../en/ch09-hook.xml:525 msgid "" "For a hook that controls whether an activity can proceed, zero/false means " "<quote>allow</quote>, while non-zero/true/exception means <quote>deny</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:533 +#: ../en/ch09-hook.xml:532 msgid "Writing an external hook" msgstr "编写外部钩子" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:535 -msgid "" -"When you define an external hook in your <filename role=\"special\"> /.hgrc</" -"filename>\\ and the hook is run, its value is passed to your shell, which " +#: ../en/ch09-hook.xml:534 +msgid "" +"When you define an external hook in your <filename role=\"special\">~/.hgrc</" +"filename> and the hook is run, its value is passed to your shell, which " "interprets it. This means that you can use normal shell constructs in the " "body of the hook." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:542 +#: ../en/ch09-hook.xml:541 msgid "" "An executable hook is always run with its current directory set to a " "repository's root directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:546 +#: ../en/ch09-hook.xml:545 msgid "" "Each hook parameter is passed in as an environment variable; the name is " "upper-cased, and prefixed with the string <quote><literal>HG_</literal></" @@ -10913,7 +9996,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:551 +#: ../en/ch09-hook.xml:550 msgid "" "With the exception of hook parameters, Mercurial does not set or modify any " "environment variables when running a hook. This is useful to remember if you " @@ -10924,14 +10007,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:562 +#: ../en/ch09-hook.xml:561 msgid "Telling Mercurial to use an in-process hook" msgstr "让 Mercurial 使用进程内钩子" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:564 -msgid "" -"The <filename role=\"special\"> /.hgrc</filename>\\ syntax for defining an in-" +#: ../en/ch09-hook.xml:563 +msgid "" +"The <filename role=\"special\">~/.hgrc</filename> syntax for defining an in-" "process hook is slightly different than for an executable hook. The value of " "the hook must start with the text <quote><literal>python:</literal></quote>, " "and continue with the fully-qualified name of a callable object to use as the " @@ -10939,7 +10022,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:572 +#: ../en/ch09-hook.xml:571 msgid "" "The module in which a hook lives is automatically imported when a hook is " "run. So long as you have the module name and <envar>PYTHONPATH</envar> " @@ -10947,14 +10030,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:578 -msgid "" -"The following <filename role=\"special\"> /.hgrc</filename>\\ example snippet " +#: ../en/ch09-hook.xml:577 +msgid "" +"The following <filename role=\"special\">~/.hgrc</filename> example snippet " "illustrates the syntax and meaning of the notions we just described." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:584 +#: ../en/ch09-hook.xml:583 msgid "" "When Mercurial runs the <literal>commit.example</literal> hook, it imports " "<literal>mymodule.submodule</literal>, looks for the callable object named " @@ -10962,19 +10045,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:592 +#: ../en/ch09-hook.xml:591 msgid "Writing an in-process hook" msgstr "编写进程内钩子" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:594 +#: ../en/ch09-hook.xml:593 msgid "" "The simplest in-process hook does nothing, but illustrates the basic shape of " "the hook API:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:599 +#: ../en/ch09-hook.xml:598 msgid "" "The first argument to a Python hook is always a <literal role=\"py-mod-" "mercurial.ui\">ui</literal> object. The second is a repository object; at " @@ -10986,17 +10069,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:614 +#: ../en/ch09-hook.xml:613 msgid "Some hook examples" msgstr "钩子样例" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:617 +#: ../en/ch09-hook.xml:616 msgid "Writing meaningful commit messages" msgstr "编写有意义的提交日志" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:619 +#: ../en/ch09-hook.xml:618 msgid "" "It's hard to imagine a useful commit message being very short. The simple " "<literal role=\"hook\">pretxncommit</literal> hook of the example below will " @@ -11005,12 +10088,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:629 +#: ../en/ch09-hook.xml:628 msgid "Checking for trailing whitespace" msgstr "检查行尾空格" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:631 +#: ../en/ch09-hook.xml:630 msgid "" "An interesting use of a commit-related hook is to help you to write cleaner " "code. A simple example of <quote>cleaner code</quote> is the dictum that a " @@ -11022,7 +10105,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:642 +#: ../en/ch09-hook.xml:641 msgid "" "You can use either the <literal role=\"hook\">precommit</literal> or <literal " "role=\"hook\">pretxncommit</literal> hook to tell whether you have a trailing " @@ -11037,7 +10120,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:658 +#: ../en/ch09-hook.xml:657 msgid "" "Should you choose the <literal role=\"hook\">pretxncommit</literal> hook, the " "check won't occur until just before the transaction for the commit " @@ -11049,7 +10132,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:671 +#: ../en/ch09-hook.xml:670 msgid "" "In this example, we introduce a simple <literal role=\"hook\">pretxncommit</" "literal> hook that checks for trailing whitespace. This hook is short, but " @@ -11061,7 +10144,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:682 +#: ../en/ch09-hook.xml:681 msgid "" "The above version is much more complex, but also more useful. It parses a " "unified diff to see if any lines add trailing whitespace, and prints the name " @@ -11074,7 +10157,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:696 +#: ../en/ch09-hook.xml:695 msgid "" "As a final aside, note in the example above the use of <command>perl</" "command>'s in-place editing feature to get rid of trailing whitespace from a " @@ -11082,12 +10165,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:706 +#: ../en/ch09-hook.xml:705 msgid "Bundled hooks" msgstr "内置的钩子" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch10-hook.xml:708 +#: ../en/ch09-hook.xml:707 msgid "" "Mercurial ships with several bundled hooks. You can find them in the " "<filename class=\"directory\">hgext</filename> directory of a Mercurial " @@ -11097,14 +10180,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:717 +#: ../en/ch09-hook.xml:716 msgid "" "<literal role=\"hg-ext\">acl</literal>&emdash;access control for parts of a " "repository" msgstr "<literal role=\"hg-ext\">acl</literal>&emdash;版本库的访问控制" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:720 +#: ../en/ch09-hook.xml:719 msgid "" "The <literal role=\"hg-ext\">acl</literal> extension lets you control which " "remote users are allowed to push changesets to a networked server. You can " @@ -11114,7 +10197,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:728 +#: ../en/ch09-hook.xml:727 msgid "" "This extension implements access control based on the identity of the user " "performing a push, <emphasis>not</emphasis> on who committed the changesets " @@ -11124,12 +10207,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:738 +#: ../en/ch09-hook.xml:737 msgid "Configuring the <literal role=\"hook\">acl</literal> hook" msgstr "配置 <literal role=\"hook\">acl</literal> 钩子" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:741 +#: ../en/ch09-hook.xml:740 msgid "" "In order to manage incoming changesets, the <literal role=\"hg-ext\">acl</" "literal> hook must be used as a <literal role=\"hook\">pretxnchangegroup</" @@ -11139,14 +10222,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:751 +#: ../en/ch09-hook.xml:750 msgid "" "The <literal role=\"hg-ext\">acl</literal> extension is configured using " "three sections." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:755 +#: ../en/ch09-hook.xml:754 msgid "" "The <literal role=\"rc-acl\">acl</literal> section has only one entry, <envar " "role=\"rc-item-acl\">sources</envar>, which lists the sources of incoming " @@ -11155,7 +10238,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:762 +#: ../en/ch09-hook.xml:761 msgid "" "<envar role=\"rc-item-acl\">serve</envar>: Control incoming changesets that " "are arriving from a remote repository over http or ssh. This is the default " @@ -11164,28 +10247,28 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:770 +#: ../en/ch09-hook.xml:769 msgid "" "<envar role=\"rc-item-acl\">pull</envar>: Control incoming changesets that " "are arriving via a pull from a local repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:775 +#: ../en/ch09-hook.xml:774 msgid "" "<envar role=\"rc-item-acl\">push</envar>: Control incoming changesets that " "are arriving via a push from a local repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:780 +#: ../en/ch09-hook.xml:779 msgid "" "<envar role=\"rc-item-acl\">bundle</envar>: Control incoming changesets that " "are arriving from another repository via a bundle." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:786 +#: ../en/ch09-hook.xml:785 msgid "" "The <literal role=\"rc-acl.allow\">acl.allow</literal> section controls the " "users that are allowed to add changesets to the repository. If this section " @@ -11195,7 +10278,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:795 +#: ../en/ch09-hook.xml:794 msgid "" "The <literal role=\"rc-acl.deny\">acl.deny</literal> section determines which " "users are denied from adding changesets to the repository. If this section " @@ -11203,7 +10286,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:801 +#: ../en/ch09-hook.xml:800 msgid "" "The syntaxes for the <literal role=\"rc-acl.allow\">acl.allow</literal> and " "<literal role=\"rc-acl.deny\">acl.deny</literal> sections are identical. On " @@ -11212,7 +10295,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:809 +#: ../en/ch09-hook.xml:808 msgid "" "In the following example, the user <literal>docwriter</literal> can only push " "changes to the <filename class=\"directory\">docs</filename> subtree of the " @@ -11221,23 +10304,23 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:821 ../en/ch10-hook.xml:1095 ../en/ch10-hook.xml:1308 +#: ../en/ch09-hook.xml:822 ../en/ch09-hook.xml:1089 ../en/ch09-hook.xml:1280 msgid "Testing and troubleshooting" msgstr "测试与问题处理" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:823 +#: ../en/ch09-hook.xml:824 msgid "" "If you want to test the <literal role=\"hg-ext\">acl</literal> hook, run it " "with Mercurial's debugging output enabled. Since you'll probably be running " "it on a server where it's not convenient (or sometimes possible) to pass in " "the <option role=\"hg-opt-global\">--debug</option> option, don't forget that " -"you can enable debugging output in your <filename role=\"special\"> /.hgrc</" +"you can enable debugging output in your <filename role=\"special\">~/.hgrc</" "filename>:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:833 +#: ../en/ch09-hook.xml:835 msgid "" "With this enabled, the <literal role=\"hg-ext\">acl</literal> hook will print " "enough information to let you figure out why it is allowing or forbidding " @@ -11245,13 +10328,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:842 +#: ../en/ch09-hook.xml:844 msgid "" "<literal role=\"hg-ext\">bugzilla</literal>&emdash;integration with Bugzilla" msgstr "<literal role=\"hg-ext\">bugzilla</literal>&emdash;与 Bugzilla 的集成" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:846 +#: ../en/ch09-hook.xml:848 msgid "" "The <literal role=\"hg-ext\">bugzilla</literal> extension adds a comment to a " "Bugzilla bug whenever it finds a reference to that bug ID in a commit " @@ -11260,14 +10343,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:853 +#: ../en/ch09-hook.xml:855 msgid "" "It adds a comment to the bug that looks like this (you can configure the " "contents of the comment&emdash;see below):" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:862 +#: ../en/ch09-hook.xml:864 msgid "" "The value of this hook is that it automates the process of updating a bug any " "time a changeset refers to it. If you configure the hook properly, it makes " @@ -11276,14 +10359,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:869 +#: ../en/ch09-hook.xml:871 msgid "" "You can use the code in this hook as a starting point for some more exotic " "Bugzilla integration recipes. Here are a few possibilities:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:874 +#: ../en/ch09-hook.xml:876 msgid "" "Require that every changeset pushed to the server have a valid bug ID in its " "commit comment. In this case, you'd want to configure the hook as a <literal " @@ -11292,7 +10375,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:882 +#: ../en/ch09-hook.xml:884 msgid "" "Allow incoming changesets to automatically modify the <emphasis>state</" "emphasis> of a bug, as well as simply adding a comment. For example, the " @@ -11302,20 +10385,23 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:892 +#: ../en/ch09-hook.xml:894 msgid "Configuring the <literal role=\"hook\">bugzilla</literal> hook" msgstr "配置 <literal role=\"hook\">bugzilla</literal> 钩子" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:895 -msgid "" -"You should configure this hook in your server's <filename role=\"special\"> /." -"hgrc</filename>\\ as an <literal role=\"hook\">incoming</literal> hook, for " +#: ../en/ch09-hook.xml:897 +#, fuzzy +msgid "" +"You should configure this hook in your server's <filename role=\"special\">~/." +"hgrc</filename> as an <literal role=\"hook\">incoming</literal> hook, for " "example as follows:" msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:903 +"选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal " +"role=\"rc-web\">web</literal> 条目" + +#. type: Content of: <book><chapter><sect1><sect2><sect3><para> +#: ../en/ch09-hook.xml:905 msgid "" "Because of the specialised nature of this hook, and because Bugzilla was not " "written with this kind of integration in mind, configuring this hook is a " @@ -11323,7 +10409,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:909 +#: ../en/ch09-hook.xml:911 msgid "" "Before you begin, you must install the MySQL bindings for Python on the host" "(s) where you'll be running the hook. If this is not available as a binary " @@ -11332,15 +10418,15 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:916 +#: ../en/ch09-hook.xml:918 msgid "" "Configuration information for this hook lives in the <literal role=\"rc-" -"bugzilla\">bugzilla</literal> section of your <filename role=\"special\"> /." +"bugzilla\">bugzilla</literal> section of your <filename role=\"special\">~/." "hgrc</filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:921 +#: ../en/ch09-hook.xml:923 msgid "" "<envar role=\"rc-item-bugzilla\">version</envar>: The version of Bugzilla " "installed on the server. The database schema that Bugzilla uses changes " @@ -11349,7 +10435,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:930 +#: ../en/ch09-hook.xml:932 msgid "" "<envar role=\"rc-item-bugzilla\">host</envar>: The hostname of the MySQL " "server that stores your Bugzilla data. The database must be configured to " @@ -11358,7 +10444,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:937 +#: ../en/ch09-hook.xml:939 msgid "" "<envar role=\"rc-item-bugzilla\">user</envar>: The username with which to " "connect to the MySQL server. The database must be configured to allow this " @@ -11369,16 +10455,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:948 +#: ../en/ch09-hook.xml:950 msgid "" "<envar role=\"rc-item-bugzilla\">password</envar>: The MySQL password for the " "user you configured above. This is stored as plain text, so you should make " -"sure that unauthorised users cannot read the <filename role=\"special\"> /." -"hgrc</filename>\\ file where you store this information." +"sure that unauthorised users cannot read the <filename role=\"special\">~/." +"hgrc</filename> file where you store this information." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:957 +#: ../en/ch09-hook.xml:959 msgid "" "<envar role=\"rc-item-bugzilla\">db</envar>: The name of the Bugzilla " "database on the MySQL server. The default value of this item is " @@ -11387,7 +10473,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:964 +#: ../en/ch09-hook.xml:966 msgid "" "<envar role=\"rc-item-bugzilla\">notify</envar>: If you want Bugzilla to send " "out a notification email to subscribers after this hook has added a comment " @@ -11398,7 +10484,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:977 +#: ../en/ch09-hook.xml:979 msgid "" "The Bugzilla <literal>processmail</literal> program expects to be given a bug " "ID (the hook replaces <quote><literal>%s</literal></quote> with the bug ID) " @@ -11409,12 +10495,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:992 +#: ../en/ch09-hook.xml:994 msgid "Mapping committer names to Bugzilla user names" msgstr "提交者的名称与 Bugzilla 用户名称的映射" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:994 +#: ../en/ch09-hook.xml:996 msgid "" "By default, the <literal role=\"hg-ext\">bugzilla</literal> hook tries to use " "the email address of a changeset's committer as the Bugzilla user name with " @@ -11424,14 +10510,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1003 +#: ../en/ch09-hook.xml:1005 msgid "" "Each item in the <literal role=\"rc-usermap\">usermap</literal> section " "contains an email address on the left, and a Bugzilla user name on the right." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1010 +#: ../en/ch09-hook.xml:1012 msgid "" "You can either keep the <literal role=\"rc-usermap\">usermap</literal> data " "in a normal <filename role=\"special\">~/.hgrc</filename>, or tell the " @@ -11440,32 +10526,32 @@ "store <filename>usermap</filename> data by itself in (for example) a user-" "modifiable repository. This makes it possible to let your users maintain " "their own <envar role=\"rc-item-bugzilla\">usermap</envar> entries. The main " -"<filename role=\"special\"> /.hgrc</filename>\\ file might look like this:" -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1026 +"<filename role=\"special\">~/.hgrc</filename> file might look like this:" +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><sect3><para> +#: ../en/ch09-hook.xml:1028 msgid "" "While the <filename>usermap</filename> file that it refers to might look like " "this:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:1035 +#: ../en/ch09-hook.xml:1036 msgid "Configuring the text that gets added to a bug" msgstr "配置增加到问题中的正文" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1037 +#: ../en/ch09-hook.xml:1038 msgid "" "You can configure the text that this hook adds as a comment; you specify it " -"in the form of a Mercurial template. Several <filename role=\"special\"> /." -"hgrc</filename>\\ entries (still in the <literal role=\"rc-bugzilla" -"\">bugzilla</literal> section) control this behaviour." +"in the form of a Mercurial template. Several <filename role=\"special\">~/." +"hgrc</filename> entries (still in the <literal role=\"rc-bugzilla\">bugzilla</" +"literal> section) control this behaviour." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1044 +#: ../en/ch09-hook.xml:1045 msgid "" "<literal>strip</literal>: The number of leading path elements to strip from a " "repository's path name to construct a partial path for a URL. For example, if " @@ -11479,7 +10565,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1058 +#: ../en/ch09-hook.xml:1059 msgid "" "<literal>template</literal>: The text of the template to use. In addition to " "the usual changeset-related variables, this template can use <literal>hgweb</" @@ -11489,25 +10575,25 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1068 +#: ../en/ch09-hook.xml:1069 msgid "" "In addition, you can add a <envar role=\"rc-item-web\">baseurl</envar> item " "to the <literal role=\"rc-web\">web</literal> section of your <filename role=" -"\"special\"> /.hgrc</filename>. The <literal role=\"hg-ext\">bugzilla</" +"\"special\">~/.hgrc</filename>. The <literal role=\"hg-ext\">bugzilla</" "literal> hook will make this available when expanding a template, as the base " "string to use when constructing a URL that will let users browse from a " "Bugzilla comment to view a changeset. Example:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1080 +#: ../en/ch09-hook.xml:1081 msgid "" "Here is an example set of <literal role=\"hg-ext\">bugzilla</literal> hook " "config information." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1097 +#: ../en/ch09-hook.xml:1091 msgid "" "The most common problems with configuring the <literal role=\"hg-ext" "\">bugzilla</literal> hook relate to running Bugzilla's " @@ -11516,7 +10602,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1103 +#: ../en/ch09-hook.xml:1097 msgid "" "Recall from section <xref linkend=\"sec.hook.bugzilla.config\"/> above that " "the user that runs the Mercurial process on the server is also the one that " @@ -11527,7 +10613,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1114 +#: ../en/ch09-hook.xml:1108 msgid "" "You can cause <filename>processmail</filename> to be run with the suitable " "user's identity using the <command>sudo</command> command. Here is an " @@ -11535,7 +10621,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1122 +#: ../en/ch09-hook.xml:1115 msgid "" "This allows the <literal>hg_user</literal> user to run a " "<filename>processmail-wrapper</filename> program under the identity of " @@ -11543,7 +10629,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1127 +#: ../en/ch09-hook.xml:1120 msgid "" "This indirection through a wrapper script is necessary, because " "<filename>processmail</filename> expects to be run with its current directory " @@ -11553,14 +10639,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1136 +#: ../en/ch09-hook.xml:1129 msgid "" "It doesn't seem to matter what email address you pass to " "<filename>processmail</filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1140 +#: ../en/ch09-hook.xml:1133 msgid "" "If your <literal role=\"rc-usermap\">usermap</literal> is not set up " "correctly, users will see an error message from the <literal role=\"hg-ext" @@ -11569,7 +10655,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1148 +#: ../en/ch09-hook.xml:1140 msgid "" "What this means is that the committer's address, <literal>john.q." "public@example.com</literal>, is not a valid Bugzilla user name, nor does it " @@ -11578,13 +10664,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1158 +#: ../en/ch09-hook.xml:1150 msgid "" "<literal role=\"hg-ext\">notify</literal>&emdash;send email notifications" msgstr "<literal role=\"hg-ext\">notify</literal>&emdash;邮件通知" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1161 +#: ../en/ch09-hook.xml:1153 msgid "" "Although Mercurial's built-in web server provides RSS feeds of changes in " "every repository, many people prefer to receive change notifications via " @@ -11594,7 +10680,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1169 +#: ../en/ch09-hook.xml:1161 msgid "" "As with the <literal role=\"hg-ext\">bugzilla</literal> hook, the <literal " "role=\"hg-ext\">notify</literal> hook is template-driven, so you can " @@ -11602,7 +10688,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1175 +#: ../en/ch09-hook.xml:1167 msgid "" "By default, the <literal role=\"hg-ext\">notify</literal> hook includes a " "diff of every changeset that it sends out; you can limit the size of the " @@ -11611,12 +10697,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:1183 +#: ../en/ch09-hook.xml:1175 msgid "Configuring the <literal role=\"hg-ext\">notify</literal> hook" msgstr "配置 <literal role=\"hg-ext\">notify</literal> 钩子" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1186 +#: ../en/ch09-hook.xml:1178 msgid "" "You can set up the <literal role=\"hg-ext\">notify</literal> hook to send one " "email message per incoming changeset, or one per incoming group of changesets " @@ -11624,15 +10710,15 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1197 +#: ../en/ch09-hook.xml:1190 msgid "" "Configuration information for this hook lives in the <literal role=\"rc-notify" -"\">notify</literal> section of a <filename role=\"special\"> /.hgrc</filename>" -"\\ file." +"\">notify</literal> section of a <filename role=\"special\">~/.hgrc</" +"filename> file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1202 +#: ../en/ch09-hook.xml:1195 msgid "" "<envar role=\"rc-item-notify\">test</envar>: By default, this hook does not " "send out email at all; instead, it prints the message that it " @@ -11644,17 +10730,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1214 +#: ../en/ch09-hook.xml:1207 msgid "" "<envar role=\"rc-item-notify\">config</envar>: The path to a configuration " "file that contains subscription information. This is kept separate from the " -"main <filename role=\"special\"> /.hgrc</filename>\\ so that you can maintain " +"main <filename role=\"special\">~/.hgrc</filename> so that you can maintain " "it in a repository of its own. People can then clone that repository, update " "their subscriptions, and push the changes back to your server." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1223 +#: ../en/ch09-hook.xml:1216 msgid "" "<envar role=\"rc-item-notify\">strip</envar>: The number of leading path " "separator characters to strip from a repository's path, when deciding whether " @@ -11669,7 +10755,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1240 +#: ../en/ch09-hook.xml:1233 msgid "" "<envar role=\"rc-item-notify\">template</envar>: The template text to use " "when sending messages. This specifies both the contents of the message " @@ -11677,7 +10763,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1246 +#: ../en/ch09-hook.xml:1239 msgid "" "<envar role=\"rc-item-notify\">maxdiff</envar>: The maximum number of lines " "of diff data to append to the end of a message. If a diff is longer than " @@ -11686,7 +10772,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1255 +#: ../en/ch09-hook.xml:1248 msgid "" "<envar role=\"rc-item-notify\">sources</envar>: A list of sources of " "changesets to consider. This lets you limit <literal role=\"hg-ext\">notify</" @@ -11696,7 +10782,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1267 +#: ../en/ch09-hook.xml:1260 msgid "" "If you set the <envar role=\"rc-item-web\">baseurl</envar> item in the " "<literal role=\"rc-web\">web</literal> section, you can use it in a template; " @@ -11704,19 +10790,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1273 +#: ../en/ch09-hook.xml:1266 msgid "" "Here is an example set of <literal role=\"hg-ext\">notify</literal> " "configuration information." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1289 +#: ../en/ch09-hook.xml:1272 msgid "This will produce a message that looks like the following:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1310 +#: ../en/ch09-hook.xml:1282 msgid "" "Do not forget that by default, the <literal role=\"hg-ext\">notify</literal> " "extension <emphasis>will not send any mail</emphasis> until you explicitly " @@ -11726,22 +10812,22 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:1322 +#: ../en/ch09-hook.xml:1294 msgid "Information for writers of hooks" msgstr "编写钩子的信息" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1325 +#: ../en/ch09-hook.xml:1297 msgid "In-process hook execution" msgstr "进程内钩子的执行" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1327 +#: ../en/ch09-hook.xml:1299 msgid "An in-process hook is called with arguments of the following form:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1333 +#: ../en/ch09-hook.xml:1303 msgid "" "The <literal>ui</literal> parameter is a <literal role=\"py-mod-mercurial.ui" "\">ui</literal> object. The <literal>repo</literal> parameter is a <literal " @@ -11751,7 +10837,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1342 +#: ../en/ch09-hook.xml:1312 msgid "" "If a parameter is named <literal>node</literal> or <literal>parentN</" "literal>, it will contain a hexadecimal changeset ID. The empty string is " @@ -11760,21 +10846,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1349 +#: ../en/ch09-hook.xml:1319 msgid "" "If a parameter is named <literal>url</literal>, it will contain the URL of a " "remote repository, if that can be determined." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1354 +#: ../en/ch09-hook.xml:1324 msgid "" "Boolean-valued parameters are represented as Python <literal>bool</literal> " "objects." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1359 +#: ../en/ch09-hook.xml:1329 msgid "" "An in-process hook is called without a change to the process's working " "directory (unlike external hooks, which are run in the root of the " @@ -11783,7 +10869,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1366 +#: ../en/ch09-hook.xml:1336 msgid "" "If a hook returns a boolean <quote>false</quote> value, it is considered to " "have succeeded. If it returns a boolean <quote>true</quote> value or raises " @@ -11792,20 +10878,20 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1373 +#: ../en/ch09-hook.xml:1343 msgid "" "Note that changeset IDs are passed into Python hooks as hexadecimal strings, " "not the binary hashes that Mercurial's APIs normally use. To convert a hash " -"from hex to binary, use the \\pymodfunc{mercurial.node}{bin} function." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1381 +"from hex to binary, use the <literal>bin</literal> function." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><title> +#: ../en/ch09-hook.xml:1351 msgid "External hook execution" msgstr "外部钩子的执行" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1383 +#: ../en/ch09-hook.xml:1353 msgid "" "An external hook is passed to the shell of the user running Mercurial. " "Features of that shell, such as variable substitution and command " @@ -11815,7 +10901,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1391 +#: ../en/ch09-hook.xml:1361 msgid "" "Hook parameters are passed to the hook as environment variables. Each " "environment variable's name is converted in upper case and prefixed with the " @@ -11826,7 +10912,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1400 +#: ../en/ch09-hook.xml:1370 msgid "" "A boolean parameter is represented as the string <quote><literal>1</literal></" "quote> for <quote>true</quote>, <quote><literal>0</literal></quote> for " @@ -11839,19 +10925,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1412 +#: ../en/ch09-hook.xml:1382 msgid "" "If a hook exits with a status of zero, it is considered to have succeeded. " "If it exits with a non-zero status, it is considered to have failed." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1419 +#: ../en/ch09-hook.xml:1389 msgid "Finding out where changesets come from" msgstr "检查修改集来自何处" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1421 +#: ../en/ch09-hook.xml:1391 msgid "" "A hook that involves the transfer of changesets between a local repository " "and another may be able to find out information about the <quote>far side</" @@ -11861,12 +10947,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:1430 +#: ../en/ch09-hook.xml:1400 msgid "Sources of changesets" msgstr "修改集的来源" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1432 +#: ../en/ch09-hook.xml:1402 msgid "" "Mercurial will tell a hook what means are, or were, used to transfer " "changesets between repositories. This is provided by Mercurial in a Python " @@ -11875,40 +10961,40 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1440 +#: ../en/ch09-hook.xml:1410 msgid "" "<literal>serve</literal>: Changesets are transferred to or from a remote " "repository over http or ssh." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1445 +#: ../en/ch09-hook.xml:1415 msgid "" "<literal>pull</literal>: Changesets are being transferred via a pull from one " "repository into another." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1450 +#: ../en/ch09-hook.xml:1420 msgid "" "<literal>push</literal>: Changesets are being transferred via a push from one " "repository into another." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1455 +#: ../en/ch09-hook.xml:1425 msgid "" "<literal>bundle</literal>: Changesets are being transferred to or from a " "bundle." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><title> -#: ../en/ch10-hook.xml:1462 +#: ../en/ch09-hook.xml:1432 msgid "Where changes are going&emdash;remote repository URLs" msgstr "修改集要到哪里&emdash;远程版本库的地址" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1465 +#: ../en/ch09-hook.xml:1435 msgid "" "When possible, Mercurial will tell a hook the location of the <quote>far " "side</quote> of an activity that transfers changeset data between " @@ -11918,7 +11004,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><para> -#: ../en/ch10-hook.xml:1473 +#: ../en/ch09-hook.xml:1443 msgid "" "This information is not always known. If a hook is invoked in a repository " "that is being served via http or ssh, Mercurial cannot tell where the remote " @@ -11927,14 +11013,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1480 +#: ../en/ch09-hook.xml:1450 msgid "" "<literal>remote:ssh:1.2.3.4</literal>&emdash;remote ssh client, at the IP " "address <literal>1.2.3.4</literal>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1485 +#: ../en/ch09-hook.xml:1455 msgid "" "<literal>remote:http:1.2.3.4</literal>&emdash;remote http client, at the IP " "address <literal>1.2.3.4</literal>. If the client is using SSL, this will be " @@ -11942,24 +11028,24 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1492 +#: ../en/ch09-hook.xml:1462 msgid "Empty&emdash;no information could be discovered about the remote client." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch10-hook.xml:1501 +#: ../en/ch09-hook.xml:1471 msgid "Hook reference" msgstr "钩子参考" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1504 +#: ../en/ch09-hook.xml:1474 msgid "" "<literal role=\"hook\">changegroup</literal>&emdash;after remote changesets " "added" msgstr "<literal role=\"hook\">changegroup</literal>&emdash;增加远程修改集之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1507 +#: ../en/ch09-hook.xml:1477 msgid "" "This hook is run after a group of pre-existing changesets has been added to " "the repository, for example via a <command role=\"hg-cmd\">hg pull</command> " @@ -11970,7 +11056,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1517 +#: ../en/ch09-hook.xml:1487 msgid "" "Some possible uses for this hook include kicking off an automated build or " "test of the added changesets, updating a bug database, or notifying " @@ -11978,42 +11064,41 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1523 ../en/ch10-hook.xml:1564 ../en/ch10-hook.xml:1607 -#: ../en/ch10-hook.xml:1649 ../en/ch10-hook.xml:1704 ../en/ch10-hook.xml:1744 -#: ../en/ch10-hook.xml:1780 ../en/ch10-hook.xml:1815 ../en/ch10-hook.xml:1877 -#: ../en/ch10-hook.xml:1935 ../en/ch10-hook.xml:1969 ../en/ch10-hook.xml:1997 +#: ../en/ch09-hook.xml:1493 ../en/ch09-hook.xml:1533 ../en/ch09-hook.xml:1576 +#: ../en/ch09-hook.xml:1618 ../en/ch09-hook.xml:1673 ../en/ch09-hook.xml:1713 +#: ../en/ch09-hook.xml:1749 ../en/ch09-hook.xml:1784 ../en/ch09-hook.xml:1846 +#: ../en/ch09-hook.xml:1904 ../en/ch09-hook.xml:1938 ../en/ch09-hook.xml:1966 msgid "Parameters to this hook:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1526 ../en/ch10-hook.xml:1880 +#: ../en/ch09-hook.xml:1496 ../en/ch09-hook.xml:1849 msgid "" "<literal>node</literal>: A changeset ID. The changeset ID of the first " "changeset in the group that was added. All changesets between this and " -"\\index{tags!<literal>tip</literal>}<literal>tip</literal>, inclusive, were " -"added by a single <command role=\"hg-cmd\">hg pull</command>, <command role=" -"\"hg-cmd\">hg push</command> or <command role=\"hg-cmd\">hg unbundle</" -"command>." -msgstr "" - -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1536 ../en/ch10-hook.xml:1614 ../en/ch10-hook.xml:1707 -#: ../en/ch10-hook.xml:1890 +"<literal role=\"tag\">tip</literal>, inclusive, were added by a single " +"<command role=\"hg-cmd\">hg pull</command>, <command role=\"hg-cmd\">hg push</" +"command> or <command role=\"hg-cmd\">hg unbundle</command>." +msgstr "" + +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> +#: ../en/ch09-hook.xml:1505 ../en/ch09-hook.xml:1583 ../en/ch09-hook.xml:1676 +#: ../en/ch09-hook.xml:1859 msgid "" "<literal>source</literal>: A string. The source of these changes. See " "section <xref linkend=\"sec.hook.sources\"/> for details." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1541 ../en/ch10-hook.xml:1619 ../en/ch10-hook.xml:1670 -#: ../en/ch10-hook.xml:1712 ../en/ch10-hook.xml:1794 ../en/ch10-hook.xml:1895 +#: ../en/ch09-hook.xml:1510 ../en/ch09-hook.xml:1588 ../en/ch09-hook.xml:1639 +#: ../en/ch09-hook.xml:1681 ../en/ch09-hook.xml:1763 ../en/ch09-hook.xml:1864 msgid "" "<literal>url</literal>: A URL. The location of the remote repository, if " "known. See section <xref linkend=\"sec.hook.url\"/> for more information." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1548 +#: ../en/ch09-hook.xml:1517 msgid "" "See also: <literal role=\"hook\">incoming</literal> (section <xref linkend=" "\"sec.hook.incoming\"/>), <literal role=\"hook\">prechangegroup</literal> " @@ -12023,40 +11108,40 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1558 +#: ../en/ch09-hook.xml:1527 msgid "" "<literal role=\"hook\">commit</literal>&emdash;after a new changeset is " "created" msgstr "<literal role=\"hook\">commit</literal>&emdash;创建新修改集之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1561 +#: ../en/ch09-hook.xml:1530 msgid "This hook is run after a new changeset has been created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1567 ../en/ch10-hook.xml:1938 +#: ../en/ch09-hook.xml:1536 ../en/ch09-hook.xml:1907 msgid "" "<literal>node</literal>: A changeset ID. The changeset ID of the newly " "committed changeset." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1571 ../en/ch10-hook.xml:1942 +#: ../en/ch09-hook.xml:1540 ../en/ch09-hook.xml:1911 msgid "" "<literal>parent1</literal>: A changeset ID. The changeset ID of the first " "parent of the newly committed changeset." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1576 ../en/ch10-hook.xml:1947 +#: ../en/ch09-hook.xml:1545 ../en/ch09-hook.xml:1916 msgid "" "<literal>parent2</literal>: A changeset ID. The changeset ID of the second " "parent of the newly committed changeset." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1582 +#: ../en/ch09-hook.xml:1551 msgid "" "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend=" "\"sec.hook.precommit\"/>), <literal role=\"hook\">pretxncommit</literal> " @@ -12064,14 +11149,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1590 +#: ../en/ch09-hook.xml:1559 msgid "" "<literal role=\"hook\">incoming</literal>&emdash;after one remote changeset " "is added" msgstr "<literal role=\"hook\">incoming</literal>&emdash;增加远程修改集之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1593 +#: ../en/ch09-hook.xml:1562 msgid "" "This hook is run after a pre-existing changeset has been added to the " "repository, for example via a <command role=\"hg-cmd\">hg push</command>. If " @@ -12080,7 +11165,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1600 +#: ../en/ch09-hook.xml:1569 msgid "" "You can use this hook for the same purposes as the <literal role=\"hook" "\">changegroup</literal> hook (section <xref linkend=\"sec.hook.changegroup\"/" @@ -12089,13 +11174,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1610 +#: ../en/ch09-hook.xml:1579 msgid "" "<literal>node</literal>: A changeset ID. The ID of the newly added changeset." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1626 +#: ../en/ch09-hook.xml:1595 msgid "" "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" "\"sec.hook.changegroup\"/>) <literal role=\"hook\">prechangegroup</literal> " @@ -12105,14 +11190,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1636 +#: ../en/ch09-hook.xml:1605 msgid "" "<literal role=\"hook\">outgoing</literal>&emdash;after changesets are " "propagated" msgstr "<literal role=\"hook\">outgoing</literal>&emdash;传播修改集之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1639 +#: ../en/ch09-hook.xml:1608 msgid "" "This hook is run after a group of changesets has been propagated out of this " "repository, for example by a <command role=\"hg-cmd\">hg push</command> or " @@ -12120,21 +11205,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1645 +#: ../en/ch09-hook.xml:1614 msgid "" "One possible use for this hook is to notify administrators that changes have " "been pulled." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1652 +#: ../en/ch09-hook.xml:1621 msgid "" "<literal>node</literal>: A changeset ID. The changeset ID of the first " "changeset of the group that was sent." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1657 +#: ../en/ch09-hook.xml:1626 msgid "" "<literal>source</literal>: A string. The source of the of the operation (see " "section <xref linkend=\"sec.hook.sources\"/>). If a remote client pulled " @@ -12146,14 +11231,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1677 +#: ../en/ch09-hook.xml:1646 msgid "" "See also: <literal role=\"hook\">preoutgoing</literal> (section <xref linkend=" "\"sec.hook.preoutgoing\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1683 +#: ../en/ch09-hook.xml:1652 msgid "" "<literal role=\"hook\">prechangegroup</literal>&emdash;before starting to add " "remote changesets" @@ -12161,14 +11246,14 @@ "<literal role=\"hook\">prechangegroup</literal>&emdash;增加远程修改集之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1687 +#: ../en/ch09-hook.xml:1656 msgid "" "This controlling hook is run before Mercurial begins to add a group of " "changesets from another repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1691 +#: ../en/ch09-hook.xml:1660 msgid "" "This hook does not have any information about the changesets to be added, " "because it is run before transmission of those changesets is allowed to " @@ -12176,7 +11261,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1697 +#: ../en/ch09-hook.xml:1666 msgid "" "One use for this hook is to prevent external changes from being added to a " "repository. For example, you could use this to <quote>freeze</quote> a " @@ -12185,7 +11270,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1719 +#: ../en/ch09-hook.xml:1688 msgid "" "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> " @@ -12195,14 +11280,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1729 +#: ../en/ch09-hook.xml:1698 msgid "" "<literal role=\"hook\">precommit</literal>&emdash;before starting to commit a " "changeset" msgstr "<literal role=\"hook\">precommit</literal>&emdash;提交修改集之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1732 +#: ../en/ch09-hook.xml:1701 msgid "" "This hook is run before Mercurial begins to commit a new changeset. It is run " "before Mercurial has any of the metadata for the commit, such as the files to " @@ -12210,7 +11295,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1738 +#: ../en/ch09-hook.xml:1707 msgid "" "One use for this hook is to disable the ability to commit new changesets, " "while still allowing incoming changesets. Another is to run a build or test, " @@ -12218,28 +11303,28 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1747 +#: ../en/ch09-hook.xml:1716 msgid "" "<literal>parent1</literal>: A changeset ID. The changeset ID of the first " "parent of the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1752 +#: ../en/ch09-hook.xml:1721 msgid "" "<literal>parent2</literal>: A changeset ID. The changeset ID of the second " "parent of the working directory." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1757 +#: ../en/ch09-hook.xml:1726 msgid "" "If the commit proceeds, the parents of the working directory will become the " "parents of the new changeset." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1761 +#: ../en/ch09-hook.xml:1730 msgid "" "See also: <literal role=\"hook\">commit</literal> (section <xref linkend=" "\"sec.hook.commit\"/>), <literal role=\"hook\">pretxncommit</literal> " @@ -12247,28 +11332,28 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1769 +#: ../en/ch09-hook.xml:1738 msgid "" "<literal role=\"hook\">preoutgoing</literal>&emdash;before starting to " "propagate changesets" msgstr "<literal role=\"hook\">preoutgoing</literal>&emdash;传播修改集之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1772 +#: ../en/ch09-hook.xml:1741 msgid "" "This hook is invoked before Mercurial knows the identities of the changesets " "to be transmitted." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1776 +#: ../en/ch09-hook.xml:1745 msgid "" "One use for this hook is to prevent changes from being transmitted to another " "repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1783 +#: ../en/ch09-hook.xml:1752 msgid "" "<literal>source</literal>: A string. The source of the operation that is " "attempting to obtain changes from this repository (see section <xref linkend=" @@ -12279,27 +11364,27 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1801 +#: ../en/ch09-hook.xml:1770 msgid "" "See also: <literal role=\"hook\">outgoing</literal> (section <xref linkend=" "\"sec.hook.outgoing\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1807 +#: ../en/ch09-hook.xml:1776 msgid "" "<literal role=\"hook\">pretag</literal>&emdash;before tagging a changeset" msgstr "<literal role=\"hook\">pretag</literal>&emdash;创建标签之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1810 +#: ../en/ch09-hook.xml:1779 msgid "" "This controlling hook is run before a tag is created. If the hook succeeds, " "creation of the tag proceeds. If the hook fails, the tag is not created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1818 +#: ../en/ch09-hook.xml:1787 msgid "" "<literal>local</literal>: A boolean. Whether the tag is local to this " "repository instance (i.e. stored in <filename role=\"special\">.hg/localtags</" @@ -12308,19 +11393,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1825 +#: ../en/ch09-hook.xml:1794 msgid "" "<literal>node</literal>: A changeset ID. The ID of the changeset to be " "tagged." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1829 +#: ../en/ch09-hook.xml:1798 msgid "<literal>tag</literal>: A string. The name of the tag to be created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1834 +#: ../en/ch09-hook.xml:1803 msgid "" "If the tag to be created is revision-controlled, the <literal role=\"hook" "\">precommit</literal> and <literal role=\"hook\">pretxncommit</literal> " @@ -12329,14 +11414,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1841 +#: ../en/ch09-hook.xml:1810 msgid "" "See also: <literal role=\"hook\">tag</literal> (section <xref linkend=\"sec." "hook.tag\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1846 +#: ../en/ch09-hook.xml:1815 msgid "" "<literal role=\"hook\">pretxnchangegroup</literal>&emdash;before completing " "addition of remote changesets" @@ -12345,7 +11430,7 @@ "前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1850 +#: ../en/ch09-hook.xml:1819 msgid "" "This controlling hook is run before a transaction&emdash;that manages the " "addition of a group of new changesets from outside the repository&emdash;" @@ -12355,7 +11440,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1859 +#: ../en/ch09-hook.xml:1828 msgid "" "This hook can access the metadata associated with the almost-added " "changesets, but it should not do anything permanent with this data. It must " @@ -12363,7 +11448,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1865 +#: ../en/ch09-hook.xml:1834 msgid "" "While this hook is running, if other Mercurial processes access this " "repository, they will be able to see the almost-added changesets as if they " @@ -12372,7 +11457,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1872 +#: ../en/ch09-hook.xml:1841 msgid "" "This hook can be used to automatically vet a group of changesets. If the " "hook fails, all of the changesets are <quote>rejected</quote> when the " @@ -12380,7 +11465,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1902 +#: ../en/ch09-hook.xml:1871 msgid "" "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> " @@ -12390,14 +11475,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1912 +#: ../en/ch09-hook.xml:1881 msgid "" "<literal role=\"hook\">pretxncommit</literal>&emdash;before completing commit " "of new changeset" msgstr "<literal role=\"hook\">pretxncommit</literal>&emdash;完成提交之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1915 +#: ../en/ch09-hook.xml:1884 msgid "" "This controlling hook is run before a transaction&emdash;that manages a new " "commit&emdash;completes. If the hook succeeds, the transaction completes and " @@ -12406,7 +11491,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1923 +#: ../en/ch09-hook.xml:1892 msgid "" "This hook can access the metadata associated with the almost-new changeset, " "but it should not do anything permanent with this data. It must also not " @@ -12414,7 +11499,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1929 +#: ../en/ch09-hook.xml:1898 msgid "" "While this hook is running, if other Mercurial processes access this " "repository, they will be able to see the almost-new changeset as if it is " @@ -12423,14 +11508,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1953 +#: ../en/ch09-hook.xml:1922 msgid "" "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend=" "\"sec.hook.precommit\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1959 +#: ../en/ch09-hook.xml:1928 msgid "" "<literal role=\"hook\">preupdate</literal>&emdash;before updating or merging " "working directory" @@ -12438,7 +11523,7 @@ "<literal role=\"hook\">preupdate</literal>&emdash;更新或合并工作目录之前" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1962 +#: ../en/ch09-hook.xml:1931 msgid "" "This controlling hook is run before an update or merge of the working " "directory begins. It is run only if Mercurial's normal pre-update checks " @@ -12447,7 +11532,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1972 +#: ../en/ch09-hook.xml:1941 msgid "" "<literal>parent1</literal>: A changeset ID. The ID of the parent that the " "working directory is to be updated to. If the working directory is being " @@ -12455,7 +11540,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:1978 +#: ../en/ch09-hook.xml:1947 msgid "" "<literal>parent2</literal>: A changeset ID. Only set if the working " "directory is being merged. The ID of the revision that the working directory " @@ -12463,24 +11548,24 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1985 +#: ../en/ch09-hook.xml:1954 msgid "" "See also: <literal role=\"hook\">update</literal> (section <xref linkend=" "\"sec.hook.update\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:1991 +#: ../en/ch09-hook.xml:1960 msgid "<literal role=\"hook\">tag</literal>&emdash;after tagging a changeset" msgstr "<literal role=\"hook\">tag</literal>&emdash;创建标签之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:1994 +#: ../en/ch09-hook.xml:1963 msgid "This hook is run after a tag has been created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2000 +#: ../en/ch09-hook.xml:1969 msgid "" "<literal>local</literal>: A boolean. Whether the new tag is local to this " "repository instance (i.e. stored in <filename role=\"special\">.hg/" @@ -12489,19 +11574,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2008 +#: ../en/ch09-hook.xml:1977 msgid "" "<literal>node</literal>: A changeset ID. The ID of the changeset that was " "tagged." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2012 +#: ../en/ch09-hook.xml:1981 msgid "<literal>tag</literal>: A string. The name of the tag that was created." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:2017 +#: ../en/ch09-hook.xml:1986 msgid "" "If the created tag is revision-controlled, the <literal role=\"hook\">commit</" "literal> hook (section <xref linkend=\"sec.hook.commit\"/>) is run before " @@ -12509,21 +11594,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:2022 +#: ../en/ch09-hook.xml:1991 msgid "" "See also: <literal role=\"hook\">pretag</literal> (section <xref linkend=" "\"sec.hook.pretag\"/>)" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch10-hook.xml:2028 +#: ../en/ch09-hook.xml:1997 msgid "" "<literal role=\"hook\">update</literal>&emdash;after updating or merging " "working directory" msgstr "<literal role=\"hook\">update</literal>&emdash;更新或合并工作目录之后" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:2031 +#: ../en/ch09-hook.xml:2000 msgid "" "This hook is run after an update or merge of the working directory " "completes. Since a merge can fail (if the external <command>hgmerge</" @@ -12532,14 +11617,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2039 +#: ../en/ch09-hook.xml:2008 msgid "" "<literal>error</literal>: A boolean. Indicates whether the update or merge " "completed successfully." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2044 +#: ../en/ch09-hook.xml:2013 msgid "" "<literal>parent1</literal>: A changeset ID. The ID of the parent that the " "working directory was updated to. If the working directory was merged, it " @@ -12547,7 +11632,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch10-hook.xml:2050 +#: ../en/ch09-hook.xml:2019 msgid "" "<literal>parent2</literal>: A changeset ID. Only set if the working " "directory was merged. The ID of the revision that the working directory was " @@ -12555,19 +11640,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch10-hook.xml:2056 +#: ../en/ch09-hook.xml:2025 msgid "" "See also: <literal role=\"hook\">preupdate</literal> (section <xref linkend=" "\"sec.hook.preupdate\"/>)" msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch11-template.xml:5 +#: ../en/ch10-template.xml:5 msgid "Customising the output of Mercurial" msgstr "定制 Mercurial 的输出" #. type: Content of: <book><chapter><para> -#: ../en/ch11-template.xml:7 +#: ../en/ch10-template.xml:7 msgid "" "Mercurial provides a powerful mechanism to let you control how it displays " "information. The mechanism is based on templates. You can use templates to " @@ -12576,12 +11661,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:14 +#: ../en/ch10-template.xml:14 msgid "Using precanned output styles" msgstr "使用预定义的输出样式" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:16 +#: ../en/ch10-template.xml:16 msgid "" "Packaged with Mercurial are some output styles that you can use immediately. " "A style is simply a precanned template that someone wrote and installed " @@ -12589,14 +11674,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:21 +#: ../en/ch10-template.xml:21 msgid "" "Before we take a look at Mercurial's bundled styles, let's review its normal " "output." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:26 +#: ../en/ch10-template.xml:26 msgid "" "This is somewhat informative, but it takes up a lot of space&emdash;five " "lines of output per changeset. The <literal>compact</literal> style reduces " @@ -12604,7 +11689,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:33 +#: ../en/ch10-template.xml:33 msgid "" "The <literal>changelog</literal> style hints at the expressive power of " "Mercurial's templating engine. This style attempts to follow the GNU " @@ -12612,27 +11697,27 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:40 +#: ../en/ch10-template.xml:40 msgid "" "You will not be shocked to learn that Mercurial's default output style is " "named <literal>default</literal>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:44 +#: ../en/ch10-template.xml:44 msgid "Setting a default style" msgstr "设置默认样式" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:46 +#: ../en/ch10-template.xml:46 msgid "" "You can modify the output style that Mercurial will use for every command by " -"editing your <filename role=\"special\"> /.hgrc</filename>\\ file, naming the " +"editing your <filename role=\"special\">~/.hgrc</filename> file, naming the " "style you would prefer to use." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:53 +#: ../en/ch10-template.xml:54 msgid "" "If you write a style of your own, you can use it by either providing the path " "to your style file, or copying your style file into a location where " @@ -12641,12 +11726,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:62 +#: ../en/ch10-template.xml:63 msgid "Commands that support styles and templates" msgstr "支持样式和模版的命令" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:64 +#: ../en/ch10-template.xml:65 msgid "" "All of Mercurial's <quote><literal>log</literal>-like</quote> commands let " "you use styles and templates: <command role=\"hg-cmd\">hg incoming</command>, " @@ -12655,7 +11740,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:71 +#: ../en/ch10-template.xml:72 msgid "" "As I write this manual, these are so far the only commands that support " "styles and templates. Since these are the most important commands that need " @@ -12664,12 +11749,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:79 +#: ../en/ch10-template.xml:80 msgid "The basics of templating" msgstr "模版基础" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:81 +#: ../en/ch10-template.xml:82 msgid "" "At its simplest, a Mercurial template is a piece of text. Some of the text " "never changes, while other parts are <emphasis>expanded</emphasis>, or " @@ -12677,20 +11762,20 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:86 +#: ../en/ch10-template.xml:87 msgid "" "Before we continue, let's look again at a simple example of Mercurial's " "normal output." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:91 +#: ../en/ch10-template.xml:92 msgid "" "Now, let's run the same command, but using a template to change its output." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:96 +#: ../en/ch10-template.xml:97 msgid "" "The example above illustrates the simplest possible template; it's just a " "piece of static text, printed once for each changeset. The <option role=\"hg-" @@ -12700,7 +11785,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:104 +#: ../en/ch10-template.xml:105 msgid "" "Notice that the template string above ends with the text <quote><literal>\\n</" "literal></quote>. This is an <emphasis>escape sequence</emphasis>, telling " @@ -12710,14 +11795,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:112 +#: ../en/ch10-template.xml:113 msgid "" "A template that prints a fixed string of text all the time isn't very useful; " "let's try something a bit more complex." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:118 +#: ../en/ch10-template.xml:119 msgid "" "As you can see, the string <quote><literal>{desc}</literal></quote> in the " "template has been replaced in the output with the description of each " @@ -12729,25 +11814,25 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:131 +#: ../en/ch10-template.xml:132 msgid "Common template keywords" msgstr "模版关键字" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:133 +#: ../en/ch10-template.xml:134 msgid "" "You can start writing simple templates immediately using the keywords below." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:137 +#: ../en/ch10-template.xml:138 msgid "" "<literal role=\"template-keyword\">author</literal>: String. The unmodified " "author of the changeset." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:141 +#: ../en/ch10-template.xml:142 msgid "" "<literal role=\"template-keyword\">branches</literal>: String. The name of " "the branch on which the changeset was committed. Will be empty if the branch " @@ -12755,7 +11840,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:147 +#: ../en/ch10-template.xml:148 msgid "" "<literal role=\"template-keyword\">date</literal>: Date information. The " "date when the changeset was committed. This is <emphasis>not</emphasis> " @@ -12767,70 +11852,70 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:158 +#: ../en/ch10-template.xml:159 msgid "" "<literal role=\"template-keyword\">desc</literal>: String. The text of the " "changeset description." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:161 +#: ../en/ch10-template.xml:162 msgid "" "<literal role=\"template-keyword\">files</literal>: List of strings. All " "files modified, added, or removed by this changeset." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:166 +#: ../en/ch10-template.xml:167 msgid "" "<literal role=\"template-keyword\">file_adds</literal>: List of strings. " "Files added by this changeset." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:170 +#: ../en/ch10-template.xml:171 msgid "" "<literal role=\"template-keyword\">file_dels</literal>: List of strings. " "Files removed by this changeset." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:174 +#: ../en/ch10-template.xml:175 msgid "" "<literal role=\"template-keyword\">node</literal>: String. The changeset " "identification hash, as a 40-character hexadecimal string." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:178 +#: ../en/ch10-template.xml:179 msgid "" "<literal role=\"template-keyword\">parents</literal>: List of strings. The " "parents of the changeset." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:182 +#: ../en/ch10-template.xml:183 msgid "" "<literal role=\"template-keyword\">rev</literal>: Integer. The repository-" "local changeset revision number." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:186 +#: ../en/ch10-template.xml:187 msgid "" "<literal role=\"template-keyword\">tags</literal>: List of strings. Any tags " "associated with the changeset." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:191 +#: ../en/ch10-template.xml:192 msgid "" "A few simple experiments will show us what to expect when we use these " "keywords; you can see the results below." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:196 +#: ../en/ch10-template.xml:197 msgid "" "As we noted above, the date keyword does not produce human-readable output, " "so we must treat it specially. This involves using a <emphasis>filter</" @@ -12839,12 +11924,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:206 +#: ../en/ch10-template.xml:207 msgid "Escape sequences" msgstr "转义序列" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:208 +#: ../en/ch10-template.xml:209 msgid "" "Mercurial's templating engine recognises the most commonly used escape " "sequences in strings. When it sees a backslash (<quote><literal>\\</" @@ -12853,48 +11938,48 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:215 -msgid "" -"<literal>\\textbackslash\\textbackslash</literal>: Backslash, <quote><literal>" -"\\</literal></quote>, ASCII 134." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:219 -msgid "<literal>\\textbackslash n</literal>: Newline, ASCII 12." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:222 -msgid "<literal>\\textbackslash r</literal>: Carriage return, ASCII 15." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:225 -msgid "<literal>\\textbackslash t</literal>: Tab, ASCII 11." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:228 -msgid "<literal>\\textbackslash v</literal>: Vertical tab, ASCII 13." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:231 -msgid "" -"<literal>\\textbackslash {</literal>: Open curly brace, <quote><literal>{</" -"literal></quote>, ASCII 173." -msgstr "" - -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:235 -msgid "" -"<literal>\\textbackslash }</literal>: Close curly brace, <quote><literal>}</" -"literal></quote>, ASCII 175." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:240 +#: ../en/ch10-template.xml:216 +msgid "" +"<literal>\\</literal>: Backslash, <quote><literal>\\</literal></quote>, ASCII " +"134." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:220 +msgid "<literal>\\n</literal>: Newline, ASCII 12." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:223 +msgid "<literal>\\r</literal>: Carriage return, ASCII 15." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:226 +msgid "<literal>\\t</literal>: Tab, ASCII 11." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:229 +msgid "<literal>\\v</literal>: Vertical tab, ASCII 13." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:232 +msgid "" +"<literal>{</literal>: Open curly brace, <quote><literal>{</literal></quote>, " +"ASCII 173." +msgstr "" + +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> +#: ../en/ch10-template.xml:236 +msgid "" +"<literal>}</literal>: Close curly brace, <quote><literal>}</literal></quote>, " +"ASCII 175." +msgstr "" + +#. type: Content of: <book><chapter><sect1><para> +#: ../en/ch10-template.xml:241 msgid "" "As indicated above, if you want the expansion of a template to contain a " "literal <quote><literal>\\</literal></quote>, <quote><literal>{</literal></" @@ -12902,12 +11987,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:248 +#: ../en/ch10-template.xml:249 msgid "Filtering keywords to change their results" msgstr "通过过滤关键字来修改输出结果" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:250 +#: ../en/ch10-template.xml:251 msgid "" "Some of the results of template expansion are not immediately easy to use. " "Mercurial lets you specify an optional chain of <emphasis>filters</emphasis> " @@ -12917,7 +12002,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:257 +#: ../en/ch10-template.xml:258 msgid "" "Below is a list of the most commonly used filters that Mercurial supports. " "While some filters can be applied to any text, others can only be used in " @@ -12926,7 +12011,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:264 +#: ../en/ch10-template.xml:265 msgid "" "<literal role=\"template-filter\">addbreaks</literal>: Any text. Add an XHTML " "<quote><literal><br/></literal></quote> tag before the end of every " @@ -12935,7 +12020,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:271 +#: ../en/ch10-template.xml:272 msgid "" "<literal role=\"template-kw-filt-date\">age</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render the age of the date, " @@ -12944,7 +12029,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:278 +#: ../en/ch10-template.xml:279 msgid "" "<literal role=\"template-filter\">basename</literal>: Any text, but most " "useful for the <literal role=\"template-keyword\">files</literal> keyword and " @@ -12954,7 +12039,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:287 +#: ../en/ch10-template.xml:288 msgid "" "<literal role=\"template-kw-filt-date\">date</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render a date in a similar " @@ -12964,7 +12049,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:295 +#: ../en/ch10-template.xml:296 msgid "" "<literal role=\"template-kw-filt-author\">domain</literal>: Any text, but " "most useful for the <literal role=\"template-keyword\">author</literal> " @@ -12975,7 +12060,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:305 +#: ../en/ch10-template.xml:306 msgid "" "<literal role=\"template-kw-filt-author\">email</literal>: Any text, but most " "useful for the <literal role=\"template-keyword\">author</literal> keyword. " @@ -12985,7 +12070,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:314 +#: ../en/ch10-template.xml:315 msgid "" "<literal role=\"template-filter\">escape</literal>: Any text. Replace the " "special XML/XHTML characters <quote><literal>&</literal></quote>, " @@ -12994,7 +12079,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:322 +#: ../en/ch10-template.xml:323 msgid "" "<literal role=\"template-filter\">fill68</literal>: Any text. Wrap the text " "to fit in 68 columns. This is useful before you pass text through the " @@ -13003,21 +12088,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:330 +#: ../en/ch10-template.xml:331 msgid "" "<literal role=\"template-filter\">fill76</literal>: Any text. Wrap the text " "to fit in 76 columns." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:334 +#: ../en/ch10-template.xml:335 msgid "" "<literal role=\"template-filter\">firstline</literal>: Any text. Yield the " "first line of text, without any trailing newlines." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:339 +#: ../en/ch10-template.xml:340 msgid "" "<literal role=\"template-kw-filt-date\">hgdate</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render the date as a pair of " @@ -13026,7 +12111,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:346 +#: ../en/ch10-template.xml:347 msgid "" "<literal role=\"template-kw-filt-date\">isodate</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render the date as a text " @@ -13035,7 +12120,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:353 +#: ../en/ch10-template.xml:354 msgid "" "<literal role=\"template-filter\">obfuscate</literal>: Any text, but most " "useful for the <literal role=\"template-keyword\">author</literal> keyword. " @@ -13044,7 +12129,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:361 +#: ../en/ch10-template.xml:362 msgid "" "<literal role=\"template-kw-filt-author\">person</literal>: Any text, but " "most useful for the <literal role=\"template-keyword\">author</literal> " @@ -13054,7 +12139,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:370 +#: ../en/ch10-template.xml:371 msgid "" "<literal role=\"template-kw-filt-date\">rfc822date</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render a date using the same " @@ -13063,7 +12148,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:377 +#: ../en/ch10-template.xml:378 msgid "" "<literal role=\"template-kw-filt-node\">short</literal>: Changeset hash. " "Yield the short form of a changeset hash, i.e. a 12-character hexadecimal " @@ -13071,7 +12156,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:382 +#: ../en/ch10-template.xml:383 msgid "" "<literal role=\"template-kw-filt-date\">shortdate</literal>: <literal role=" "\"template-keyword\">date</literal> keyword. Render the year, month, and day " @@ -13080,21 +12165,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:388 +#: ../en/ch10-template.xml:389 msgid "" "<literal role=\"template-filter\">strip</literal>: Any text. Strip all " "leading and trailing whitespace from the string." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:392 +#: ../en/ch10-template.xml:393 msgid "" "<literal role=\"template-filter\">tabindent</literal>: Any text. Yield the " "text, with every line except the first starting with a tab character." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:397 +#: ../en/ch10-template.xml:398 msgid "" "<literal role=\"template-filter\">urlescape</literal>: Any text. Escape all " "characters that are considered <quote>special</quote> by URL parsers. For " @@ -13102,7 +12187,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:404 +#: ../en/ch10-template.xml:405 msgid "" "<literal role=\"template-kw-filt-author\">user</literal>: Any text, but most " "useful for the <literal role=\"template-keyword\">author</literal> keyword. " @@ -13112,7 +12197,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><note><para> -#: ../en/ch11-template.xml:417 +#: ../en/ch10-template.xml:418 msgid "" "If you try to apply a filter to a piece of data that it cannot process, " "Mercurial will fail and print a Python exception. For example, trying to run " @@ -13122,12 +12207,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:426 +#: ../en/ch10-template.xml:427 msgid "Combining filters" msgstr "组合过滤器" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:428 +#: ../en/ch10-template.xml:429 msgid "" "It is easy to combine filters to yield output in the form you would like. " "The following chain of filters tidies up a description, then makes sure that " @@ -13137,7 +12222,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:437 +#: ../en/ch10-template.xml:438 msgid "" "Note the use of <quote><literal>\\t</literal></quote> (a tab character) in " "the template to force the first line to be indented; this is necessary since " @@ -13146,7 +12231,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:443 +#: ../en/ch10-template.xml:444 msgid "" "Keep in mind that the order of filters in a chain is significant. The first " "filter is applied to the result of the keyword; the second to the result of " @@ -13156,12 +12241,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:454 +#: ../en/ch10-template.xml:455 msgid "From templates to styles" msgstr "从模版到样式" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:456 +#: ../en/ch10-template.xml:457 msgid "" "A command line template provides a quick and simple way to format some " "output. Templates can become verbose, though, and it's useful to be able to " @@ -13170,7 +12255,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:461 +#: ../en/ch10-template.xml:462 msgid "" "More than that, using a style file unlocks the power of Mercurial's " "templating engine in ways that are not possible using the command line " @@ -13178,49 +12263,49 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:467 +#: ../en/ch10-template.xml:468 msgid "The simplest of style files" msgstr "最简单的样式文件" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:469 +#: ../en/ch10-template.xml:470 msgid "Our simple style file contains just one line:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:473 +#: ../en/ch10-template.xml:474 msgid "" "This tells Mercurial, <quote>if you're printing a changeset, use the text on " "the right as the template</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:479 +#: ../en/ch10-template.xml:480 msgid "Style file syntax" msgstr "样式文件语法" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:481 +#: ../en/ch10-template.xml:482 msgid "The syntax rules for a style file are simple." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:484 +#: ../en/ch10-template.xml:485 msgid "The file is processed one line at a time." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:487 +#: ../en/ch10-template.xml:488 msgid "Leading and trailing white space are ignored." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:490 +#: ../en/ch10-template.xml:491 msgid "Empty lines are skipped." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:492 +#: ../en/ch10-template.xml:493 msgid "" "If a line starts with either of the characters <quote><literal>#</literal></" "quote> or <quote><literal>;</literal></quote>, the entire line is treated as " @@ -13228,7 +12313,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:497 +#: ../en/ch10-template.xml:498 msgid "" "A line starts with a keyword. This must start with an alphabetic character " "or underscore, and can subsequently contain any alphanumeric character or " @@ -13237,21 +12322,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:503 +#: ../en/ch10-template.xml:504 msgid "" "The next element must be an <quote><literal>=</literal></quote> character, " "which can be preceded or followed by an arbitrary amount of white space." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:508 +#: ../en/ch10-template.xml:509 msgid "" "If the rest of the line starts and ends with matching quote characters " "(either single or double quote), it is treated as a template body." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:512 +#: ../en/ch10-template.xml:513 msgid "" "If the rest of the line <emphasis>does not</emphasis> start with a quote " "character, it is treated as the name of a file; the contents of this file " @@ -13259,12 +12344,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch11-template.xml:521 +#: ../en/ch10-template.xml:522 msgid "Style files by example" msgstr "样式文件例子" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch11-template.xml:523 +#: ../en/ch10-template.xml:524 msgid "" "To illustrate how to write a style file, we will construct a few by example. " "Rather than provide a complete style file and walk through it, we'll mirror " @@ -13273,12 +12358,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:530 +#: ../en/ch10-template.xml:531 msgid "Identifying mistakes in style files" msgstr "在样式文件中定位错误" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:532 +#: ../en/ch10-template.xml:533 msgid "" "If Mercurial encounters a problem in a style file you are working on, it " "prints a terse error message that, once you figure out what it means, is " @@ -13286,7 +12371,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:538 +#: ../en/ch10-template.xml:539 msgid "" "Notice that <filename>broken.style</filename> attempts to define a " "<literal>changeset</literal> keyword, but forgets to give any content for it. " @@ -13294,35 +12379,35 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:545 +#: ../en/ch10-template.xml:546 msgid "This error message looks intimidating, but it is not too hard to follow." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:549 +#: ../en/ch10-template.xml:550 msgid "" "The first component is simply Mercurial's way of saying <quote>I am giving " "up</quote>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:554 +#: ../en/ch10-template.xml:554 msgid "Next comes the name of the style file that contains the error." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:560 +#: ../en/ch10-template.xml:558 msgid "" "Following the file name is the line number where the error was encountered." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:565 +#: ../en/ch10-template.xml:562 msgid "Finally, a description of what went wrong." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:570 +#: ../en/ch10-template.xml:566 msgid "" "The description of the problem is not always clear (as in this case), but " "even when it is cryptic, it is almost always trivial to visually inspect the " @@ -13330,12 +12415,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:578 +#: ../en/ch10-template.xml:574 msgid "Uniquely identifying a repository" msgstr "版本库的唯一标识" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:580 +#: ../en/ch10-template.xml:576 msgid "" "If you would like to be able to identify a Mercurial repository <quote>fairly " "uniquely</quote> using a short string as an identifier, you can use the first " @@ -13343,21 +12428,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:587 +#: ../en/ch10-template.xml:583 msgid "" "This is not guaranteed to be unique, but it is nevertheless useful in many " "cases." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:590 +#: ../en/ch10-template.xml:586 msgid "" "It will not work in a completely empty repository, because such a repository " "does not have a revision zero." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:594 +#: ../en/ch10-template.xml:590 msgid "" "Neither will it work in the (extremely rare) case where a repository is a " "merge of two or more formerly independent repositories, and you still have " @@ -13365,18 +12450,18 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:599 +#: ../en/ch10-template.xml:595 msgid "Here are some uses to which you could put this identifier:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:602 +#: ../en/ch10-template.xml:598 msgid "" "As a key into a table for a database that manages repositories on a server." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:605 +#: ../en/ch10-template.xml:601 msgid "" "As half of a {<emphasis>repository ID</emphasis>, <emphasis>revision ID</" "emphasis>} tuple. Save this information away when you run an automated build " @@ -13385,13 +12470,13 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch11-template.xml:614 +#: ../en/ch10-template.xml:610 msgid "Mimicking Subversion's output" msgstr "模仿 Subversion 的输出" # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:616 +#: ../en/ch10-template.xml:612 msgid "" "Let's try to emulate the default output format used by another revision " "control tool, Subversion." @@ -13399,7 +12484,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:621 +#: ../en/ch10-template.xml:617 msgid "" "Since Subversion's output style is fairly simple, it is easy to copy-and-" "paste a hunk of its output into a file, and replace the text produced above " @@ -13407,14 +12492,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:628 +#: ../en/ch10-template.xml:624 msgid "" "There are a few small ways in which this template deviates from the output " "produced by Subversion." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:631 +#: ../en/ch10-template.xml:627 msgid "" "Subversion prints a <quote>readable</quote> date (the <quote><literal>Wed, 27 " "Sep 2006</literal></quote> in the example output above) in parentheses. " @@ -13423,7 +12508,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:638 +#: ../en/ch10-template.xml:634 msgid "" "We emulate Subversion's printing of <quote>separator</quote> lines full of " "<quote><literal>-</literal></quote> characters by ending the template with " @@ -13433,7 +12518,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch11-template.xml:647 +#: ../en/ch10-template.xml:643 msgid "" "Subversion's output includes a count in the header of the number of lines in " "the commit message. We cannot replicate this in Mercurial; the templating " @@ -13443,7 +12528,7 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:653 +#: ../en/ch10-template.xml:649 msgid "" "It took me no more than a minute or two of work to replace literal text from " "an example of Subversion's output with some keywords and filters to give the " @@ -13451,7 +12536,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch11-template.xml:660 +#: ../en/ch10-template.xml:656 msgid "" "We could have included the text of the template file directly in the style " "file by enclosing it in quotes and replacing the newlines with " @@ -13464,17 +12549,17 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch12-mq.xml:5 +#: ../en/ch11-mq.xml:5 msgid "Managing change with Mercurial Queues" msgstr "使用 MQ 管理修改" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:8 +#: ../en/ch11-mq.xml:8 msgid "The patch management problem" msgstr "补丁的管理问题" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:10 +#: ../en/ch11-mq.xml:10 msgid "" "Here is a common scenario: you need to install a software package from " "source, but you find a bug that you must fix in the source before you can " @@ -13486,7 +12571,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:20 +#: ../en/ch11-mq.xml:20 msgid "" "This is a simple case of the <quote>patch management</quote> problem. You " "have an <quote>upstream</quote> source tree that you can't change; you need " @@ -13496,7 +12581,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:27 +#: ../en/ch11-mq.xml:27 msgid "" "The patch management problem arises in many situations. Probably the most " "visible is that a user of an open source software project will contribute a " @@ -13504,7 +12589,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:32 +#: ../en/ch11-mq.xml:32 msgid "" "Distributors of operating systems that include open source software often " "need to make changes to the packages they distribute so that they will build " @@ -13512,7 +12597,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:37 +#: ../en/ch11-mq.xml:37 msgid "" "When you have few changes to maintain, it is easy to manage a single patch " "using the standard <command>diff</command> and <command>patch</command> " @@ -13529,7 +12614,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:52 +#: ../en/ch11-mq.xml:52 msgid "" "Maintaining a single patch against an upstream tree is a little tedious and " "error-prone, but not difficult. However, the complexity of the problem grows " @@ -13539,7 +12624,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:59 +#: ../en/ch11-mq.xml:59 msgid "" "Fortunately, Mercurial includes a powerful extension, Mercurial Queues (or " "simply <quote>MQ</quote>), that massively simplifies the patch management " @@ -13547,12 +12632,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:65 +#: ../en/ch11-mq.xml:65 msgid "The prehistory of Mercurial Queues" msgstr "MQ 的历史" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:67 +#: ../en/ch11-mq.xml:67 msgid "" "During the late 1990s, several Linux kernel developers started to maintain " "<quote>patch series</quote> that modified the behaviour of the Linux kernel. " @@ -13561,7 +12646,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:73 +#: ../en/ch11-mq.xml:73 msgid "" "The sizes of these patch series grew rapidly. In 2002, Andrew Morton " "published some shell scripts he had been using to automate the task of " @@ -13570,12 +12655,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:80 +#: ../en/ch11-mq.xml:80 msgid "A patchwork quilt" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:82 +#: ../en/ch11-mq.xml:82 msgid "" "In early 2003, Andreas Gruenbacher and Martin Quinson borrowed the approach " "of Andrew's scripts and published a tool called <quote>patchwork quilt</" @@ -13586,7 +12671,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:91 +#: ../en/ch11-mq.xml:91 msgid "" "Quilt manages a <emphasis>stack of patches</emphasis> on top of a directory " "tree. To begin, you tell quilt to manage a directory tree, and tell it which " @@ -13596,7 +12681,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:99 +#: ../en/ch11-mq.xml:99 msgid "" "The refresh step causes quilt to scan the directory tree; it updates the " "patch with all of the changes you have made. You can create another patch on " @@ -13606,7 +12691,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:106 +#: ../en/ch11-mq.xml:106 msgid "" "You can <emphasis>change</emphasis> which patches are applied to the tree. " "If you <quote>pop</quote> a patch, the changes made by that patch will vanish " @@ -13620,19 +12705,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:118 +#: ../en/ch11-mq.xml:118 msgid "" "Quilt knows nothing about revision control tools, so it works equally well on " "top of an unpacked tarball or a Subversion working copy." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:124 +#: ../en/ch11-mq.xml:124 msgid "From patchwork quilt to Mercurial Queues" msgstr "从 patchwork quilt 到 MQ" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:126 +#: ../en/ch11-mq.xml:126 msgid "" "In mid-2005, Chris Mason took the features of quilt and wrote an extension " "that he called Mercurial Queues, which added quilt-like behaviour to " @@ -13640,7 +12725,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:130 +#: ../en/ch11-mq.xml:130 msgid "" "The key difference between quilt and MQ is that quilt knows nothing about " "revision control systems, while MQ is <emphasis>integrated</emphasis> into " @@ -13649,7 +12734,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:136 +#: ../en/ch11-mq.xml:136 msgid "" "Because quilt does not care about revision control tools, it is still a " "tremendously useful piece of software to know about for situations where you " @@ -13657,19 +12742,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:144 +#: ../en/ch11-mq.xml:144 msgid "The huge advantage of MQ" msgstr "MQ 的巨大优势" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:146 +#: ../en/ch11-mq.xml:146 msgid "" "I cannot overstate the value that MQ offers through the unification of " "patches and revision control." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:149 +#: ../en/ch11-mq.xml:149 msgid "" "A major reason that patches have persisted in the free software and open " "source world&emdash;in spite of the availability of increasingly capable " @@ -13678,7 +12763,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:155 +#: ../en/ch11-mq.xml:155 msgid "" "Traditional revision control tools make a permanent, irreversible record of " "everything that you do. While this has great value, it's also somewhat " @@ -13689,7 +12774,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:163 +#: ../en/ch11-mq.xml:163 msgid "" "By contrast, MQ's marriage of distributed revision control with patches makes " "it much easier to isolate your work. Your patches live on top of normal " @@ -13700,7 +12785,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:171 +#: ../en/ch11-mq.xml:171 msgid "" "As an example, the integration of patches with revision control makes " "understanding patches and debugging their effects&emdash;and their interplay " @@ -13715,19 +12800,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:187 +#: ../en/ch11-mq.xml:187 msgid "Understanding patches" msgstr "理解补丁" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:189 +#: ../en/ch11-mq.xml:189 msgid "" "Because MQ doesn't hide its patch-oriented nature, it is helpful to " "understand what patches are, and a little about the tools that work with them." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:193 +#: ../en/ch11-mq.xml:193 msgid "" "The traditional Unix <command>diff</command> command compares two files, and " "prints a list of differences between them. The <command>patch</command> " @@ -13737,7 +12822,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:202 +#: ../en/ch11-mq.xml:202 msgid "" "The type of file that <command>diff</command> generates (and <command>patch</" "command> takes as input) is called a <quote>patch</quote> or a <quote>diff</" @@ -13746,7 +12831,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:208 +#: ../en/ch11-mq.xml:208 msgid "" "A patch file can start with arbitrary text; the <command>patch</command> " "command ignores this text, but MQ uses it as the commit message when creating " @@ -13756,7 +12841,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:215 +#: ../en/ch11-mq.xml:215 msgid "" "MQ works with <emphasis>unified</emphasis> diffs (<command>patch</command> " "can accept several other diff formats, but MQ doesn't). A unified diff " @@ -13767,7 +12852,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:223 +#: ../en/ch11-mq.xml:223 msgid "" "After the file header comes a series of <emphasis>hunks</emphasis>. Each " "hunk starts with a header; this identifies the range of line numbers within " @@ -13780,7 +12865,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:235 +#: ../en/ch11-mq.xml:235 msgid "" "Each line of context begins with a space character. Within the hunk, a line " "that begins with <quote><literal>-</literal></quote> means <quote>remove this " @@ -13790,7 +12875,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:243 +#: ../en/ch11-mq.xml:243 msgid "" "We will return to some of the more subtle aspects of patches later (in " "section <xref linkend=\"sec.mq.adv-patch\"/>), but you should have enough " @@ -13798,12 +12883,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:250 +#: ../en/ch11-mq.xml:250 msgid "Getting started with Mercurial Queues" msgstr "开始使用 MQ" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:252 +#: ../en/ch11-mq.xml:252 msgid "" "Because MQ is implemented as an extension, you must explicitly enable before " "you can use it. (You don't need to download anything; MQ ships with the " @@ -13812,7 +12897,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:261 +#: ../en/ch11-mq.xml:262 msgid "" "Once the extension is enabled, it will make a number of new commands " "available. To verify that the extension is working, you can use <command " @@ -13821,7 +12906,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:269 +#: ../en/ch11-mq.xml:270 msgid "" "You can use MQ with <emphasis>any</emphasis> Mercurial repository, and its " "commands only operate within that repository. To get started, simply prepare " @@ -13829,7 +12914,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:276 +#: ../en/ch11-mq.xml:277 msgid "" "This command creates an empty directory called <filename role=\"special\" " "class=\"directory\">.hg/patches</filename>, where MQ will keep its metadata. " @@ -13838,12 +12923,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:283 +#: ../en/ch11-mq.xml:284 msgid "Creating a new patch" msgstr "创建新补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:285 +#: ../en/ch11-mq.xml:286 msgid "" "To begin work on a new patch, use the <command role=\"hg-ext-mq\">qnew</" "command> command. This command takes one argument, the name of the patch to " @@ -13851,14 +12936,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:289 +#: ../en/ch11-mq.xml:290 msgid "" "MQ will use this as the name of an actual file in the <filename role=\"special" "\" class=\"directory\">.hg/patches</filename> directory, as you can see below." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:296 +#: ../en/ch11-mq.xml:297 msgid "" "Also newly present in the <filename role=\"special\" class=\"directory\">.hg/" "patches</filename> directory are two other files, <filename role=\"special" @@ -13871,7 +12956,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch12-mq.xml:308 +#: ../en/ch11-mq.xml:309 msgid "" "You may sometimes want to edit the <filename role=\"special\">series</" "filename> file by hand; for example, to change the sequence in which some " @@ -13881,7 +12966,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:317 +#: ../en/ch11-mq.xml:318 msgid "" "Once you have created your new patch, you can edit files in the working " "directory as you usually would. All of the normal Mercurial commands, such " @@ -13890,12 +12975,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:325 +#: ../en/ch11-mq.xml:326 msgid "Refreshing a patch" msgstr "刷新补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:327 +#: ../en/ch11-mq.xml:328 msgid "" "When you reach a point where you want to save your work, use the <command " "role=\"hg-ext-mq\">qrefresh</command> command to update the patch you are " @@ -13903,14 +12988,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:333 +#: ../en/ch11-mq.xml:334 msgid "" "This command folds the changes you have made in the working directory into " "your patch, and updates its corresponding changeset to contain those changes." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:337 +#: ../en/ch11-mq.xml:338 msgid "" "You can run <command role=\"hg-ext-mq\">qrefresh</command> as often as you " "like, so it's a good way to <quote>checkpoint</quote> your work. Refresh " @@ -13920,12 +13005,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:348 +#: ../en/ch11-mq.xml:349 msgid "Stacking and tracking patches" msgstr "堆叠和跟踪补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:350 +#: ../en/ch11-mq.xml:351 msgid "" "Once you have finished working on a patch, or need to work on another, you " "can use the <command role=\"hg-ext-mq\">qnew</command> command again to " @@ -13934,7 +13019,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:357 +#: ../en/ch11-mq.xml:358 msgid "" "Notice that the patch contains the changes in our prior patch as part of its " "context (you can see this more clearly in the output of <command role=\"hg-cmd" @@ -13942,7 +13027,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:362 +#: ../en/ch11-mq.xml:363 msgid "" "So far, with the exception of <command role=\"hg-ext-mq\">qnew</command> and " "<command role=\"hg-ext-mq\">qrefresh</command>, we've been careful to only " @@ -13951,7 +13036,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:372 +#: ../en/ch11-mq.xml:373 msgid "" "The <command role=\"hg-ext-mq\">qseries</command> command lists every patch " "that MQ knows about in this repository, from oldest to newest (most recently " @@ -13959,7 +13044,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:378 +#: ../en/ch11-mq.xml:379 msgid "" "The <command role=\"hg-ext-mq\">qapplied</command> command lists every patch " "that MQ has <emphasis>applied</emphasis> in this repository, again from " @@ -13967,12 +13052,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:387 +#: ../en/ch11-mq.xml:388 msgid "Manipulating the patch stack" msgstr "操作补丁堆栈" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:389 +#: ../en/ch11-mq.xml:390 msgid "" "The previous discussion implied that there must be a difference between " "<quote>known</quote> and <quote>applied</quote> patches, and there is. MQ " @@ -13980,7 +13065,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:394 +#: ../en/ch11-mq.xml:395 msgid "" "An <emphasis>applied</emphasis> patch has a corresponding changeset in the " "repository, and the effects of the patch and changeset are visible in the " @@ -13994,17 +13079,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> -#: ../en/ch12-mq.xml:408 +#: ../en/ch11-mq.xml:409 msgid "<imageobject><imagedata fileref=\"images/mq-stack.png\"/></imageobject>" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> -#: ../en/ch12-mq.xml:410 +#: ../en/ch11-mq.xml:411 msgid "Applied and unapplied patches in the MQ patch stack" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:415 +#: ../en/ch11-mq.xml:416 msgid "" "You can reapply an unapplied, or popped, patch using the <command role=\"hg-" "ext-mq\">qpush</command> command. This creates a new changeset to correspond " @@ -14014,7 +13099,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:424 +#: ../en/ch11-mq.xml:425 msgid "" "Notice that once we have popped a patch or two patches, the output of " "<command role=\"hg-ext-mq\">qseries</command> remains the same, while that of " @@ -14022,12 +13107,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:432 +#: ../en/ch11-mq.xml:433 msgid "Pushing and popping many patches" msgstr "压入或弹出多个补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:434 +#: ../en/ch11-mq.xml:435 msgid "" "While <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-" "mq\">qpop</command> each operate on a single patch at a time by default, you " @@ -14040,12 +13125,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:451 +#: ../en/ch11-mq.xml:452 msgid "Safety checks, and overriding them" msgstr "安全的检查,然后覆盖它们" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:453 +#: ../en/ch11-mq.xml:454 msgid "" "Several MQ commands check the working directory before they do anything, and " "fail if they find any modifications. They do this to ensure that you won't " @@ -14057,7 +13142,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:465 +#: ../en/ch11-mq.xml:466 msgid "" "Commands that check the working directory all take an <quote>I know what I'm " "doing</quote> option, which is always named <option>-f</option>. The exact " @@ -14071,12 +13156,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:480 +#: ../en/ch11-mq.xml:481 msgid "Working on several patches at once" msgstr "同时处理多个补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:482 +#: ../en/ch11-mq.xml:483 msgid "" "The <command role=\"hg-ext-mq\">qrefresh</command> command always refreshes " "the <emphasis>topmost</emphasis> applied patch. This means that you can " @@ -14085,7 +13170,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:489 +#: ../en/ch11-mq.xml:490 msgid "" "Here's an example that illustrates how you can use this ability. Let's say " "you're developing a new feature as two patches. The first is a change to the " @@ -14101,12 +13186,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:506 +#: ../en/ch11-mq.xml:507 msgid "More about patches" msgstr "关于补丁的更多信息" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:508 +#: ../en/ch11-mq.xml:509 msgid "" "MQ uses the GNU <command>patch</command> command to apply patches, so it's " "helpful to know a few more detailed aspects of how <command>patch</command> " @@ -14114,12 +13199,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:514 +#: ../en/ch11-mq.xml:515 msgid "The strip count" msgstr "修剪计数" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:516 +#: ../en/ch11-mq.xml:517 msgid "" "If you look at the file headers in a patch, you will notice that the " "pathnames usually have an extra component on the front that isn't present in " @@ -14129,7 +13214,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:523 +#: ../en/ch11-mq.xml:524 msgid "" "Alice would unpack a tarball, edit her files, then decide that she wanted to " "create a patch. So she'd rename her working directory, unpack the tarball " @@ -14143,7 +13228,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:536 +#: ../en/ch11-mq.xml:537 msgid "" "Since someone receiving a patch from the Alices of the net would be unlikely " "to have unmodified and modified directories with exactly the same names, the " @@ -14154,7 +13239,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:544 +#: ../en/ch11-mq.xml:545 msgid "" "An option of <quote><literal>-p1</literal></quote> means <quote>use a strip " "count of one</quote>. If <command>patch</command> sees a file name " @@ -14168,7 +13253,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:557 +#: ../en/ch11-mq.xml:558 msgid "" "The <quote>standard</quote> strip count for patches is one; almost all " "patches contain one leading path name component that needs to be stripped. " @@ -14178,7 +13263,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:565 +#: ../en/ch11-mq.xml:566 msgid "" "If you receive a patch from someone that you want to add to your patch queue, " "and the patch needs a strip count other than one, you cannot just <command " @@ -14195,12 +13280,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:584 +#: ../en/ch11-mq.xml:585 msgid "Strategies for applying a patch" msgstr "应用补丁的策略" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:586 +#: ../en/ch11-mq.xml:587 msgid "" "When <command>patch</command> applies a hunk, it tries a handful of " "successively less accurate strategies to try to make the hunk apply. This " @@ -14210,7 +13295,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:593 +#: ../en/ch11-mq.xml:594 msgid "" "First, <command>patch</command> tries an exact match, where the line numbers, " "the context, and the text to be modified must apply exactly. If it cannot " @@ -14221,7 +13306,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:602 +#: ../en/ch11-mq.xml:603 msgid "" "If a context-only match fails, <command>patch</command> removes the first and " "last lines of the context, and tries a <emphasis>reduced</emphasis> context-" @@ -14232,7 +13317,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:611 +#: ../en/ch11-mq.xml:612 msgid "" "When neither of these techniques works, <command>patch</command> prints a " "message saying that the hunk in question was rejected. It saves rejected " @@ -14249,33 +13334,33 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:629 +#: ../en/ch11-mq.xml:630 msgid "Some quirks of patch representation" msgstr "补丁的一些特性" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:631 +#: ../en/ch11-mq.xml:632 msgid "" "There are a few useful things to know about how <command>patch</command> " "works with files." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:634 +#: ../en/ch11-mq.xml:635 msgid "" "This should already be obvious, but <command>patch</command> cannot handle " "binary files." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:638 +#: ../en/ch11-mq.xml:639 msgid "" "Neither does it care about the executable bit; it creates new files as " "readable, but not executable." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:642 +#: ../en/ch11-mq.xml:643 msgid "" "<command>patch</command> treats the removal of a file as a diff between the " "file to be removed and the empty file. So your idea of <quote>I deleted this " @@ -14284,7 +13369,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:648 +#: ../en/ch11-mq.xml:649 msgid "" "It treats the addition of a file as a diff between the empty file and the " "file to be added. So in a patch, your idea of <quote>I added this file</" @@ -14292,7 +13377,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:654 +#: ../en/ch11-mq.xml:655 msgid "" "It treats a renamed file as the removal of the old name, and the addition of " "the new name. This means that renamed files have a big footprint in " @@ -14301,7 +13386,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:660 +#: ../en/ch11-mq.xml:661 msgid "" "<command>patch</command> cannot represent empty files, so you cannot use a " "patch to represent the notion <quote>I added this empty file to the tree</" @@ -14309,12 +13394,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:667 +#: ../en/ch11-mq.xml:668 msgid "Beware the fuzz" msgstr "当心毛刺" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:669 +#: ../en/ch11-mq.xml:670 msgid "" "While applying a hunk at an offset, or with a fuzz factor, will often be " "completely successful, these inexact techniques naturally leave open the " @@ -14326,7 +13411,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:679 +#: ../en/ch11-mq.xml:680 msgid "" "It's often a good idea to refresh a patch that has applied with an offset or " "fuzz factor; refreshing the patch generates new context information that will " @@ -14339,12 +13424,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:692 +#: ../en/ch11-mq.xml:693 msgid "Handling rejection" msgstr "处理拒绝" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:694 +#: ../en/ch11-mq.xml:695 msgid "" "If <command role=\"hg-ext-mq\">qpush</command> fails to apply a patch, it " "will print an error message and exit. If it has left <filename role=\"special" @@ -14353,7 +13438,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:700 +#: ../en/ch11-mq.xml:701 msgid "" "If your patch <emphasis>used to</emphasis> apply cleanly, and no longer does " "because you've changed the underlying code that your patches are based on, " @@ -14362,7 +13447,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:706 +#: ../en/ch11-mq.xml:707 msgid "" "Unfortunately, there aren't any great techniques for dealing with rejected " "hunks. Most often, you'll need to view the <filename role=\"special\">.rej</" @@ -14370,7 +13455,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:711 +#: ../en/ch11-mq.xml:712 msgid "" "If you're feeling adventurous, Neil Brown, a Linux kernel hacker, wrote a " "tool called <command>wiggle</command> <citation>web:wiggle</citation>, which " @@ -14379,7 +13464,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:717 +#: ../en/ch11-mq.xml:718 msgid "" "Another Linux kernel hacker, Chris Mason (the author of Mercurial Queues), " "wrote a similar tool called <command>mpatch</command> <citation>web:mpatch</" @@ -14389,31 +13474,31 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:726 +#: ../en/ch11-mq.xml:727 msgid "The context in the middle of a hunk has changed." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:729 +#: ../en/ch11-mq.xml:730 msgid "A hunk is missing some context at the beginning or end." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:732 +#: ../en/ch11-mq.xml:733 msgid "" "A large hunk might apply better&emdash;either entirely or in part&emdash;if " "it was broken up into smaller hunks." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:736 +#: ../en/ch11-mq.xml:737 msgid "" "A hunk removes lines with slightly different content than those currently " "present in the file." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:740 +#: ../en/ch11-mq.xml:741 msgid "" "If you use <command>wiggle</command> or <command>mpatch</command>, you should " "be doubly careful to check your results when you're done. In fact, " @@ -14423,12 +13508,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:752 +#: ../en/ch11-mq.xml:753 msgid "Getting the best performance out of MQ" msgstr "MQ 的性能" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:754 +#: ../en/ch11-mq.xml:755 msgid "" "MQ is very efficient at handling a large number of patches. I ran some " "performance experiments in mid-2006 for a talk that I gave at the 2006 " @@ -14439,7 +13524,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:763 +#: ../en/ch11-mq.xml:764 msgid "" "On my old, slow laptop, I was able to <command role=\"hg-cmd\">hg qpush " "<option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</option></command> all 1,738 " @@ -14451,14 +13536,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:774 +#: ../en/ch11-mq.xml:775 msgid "" "Clearly, MQ is well suited to working in large trees, but there are a few " "tricks you can use to get the best performance of it." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:778 +#: ../en/ch11-mq.xml:779 msgid "" "First of all, try to <quote>batch</quote> operations together. Every time " "you run <command role=\"hg-ext-mq\">qpush</command> or <command role=\"hg-ext-" @@ -14470,7 +13555,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:789 +#: ../en/ch11-mq.xml:790 msgid "" "The <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-mq" "\">qpop</command> commands allow you to push and pop multiple patches at a " @@ -14482,7 +13567,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:799 +#: ../en/ch11-mq.xml:800 msgid "" "You can identify a destination patch using either the name of the patch, or " "by number. If you use numeric addressing, patches are counted from zero; " @@ -14490,12 +13575,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:806 +#: ../en/ch11-mq.xml:807 msgid "Updating your patches when the underlying code changes" msgstr "当基础代码改变时,更新补丁的方法" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:809 +#: ../en/ch11-mq.xml:810 msgid "" "It's common to have a stack of patches on top of an underlying repository " "that you don't modify directly. If you're working on changes to third-party " @@ -14506,7 +13591,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:818 +#: ../en/ch11-mq.xml:819 msgid "" "The simplest way to do this is to <command role=\"hg-cmd\">hg qpop <option " "role=\"hg-ext-mq-cmd-qpop-opt\">hg -a</option></command> your patches, then " @@ -14520,7 +13605,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:830 +#: ../en/ch11-mq.xml:831 msgid "" "This approach is easy to use and works well if you don't expect changes to " "the underlying code to affect how well your patches apply. If your patch " @@ -14530,7 +13615,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:837 +#: ../en/ch11-mq.xml:838 msgid "" "It's possible to partially automate the rebasing process. If your patches " "apply cleanly against some revision of the underlying repo, MQ can use this " @@ -14539,19 +13624,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:843 +#: ../en/ch11-mq.xml:844 msgid "The process is a little involved." msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch12-mq.xml:845 +#: ../en/ch11-mq.xml:846 msgid "" "To begin, <command role=\"hg-cmd\">hg qpush -a</command> all of your patches " "on top of the revision where you know that they apply cleanly." msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch12-mq.xml:849 +#: ../en/ch11-mq.xml:850 msgid "" "Save a backup copy of your patch directory using <command role=\"hg-cmd\">hg " "qsave <option role=\"hg-ext-mq-cmd-qsave-opt\">hg -e</option> <option role=" @@ -14566,7 +13651,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch12-mq.xml:863 +#: ../en/ch11-mq.xml:864 msgid "" "Use <command role=\"hg-cmd\">hg pull</command> to bring new changes into the " "underlying repository. (Don't run <command role=\"hg-cmd\">hg pull -u</" @@ -14574,7 +13659,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch12-mq.xml:868 +#: ../en/ch11-mq.xml:869 msgid "" "Update to the new tip revision, using <command role=\"hg-cmd\">hg update " "<option role=\"hg-opt-update\">-C</option></command> to override the patches " @@ -14582,17 +13667,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch12-mq.xml:873 -msgid "" -"Merge all patches using \\hgcmdargs{qpush}{<option role=\"hg-ext-mq-cmd-qpush-" -"opt\">hg -m</option> <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</" -"option>}. The <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -m</option> option " -"to <command role=\"hg-ext-mq\">qpush</command> tells MQ to perform a three-" -"way merge if the patch fails to apply." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:883 +#: ../en/ch11-mq.xml:874 +msgid "" +"Merge all patches using <command>hg qpush -m -a</command>. The <option role=" +"\"hg-ext-mq-cmd-qpush-opt\">-m</option> option to <command role=\"hg-ext-mq" +"\">qpush</command> tells MQ to perform a three-way merge if the patch fails " +"to apply." +msgstr "" + +#. type: Content of: <book><chapter><sect1><para> +#: ../en/ch11-mq.xml:882 msgid "" "During the <command role=\"hg-cmd\">hg qpush <option role=\"hg-ext-mq-cmd-" "qpush-opt\">hg -m</option></command>, each patch in the <filename role=" @@ -14604,14 +13688,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:893 +#: ../en/ch11-mq.xml:892 msgid "" "When you finish resolving the effects of a patch, MQ refreshes your patch " "based on the result of the merge." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:896 +#: ../en/ch11-mq.xml:895 msgid "" "At the end of this process, your repository will have one extra head from the " "old patch queue, and a copy of the old patch queue will be in <filename role=" @@ -14623,12 +13707,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:908 +#: ../en/ch11-mq.xml:907 msgid "Identifying patches" msgstr "标识补丁" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:910 +#: ../en/ch11-mq.xml:909 msgid "" "MQ commands that work with patches let you refer to a patch either by using " "its name or by a number. By name is obvious enough; pass the name " @@ -14638,7 +13722,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:917 +#: ../en/ch11-mq.xml:916 msgid "" "As a shortcut, you can refer to a patch using both a name and a numeric " "offset; <literal>foo.patch-2</literal> means <quote>two patches before " @@ -14647,7 +13731,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:923 +#: ../en/ch11-mq.xml:922 msgid "" "Referring to a patch by index isn't much different. The first patch printed " "in the output of <command role=\"hg-ext-mq\">qseries</command> is patch zero " @@ -14656,51 +13740,45 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:929 +#: ../en/ch11-mq.xml:928 msgid "" "MQ also makes it easy to work with patches when you are using normal " "Mercurial commands. Every command that accepts a changeset ID will also " "accept the name of an applied patch. MQ augments the tags normally in the " "repository with an eponymous one for each applied patch. In addition, the " -"special tags \\index{tags!special tag names!<literal>qbase</literal>}" -"<literal>qbase</literal> and \\index{tags!special tag names!<literal>qtip</" -"literal>}<literal>qtip</literal> identify the <quote>bottom-most</quote> and " -"topmost applied patches, respectively." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:941 +"special tags <literal role=\"tag\">qbase</literal> and <literal role=\"tag" +"\">qtip</literal> identify the <quote>bottom-most</quote> and topmost applied " +"patches, respectively." +msgstr "" + +#. type: Content of: <book><chapter><sect1><para> +#: ../en/ch11-mq.xml:938 msgid "" "These additions to Mercurial's normal tagging capabilities make dealing with " "patches even more of a breeze." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:944 +#: ../en/ch11-mq.xml:941 msgid "Want to patchbomb a mailing list with your latest series of changes?" msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:948 +#: ../en/ch11-mq.xml:944 msgid "" "(Don't know what <quote>patchbombing</quote> is? See section <xref linkend=" "\"sec.hgext.patchbomb\"/>.)" msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:951 +#: ../en/ch11-mq.xml:947 msgid "" "Need to see all of the patches since <literal>foo.patch</literal> that have " "touched files in a subdirectory of your tree?" msgstr "" -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><programlisting><emphasis> -#: ../en/ch12-mq.xml:955 -msgid "subdir" -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:960 +#. type: Content of: <book><chapter><sect1><para> +#: ../en/ch11-mq.xml:954 msgid "" "Because MQ makes the names of patches available to the rest of Mercurial " "through its normal internal tag machinery, you don't need to type in the " @@ -14708,7 +13786,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:965 +#: ../en/ch11-mq.xml:959 msgid "" "Another nice consequence of representing patch names as tags is that when you " "run the <command role=\"hg-cmd\">hg log</command> command, it will display a " @@ -14719,19 +13797,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:978 +#: ../en/ch11-mq.xml:972 msgid "Useful things to know about" msgstr "其它需要了解的东西" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:980 +#: ../en/ch11-mq.xml:974 msgid "" "There are a number of aspects of MQ usage that don't fit tidily into sections " "of their own, but that are good to know. Here they are, in one place." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:985 +#: ../en/ch11-mq.xml:979 msgid "" "Normally, when you <command role=\"hg-ext-mq\">qpop</command> a patch and " "<command role=\"hg-ext-mq\">qpush</command> it again, the changeset that " @@ -14742,7 +13820,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:994 +#: ../en/ch11-mq.xml:988 msgid "" "It's not a good idea to <command role=\"hg-cmd\">hg merge</command> changes " "from another branch with a patch changeset, at least if you want to maintain " @@ -14752,12 +13830,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:1005 +#: ../en/ch11-mq.xml:999 msgid "Managing patches in a repository" msgstr "在版本库管理补丁" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1007 +#: ../en/ch11-mq.xml:1001 msgid "" "Because MQ's <filename role=\"special\" class=\"directory\">.hg/patches</" "filename> directory resides outside a Mercurial repository's working " @@ -14766,7 +13844,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1013 +#: ../en/ch11-mq.xml:1007 msgid "" "This presents the interesting possibility of managing the contents of the " "patch directory as a Mercurial repository in its own right. This can be a " @@ -14777,7 +13855,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1022 +#: ../en/ch11-mq.xml:1016 msgid "" "You can then share different versions of the same patch stack among multiple " "underlying repositories. I use this when I am developing a Linux kernel " @@ -14789,7 +13867,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1032 +#: ../en/ch11-mq.xml:1026 msgid "" "Managing patches in a repository makes it possible for multiple developers to " "work on the same patch series without colliding with each other, all on top " @@ -14797,12 +13875,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:1038 +#: ../en/ch11-mq.xml:1032 msgid "MQ support for patch repositories" msgstr "MQ 支持补丁版本库" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1040 +#: ../en/ch11-mq.xml:1034 msgid "" "MQ helps you to work with the <filename role=\"special\" class=\"directory\">." "hg/patches</filename> directory as a repository; when you prepare a " @@ -14813,7 +13891,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch12-mq.xml:1050 +#: ../en/ch11-mq.xml:1044 msgid "" "If you forget to use the <option role=\"hg-ext-mq-cmd-qinit-opt\">hg -c</" "option> option, you can simply go into the <filename role=\"special\" class=" @@ -14824,7 +13902,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch12-mq.xml:1059 +#: ../en/ch11-mq.xml:1053 msgid "" "(<command role=\"hg-cmd\">hg qinit <option role=\"hg-ext-mq-cmd-qinit-opt" "\">hg -c</option></command> does this for you automatically); you " @@ -14833,7 +13911,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1066 +#: ../en/ch11-mq.xml:1060 msgid "" "As a convenience, if MQ notices that the <filename class=\"directory\">.hg/" "patches</filename> directory is a repository, it will automatically <command " @@ -14841,7 +13919,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1071 +#: ../en/ch11-mq.xml:1065 msgid "" "MQ provides a shortcut command, <command role=\"hg-ext-mq\">qcommit</" "command>, that runs <command role=\"hg-cmd\">hg commit</command> in the " @@ -14850,7 +13928,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1077 +#: ../en/ch11-mq.xml:1071 msgid "" "Finally, as a convenience to manage the patch directory, you can define the " "alias <command>mq</command> on Unix systems. For example, on Linux systems " @@ -14859,26 +13937,26 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1087 +#: ../en/ch11-mq.xml:1080 msgid "" "You can then issue commands of the form <command>mq pull</command> from the " "main repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:1092 +#: ../en/ch11-mq.xml:1085 msgid "A few things to watch out for" msgstr "需要注意的事情" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1094 +#: ../en/ch11-mq.xml:1087 msgid "" "MQ's support for working with a repository full of patches is limited in a " "few small respects." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1097 +#: ../en/ch11-mq.xml:1090 msgid "" "MQ cannot automatically detect changes that you make to the patch directory. " "If you <command role=\"hg-cmd\">hg pull</command>, manually edit, or <command " @@ -14892,12 +13970,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:1113 +#: ../en/ch11-mq.xml:1106 msgid "Third party tools for working with patches" msgstr "操作补丁的第三方工具" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1115 +#: ../en/ch11-mq.xml:1108 msgid "" "Once you've been working with patches for a while, you'll find yourself " "hungry for tools that will help you to understand and manipulate the patches " @@ -14905,7 +13983,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1119 +#: ../en/ch11-mq.xml:1112 msgid "" "The <command>diffstat</command> command <citation>web:diffstat</citation> " "generates a histogram of the modifications made to each file in a patch. It " @@ -14918,7 +13996,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1133 +#: ../en/ch11-mq.xml:1126 msgid "" "The <literal role=\"package\">patchutils</literal> package <citation>web:" "patchutils</citation> is invaluable. It provides a set of small utilities " @@ -14933,12 +14011,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:1149 +#: ../en/ch11-mq.xml:1142 msgid "Good ways to work with patches" msgstr "操作补丁的好习惯" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1151 +#: ../en/ch11-mq.xml:1144 msgid "" "Whether you are working on a patch series to submit to a free software or " "open source project, or a series that you intend to treat as a sequence of " @@ -14947,7 +14025,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1157 +#: ../en/ch11-mq.xml:1150 msgid "" "Give your patches descriptive names. A good name for a patch might be " "<filename>rework-device-alloc.patch</filename>, because it will immediately " @@ -14961,7 +14039,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1169 +#: ../en/ch11-mq.xml:1162 msgid "" "Be aware of what patch you're working on. Use the <command role=\"hg-ext-mq" "\">qtop</command> command and skim over the text of your patches " @@ -14974,7 +14052,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1179 +#: ../en/ch11-mq.xml:1172 msgid "" "For this reason, it is very much worth investing a little time to learn how " "to use some of the third-party tools I described in section <xref linkend=" @@ -14985,17 +14063,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:1190 +#: ../en/ch11-mq.xml:1183 msgid "MQ cookbook" msgstr "MQ 手册" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:1193 +#: ../en/ch11-mq.xml:1186 msgid "Manage <quote>trivial</quote> patches" msgstr "管理<quote>琐碎的</quote>补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1195 +#: ../en/ch11-mq.xml:1188 msgid "" "Because the overhead of dropping files into a new Mercurial repository is so " "low, it makes a lot of sense to manage patches this way even if you simply " @@ -15004,26 +14082,26 @@ # #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1200 +#: ../en/ch11-mq.xml:1193 msgid "" "Begin by downloading and unpacking the source tarball, and turning it into a " "Mercurial repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1205 +#: ../en/ch11-mq.xml:1198 msgid "Continue by creating a patch stack and making your changes." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1210 +#: ../en/ch11-mq.xml:1203 msgid "" "Let's say a few weeks or months pass, and your package author releases a new " "version. First, bring their changes into the repository." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1216 +#: ../en/ch11-mq.xml:1209 msgid "" "The pipeline starting with <command role=\"hg-cmd\">hg locate</command> above " "deletes all files in the working directory, so that <command role=\"hg-cmd" @@ -15033,17 +14111,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1224 +#: ../en/ch11-mq.xml:1217 msgid "Finally, you can apply your patches on top of the new tree." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:1231 +#: ../en/ch11-mq.xml:1224 msgid "Combining entire patches" msgstr "组合全部的补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1233 +#: ../en/ch11-mq.xml:1226 msgid "" "MQ provides a command, <command role=\"hg-ext-mq\">qfold</command> that lets " "you combine entire patches. This <quote>folds</quote> the patches you name, " @@ -15053,7 +14131,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1241 +#: ../en/ch11-mq.xml:1234 msgid "" "The order in which you fold patches matters. If your topmost applied patch " "is <literal>foo</literal>, and you <command role=\"hg-ext-mq\">qfold</" @@ -15064,19 +14142,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch12-mq.xml:1252 +#: ../en/ch11-mq.xml:1245 msgid "Merging part of one patch into another" msgstr "合并补丁的部分内容到其它补丁" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1254 +#: ../en/ch11-mq.xml:1247 msgid "" "Merging <emphasis>part</emphasis> of one patch into another is more difficult " "than combining entire patches." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1258 +#: ../en/ch11-mq.xml:1251 msgid "" "If you want to move changes to entire files, you can use <command>filterdiff</" "command>'s <option role=\"cmd-opt-filterdiff\">-i</option> and <option role=" @@ -15090,7 +14168,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1271 +#: ../en/ch11-mq.xml:1264 msgid "" "If you have a patch that has multiple hunks modifying a file, and you only " "want to move a few of those hunks, the job becomes more messy, but you can " @@ -15099,32 +14177,32 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1279 +#: ../en/ch11-mq.xml:1272 msgid "This command prints three different kinds of number:" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:1282 +#: ../en/ch11-mq.xml:1275 msgid "" "(in the first column) a <emphasis>file number</emphasis> to identify each " "file modified in the patch;" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:1286 +#: ../en/ch11-mq.xml:1279 msgid "" "(on the next line, indented) the line number within a modified file where a " "hunk starts; and" msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch12-mq.xml:1289 +#: ../en/ch11-mq.xml:1282 msgid "" "(on the same line) a <emphasis>hunk number</emphasis> to identify that hunk." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1293 +#: ../en/ch11-mq.xml:1286 msgid "" "You'll have to use some visual inspection, and reading of the patch, to " "identify the file and hunk numbers you'll want, but you can then pass them to " @@ -15134,7 +14212,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch12-mq.xml:1301 +#: ../en/ch11-mq.xml:1294 msgid "" "Once you have this hunk, you can concatenate it onto the end of your " "destination patch and continue with the remainder of section <xref linkend=" @@ -15142,19 +14220,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch12-mq.xml:1308 +#: ../en/ch11-mq.xml:1301 msgid "Differences between quilt and MQ" msgstr "MQ 与 quilt 的区别" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1310 +#: ../en/ch11-mq.xml:1303 msgid "" "If you are already familiar with quilt, MQ provides a similar command set. " "There are a few differences in the way that it works." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch12-mq.xml:1314 +#: ../en/ch11-mq.xml:1307 msgid "" "You will already have noticed that most quilt commands have MQ counterparts " "that simply begin with a <quote><literal>q</literal></quote>. The exceptions " @@ -15166,12 +14244,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch13-mq-collab.xml:5 +#: ../en/ch12-mq-collab.xml:5 msgid "Advanced uses of Mercurial Queues" msgstr "MQ 的高级用法" #. type: Content of: <book><chapter><para> -#: ../en/ch13-mq-collab.xml:7 +#: ../en/ch12-mq-collab.xml:7 msgid "" "While it's easy to pick up straightforward uses of Mercurial Queues, use of a " "little discipline and some of MQ's less frequently used capabilities makes it " @@ -15179,7 +14257,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch13-mq-collab.xml:12 +#: ../en/ch12-mq-collab.xml:12 msgid "" "In this chapter, I will use as an example a technique I have used to manage " "the development of an Infiniband device driver for the Linux kernel. The " @@ -15189,7 +14267,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch13-mq-collab.xml:18 +#: ../en/ch12-mq-collab.xml:18 msgid "" "While much of the material in this chapter is specific to Linux, the same " "principles apply to any code base for which you're not the primary owner, and " @@ -15197,12 +14275,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:24 +#: ../en/ch12-mq-collab.xml:24 msgid "The problem of many targets" msgstr "多个目标的问题" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:26 +#: ../en/ch12-mq-collab.xml:26 msgid "" "The Linux kernel changes rapidly, and has never been internally stable; " "developers frequently make drastic changes between releases. This means that " @@ -15212,14 +14290,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:33 +#: ../en/ch12-mq-collab.xml:33 msgid "" "To maintain a driver, we have to keep a number of distinct versions of Linux " "in mind." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:36 +#: ../en/ch12-mq-collab.xml:36 msgid "" "One target is the main Linux kernel development tree. Maintenance of the code " "is in this case partly shared by other developers in the kernel community, " @@ -15228,7 +14306,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:42 +#: ../en/ch12-mq-collab.xml:42 msgid "" "We also maintain a number of <quote>backports</quote> to older versions of " "the Linux kernel, to support the needs of customers who are running older " @@ -15239,7 +14317,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:50 +#: ../en/ch12-mq-collab.xml:50 msgid "" "Finally, we make software releases on a schedule that is necessarily not " "aligned with those used by Linux distributors and kernel developers, so that " @@ -15248,19 +14326,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch13-mq-collab.xml:58 +#: ../en/ch12-mq-collab.xml:58 msgid "Tempting approaches that don't work well" msgstr "工作不好的诱人方法" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:60 +#: ../en/ch12-mq-collab.xml:60 msgid "" "There are two <quote>standard</quote> ways to maintain a piece of software " "that has to target many different environments." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:64 +#: ../en/ch12-mq-collab.xml:64 msgid "" "The first is to maintain a number of branches, each intended for a single " "target. The trouble with this approach is that you must maintain iron " @@ -15272,7 +14350,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:74 +#: ../en/ch12-mq-collab.xml:74 msgid "" "The second is to maintain a single source tree filled with conditional " "statements that turn chunks of code on or off depending on the intended " @@ -15284,7 +14362,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:83 +#: ../en/ch12-mq-collab.xml:83 msgid "" "Neither of these approaches is well suited to a situation where you don't " "<quote>own</quote> the canonical copy of a source tree. In the case of a " @@ -15296,14 +14374,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:93 +#: ../en/ch12-mq-collab.xml:93 msgid "" "These approaches have the added weakness of making it difficult to generate " "well-formed patches to submit upstream." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:97 +#: ../en/ch12-mq-collab.xml:97 msgid "" "In principle, Mercurial Queues seems like a good candidate to manage a " "development scenario such as the above. While this is indeed the case, MQ " @@ -15311,12 +14389,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:105 +#: ../en/ch12-mq-collab.xml:105 msgid "Conditionally applying patches with guards" msgstr "有条件的应用补丁" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:107 +#: ../en/ch12-mq-collab.xml:107 msgid "" "Perhaps the best way to maintain sanity with so many targets is to be able to " "choose specific patches to apply for a given situation. MQ provides a " @@ -15326,14 +14404,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:116 +#: ../en/ch12-mq-collab.xml:116 msgid "" "This gives us a tiny repository that contains two patches that don't have any " "dependencies on each other, because they touch different files." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:120 +#: ../en/ch12-mq-collab.xml:120 msgid "" "The idea behind conditional application is that you can <quote>tag</quote> a " "patch with a <emphasis>guard</emphasis>, which is simply a text string of " @@ -15343,7 +14421,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:127 +#: ../en/ch12-mq-collab.xml:127 msgid "" "A patch can have an arbitrary number of guards; each one is " "<emphasis>positive</emphasis> (<quote>apply this patch if this guard is " @@ -15352,12 +14430,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:135 +#: ../en/ch12-mq-collab.xml:135 msgid "Controlling the guards on a patch" msgstr "控制补丁的应用条件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:137 +#: ../en/ch12-mq-collab.xml:137 msgid "" "The <command role=\"hg-ext-mq\">qguard</command> command lets you determine " "which guards should apply to a patch, or display the guards that are already " @@ -15366,21 +14444,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:144 +#: ../en/ch12-mq-collab.xml:144 msgid "" "To set a positive guard on a patch, prefix the name of the guard with a " "<quote><literal>+</literal></quote>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:149 +#: ../en/ch12-mq-collab.xml:149 msgid "" "To set a negative guard on a patch, prefix the name of the guard with a " "<quote><literal>-</literal></quote>." msgstr "" #. type: Content of: <book><chapter><sect1><note><para> -#: ../en/ch13-mq-collab.xml:156 +#: ../en/ch12-mq-collab.xml:156 msgid "" "The <command role=\"hg-ext-mq\">qguard</command> command <emphasis>sets</" "emphasis> the guards on a patch; it doesn't <emphasis>modify</emphasis> " @@ -15392,7 +14470,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:165 +#: ../en/ch12-mq-collab.xml:165 msgid "" "Mercurial stores guards in the <filename role=\"special\">series</filename> " "file; the form in which they are stored is easy both to understand and to " @@ -15402,12 +14480,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:177 +#: ../en/ch12-mq-collab.xml:177 msgid "Selecting the guards to use" msgstr "选择使用的条件" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:179 +#: ../en/ch12-mq-collab.xml:179 msgid "" "The <command role=\"hg-ext-mq\">qselect</command> command determines which " "guards are active at a given time. The effect of this is to determine which " @@ -15417,7 +14495,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:186 +#: ../en/ch12-mq-collab.xml:186 msgid "" "With no arguments, the <command role=\"hg-ext-mq\">qselect</command> command " "lists the guards currently in effect, one per line of output. Each argument " @@ -15425,21 +14503,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:193 +#: ../en/ch12-mq-collab.xml:193 msgid "" "In case you're interested, the currently selected guards are stored in the " "<filename role=\"special\">guards</filename> file." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:198 +#: ../en/ch12-mq-collab.xml:198 msgid "" "We can see the effect the selected guards have when we run <command role=\"hg-" "ext-mq\">qpush</command>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:203 +#: ../en/ch12-mq-collab.xml:203 msgid "" "A guard cannot start with a <quote><literal>+</literal></quote> or " "<quote><literal>-</literal></quote> character. The name of a guard must not " @@ -15448,61 +14526,61 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:212 +#: ../en/ch12-mq-collab.xml:212 msgid "Changing the selected guards changes the patches that are applied." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:217 +#: ../en/ch12-mq-collab.xml:217 msgid "" "You can see in the example below that negative guards take precedence over " "positive guards." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:224 +#: ../en/ch12-mq-collab.xml:224 msgid "MQ's rules for applying patches" msgstr "MQ 应用补丁的规则" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:226 +#: ../en/ch12-mq-collab.xml:226 msgid "" "The rules that MQ uses when deciding whether to apply a patch are as follows." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:229 +#: ../en/ch12-mq-collab.xml:229 msgid "A patch that has no guards is always applied." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:232 +#: ../en/ch12-mq-collab.xml:232 msgid "" "If the patch has any negative guard that matches any currently selected " "guard, the patch is skipped." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:235 +#: ../en/ch12-mq-collab.xml:235 msgid "" "If the patch has any positive guard that matches any currently selected " "guard, the patch is applied." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:238 +#: ../en/ch12-mq-collab.xml:238 msgid "" "If the patch has positive or negative guards, but none matches any currently " "selected guard, the patch is skipped." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:245 +#: ../en/ch12-mq-collab.xml:245 msgid "Trimming the work environment" msgstr "修剪工作环境" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:247 +#: ../en/ch12-mq-collab.xml:247 msgid "" "In working on the device driver I mentioned earlier, I don't apply the " "patches to a normal Linux kernel tree. Instead, I use a repository that " @@ -15512,7 +14590,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:254 +#: ../en/ch12-mq-collab.xml:254 msgid "" "I then choose a <quote>base</quote> version on top of which the patches are " "applied. This is a snapshot of the Linux kernel tree as of a revision of my " @@ -15524,7 +14602,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:263 +#: ../en/ch12-mq-collab.xml:263 msgid "" "Normally, the base tree atop which the patches apply should be a snapshot of " "a very recent upstream tree. This best facilitates the development of " @@ -15532,12 +14610,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:270 +#: ../en/ch12-mq-collab.xml:270 msgid "Dividing up the <filename role=\"special\">series</filename> file" msgstr "分类补丁<filename role=\"special\">系列</filename>" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:273 +#: ../en/ch12-mq-collab.xml:273 msgid "" "I categorise the patches in the <filename role=\"special\">series</filename> " "file into a number of logical groups. Each section of like patches begins " @@ -15546,14 +14624,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:279 +#: ../en/ch12-mq-collab.xml:279 msgid "" "The sequence of patch groups that I maintain follows. The ordering of these " "groups is important; I'll describe why after I introduce the groups." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:283 +#: ../en/ch12-mq-collab.xml:283 msgid "" "The <quote>accepted</quote> group. Patches that the development team has " "submitted to the maintainer of the Infiniband subsystem, and which he has " @@ -15564,14 +14642,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:291 +#: ../en/ch12-mq-collab.xml:291 msgid "" "The <quote>rework</quote> group. Patches that I have submitted, but that the " "upstream maintainer has requested modifications to before he will accept them." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:296 +#: ../en/ch12-mq-collab.xml:296 msgid "" "The <quote>pending</quote> group. Patches that I have not yet submitted to " "the upstream maintainer, but which we have finished working on. These will be " @@ -15582,21 +14660,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:305 +#: ../en/ch12-mq-collab.xml:305 msgid "" "The <quote>in progress</quote> group. Patches that are actively being " "developed, and should not be submitted anywhere yet." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:309 +#: ../en/ch12-mq-collab.xml:309 msgid "" "The <quote>backport</quote> group. Patches that adapt the source tree to " "older versions of the kernel tree." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:313 +#: ../en/ch12-mq-collab.xml:313 msgid "" "The <quote>do not ship</quote> group. Patches that for some reason should " "never be submitted upstream. For example, one such patch might change " @@ -15606,7 +14684,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:321 +#: ../en/ch12-mq-collab.xml:321 msgid "" "Now to return to the reasons for ordering groups of patches in this way. We " "would like the lowest patches in the stack to be as stable as possible, so " @@ -15616,7 +14694,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:329 +#: ../en/ch12-mq-collab.xml:329 msgid "" "We would also like the patches that we know we'll need to modify to be " "applied on top of a source tree that resembles the upstream tree as closely " @@ -15624,7 +14702,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:334 +#: ../en/ch12-mq-collab.xml:334 msgid "" "The <quote>backport</quote> and <quote>do not ship</quote> patches float at " "the end of the <filename role=\"special\">series</filename> file. The " @@ -15633,19 +14711,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:343 +#: ../en/ch12-mq-collab.xml:343 msgid "Maintaining the patch series" msgstr "维护补丁系列" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:345 +#: ../en/ch12-mq-collab.xml:345 msgid "" "In my work, I use a number of guards to control which patches are to be " "applied." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:349 +#: ../en/ch12-mq-collab.xml:349 msgid "" "<quote>Accepted</quote> patches are guarded with <literal>accepted</" "literal>. I enable this guard most of the time. When I'm applying the " @@ -15654,7 +14732,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:356 +#: ../en/ch12-mq-collab.xml:356 msgid "" "Patches that are <quote>finished</quote>, but not yet submitted, have no " "guards. If I'm applying the patch stack to a copy of the upstream tree, I " @@ -15662,21 +14740,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:362 +#: ../en/ch12-mq-collab.xml:362 msgid "" "Those patches that need reworking before being resubmitted are guarded with " "<literal>rework</literal>." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:366 +#: ../en/ch12-mq-collab.xml:366 msgid "" "For those patches that are still under development, I use <literal>devel</" "literal>." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch13-mq-collab.xml:369 +#: ../en/ch12-mq-collab.xml:369 msgid "" "A backport patch may have several guards, one for each version of the kernel " "to which it applies. For example, a patch that backports a piece of code to " @@ -15684,7 +14762,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch13-mq-collab.xml:374 +#: ../en/ch12-mq-collab.xml:374 msgid "" "This variety of guards gives me considerable flexibility in determining what " "kind of source tree I want to end up with. For most situations, the " @@ -15693,12 +14771,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch13-mq-collab.xml:381 +#: ../en/ch12-mq-collab.xml:381 msgid "The art of writing backport patches" msgstr "编写向后移植补丁的艺术" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:383 +#: ../en/ch12-mq-collab.xml:383 msgid "" "Using MQ, writing a backport patch is a simple process. All such a patch has " "to do is modify a piece of code that uses a kernel feature not present in the " @@ -15707,7 +14785,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:389 +#: ../en/ch12-mq-collab.xml:389 msgid "" "A useful goal when writing a good backport patch is to make your code look as " "if it was written for the older version of the kernel you're targeting. The " @@ -15721,7 +14799,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:402 +#: ../en/ch12-mq-collab.xml:402 msgid "" "There are two reasons to divide backport patches into a distinct group, away " "from the <quote>regular</quote> patches whose effects they modify. The first " @@ -15734,17 +14812,17 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch13-mq-collab.xml:417 +#: ../en/ch12-mq-collab.xml:417 msgid "Useful tips for developing with MQ" msgstr "使用 MQ 开发的技巧" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch13-mq-collab.xml:420 +#: ../en/ch12-mq-collab.xml:420 msgid "Organising patches in directories" msgstr "将补丁放到几个目录中" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:422 +#: ../en/ch12-mq-collab.xml:422 msgid "" "If you're working on a substantial project with MQ, it's not difficult to " "accumulate a large number of patches. For example, I have one patch " @@ -15752,7 +14830,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:427 +#: ../en/ch12-mq-collab.xml:427 msgid "" "If you can group these patches into separate logical categories, you can if " "you like store them in different directories; MQ has no problems with patch " @@ -15760,12 +14838,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch13-mq-collab.xml:434 +#: ../en/ch12-mq-collab.xml:434 msgid "Viewing the history of a patch" msgstr "察看补丁的历史" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:436 +#: ../en/ch12-mq-collab.xml:436 msgid "" "If you're developing a set of patches over a long time, it's a good idea to " "maintain them in a repository, as discussed in section <xref linkend=\"sec.mq." @@ -15778,7 +14856,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:448 +#: ../en/ch12-mq-collab.xml:448 msgid "" "However, you can use the <literal role=\"hg-ext\">extdiff</literal> " "extension, which is bundled with Mercurial, to turn a diff of two versions of " @@ -15791,18 +14869,18 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:459 +#: ../en/ch12-mq-collab.xml:459 msgid "" "You can enable the <literal role=\"hg-ext\">extdiff</literal> extension in " "the usual way, by adding a line to the <literal role=\"rc-extensions" -"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</" +"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</" "filename>." msgstr "" # #. &example.hg-interdiff; #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:465 +#: ../en/ch12-mq-collab.xml:466 msgid "" "The <command>interdiff</command> command expects to be passed the names of " "two files, but the <literal role=\"hg-ext\">extdiff</literal> extension " @@ -15815,7 +14893,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:477 +#: ../en/ch12-mq-collab.xml:478 msgid "" "With the <filename role=\"special\">hg-interdiff</filename> program in your " "shell's search path, you can run it as follows, from inside an MQ patch " @@ -15823,16 +14901,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:482 +#: ../en/ch12-mq-collab.xml:482 msgid "" "Since you'll probably want to use this long-winded command a lot, you can get " "<literal role=\"hg-ext\">hgext</literal> to make it available as a normal " -"Mercurial command, again by editing your <filename role=\"special\"> /.hgrc</" +"Mercurial command, again by editing your <filename role=\"special\">~/.hgrc</" "filename>." msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:489 +#: ../en/ch12-mq-collab.xml:489 msgid "" "This directs <literal role=\"hg-ext\">hgext</literal> to make an " "<literal>interdiff</literal> command available, so you can now shorten the " @@ -15841,7 +14919,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><note><para> -#: ../en/ch13-mq-collab.xml:498 +#: ../en/ch12-mq-collab.xml:497 msgid "" "The <command>interdiff</command> command works well only if the underlying " "files against which versions of a patch are generated remain the same. If " @@ -15850,7 +14928,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch13-mq-collab.xml:506 +#: ../en/ch12-mq-collab.xml:505 msgid "" "The <literal role=\"hg-ext\">extdiff</literal> extension is useful for more " "than merely improving the presentation of MQ patches. To read more about it, " @@ -15858,12 +14936,12 @@ msgstr "" #. type: Content of: <book><chapter><title> -#: ../en/ch14-hgext.xml:5 +#: ../en/ch13-hgext.xml:5 msgid "Adding functionality with extensions" msgstr "使用扩展增加功能" #. type: Content of: <book><chapter><para> -#: ../en/ch14-hgext.xml:7 +#: ../en/ch13-hgext.xml:7 msgid "" "While the core of Mercurial is quite complete from a functionality " "standpoint, it's deliberately shorn of fancy features. This approach of " @@ -15872,7 +14950,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch14-hgext.xml:12 +#: ../en/ch13-hgext.xml:12 msgid "" "However, Mercurial doesn't box you in with an inflexible command set: you can " "add features to it as <emphasis>extensions</emphasis> (sometimes known as " @@ -15881,7 +14959,7 @@ msgstr "" #. type: Content of: <book><chapter><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:18 +#: ../en/ch13-hgext.xml:18 msgid "" "Section <xref linkend=\"sec.tour-merge.fetch\"/> covers the <literal role=" "\"hg-ext\">fetch</literal> extension; this combines pulling new changes and " @@ -15890,7 +14968,7 @@ msgstr "" #. type: Content of: <book><chapter><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:24 +#: ../en/ch13-hgext.xml:24 msgid "" "In chapter <xref linkend=\"chap.hook\"/>, we covered several extensions that " "are useful for hook-related functionality: <literal role=\"hg-ext\">acl</" @@ -15900,7 +14978,7 @@ msgstr "" #. type: Content of: <book><chapter><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:33 +#: ../en/ch13-hgext.xml:33 msgid "" "The Mercurial Queues patch management extension is so invaluable that it " "merits two chapters and an appendix all to itself. Chapter <xref linkend=" @@ -15910,7 +14988,7 @@ msgstr "" #. type: Content of: <book><chapter><para> -#: ../en/ch14-hgext.xml:43 +#: ../en/ch13-hgext.xml:43 msgid "" "In this chapter, we'll cover some of the other extensions that are available " "for Mercurial, and briefly touch on some of the machinery you'll need to know " @@ -15918,7 +14996,7 @@ msgstr "" #. type: Content of: <book><chapter><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:48 +#: ../en/ch13-hgext.xml:48 msgid "" "In section <xref linkend=\"sec.hgext.inotify\"/>, we'll discuss the " "possibility of <emphasis>huge</emphasis> performance improvements using the " @@ -15926,21 +15004,21 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch14-hgext.xml:55 +#: ../en/ch13-hgext.xml:55 msgid "" "Improve performance with the <literal role=\"hg-ext\">inotify</literal> " "extension" msgstr "使用扩展 <literal role=\"hg-ext\">inotify</literal> 以提高性能" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:58 +#: ../en/ch13-hgext.xml:58 msgid "" "Are you interested in having some of the most common Mercurial operations run " "as much as a hundred times faster? Read on!" msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:62 +#: ../en/ch13-hgext.xml:62 msgid "" "Mercurial has great performance under normal circumstances. For example, " "when you run the <command role=\"hg-cmd\">hg status</command> command, " @@ -15952,7 +15030,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:72 +#: ../en/ch13-hgext.xml:72 msgid "" "Because obtaining file status is crucial to good performance, the authors of " "Mercurial have optimised this code to within an inch of its life. However, " @@ -15964,7 +15042,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:82 +#: ../en/ch13-hgext.xml:82 msgid "" "To put a number on the magnitude of this effect, I created a repository " "containing 150,000 managed files. I timed <command role=\"hg-cmd\">hg " @@ -15973,7 +15051,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:88 +#: ../en/ch13-hgext.xml:88 msgid "" "Many modern operating systems contain a file notification facility. If a " "program signs up to an appropriate service, the operating system will notify " @@ -15983,7 +15061,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:95 +#: ../en/ch13-hgext.xml:95 msgid "" "Mercurial's <literal role=\"hg-ext\">inotify</literal> extension talks to the " "kernel's <literal>inotify</literal> component to optimise <command role=\"hg-" @@ -15998,7 +15076,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:108 +#: ../en/ch13-hgext.xml:108 msgid "" "Recall the ten seconds that I measured plain Mercurial as taking to run " "<command role=\"hg-cmd\">hg status</command> on a 150,000 file repository. " @@ -16008,12 +15086,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:115 +#: ../en/ch13-hgext.xml:115 msgid "Before we continue, please pay attention to some caveats." msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:118 +#: ../en/ch13-hgext.xml:118 msgid "" "The <literal role=\"hg-ext\">inotify</literal> extension is Linux-specific. " "Because it interfaces directly to the Linux kernel's <literal>inotify</" @@ -16021,7 +15099,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:123 +#: ../en/ch13-hgext.xml:123 msgid "" "It should work on any Linux distribution that was released after early 2005. " "Older distributions are likely to have a kernel that lacks <literal>inotify</" @@ -16030,7 +15108,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:130 +#: ../en/ch13-hgext.xml:130 msgid "" "Not all filesystems are suitable for use with the <literal role=\"hg-ext" "\">inotify</literal> extension. Network filesystems such as NFS are a non-" @@ -16042,7 +15120,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:141 +#: ../en/ch13-hgext.xml:141 msgid "" "The <literal role=\"hg-ext\">inotify</literal> extension is not yet shipped " "with Mercurial as of May 2007, so it's a little more involved to set up than " @@ -16050,7 +15128,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:146 +#: ../en/ch13-hgext.xml:146 msgid "" "The extension currently comes in two parts: a set of patches to the Mercurial " "source code, and a library of Python bindings to the <literal>inotify</" @@ -16058,7 +15136,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><note><para> -#: ../en/ch14-hgext.xml:150 +#: ../en/ch13-hgext.xml:150 msgid "" "There are <emphasis>two</emphasis> Python <literal>inotify</literal> binding " "libraries. One of them is called <literal>pyinotify</literal>, and is " @@ -16068,14 +15146,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:157 +#: ../en/ch13-hgext.xml:157 msgid "" "To get going, it's best to already have a functioning copy of Mercurial " "installed." msgstr "" #. type: Content of: <book><chapter><sect1><note><para> -#: ../en/ch14-hgext.xml:160 +#: ../en/ch13-hgext.xml:160 msgid "" "If you follow the instructions below, you'll be <emphasis>replacing</" "emphasis> and overwriting any existing installation of Mercurial that you " @@ -16084,14 +15162,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:167 +#: ../en/ch13-hgext.xml:167 msgid "" "Clone the Python <literal>inotify</literal> binding repository. Build and " "install it." msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:175 +#: ../en/ch13-hgext.xml:174 msgid "" "Clone the <filename class=\"directory\">crew</filename> Mercurial " "repository. Clone the <literal role=\"hg-ext\">inotify</literal> patch " @@ -16100,7 +15178,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:188 +#: ../en/ch13-hgext.xml:184 msgid "" "Make sure that you have the Mercurial Queues extension, <literal role=\"hg-ext" "\">mq</literal>, enabled. If you've never used MQ, read section <xref " @@ -16108,7 +15186,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:194 +#: ../en/ch13-hgext.xml:190 msgid "" "Go into the <filename class=\"directory\">inotify</filename> repo, and apply " "all of the <literal role=\"hg-ext\">inotify</literal> patches using the " @@ -16117,27 +15195,27 @@ msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:204 +#: ../en/ch13-hgext.xml:199 msgid "" "If you get an error message from <command role=\"hg-ext-mq\">qpush</command>, " "you should not continue. Instead, ask for help." msgstr "" #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> -#: ../en/ch14-hgext.xml:208 +#: ../en/ch13-hgext.xml:203 msgid "Build and install the patched version of Mercurial." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:216 +#: ../en/ch13-hgext.xml:209 msgid "" "Once you've build a suitably patched version of Mercurial, all you need to do " "to enable the <literal role=\"hg-ext\">inotify</literal> extension is add an " -"entry to your <filename role=\"special\"> /.hgrc</filename>." -msgstr "" - -#. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:221 +"entry to your <filename role=\"special\">~/.hgrc</filename>." +msgstr "" + +#. type: Content of: <book><chapter><sect1><para> +#: ../en/ch13-hgext.xml:214 msgid "" "When the <literal role=\"hg-ext\">inotify</literal> extension is enabled, " "Mercurial will automatically and transparently start the status daemon the " @@ -16146,7 +15224,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:227 +#: ../en/ch13-hgext.xml:220 msgid "" "The status daemon is started silently, and runs in the background. If you " "look at a list of running processes after you've enabled the <literal role=" @@ -16156,7 +15234,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:235 +#: ../en/ch13-hgext.xml:228 msgid "" "The first time you run a Mercurial command in a repository when you have the " "<literal role=\"hg-ext\">inotify</literal> extension enabled, it will run " @@ -16172,7 +15250,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:249 +#: ../en/ch13-hgext.xml:242 msgid "" "If you like, you can manually start a status daemon using the <command role=" "\"hg-ext-inotify\">inserve</command> command. This gives you slightly finer " @@ -16182,7 +15260,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:256 +#: ../en/ch13-hgext.xml:249 msgid "" "When you're using the <literal role=\"hg-ext\">inotify</literal> extension, " "you should notice <emphasis>no difference at all</emphasis> in Mercurial's " @@ -16193,14 +15271,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch14-hgext.xml:267 +#: ../en/ch13-hgext.xml:260 msgid "" "Flexible diff support with the <literal role=\"hg-ext\">extdiff</literal> " "extension" msgstr "使用扩展 <literal role=\"hg-ext\">extdiff</literal> 以扩展差异支持" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:270 +#: ../en/ch13-hgext.xml:263 msgid "" "Mercurial's built-in <command role=\"hg-cmd\">hg diff</command> command " "outputs plaintext unified diffs." @@ -16209,7 +15287,7 @@ "不同。" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:275 +#: ../en/ch13-hgext.xml:268 msgid "" "If you would like to use an external tool to display modifications, you'll " "want to use the <literal role=\"hg-ext\">extdiff</literal> extension. This " @@ -16217,16 +15295,16 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:280 +#: ../en/ch13-hgext.xml:273 msgid "" "The <literal role=\"hg-ext\">extdiff</literal> extension is bundled with " "Mercurial, so it's easy to set up. In the <literal role=\"rc-extensions" -"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</" +"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</" "filename>, simply add a one-line entry to enable the extension." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:286 +#: ../en/ch13-hgext.xml:280 msgid "" "This introduces a command named <command role=\"hg-ext-extdiff\">extdiff</" "command>, which by default uses your system's <command>diff</command> command " @@ -16235,7 +15313,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:294 +#: ../en/ch13-hgext.xml:288 msgid "" "The result won't be exactly the same as with the built-in <command role=\"hg-" "cmd\">hg diff</command> variations, because the output of <command>diff</" @@ -16243,7 +15321,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:299 +#: ../en/ch13-hgext.xml:293 msgid "" "As the <quote><literal>making snapshot</literal></quote> lines of output " "above imply, the <command role=\"hg-ext-extdiff\">extdiff</command> command " @@ -16257,7 +15335,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:312 +#: ../en/ch13-hgext.xml:306 msgid "" "Snapshot directory names have the same base name as your repository. If your " "repository path is <filename class=\"directory\">/quux/bar/foo</filename>, " @@ -16274,7 +15352,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:328 +#: ../en/ch13-hgext.xml:322 msgid "" "The <command role=\"hg-ext-extdiff\">extdiff</command> command accepts two " "important options. The <option role=\"hg-ext-extdiff-cmd-extdiff-opt\">hg -p</" @@ -16292,7 +15370,7 @@ # #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:345 +#: ../en/ch13-hgext.xml:339 msgid "" "As an example, here's how to run the normal system <command>diff</command> " "command, getting it to generate context diffs (using the <option role=\"cmd-" @@ -16302,14 +15380,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:354 +#: ../en/ch13-hgext.xml:348 msgid "" "Launching a visual diff tool is just as easy. Here's how to launch the " "<command>kdiff3</command> viewer." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:358 +#: ../en/ch13-hgext.xml:352 msgid "" "If your diff viewing command can't deal with directories, you can easily work " "around this with a little scripting. For an example of such scripting in " @@ -16319,12 +15397,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch14-hgext.xml:366 +#: ../en/ch13-hgext.xml:360 msgid "Defining command aliases" msgstr "定义命令的别名" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch14-hgext.xml:368 +#: ../en/ch13-hgext.xml:362 msgid "" "It can be cumbersome to remember the options to both the <command role=\"hg-" "ext-extdiff\">extdiff</command> command and the diff viewer you want to use, " @@ -16334,9 +15412,9 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch14-hgext.xml:375 -msgid "" -"All you need to do is edit your <filename role=\"special\"> /.hgrc</" +#: ../en/ch13-hgext.xml:369 +msgid "" +"All you need to do is edit your <filename role=\"special\">~/.hgrc</" "filename>, and add a section named <literal role=\"rc-extdiff\">extdiff</" "literal>. Inside this section, you can define multiple commands. Here's how " "to add a <literal>kdiff3</literal> command. Once you've defined this, you " @@ -16346,7 +15424,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch14-hgext.xml:384 +#: ../en/ch13-hgext.xml:379 msgid "" "If you leave the right hand side of the definition empty, as above, the " "<literal role=\"hg-ext\">extdiff</literal> extension uses the name of the " @@ -16357,7 +15435,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch14-hgext.xml:393 +#: ../en/ch13-hgext.xml:389 msgid "" "You can also specify the default options that you want to invoke your diff " "viewing program with. The prefix to use is <quote><literal>opts.</literal></" @@ -16367,19 +15445,19 @@ msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch14-hgext.xml:406 +#: ../en/ch13-hgext.xml:403 msgid "" "Cherrypicking changes with the <literal role=\"hg-ext\">transplant</literal> " "extension" msgstr "使用扩展 <literal role=\"hg-ext\">transplant</literal> 以挑选修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:409 +#: ../en/ch13-hgext.xml:406 msgid "Need to have a long chat with Brendan about this." msgstr "" #. type: Content of: <book><chapter><sect1><title> -#: ../en/ch14-hgext.xml:413 +#: ../en/ch13-hgext.xml:410 msgid "" "Send changes via email with the <literal role=\"hg-ext\">patchbomb</literal> " "extension" @@ -16387,7 +15465,7 @@ "使用扩展 <literal role=\"hg-ext\">patchbomb</literal> 通过 email 发送修改" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:416 +#: ../en/ch13-hgext.xml:413 msgid "" "Many projects have a culture of <quote>change review</quote>, in which people " "send their modifications to a mailing list for others to read and comment on " @@ -16397,7 +15475,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:424 +#: ../en/ch13-hgext.xml:421 msgid "" "Mercurial makes it easy to send changes over email for review or application, " "via its <literal role=\"hg-ext\">patchbomb</literal> extension. The " @@ -16408,7 +15486,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:432 +#: ../en/ch13-hgext.xml:429 msgid "" "As usual, the basic configuration of the <literal role=\"hg-ext\">patchbomb</" "literal> extension takes just one or two lines in your <filename role=" @@ -16416,14 +15494,14 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:437 +#: ../en/ch13-hgext.xml:435 msgid "" "Once you've enabled the extension, you will have a new command available, " "named <command role=\"hg-ext-patchbomb\">email</command>." msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:441 +#: ../en/ch13-hgext.xml:439 msgid "" "The safest and best way to invoke the <command role=\"hg-ext-patchbomb" "\">email</command> command is to <emphasis>always</emphasis> run it first " @@ -16436,7 +15514,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:452 +#: ../en/ch13-hgext.xml:450 msgid "" "The <command role=\"hg-ext-patchbomb\">email</command> command accepts the " "same kind of revision syntax as every other Mercurial command. For example, " @@ -16445,7 +15523,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:457 +#: ../en/ch13-hgext.xml:455 msgid "" "You can also specify a <emphasis>repository</emphasis> to compare with. If " "you provide a repository but no revisions, the <command role=\"hg-ext-" @@ -16457,7 +15535,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:466 +#: ../en/ch13-hgext.xml:464 msgid "" "It's perfectly safe to run the <command role=\"hg-ext-patchbomb\">email</" "command> command without the names of the people you want to send to: if you " @@ -16468,7 +15546,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:474 +#: ../en/ch13-hgext.xml:472 msgid "" "When you are sending just one revision, the <command role=\"hg-ext-patchbomb" "\">email</command> command will by default use the first line of the " @@ -16476,7 +15554,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><para> -#: ../en/ch14-hgext.xml:479 +#: ../en/ch13-hgext.xml:477 msgid "" "If you send multiple revisions, the <command role=\"hg-ext-patchbomb\">email</" "command> command will usually send one message per changeset. It will " @@ -16485,12 +15563,12 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><title> -#: ../en/ch14-hgext.xml:486 +#: ../en/ch13-hgext.xml:484 msgid "Changing the behaviour of patchbombs" msgstr "修改 patchbomb 的行为" #. type: Content of: <book><chapter><sect1><sect2><para> -#: ../en/ch14-hgext.xml:488 +#: ../en/ch13-hgext.xml:486 msgid "" "Not every project has exactly the same conventions for sending changes in " "email; the <literal role=\"hg-ext\">patchbomb</literal> extension tries to " @@ -16498,7 +15576,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:494 +#: ../en/ch13-hgext.xml:492 msgid "" "You can write a subject for the introductory message on the command line " "using the <option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -s</option> " @@ -16506,7 +15584,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:500 +#: ../en/ch13-hgext.xml:498 msgid "" "To change the email address from which the messages originate, use the " "<option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -f</option> option. This " @@ -16514,7 +15592,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:506 +#: ../en/ch13-hgext.xml:504 msgid "" "The default behaviour is to send unified diffs (see section <xref linkend=" "\"sec.mq.patch\"/> for a description of the format), one per message. You " @@ -16523,7 +15601,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:514 +#: ../en/ch13-hgext.xml:512 msgid "" "Unified diffs are normally prefaced with a metadata header. You can omit " "this, and send unadorned diffs, with the <option role=\"hg-ext-patchbomb-cmd-" @@ -16531,7 +15609,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:520 +#: ../en/ch13-hgext.xml:518 msgid "" "Diffs are normally sent <quote>inline</quote>, in the same body part as the " "description of a patch. This makes it easiest for the largest number of " @@ -16542,7 +15620,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:530 +#: ../en/ch13-hgext.xml:528 msgid "" "Instead of sending mail messages, you can write them to an <literal>mbox</" "literal>-format mail folder using the <option role=\"hg-ext-patchbomb-cmd-" @@ -16551,7 +15629,7 @@ msgstr "" #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> -#: ../en/ch14-hgext.xml:537 +#: ../en/ch13-hgext.xml:535 msgid "" "If you would like to add a <command>diffstat</command>-format summary to each " "patch, and one to the introductory message, use the <option role=\"hg-ext-" @@ -16560,3 +15638,60 @@ "the number of lines affected, and a histogram showing how much each file is " "modified. This gives readers a qualitative glance at how complex a patch is." msgstr "" + +#~ msgid "Introduction" +#~ msgstr "简介" + +#~ msgid "About revision control" +#~ msgstr "关于版本控制" + +#~ msgid "Why use revision control?" +#~ msgstr "为什么使用版本控制?" + +#~ msgid "The many names of revision control" +#~ msgstr "版本控制的别名" + +#~ msgid "Revision control (RCS)" +#~ msgstr "版本控制(RCS)" + +#~ msgid "Software configuration management (SCM), or configuration management" +#~ msgstr "软件配置管理(SCM),或配置管理" + +#~ msgid "Source code management" +#~ msgstr "源代码管理" + +#~ msgid "Source code control, or source control" +#~ msgstr "源代码控制,或源控制" + +#~ msgid "Version control (VCS)" +#~ msgstr "版本控制(VCS)" + +#~ msgid "A short history of revision control" +#~ msgstr "版本控制简史" + +#~ msgid "Trends in revision control" +#~ msgstr "版本控制的发展趋势" + +#~ msgid "A few of the advantages of distributed revision control" +#~ msgstr "分布版本控制的优点" + +#~ msgid "Advantages for open source projects" +#~ msgstr "开源项目的优点" + +#~ msgid "Advantages for commercial projects" +#~ msgstr "商业项目的优点" + +#~ msgid "Why choose Mercurial?" +#~ msgstr "为什么选择 Mercurial?" + +#~ msgid "Mercurial compared with other tools" +#~ msgstr "Mercurial 与其它工具的比较" + +#~ msgid "Commercial tools" +#~ msgstr "商业工具" + +#~ msgid "Choosing a revision control tool" +#~ msgstr "选择版本控制工具" + +#~ msgid "Switching from another tool to Mercurial" +#~ msgstr "从其它工具切换到 Mercurial"