hgbook
diff po/zh.po @ 650:7e7c47481e4f
Oops, this is the real merge for my hg's oddity
author | Dongsheng Song <dongsheng.song@gmail.com> |
---|---|
date | Fri Mar 20 16:43:35 2009 +0800 (2009-03-20) |
parents | c2cefd9f9893 |
children | 6b1577ef5135 |
line diff
1.1 --- a/po/zh.po Wed Mar 18 19:50:36 2009 +0800 1.2 +++ b/po/zh.po Fri Mar 20 16:43:35 2009 +0800 1.3 @@ -41,7 +41,7 @@ 1.4 msgid "" 1.5 msgstr "" 1.6 "Project-Id-Version: hgbook 1.2\n" 1.7 -"POT-Creation-Date: 2009-03-18 19:48+0800\n" 1.8 +"POT-Creation-Date: 2009-03-20 15:47+0800\n" 1.9 "PO-Revision-Date: 2009-03-18 19:50+0800\n" 1.10 "Last-Translator: \n" 1.11 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n" 1.12 @@ -475,15 +475,16 @@ 1.13 "patches</command>." 1.14 msgstr "" 1.15 1.16 +#. type: Content of: <book><appendix><sect1><sect2><title> 1.17 +#: ../en/appB-mq-ref.xml:43 1.18 +#, fuzzy 1.19 +msgid "" 1.20 +"<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a patch from the " 1.21 +"<filename role=\"special\">series</filename> file}" 1.22 +msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列" 1.23 + 1.24 #. type: Content of: <book><appendix><sect1><sect2><para> 1.25 -#: ../en/appB-mq-ref.xml:42 1.26 -msgid "" 1.27 -"\\subsection{<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a " 1.28 -"patch from the <filename role=\"special\">series</filename> file}" 1.29 -msgstr "" 1.30 - 1.31 -#. type: Content of: <book><appendix><sect1><sect2><para> 1.32 -#: ../en/appB-mq-ref.xml:47 1.33 +#: ../en/appB-mq-ref.xml:48 1.34 msgid "" 1.35 "The <command role=\"hg-ext-mq\">qdelete</command> command removes the entry " 1.36 "for a patch from the <filename role=\"special\">series</filename> file in the " 1.37 @@ -494,21 +495,21 @@ 1.38 msgstr "" 1.39 1.40 #. type: Content of: <book><appendix><sect1><sect2><para> 1.41 -#: ../en/appB-mq-ref.xml:56 ../en/appB-mq-ref.xml:98 ../en/appB-mq-ref.xml:156 1.42 -#: ../en/appB-mq-ref.xml:196 ../en/appB-mq-ref.xml:263 1.43 -#: ../en/appB-mq-ref.xml:334 ../en/appB-mq-ref.xml:403 1.44 -#: ../en/appB-mq-ref.xml:496 1.45 +#: ../en/appB-mq-ref.xml:57 ../en/appB-mq-ref.xml:99 ../en/appB-mq-ref.xml:157 1.46 +#: ../en/appB-mq-ref.xml:197 ../en/appB-mq-ref.xml:264 1.47 +#: ../en/appB-mq-ref.xml:335 ../en/appB-mq-ref.xml:404 1.48 +#: ../en/appB-mq-ref.xml:497 1.49 msgid "Options:" 1.50 msgstr "" 1.51 1.52 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.53 -#: ../en/appB-mq-ref.xml:58 1.54 +#: ../en/appB-mq-ref.xml:59 1.55 msgid "" 1.56 "<option role=\"hg-ext-mq-cmd-qdel-opt\">-f</option>: Delete the patch file." 1.57 msgstr "" 1.58 1.59 #. type: Content of: <book><appendix><sect1><sect2><title> 1.60 -#: ../en/appB-mq-ref.xml:65 1.61 +#: ../en/appB-mq-ref.xml:66 1.62 msgid "" 1.63 "<command role=\"hg-ext-mq\">qdiff</command>&emdash;print a diff of the " 1.64 "topmost applied patch" 1.65 @@ -516,7 +517,7 @@ 1.66 "<command role=\"hg-ext-mq\">qdiff</command>&emdash;显示最新应用补丁的差异" 1.67 1.68 #. type: Content of: <book><appendix><sect1><sect2><para> 1.69 -#: ../en/appB-mq-ref.xml:68 1.70 +#: ../en/appB-mq-ref.xml:69 1.71 msgid "" 1.72 "The <command role=\"hg-ext-mq\">qdiff</command> command prints a diff of the " 1.73 "topmost applied patch. It is equivalent to <command role=\"hg-cmd\">hg diff -" 1.74 @@ -524,7 +525,7 @@ 1.75 msgstr "" 1.76 1.77 #. type: Content of: <book><appendix><sect1><sect2><title> 1.78 -#: ../en/appB-mq-ref.xml:74 1.79 +#: ../en/appB-mq-ref.xml:75 1.80 msgid "" 1.81 "<command role=\"hg-ext-mq\">qfold</command>&emdash;merge (<quote>fold</" 1.82 "quote>) several patches into one" 1.83 @@ -533,7 +534,7 @@ 1.84 "</quote>)成一个" 1.85 1.86 #. type: Content of: <book><appendix><sect1><sect2><para> 1.87 -#: ../en/appB-mq-ref.xml:77 1.88 +#: ../en/appB-mq-ref.xml:78 1.89 msgid "" 1.90 "The <command role=\"hg-ext-mq\">qfold</command> command merges multiple " 1.91 "patches into the topmost applied patch, so that the topmost applied patch " 1.92 @@ -541,7 +542,7 @@ 1.93 msgstr "" 1.94 1.95 #. type: Content of: <book><appendix><sect1><sect2><para> 1.96 -#: ../en/appB-mq-ref.xml:82 1.97 +#: ../en/appB-mq-ref.xml:83 1.98 msgid "" 1.99 "The patches to fold must not be applied; <command role=\"hg-ext-mq\">qfold</" 1.100 "command> will exit with an error if any is. The order in which patches are " 1.101 @@ -551,7 +552,7 @@ 1.102 msgstr "" 1.103 1.104 #. type: Content of: <book><appendix><sect1><sect2><para> 1.105 -#: ../en/appB-mq-ref.xml:90 1.106 +#: ../en/appB-mq-ref.xml:91 1.107 msgid "" 1.108 "The comments from the folded patches are appended to the comments of the " 1.109 "destination patch, with each block of comments separated by three asterisk " 1.110 @@ -561,14 +562,14 @@ 1.111 msgstr "" 1.112 1.113 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.114 -#: ../en/appB-mq-ref.xml:100 1.115 +#: ../en/appB-mq-ref.xml:101 1.116 msgid "" 1.117 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-e</option>: Edit the commit message " 1.118 "and patch description for the newly folded patch." 1.119 msgstr "" 1.120 1.121 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.122 -#: ../en/appB-mq-ref.xml:105 1.123 +#: ../en/appB-mq-ref.xml:106 1.124 msgid "" 1.125 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-l</option>: Use the contents of the " 1.126 "given file as the new commit message and patch description for the folded " 1.127 @@ -576,21 +577,21 @@ 1.128 msgstr "" 1.129 1.130 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.131 -#: ../en/appB-mq-ref.xml:110 1.132 +#: ../en/appB-mq-ref.xml:111 1.133 msgid "" 1.134 "<option role=\"hg-ext-mq-cmd-qfold-opt\">-m</option>: Use the given text as " 1.135 "the new commit message and patch description for the folded patch." 1.136 msgstr "" 1.137 1.138 #. type: Content of: <book><appendix><sect1><sect2><title> 1.139 -#: ../en/appB-mq-ref.xml:118 1.140 +#: ../en/appB-mq-ref.xml:119 1.141 msgid "" 1.142 "<command role=\"hg-ext-mq\">qheader</command>&emdash;display the header/" 1.143 "description of a patch" 1.144 msgstr "<command role=\"hg-ext-mq\">qheader</command>&emdash;显示补丁头部描述" 1.145 1.146 #. type: Content of: <book><appendix><sect1><sect2><para> 1.147 -#: ../en/appB-mq-ref.xml:122 1.148 +#: ../en/appB-mq-ref.xml:123 1.149 msgid "" 1.150 "The <command role=\"hg-ext-mq\">qheader</command> command prints the header, " 1.151 "or description, of a patch. By default, it prints the header of the topmost " 1.152 @@ -598,7 +599,7 @@ 1.153 msgstr "" 1.154 1.155 #. type: Content of: <book><appendix><sect1><sect2><title> 1.156 -#: ../en/appB-mq-ref.xml:129 1.157 +#: ../en/appB-mq-ref.xml:130 1.158 msgid "" 1.159 "<command role=\"hg-ext-mq\">qimport</command>&emdash;import a third-party " 1.160 "patch into the queue" 1.161 @@ -606,7 +607,7 @@ 1.162 "<command role=\"hg-ext-mq\">qimport</command>&emdash;将第三方补丁导入队列" 1.163 1.164 #. type: Content of: <book><appendix><sect1><sect2><para> 1.165 -#: ../en/appB-mq-ref.xml:132 1.166 +#: ../en/appB-mq-ref.xml:133 1.167 msgid "" 1.168 "The <command role=\"hg-ext-mq\">qimport</command> command adds an entry for " 1.169 "an external patch to the <filename role=\"special\">series</filename> file, " 1.170 @@ -616,7 +617,7 @@ 1.171 msgstr "" 1.172 1.173 #. type: Content of: <book><appendix><sect1><sect2><para> 1.174 -#: ../en/appB-mq-ref.xml:140 1.175 +#: ../en/appB-mq-ref.xml:141 1.176 msgid "" 1.177 "If the <filename role=\"special\" class=\"directory\">.hg/patches</filename> " 1.178 "directory is a repository, <command role=\"hg-ext-mq\">qimport</command> " 1.179 @@ -625,14 +626,14 @@ 1.180 msgstr "" 1.181 1.182 #. type: Content of: <book><appendix><sect1><sect2><title> 1.183 -#: ../en/appB-mq-ref.xml:148 1.184 +#: ../en/appB-mq-ref.xml:149 1.185 msgid "" 1.186 "<command role=\"hg-ext-mq\">qinit</command>&emdash;prepare a repository to " 1.187 "work with MQ" 1.188 msgstr "<command role=\"hg-ext-mq\">qinit</command>&emdash;为使用 MQ 配置版本库" 1.189 1.190 #. type: Content of: <book><appendix><sect1><sect2><para> 1.191 -#: ../en/appB-mq-ref.xml:151 1.192 +#: ../en/appB-mq-ref.xml:152 1.193 msgid "" 1.194 "The <command role=\"hg-ext-mq\">qinit</command> command prepares a repository " 1.195 "to work with MQ. It creates a directory called <filename role=\"special\" " 1.196 @@ -640,7 +641,7 @@ 1.197 msgstr "" 1.198 1.199 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.200 -#: ../en/appB-mq-ref.xml:158 1.201 +#: ../en/appB-mq-ref.xml:159 1.202 msgid "" 1.203 "<option role=\"hg-ext-mq-cmd-qinit-opt\">-c</option>: Create <filename role=" 1.204 "\"special\" class=\"directory\">.hg/patches</filename> as a repository in its " 1.205 @@ -649,7 +650,7 @@ 1.206 msgstr "" 1.207 1.208 #. type: Content of: <book><appendix><sect1><sect2><para> 1.209 -#: ../en/appB-mq-ref.xml:168 1.210 +#: ../en/appB-mq-ref.xml:169 1.211 msgid "" 1.212 "When the <filename role=\"special\" class=\"directory\">.hg/patches</" 1.213 "filename> directory is a repository, the <command role=\"hg-ext-mq\">qimport</" 1.214 @@ -658,12 +659,12 @@ 1.215 msgstr "" 1.216 1.217 #. type: Content of: <book><appendix><sect1><sect2><title> 1.218 -#: ../en/appB-mq-ref.xml:177 1.219 +#: ../en/appB-mq-ref.xml:178 1.220 msgid "<command role=\"hg-ext-mq\">qnew</command>&emdash;create a new patch" 1.221 msgstr "<command role=\"hg-ext-mq\">qnew</command>&emdash;创建新补丁" 1.222 1.223 #. type: Content of: <book><appendix><sect1><sect2><para> 1.224 -#: ../en/appB-mq-ref.xml:180 1.225 +#: ../en/appB-mq-ref.xml:181 1.226 msgid "" 1.227 "The <command role=\"hg-ext-mq\">qnew</command> command creates a new patch. " 1.228 "It takes one mandatory argument, the name to use for the patch file. The " 1.229 @@ -673,7 +674,7 @@ 1.230 msgstr "" 1.231 1.232 #. type: Content of: <book><appendix><sect1><sect2><para> 1.233 -#: ../en/appB-mq-ref.xml:188 1.234 +#: ../en/appB-mq-ref.xml:189 1.235 msgid "" 1.236 "If <command role=\"hg-ext-mq\">qnew</command> finds modified files in the " 1.237 "working directory, it will refuse to create a new patch unless the <option " 1.238 @@ -683,7 +684,7 @@ 1.239 msgstr "" 1.240 1.241 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.242 -#: ../en/appB-mq-ref.xml:198 1.243 +#: ../en/appB-mq-ref.xml:199 1.244 msgid "" 1.245 "<option role=\"hg-ext-mq-cmd-qnew-opt\">-f</option>: Create a new patch if " 1.246 "the contents of the working directory are modified. Any outstanding " 1.247 @@ -692,7 +693,7 @@ 1.248 msgstr "" 1.249 1.250 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.251 -#: ../en/appB-mq-ref.xml:205 1.252 +#: ../en/appB-mq-ref.xml:206 1.253 msgid "" 1.254 "<option role=\"hg-ext-mq-cmd-qnew-opt\">-m</option>: Use the given text as " 1.255 "the commit message. This text will be stored at the beginning of the patch " 1.256 @@ -700,14 +701,14 @@ 1.257 msgstr "" 1.258 1.259 #. type: Content of: <book><appendix><sect1><sect2><title> 1.260 -#: ../en/appB-mq-ref.xml:214 1.261 +#: ../en/appB-mq-ref.xml:215 1.262 msgid "" 1.263 "<command role=\"hg-ext-mq\">qnext</command>&emdash;print the name of the next " 1.264 "patch" 1.265 msgstr "<command role=\"hg-ext-mq\">qnext</command>&emdash;显示下个补丁的名称" 1.266 1.267 #. type: Content of: <book><appendix><sect1><sect2><para> 1.268 -#: ../en/appB-mq-ref.xml:217 1.269 +#: ../en/appB-mq-ref.xml:218 1.270 msgid "" 1.271 "The <command role=\"hg-ext-mq\">qnext</command> command prints the name name " 1.272 "of the next patch in the <filename role=\"special\">series</filename> file " 1.273 @@ -716,13 +717,13 @@ 1.274 msgstr "" 1.275 1.276 #. type: Content of: <book><appendix><sect1><sect2><title> 1.277 -#: ../en/appB-mq-ref.xml:226 1.278 +#: ../en/appB-mq-ref.xml:227 1.279 msgid "" 1.280 "<command role=\"hg-ext-mq\">qpop</command>&emdash;pop patches off the stack" 1.281 msgstr "<command role=\"hg-ext-mq\">qpop</command>&emdash;删除堆栈顶部的补丁" 1.282 1.283 #. type: Content of: <book><appendix><sect1><sect2><para> 1.284 -#: ../en/appB-mq-ref.xml:229 1.285 +#: ../en/appB-mq-ref.xml:230 1.286 msgid "" 1.287 "The <command role=\"hg-ext-mq\">qpop</command> command removes applied " 1.288 "patches from the top of the stack of applied patches. By default, it removes " 1.289 @@ -730,7 +731,7 @@ 1.290 msgstr "" 1.291 1.292 #. type: Content of: <book><appendix><sect1><sect2><para> 1.293 -#: ../en/appB-mq-ref.xml:233 1.294 +#: ../en/appB-mq-ref.xml:234 1.295 msgid "" 1.296 "This command removes the changesets that represent the popped patches from " 1.297 "the repository, and updates the working directory to undo the effects of the " 1.298 @@ -738,7 +739,7 @@ 1.299 msgstr "" 1.300 1.301 #. type: Content of: <book><appendix><sect1><sect2><para> 1.302 -#: ../en/appB-mq-ref.xml:237 1.303 +#: ../en/appB-mq-ref.xml:238 1.304 msgid "" 1.305 "This command takes an optional argument, which it uses as the name or index " 1.306 "of the patch to pop to. If given a name, it will pop patches until the named " 1.307 @@ -750,7 +751,7 @@ 1.308 msgstr "" 1.309 1.310 #. type: Content of: <book><appendix><sect1><sect2><para> 1.311 -#: ../en/appB-mq-ref.xml:247 1.312 +#: ../en/appB-mq-ref.xml:248 1.313 msgid "" 1.314 "The <command role=\"hg-ext-mq\">qpop</command> command does not read or write " 1.315 "patches or the <filename role=\"special\">series</filename> file. It is thus " 1.316 @@ -761,7 +762,7 @@ 1.317 msgstr "" 1.318 1.319 #. type: Content of: <book><appendix><sect1><sect2><para> 1.320 -#: ../en/appB-mq-ref.xml:256 1.321 +#: ../en/appB-mq-ref.xml:257 1.322 msgid "" 1.323 "By default, the <command role=\"hg-ext-mq\">qpop</command> command will not " 1.324 "pop any patches if the working directory has been modified. You can override " 1.325 @@ -770,7 +771,7 @@ 1.326 msgstr "" 1.327 1.328 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.329 -#: ../en/appB-mq-ref.xml:265 1.330 +#: ../en/appB-mq-ref.xml:266 1.331 msgid "" 1.332 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-a</option>: Pop all applied " 1.333 "patches. This returns the repository to its state before you applied any " 1.334 @@ -778,21 +779,21 @@ 1.335 msgstr "" 1.336 1.337 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.338 -#: ../en/appB-mq-ref.xml:270 1.339 +#: ../en/appB-mq-ref.xml:271 1.340 msgid "" 1.341 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-f</option>: Forcibly revert any " 1.342 "modifications to the working directory when popping." 1.343 msgstr "" 1.344 1.345 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.346 -#: ../en/appB-mq-ref.xml:275 1.347 +#: ../en/appB-mq-ref.xml:276 1.348 msgid "" 1.349 "<option role=\"hg-ext-mq-cmd-qpop-opt\">-n</option>: Pop a patch from the " 1.350 "named queue." 1.351 msgstr "" 1.352 1.353 #. type: Content of: <book><appendix><sect1><sect2><para> 1.354 -#: ../en/appB-mq-ref.xml:280 1.355 +#: ../en/appB-mq-ref.xml:281 1.356 msgid "" 1.357 "The <command role=\"hg-ext-mq\">qpop</command> command removes one line from " 1.358 "the end of the <filename role=\"special\">status</filename> file for each " 1.359 @@ -800,14 +801,14 @@ 1.360 msgstr "" 1.361 1.362 #. type: Content of: <book><appendix><sect1><sect2><title> 1.363 -#: ../en/appB-mq-ref.xml:287 1.364 +#: ../en/appB-mq-ref.xml:288 1.365 msgid "" 1.366 "<command role=\"hg-ext-mq\">qprev</command>&emdash;print the name of the " 1.367 "previous patch" 1.368 msgstr "<command role=\"hg-ext-mq\">qprev</command>&emdash;显示上个补丁的名称" 1.369 1.370 #. type: Content of: <book><appendix><sect1><sect2><para> 1.371 -#: ../en/appB-mq-ref.xml:290 1.372 +#: ../en/appB-mq-ref.xml:291 1.373 msgid "" 1.374 "The <command role=\"hg-ext-mq\">qprev</command> command prints the name of " 1.375 "the patch in the <filename role=\"special\">series</filename> file that comes " 1.376 @@ -816,32 +817,32 @@ 1.377 msgstr "" 1.378 1.379 #. type: Content of: <book><appendix><sect1><sect2><title> 1.380 -#: ../en/appB-mq-ref.xml:299 1.381 +#: ../en/appB-mq-ref.xml:300 1.382 msgid "" 1.383 "<command role=\"hg-ext-mq\">qpush</command>&emdash;push patches onto the stack" 1.384 msgstr "<command role=\"hg-ext-mq\">qpush</command>&emdash;增加补丁到堆栈" 1.385 1.386 #. type: Content of: <book><appendix><sect1><sect2><para> 1.387 -#: ../en/appB-mq-ref.xml:302 1.388 +#: ../en/appB-mq-ref.xml:303 1.389 msgid "" 1.390 "The <command role=\"hg-ext-mq\">qpush</command> command adds patches onto the " 1.391 "applied stack. By default, it adds only one patch." 1.392 msgstr "" 1.393 1.394 #. type: Content of: <book><appendix><sect1><sect2><para> 1.395 -#: ../en/appB-mq-ref.xml:306 1.396 +#: ../en/appB-mq-ref.xml:307 1.397 msgid "" 1.398 "This command creates a new changeset to represent each applied patch, and " 1.399 "updates the working directory to apply the effects of the patches." 1.400 msgstr "" 1.401 1.402 #. type: Content of: <book><appendix><sect1><sect2><para> 1.403 -#: ../en/appB-mq-ref.xml:310 1.404 +#: ../en/appB-mq-ref.xml:311 1.405 msgid "The default data used when creating a changeset are as follows:" 1.406 msgstr "" 1.407 1.408 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.409 -#: ../en/appB-mq-ref.xml:313 1.410 +#: ../en/appB-mq-ref.xml:314 1.411 msgid "" 1.412 "The commit date and time zone are the current date and time zone. Because " 1.413 "these data are used to compute the identity of a changeset, this means that " 1.414 @@ -851,14 +852,14 @@ 1.415 msgstr "" 1.416 1.417 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.418 -#: ../en/appB-mq-ref.xml:321 1.419 +#: ../en/appB-mq-ref.xml:322 1.420 msgid "" 1.421 "The author is the same as the default used by the <command role=\"hg-cmd\">hg " 1.422 "commit</command> command." 1.423 msgstr "" 1.424 1.425 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.426 -#: ../en/appB-mq-ref.xml:325 1.427 +#: ../en/appB-mq-ref.xml:326 1.428 msgid "" 1.429 "The commit message is any text from the patch file that comes before the " 1.430 "first diff header. If there is no such text, a default commit message is " 1.431 @@ -866,14 +867,14 @@ 1.432 msgstr "" 1.433 1.434 #. type: Content of: <book><appendix><sect1><sect2><para> 1.435 -#: ../en/appB-mq-ref.xml:330 1.436 +#: ../en/appB-mq-ref.xml:331 1.437 msgid "" 1.438 "If a patch contains a Mercurial patch header (XXX add link), the information " 1.439 "in the patch header overrides these defaults." 1.440 msgstr "" 1.441 1.442 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.443 -#: ../en/appB-mq-ref.xml:336 1.444 +#: ../en/appB-mq-ref.xml:337 1.445 msgid "" 1.446 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-a</option>: Push all unapplied " 1.447 "patches from the <filename role=\"special\">series</filename> file until " 1.448 @@ -881,14 +882,14 @@ 1.449 msgstr "" 1.450 1.451 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.452 -#: ../en/appB-mq-ref.xml:342 1.453 +#: ../en/appB-mq-ref.xml:343 1.454 msgid "" 1.455 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-l</option>: Add the name of the " 1.456 "patch to the end of the commit message." 1.457 msgstr "" 1.458 1.459 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.460 -#: ../en/appB-mq-ref.xml:346 1.461 +#: ../en/appB-mq-ref.xml:347 1.462 msgid "" 1.463 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-m</option>: If a patch fails to " 1.464 "apply cleanly, use the entry for the patch in another saved queue to compute " 1.465 @@ -898,14 +899,14 @@ 1.466 msgstr "" 1.467 1.468 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.469 -#: ../en/appB-mq-ref.xml:354 1.470 +#: ../en/appB-mq-ref.xml:355 1.471 msgid "" 1.472 "<option role=\"hg-ext-mq-cmd-qpush-opt\">-n</option>: Use the named queue if " 1.473 "merging while pushing." 1.474 msgstr "" 1.475 1.476 #. type: Content of: <book><appendix><sect1><sect2><para> 1.477 -#: ../en/appB-mq-ref.xml:359 1.478 +#: ../en/appB-mq-ref.xml:360 1.479 msgid "" 1.480 "The <command role=\"hg-ext-mq\">qpush</command> command reads, but does not " 1.481 "modify, the <filename role=\"special\">series</filename> file. It appends " 1.482 @@ -914,14 +915,14 @@ 1.483 msgstr "" 1.484 1.485 #. type: Content of: <book><appendix><sect1><sect2><title> 1.486 -#: ../en/appB-mq-ref.xml:367 1.487 +#: ../en/appB-mq-ref.xml:368 1.488 msgid "" 1.489 "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;update the topmost " 1.490 "applied patch" 1.491 msgstr "<command role=\"hg-ext-mq\">qrefresh</command>&emdash;更新最新的补丁" 1.492 1.493 #. type: Content of: <book><appendix><sect1><sect2><para> 1.494 -#: ../en/appB-mq-ref.xml:371 1.495 +#: ../en/appB-mq-ref.xml:372 1.496 msgid "" 1.497 "The <command role=\"hg-ext-mq\">qrefresh</command> command updates the " 1.498 "topmost applied patch. It modifies the patch, removes the old changeset that " 1.499 @@ -930,28 +931,28 @@ 1.500 msgstr "" 1.501 1.502 #. type: Content of: <book><appendix><sect1><sect2><para> 1.503 -#: ../en/appB-mq-ref.xml:377 1.504 +#: ../en/appB-mq-ref.xml:378 1.505 msgid "" 1.506 "The <command role=\"hg-ext-mq\">qrefresh</command> command looks for the " 1.507 "following modifications:" 1.508 msgstr "" 1.509 1.510 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.511 -#: ../en/appB-mq-ref.xml:380 1.512 +#: ../en/appB-mq-ref.xml:381 1.513 msgid "" 1.514 "Changes to the commit message, i.e. the text before the first diff header in " 1.515 "the patch file, are reflected in the new changeset that represents the patch." 1.516 msgstr "" 1.517 1.518 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.519 -#: ../en/appB-mq-ref.xml:385 1.520 +#: ../en/appB-mq-ref.xml:386 1.521 msgid "" 1.522 "Modifications to tracked files in the working directory are added to the " 1.523 "patch." 1.524 msgstr "" 1.525 1.526 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.527 -#: ../en/appB-mq-ref.xml:388 1.528 +#: ../en/appB-mq-ref.xml:389 1.529 msgid "" 1.530 "Changes to the files tracked using <command role=\"hg-cmd\">hg add</command>, " 1.531 "<command role=\"hg-cmd\">hg copy</command>, <command role=\"hg-cmd\">hg " 1.532 @@ -961,7 +962,7 @@ 1.533 msgstr "" 1.534 1.535 #. type: Content of: <book><appendix><sect1><sect2><para> 1.536 -#: ../en/appB-mq-ref.xml:397 1.537 +#: ../en/appB-mq-ref.xml:398 1.538 msgid "" 1.539 "Even if <command role=\"hg-ext-mq\">qrefresh</command> detects no changes, it " 1.540 "still recreates the changeset that represents the patch. This causes the " 1.541 @@ -970,33 +971,33 @@ 1.542 msgstr "" 1.543 1.544 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.545 -#: ../en/appB-mq-ref.xml:405 1.546 +#: ../en/appB-mq-ref.xml:406 1.547 msgid "" 1.548 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-e</option>: Modify the commit " 1.549 "and patch description, using the preferred text editor." 1.550 msgstr "" 1.551 1.552 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.553 -#: ../en/appB-mq-ref.xml:410 1.554 +#: ../en/appB-mq-ref.xml:411 1.555 msgid "" 1.556 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-m</option>: Modify the commit " 1.557 "message and patch description, using the given text." 1.558 msgstr "" 1.559 1.560 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.561 -#: ../en/appB-mq-ref.xml:415 1.562 +#: ../en/appB-mq-ref.xml:416 1.563 msgid "" 1.564 "<option role=\"hg-ext-mq-cmd-qrefresh-opt\">-l</option>: Modify the commit " 1.565 "message and patch description, using text from the given file." 1.566 msgstr "" 1.567 1.568 #. type: Content of: <book><appendix><sect1><sect2><title> 1.569 -#: ../en/appB-mq-ref.xml:423 1.570 +#: ../en/appB-mq-ref.xml:424 1.571 msgid "<command role=\"hg-ext-mq\">qrename</command>&emdash;rename a patch" 1.572 msgstr "<command role=\"hg-ext-mq\">qrename</command>&emdash;改名补丁" 1.573 1.574 #. type: Content of: <book><appendix><sect1><sect2><para> 1.575 -#: ../en/appB-mq-ref.xml:426 1.576 +#: ../en/appB-mq-ref.xml:427 1.577 msgid "" 1.578 "The <command role=\"hg-ext-mq\">qrename</command> command renames a patch, " 1.579 "and changes the entry for the patch in the <filename role=\"special\">series</" 1.580 @@ -1004,7 +1005,7 @@ 1.581 msgstr "" 1.582 1.583 #. type: Content of: <book><appendix><sect1><sect2><para> 1.584 -#: ../en/appB-mq-ref.xml:430 1.585 +#: ../en/appB-mq-ref.xml:431 1.586 msgid "" 1.587 "With a single argument, <command role=\"hg-ext-mq\">qrename</command> renames " 1.588 "the topmost applied patch. With two arguments, it renames its first argument " 1.589 @@ -1012,37 +1013,37 @@ 1.590 msgstr "" 1.591 1.592 #. type: Content of: <book><appendix><sect1><sect2><title> 1.593 -#: ../en/appB-mq-ref.xml:437 1.594 +#: ../en/appB-mq-ref.xml:438 1.595 msgid "" 1.596 "<command role=\"hg-ext-mq\">qrestore</command>&emdash;restore saved queue " 1.597 "state" 1.598 msgstr "<command role=\"hg-ext-mq\">qrestore</command>&emdash;恢复保存的队列" 1.599 1.600 #. type: Content of: <book><appendix><sect1><sect2><para> 1.601 -#: ../en/appB-mq-ref.xml:441 1.602 +#: ../en/appB-mq-ref.xml:442 1.603 msgid "XXX No idea what this does." 1.604 msgstr "" 1.605 1.606 #. type: Content of: <book><appendix><sect1><sect2><title> 1.607 -#: ../en/appB-mq-ref.xml:445 1.608 +#: ../en/appB-mq-ref.xml:446 1.609 msgid "" 1.610 "<command role=\"hg-ext-mq\">qsave</command>&emdash;save current queue state" 1.611 msgstr "<command role=\"hg-ext-mq\">qsave</command>&emdash;保存当前的队列状态" 1.612 1.613 #. type: Content of: <book><appendix><sect1><sect2><para> 1.614 -#: ../en/appB-mq-ref.xml:448 1.615 +#: ../en/appB-mq-ref.xml:449 1.616 msgid "XXX Likewise." 1.617 msgstr "" 1.618 1.619 #. type: Content of: <book><appendix><sect1><sect2><title> 1.620 -#: ../en/appB-mq-ref.xml:452 1.621 +#: ../en/appB-mq-ref.xml:453 1.622 msgid "" 1.623 "<command role=\"hg-ext-mq\">qseries</command>&emdash;print the entire patch " 1.624 "series" 1.625 msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列" 1.626 1.627 #. type: Content of: <book><appendix><sect1><sect2><para> 1.628 -#: ../en/appB-mq-ref.xml:455 1.629 +#: ../en/appB-mq-ref.xml:456 1.630 msgid "" 1.631 "The <command role=\"hg-ext-mq\">qseries</command> command prints the entire " 1.632 "patch series from the <filename role=\"special\">series</filename> file. It " 1.633 @@ -1051,21 +1052,21 @@ 1.634 msgstr "" 1.635 1.636 #. type: Content of: <book><appendix><sect1><sect2><title> 1.637 -#: ../en/appB-mq-ref.xml:463 1.638 +#: ../en/appB-mq-ref.xml:464 1.639 msgid "" 1.640 "<command role=\"hg-ext-mq\">qtop</command>&emdash;print the name of the " 1.641 "current patch" 1.642 msgstr "<command role=\"hg-ext-mq\">qtop</command>&emdash;显示当前补丁的名称" 1.643 1.644 #. type: Content of: <book><appendix><sect1><sect2><para> 1.645 -#: ../en/appB-mq-ref.xml:466 1.646 +#: ../en/appB-mq-ref.xml:467 1.647 msgid "" 1.648 "The <command role=\"hg-ext-mq\">qtop</command> prints the name of the topmost " 1.649 "currently applied patch." 1.650 msgstr "" 1.651 1.652 #. type: Content of: <book><appendix><sect1><sect2><title> 1.653 -#: ../en/appB-mq-ref.xml:471 1.654 +#: ../en/appB-mq-ref.xml:472 1.655 msgid "" 1.656 "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;print patches not yet " 1.657 "applied" 1.658 @@ -1073,7 +1074,7 @@ 1.659 "<command role=\"hg-ext-mq\">qunapplied</command>&emdash;显示尚未应用的补丁" 1.660 1.661 #. type: Content of: <book><appendix><sect1><sect2><para> 1.662 -#: ../en/appB-mq-ref.xml:475 1.663 +#: ../en/appB-mq-ref.xml:476 1.664 msgid "" 1.665 "The <command role=\"hg-ext-mq\">qunapplied</command> command prints the names " 1.666 "of patches from the <filename role=\"special\">series</filename> file that " 1.667 @@ -1082,14 +1083,14 @@ 1.668 msgstr "" 1.669 1.670 #. type: Content of: <book><appendix><sect1><sect2><title> 1.671 -#: ../en/appB-mq-ref.xml:483 1.672 +#: ../en/appB-mq-ref.xml:484 1.673 msgid "" 1.674 "<command role=\"hg-cmd\">hg strip</command>&emdash;remove a revision and " 1.675 "descendants" 1.676 msgstr "<command role=\"hg-cmd\">hg strip</command>&emdash;删除一个版本及其后继" 1.677 1.678 #. type: Content of: <book><appendix><sect1><sect2><para> 1.679 -#: ../en/appB-mq-ref.xml:486 1.680 +#: ../en/appB-mq-ref.xml:487 1.681 msgid "" 1.682 "The <command role=\"hg-cmd\">hg strip</command> command removes a revision, " 1.683 "and all of its descendants, from the repository. It undoes the effects of " 1.684 @@ -1098,7 +1099,7 @@ 1.685 msgstr "" 1.686 1.687 #. type: Content of: <book><appendix><sect1><sect2><para> 1.688 -#: ../en/appB-mq-ref.xml:492 1.689 +#: ../en/appB-mq-ref.xml:493 1.690 msgid "" 1.691 "The <command role=\"hg-cmd\">hg strip</command> command saves a backup of the " 1.692 "removed changesets in a bundle, so that they can be reapplied if removed in " 1.693 @@ -1106,14 +1107,14 @@ 1.694 msgstr "" 1.695 1.696 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.697 -#: ../en/appB-mq-ref.xml:498 1.698 +#: ../en/appB-mq-ref.xml:499 1.699 msgid "" 1.700 "<option role=\"hg-opt-strip\">-b</option>: Save unrelated changesets that are " 1.701 "intermixed with the stripped changesets in the backup bundle." 1.702 msgstr "" 1.703 1.704 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.705 -#: ../en/appB-mq-ref.xml:502 1.706 +#: ../en/appB-mq-ref.xml:503 1.707 msgid "" 1.708 "<option role=\"hg-opt-strip\">-f</option>: If a branch has multiple heads, " 1.709 "remove all heads. XXX This should be renamed, and use <literal>-f</literal> " 1.710 @@ -1121,22 +1122,22 @@ 1.711 msgstr "" 1.712 1.713 #. type: Content of: <book><appendix><sect1><sect2><itemizedlist><listitem><para> 1.714 -#: ../en/appB-mq-ref.xml:507 1.715 +#: ../en/appB-mq-ref.xml:508 1.716 msgid "<option role=\"hg-opt-strip\">-n</option>: Do not save a backup bundle." 1.717 msgstr "" 1.718 1.719 #. type: Content of: <book><appendix><sect1><title> 1.720 -#: ../en/appB-mq-ref.xml:514 1.721 +#: ../en/appB-mq-ref.xml:515 1.722 msgid "MQ file reference" 1.723 msgstr "MQ 文件参考" 1.724 1.725 #. type: Content of: <book><appendix><sect1><sect2><title> 1.726 -#: ../en/appB-mq-ref.xml:517 1.727 +#: ../en/appB-mq-ref.xml:518 1.728 msgid "The <filename role=\"special\">series</filename> file" 1.729 msgstr "<filename role=\"special\">序列</filename>文件" 1.730 1.731 #. type: Content of: <book><appendix><sect1><sect2><para> 1.732 -#: ../en/appB-mq-ref.xml:520 1.733 +#: ../en/appB-mq-ref.xml:521 1.734 msgid "" 1.735 "The <filename role=\"special\">series</filename> file contains a list of the " 1.736 "names of all patches that MQ can apply. It is represented as a list of " 1.737 @@ -1145,7 +1146,7 @@ 1.738 msgstr "" 1.739 1.740 #. type: Content of: <book><appendix><sect1><sect2><para> 1.741 -#: ../en/appB-mq-ref.xml:526 1.742 +#: ../en/appB-mq-ref.xml:527 1.743 msgid "" 1.744 "Lines may contain comments. A comment begins with the <quote><literal>#</" 1.745 "literal></quote> character, and extends to the end of the line. Empty lines, " 1.746 @@ -1153,7 +1154,7 @@ 1.747 msgstr "" 1.748 1.749 #. type: Content of: <book><appendix><sect1><sect2><para> 1.750 -#: ../en/appB-mq-ref.xml:531 1.751 +#: ../en/appB-mq-ref.xml:532 1.752 msgid "" 1.753 "You will often need to edit the <filename role=\"special\">series</filename> " 1.754 "file by hand, hence the support for comments and empty lines noted above. " 1.755 @@ -1164,7 +1165,7 @@ 1.756 msgstr "" 1.757 1.758 #. type: Content of: <book><appendix><sect1><sect2><para> 1.759 -#: ../en/appB-mq-ref.xml:540 1.760 +#: ../en/appB-mq-ref.xml:541 1.761 msgid "" 1.762 "Placing the <filename role=\"special\">series</filename> file under revision " 1.763 "control is also supported; it is a good idea to place all of the patches that " 1.764 @@ -1175,12 +1176,12 @@ 1.765 msgstr "" 1.766 1.767 #. type: Content of: <book><appendix><sect1><sect2><title> 1.768 -#: ../en/appB-mq-ref.xml:550 1.769 +#: ../en/appB-mq-ref.xml:551 1.770 msgid "The <filename role=\"special\">status</filename> file" 1.771 msgstr "<filename role=\"special\">状态</filename>文件" 1.772 1.773 #. type: Content of: <book><appendix><sect1><sect2><para> 1.774 -#: ../en/appB-mq-ref.xml:553 1.775 +#: ../en/appB-mq-ref.xml:554 1.776 msgid "" 1.777 "The <filename role=\"special\">status</filename> file contains the names and " 1.778 "changeset hashes of all patches that MQ currently has applied. Unlike the " 1.779 @@ -1519,941 +1520,17 @@ 1.780 msgstr "" 1.781 1.782 #. type: Content of: <book><chapter><title> 1.783 -#: ../en/ch01-intro.xml:5 1.784 -msgid "Introduction" 1.785 -msgstr "简介" 1.786 - 1.787 -#. type: Content of: <book><chapter><sect1><title> 1.788 -#: ../en/ch01-intro.xml:8 1.789 -msgid "About revision control" 1.790 -msgstr "关于版本控制" 1.791 - 1.792 -#. type: Content of: <book><chapter><sect1><para> 1.793 -#: ../en/ch01-intro.xml:10 1.794 -msgid "" 1.795 -"Revision control is the process of managing multiple versions of a piece of " 1.796 -"information. In its simplest form, this is something that many people do by " 1.797 -"hand: every time you modify a file, save it under a new name that contains a " 1.798 -"number, each one higher than the number of the preceding version." 1.799 -msgstr "" 1.800 - 1.801 -#. type: Content of: <book><chapter><sect1><para> 1.802 -#: ../en/ch01-intro.xml:16 1.803 -msgid "" 1.804 -"Manually managing multiple versions of even a single file is an error-prone " 1.805 -"task, though, so software tools to help automate this process have long been " 1.806 -"available. The earliest automated revision control tools were intended to " 1.807 -"help a single user to manage revisions of a single file. Over the past few " 1.808 -"decades, the scope of revision control tools has expanded greatly; they now " 1.809 -"manage multiple files, and help multiple people to work together. The best " 1.810 -"modern revision control tools have no problem coping with thousands of people " 1.811 -"working together on projects that consist of hundreds of thousands of files." 1.812 -msgstr "" 1.813 - 1.814 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.815 -#: ../en/ch01-intro.xml:28 1.816 -msgid "Why use revision control?" 1.817 -msgstr "为什么使用版本控制?" 1.818 - 1.819 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.820 -#: ../en/ch01-intro.xml:30 1.821 -msgid "" 1.822 -"There are a number of reasons why you or your team might want to use an " 1.823 -"automated revision control tool for a project." 1.824 -msgstr "" 1.825 - 1.826 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.827 -#: ../en/ch01-intro.xml:34 1.828 -msgid "" 1.829 -"It will track the history and evolution of your project, so you don't have " 1.830 -"to. For every change, you'll have a log of <emphasis>who</emphasis> made it; " 1.831 -"<emphasis>why</emphasis> they made it; <emphasis>when</emphasis> they made " 1.832 -"it; and <emphasis>what</emphasis> the change was." 1.833 -msgstr "" 1.834 - 1.835 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.836 -#: ../en/ch01-intro.xml:41 1.837 -msgid "" 1.838 -"When you're working with other people, revision control software makes it " 1.839 -"easier for you to collaborate. For example, when people more or less " 1.840 -"simultaneously make potentially incompatible changes, the software will help " 1.841 -"you to identify and resolve those conflicts." 1.842 -msgstr "" 1.843 - 1.844 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.845 -#: ../en/ch01-intro.xml:47 1.846 -msgid "" 1.847 -"It can help you to recover from mistakes. If you make a change that later " 1.848 -"turns out to be in error, you can revert to an earlier version of one or more " 1.849 -"files. In fact, a <emphasis>really</emphasis> good revision control tool " 1.850 -"will even help you to efficiently figure out exactly when a problem was " 1.851 -"introduced (see section <xref linkend=\"sec.undo.bisect\"/> for details)." 1.852 -msgstr "" 1.853 - 1.854 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.855 -#: ../en/ch01-intro.xml:54 1.856 -msgid "" 1.857 -"It will help you to work simultaneously on, and manage the drift between, " 1.858 -"multiple versions of your project." 1.859 -msgstr "" 1.860 - 1.861 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.862 -#: ../en/ch01-intro.xml:57 1.863 -msgid "" 1.864 -"Most of these reasons are equally valid---at least in theory---whether you're " 1.865 -"working on a project by yourself, or with a hundred other people." 1.866 -msgstr "" 1.867 - 1.868 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.869 -#: ../en/ch01-intro.xml:61 1.870 -msgid "" 1.871 -"A key question about the practicality of revision control at these two " 1.872 -"different scales (<quote>lone hacker</quote> and <quote>huge team</quote>) is " 1.873 -"how its <emphasis>benefits</emphasis> compare to its <emphasis>costs</" 1.874 -"emphasis>. A revision control tool that's difficult to understand or use is " 1.875 -"going to impose a high cost." 1.876 -msgstr "" 1.877 - 1.878 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.879 -#: ../en/ch01-intro.xml:69 1.880 -msgid "" 1.881 -"A five-hundred-person project is likely to collapse under its own weight " 1.882 -"almost immediately without a revision control tool and process. In this case, " 1.883 -"the cost of using revision control might hardly seem worth considering, since " 1.884 -"<emphasis>without</emphasis> it, failure is almost guaranteed." 1.885 -msgstr "" 1.886 - 1.887 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.888 -#: ../en/ch01-intro.xml:76 1.889 -msgid "" 1.890 -"On the other hand, a one-person <quote>quick hack</quote> might seem like a " 1.891 -"poor place to use a revision control tool, because surely the cost of using " 1.892 -"one must be close to the overall cost of the project. Right?" 1.893 -msgstr "" 1.894 - 1.895 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.896 -#: ../en/ch01-intro.xml:81 1.897 -msgid "" 1.898 -"Mercurial uniquely supports <emphasis>both</emphasis> of these scales of " 1.899 -"development. You can learn the basics in just a few minutes, and due to its " 1.900 -"low overhead, you can apply revision control to the smallest of projects with " 1.901 -"ease. Its simplicity means you won't have a lot of abstruse concepts or " 1.902 -"command sequences competing for mental space with whatever you're " 1.903 -"<emphasis>really</emphasis> trying to do. At the same time, Mercurial's high " 1.904 -"performance and peer-to-peer nature let you scale painlessly to handle large " 1.905 -"projects." 1.906 -msgstr "" 1.907 - 1.908 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.909 -#: ../en/ch01-intro.xml:91 1.910 -msgid "" 1.911 -"No revision control tool can rescue a poorly run project, but a good choice " 1.912 -"of tools can make a huge difference to the fluidity with which you can work " 1.913 -"on a project." 1.914 -msgstr "" 1.915 - 1.916 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.917 -#: ../en/ch01-intro.xml:97 1.918 -msgid "The many names of revision control" 1.919 -msgstr "版本控制的别名" 1.920 - 1.921 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.922 -#: ../en/ch01-intro.xml:99 1.923 -msgid "" 1.924 -"Revision control is a diverse field, so much so that it doesn't actually have " 1.925 -"a single name or acronym. Here are a few of the more common names and " 1.926 -"acronyms you'll encounter:" 1.927 -msgstr "" 1.928 - 1.929 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.930 -#: ../en/ch01-intro.xml:104 1.931 -msgid "Revision control (RCS)" 1.932 -msgstr "版本控制(RCS)" 1.933 - 1.934 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.935 -#: ../en/ch01-intro.xml:105 1.936 -msgid "Software configuration management (SCM), or configuration management" 1.937 -msgstr "软件配置管理(SCM),或配置管理" 1.938 - 1.939 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.940 -#: ../en/ch01-intro.xml:107 1.941 -msgid "Source code management" 1.942 -msgstr "源代码管理" 1.943 - 1.944 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.945 -#: ../en/ch01-intro.xml:108 1.946 -msgid "Source code control, or source control" 1.947 -msgstr "源代码控制,或源控制" 1.948 - 1.949 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.950 -#: ../en/ch01-intro.xml:110 1.951 -msgid "Version control (VCS)" 1.952 -msgstr "版本控制(VCS)" 1.953 - 1.954 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.955 -#: ../en/ch01-intro.xml:112 1.956 -msgid "" 1.957 -"Some people claim that these terms actually have different meanings, but in " 1.958 -"practice they overlap so much that there's no agreed or even useful way to " 1.959 -"tease them apart." 1.960 -msgstr "" 1.961 - 1.962 -#. type: Content of: <book><chapter><sect1><title> 1.963 -#: ../en/ch01-intro.xml:119 1.964 -msgid "A short history of revision control" 1.965 -msgstr "版本控制简史" 1.966 - 1.967 -#. type: Content of: <book><chapter><sect1><para> 1.968 -#: ../en/ch01-intro.xml:121 1.969 -msgid "" 1.970 -"The best known of the old-time revision control tools is SCCS (Source Code " 1.971 -"Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s. " 1.972 -"SCCS operated on individual files, and required every person working on a " 1.973 -"project to have access to a shared workspace on a single system. Only one " 1.974 -"person could modify a file at any time; arbitration for access to files was " 1.975 -"via locks. It was common for people to lock files, and later forget to " 1.976 -"unlock them, preventing anyone else from modifying those files without the " 1.977 -"help of an administrator." 1.978 -msgstr "" 1.979 - 1.980 -#. type: Content of: <book><chapter><sect1><para> 1.981 -#: ../en/ch01-intro.xml:132 1.982 -msgid "" 1.983 -"Walter Tichy developed a free alternative to SCCS in the early 1980s; he " 1.984 -"called his program RCS (Revision Control System). Like SCCS, RCS required " 1.985 -"developers to work in a single shared workspace, and to lock files to prevent " 1.986 -"multiple people from modifying them simultaneously." 1.987 -msgstr "" 1.988 - 1.989 -#. type: Content of: <book><chapter><sect1><para> 1.990 -#: ../en/ch01-intro.xml:138 1.991 -msgid "" 1.992 -"Later in the 1980s, Dick Grune used RCS as a building block for a set of " 1.993 -"shell scripts he initially called cmt, but then renamed to CVS (Concurrent " 1.994 -"Versions System). The big innovation of CVS was that it let developers work " 1.995 -"simultaneously and somewhat independently in their own personal workspaces. " 1.996 -"The personal workspaces prevented developers from stepping on each other's " 1.997 -"toes all the time, as was common with SCCS and RCS. Each developer had a copy " 1.998 -"of every project file, and could modify their copies independently. They had " 1.999 -"to merge their edits prior to committing changes to the central repository." 1.1000 -msgstr "" 1.1001 - 1.1002 -#. type: Content of: <book><chapter><sect1><para> 1.1003 -#: ../en/ch01-intro.xml:149 1.1004 -msgid "" 1.1005 -"Brian Berliner took Grune's original scripts and rewrote them in C, releasing " 1.1006 -"in 1989 the code that has since developed into the modern version of CVS. " 1.1007 -"CVS subsequently acquired the ability to operate over a network connection, " 1.1008 -"giving it a client/server architecture. CVS's architecture is centralised; " 1.1009 -"only the server has a copy of the history of the project. Client workspaces " 1.1010 -"just contain copies of recent versions of the project's files, and a little " 1.1011 -"metadata to tell them where the server is. CVS has been enormously " 1.1012 -"successful; it is probably the world's most widely used revision control " 1.1013 -"system." 1.1014 -msgstr "" 1.1015 - 1.1016 -#. type: Content of: <book><chapter><sect1><para> 1.1017 -#: ../en/ch01-intro.xml:160 1.1018 -msgid "" 1.1019 -"In the early 1990s, Sun Microsystems developed an early distributed revision " 1.1020 -"control system, called TeamWare. A TeamWare workspace contains a complete " 1.1021 -"copy of the project's history. TeamWare has no notion of a central " 1.1022 -"repository. (CVS relied upon RCS for its history storage; TeamWare used " 1.1023 -"SCCS.)" 1.1024 -msgstr "" 1.1025 - 1.1026 -#. type: Content of: <book><chapter><sect1><para> 1.1027 -#: ../en/ch01-intro.xml:167 1.1028 -msgid "" 1.1029 -"As the 1990s progressed, awareness grew of a number of problems with CVS. It " 1.1030 -"records simultaneous changes to multiple files individually, instead of " 1.1031 -"grouping them together as a single logically atomic operation. It does not " 1.1032 -"manage its file hierarchy well; it is easy to make a mess of a repository by " 1.1033 -"renaming files and directories. Worse, its source code is difficult to read " 1.1034 -"and maintain, which made the <quote>pain level</quote> of fixing these " 1.1035 -"architectural problems prohibitive." 1.1036 -msgstr "" 1.1037 - 1.1038 -#. type: Content of: <book><chapter><sect1><para> 1.1039 -#: ../en/ch01-intro.xml:177 1.1040 -msgid "" 1.1041 -"In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, " 1.1042 -"started a project to replace it with a tool that would have a better " 1.1043 -"architecture and cleaner code. The result, Subversion, does not stray from " 1.1044 -"CVS's centralised client/server model, but it adds multi-file atomic commits, " 1.1045 -"better namespace management, and a number of other features that make it a " 1.1046 -"generally better tool than CVS. Since its initial release, it has rapidly " 1.1047 -"grown in popularity." 1.1048 -msgstr "" 1.1049 - 1.1050 -#. type: Content of: <book><chapter><sect1><para> 1.1051 -#: ../en/ch01-intro.xml:186 1.1052 -msgid "" 1.1053 -"More or less simultaneously, Graydon Hoare began working on an ambitious " 1.1054 -"distributed revision control system that he named Monotone. While Monotone " 1.1055 -"addresses many of CVS's design flaws and has a peer-to-peer architecture, it " 1.1056 -"goes beyond earlier (and subsequent) revision control tools in a number of " 1.1057 -"innovative ways. It uses cryptographic hashes as identifiers, and has an " 1.1058 -"integral notion of <quote>trust</quote> for code from different sources." 1.1059 -msgstr "" 1.1060 - 1.1061 -#. type: Content of: <book><chapter><sect1><para> 1.1062 -#: ../en/ch01-intro.xml:195 1.1063 -msgid "" 1.1064 -"Mercurial began life in 2005. While a few aspects of its design are " 1.1065 -"influenced by Monotone, Mercurial focuses on ease of use, high performance, " 1.1066 -"and scalability to very large projects." 1.1067 -msgstr "" 1.1068 - 1.1069 -#. type: Content of: <book><chapter><sect1><title> 1.1070 -#: ../en/ch01-intro.xml:202 1.1071 -msgid "Trends in revision control" 1.1072 -msgstr "版本控制的发展趋势" 1.1073 - 1.1074 -#. type: Content of: <book><chapter><sect1><para> 1.1075 -#: ../en/ch01-intro.xml:204 1.1076 -msgid "" 1.1077 -"There has been an unmistakable trend in the development and use of revision " 1.1078 -"control tools over the past four decades, as people have become familiar with " 1.1079 -"the capabilities of their tools and constrained by their limitations." 1.1080 -msgstr "" 1.1081 - 1.1082 -#. type: Content of: <book><chapter><sect1><para> 1.1083 -#: ../en/ch01-intro.xml:209 1.1084 -msgid "" 1.1085 -"The first generation began by managing single files on individual computers. " 1.1086 -"Although these tools represented a huge advance over ad-hoc manual revision " 1.1087 -"control, their locking model and reliance on a single computer limited them " 1.1088 -"to small, tightly-knit teams." 1.1089 -msgstr "" 1.1090 - 1.1091 -#. type: Content of: <book><chapter><sect1><para> 1.1092 -#: ../en/ch01-intro.xml:215 1.1093 -msgid "" 1.1094 -"The second generation loosened these constraints by moving to network-" 1.1095 -"centered architectures, and managing entire projects at a time. As projects " 1.1096 -"grew larger, they ran into new problems. With clients needing to talk to " 1.1097 -"servers very frequently, server scaling became an issue for large projects. " 1.1098 -"An unreliable network connection could prevent remote users from being able " 1.1099 -"to talk to the server at all. As open source projects started making read-" 1.1100 -"only access available anonymously to anyone, people without commit privileges " 1.1101 -"found that they could not use the tools to interact with a project in a " 1.1102 -"natural way, as they could not record their changes." 1.1103 -msgstr "" 1.1104 - 1.1105 -#. type: Content of: <book><chapter><sect1><para> 1.1106 -#: ../en/ch01-intro.xml:227 1.1107 -msgid "" 1.1108 -"The current generation of revision control tools is peer-to-peer in nature. " 1.1109 -"All of these systems have dropped the dependency on a single central server, " 1.1110 -"and allow people to distribute their revision control data to where it's " 1.1111 -"actually needed. Collaboration over the Internet has moved from constrained " 1.1112 -"by technology to a matter of choice and consensus. Modern tools can operate " 1.1113 -"offline indefinitely and autonomously, with a network connection only needed " 1.1114 -"when syncing changes with another repository." 1.1115 -msgstr "" 1.1116 - 1.1117 -#. type: Content of: <book><chapter><sect1><title> 1.1118 -#: ../en/ch01-intro.xml:239 1.1119 -msgid "A few of the advantages of distributed revision control" 1.1120 -msgstr "分布版本控制的优点" 1.1121 - 1.1122 -#. type: Content of: <book><chapter><sect1><para> 1.1123 -#: ../en/ch01-intro.xml:242 1.1124 -msgid "" 1.1125 -"Even though distributed revision control tools have for several years been as " 1.1126 -"robust and usable as their previous-generation counterparts, people using " 1.1127 -"older tools have not yet necessarily woken up to their advantages. There are " 1.1128 -"a number of ways in which distributed tools shine relative to centralised " 1.1129 -"ones." 1.1130 -msgstr "" 1.1131 - 1.1132 -#. type: Content of: <book><chapter><sect1><para> 1.1133 -#: ../en/ch01-intro.xml:249 1.1134 -msgid "" 1.1135 -"For an individual developer, distributed tools are almost always much faster " 1.1136 -"than centralised tools. This is for a simple reason: a centralised tool " 1.1137 -"needs to talk over the network for many common operations, because most " 1.1138 -"metadata is stored in a single copy on the central server. A distributed " 1.1139 -"tool stores all of its metadata locally. All else being equal, talking over " 1.1140 -"the network adds overhead to a centralised tool. Don't underestimate the " 1.1141 -"value of a snappy, responsive tool: you're going to spend a lot of time " 1.1142 -"interacting with your revision control software." 1.1143 -msgstr "" 1.1144 - 1.1145 -#. type: Content of: <book><chapter><sect1><para> 1.1146 -#: ../en/ch01-intro.xml:260 1.1147 -msgid "" 1.1148 -"Distributed tools are indifferent to the vagaries of your server " 1.1149 -"infrastructure, again because they replicate metadata to so many locations. " 1.1150 -"If you use a centralised system and your server catches fire, you'd better " 1.1151 -"hope that your backup media are reliable, and that your last backup was " 1.1152 -"recent and actually worked. With a distributed tool, you have many backups " 1.1153 -"available on every contributor's computer." 1.1154 -msgstr "" 1.1155 - 1.1156 -#. type: Content of: <book><chapter><sect1><para> 1.1157 -#: ../en/ch01-intro.xml:268 1.1158 -msgid "" 1.1159 -"The reliability of your network will affect distributed tools far less than " 1.1160 -"it will centralised tools. You can't even use a centralised tool without a " 1.1161 -"network connection, except for a few highly constrained commands. With a " 1.1162 -"distributed tool, if your network connection goes down while you're working, " 1.1163 -"you may not even notice. The only thing you won't be able to do is talk to " 1.1164 -"repositories on other computers, something that is relatively rare compared " 1.1165 -"with local operations. If you have a far-flung team of collaborators, this " 1.1166 -"may be significant." 1.1167 -msgstr "" 1.1168 - 1.1169 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1170 -#: ../en/ch01-intro.xml:279 1.1171 -msgid "Advantages for open source projects" 1.1172 -msgstr "开源项目的优点" 1.1173 - 1.1174 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1175 -#: ../en/ch01-intro.xml:281 1.1176 -msgid "" 1.1177 -"If you take a shine to an open source project and decide that you would like " 1.1178 -"to start hacking on it, and that project uses a distributed revision control " 1.1179 -"tool, you are at once a peer with the people who consider themselves the " 1.1180 -"<quote>core</quote> of that project. If they publish their repositories, you " 1.1181 -"can immediately copy their project history, start making changes, and record " 1.1182 -"your work, using the same tools in the same ways as insiders. By contrast, " 1.1183 -"with a centralised tool, you must use the software in a <quote>read only</" 1.1184 -"quote> mode unless someone grants you permission to commit changes to their " 1.1185 -"central server. Until then, you won't be able to record changes, and your " 1.1186 -"local modifications will be at risk of corruption any time you try to update " 1.1187 -"your client's view of the repository." 1.1188 -msgstr "" 1.1189 - 1.1190 -#. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.1191 -#: ../en/ch01-intro.xml:297 1.1192 -msgid "The forking non-problem" 1.1193 -msgstr "" 1.1194 - 1.1195 -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1196 -#: ../en/ch01-intro.xml:299 1.1197 -msgid "" 1.1198 -"It has been suggested that distributed revision control tools pose some sort " 1.1199 -"of risk to open source projects because they make it easy to <quote>fork</" 1.1200 -"quote> the development of a project. A fork happens when there are " 1.1201 -"differences in opinion or attitude between groups of developers that cause " 1.1202 -"them to decide that they can't work together any longer. Each side takes a " 1.1203 -"more or less complete copy of the project's source code, and goes off in its " 1.1204 -"own direction." 1.1205 -msgstr "" 1.1206 - 1.1207 -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1208 -#: ../en/ch01-intro.xml:309 1.1209 -msgid "" 1.1210 -"Sometimes the camps in a fork decide to reconcile their differences. With a " 1.1211 -"centralised revision control system, the <emphasis>technical</emphasis> " 1.1212 -"process of reconciliation is painful, and has to be performed largely by " 1.1213 -"hand. You have to decide whose revision history is going to <quote>win</" 1.1214 -"quote>, and graft the other team's changes into the tree somehow. This " 1.1215 -"usually loses some or all of one side's revision history." 1.1216 -msgstr "" 1.1217 - 1.1218 -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1219 -#: ../en/ch01-intro.xml:318 1.1220 -msgid "" 1.1221 -"What distributed tools do with respect to forking is they make forking the " 1.1222 -"<emphasis>only</emphasis> way to develop a project. Every single change that " 1.1223 -"you make is potentially a fork point. The great strength of this approach is " 1.1224 -"that a distributed revision control tool has to be really good at " 1.1225 -"<emphasis>merging</emphasis> forks, because forks are absolutely fundamental: " 1.1226 -"they happen all the time." 1.1227 -msgstr "" 1.1228 - 1.1229 -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1230 -#: ../en/ch01-intro.xml:327 1.1231 -msgid "" 1.1232 -"If every piece of work that everybody does, all the time, is framed in terms " 1.1233 -"of forking and merging, then what the open source world refers to as a " 1.1234 -"<quote>fork</quote> becomes <emphasis>purely</emphasis> a social issue. If " 1.1235 -"anything, distributed tools <emphasis>lower</emphasis> the likelihood of a " 1.1236 -"fork:" 1.1237 -msgstr "" 1.1238 - 1.1239 -#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.1240 -#: ../en/ch01-intro.xml:334 1.1241 -msgid "" 1.1242 -"They eliminate the social distinction that centralised tools impose: that " 1.1243 -"between insiders (people with commit access) and outsiders (people without)." 1.1244 -msgstr "" 1.1245 - 1.1246 -#. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.1247 -#: ../en/ch01-intro.xml:338 1.1248 -msgid "" 1.1249 -"They make it easier to reconcile after a social fork, because all that's " 1.1250 -"involved from the perspective of the revision control software is just " 1.1251 -"another merge." 1.1252 -msgstr "" 1.1253 - 1.1254 -#. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1255 -#: ../en/ch01-intro.xml:343 1.1256 -msgid "" 1.1257 -"Some people resist distributed tools because they want to retain tight " 1.1258 -"control over their projects, and they believe that centralised tools give " 1.1259 -"them this control. However, if you're of this belief, and you publish your " 1.1260 -"CVS or Subversion repositories publicly, there are plenty of tools available " 1.1261 -"that can pull out your entire project's history (albeit slowly) and recreate " 1.1262 -"it somewhere that you don't control. So while your control in this case is " 1.1263 -"illusory, you are forgoing the ability to fluidly collaborate with whatever " 1.1264 -"people feel compelled to mirror and fork your history." 1.1265 -msgstr "" 1.1266 - 1.1267 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1268 -#: ../en/ch01-intro.xml:358 1.1269 -msgid "Advantages for commercial projects" 1.1270 -msgstr "商业项目的优点" 1.1271 - 1.1272 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1273 -#: ../en/ch01-intro.xml:360 1.1274 -msgid "" 1.1275 -"Many commercial projects are undertaken by teams that are scattered across " 1.1276 -"the globe. Contributors who are far from a central server will see slower " 1.1277 -"command execution and perhaps less reliability. Commercial revision control " 1.1278 -"systems attempt to ameliorate these problems with remote-site replication add-" 1.1279 -"ons that are typically expensive to buy and cantankerous to administer. A " 1.1280 -"distributed system doesn't suffer from these problems in the first place. " 1.1281 -"Better yet, you can easily set up multiple authoritative servers, say one per " 1.1282 -"site, so that there's no redundant communication between repositories over " 1.1283 -"expensive long-haul network links." 1.1284 -msgstr "" 1.1285 - 1.1286 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1287 -#: ../en/ch01-intro.xml:372 1.1288 -msgid "" 1.1289 -"Centralised revision control systems tend to have relatively low " 1.1290 -"scalability. It's not unusual for an expensive centralised system to fall " 1.1291 -"over under the combined load of just a few dozen concurrent users. Once " 1.1292 -"again, the typical response tends to be an expensive and clunky replication " 1.1293 -"facility. Since the load on a central server---if you have one at all---is " 1.1294 -"many times lower with a distributed tool (because all of the data is " 1.1295 -"replicated everywhere), a single cheap server can handle the needs of a much " 1.1296 -"larger team, and replication to balance load becomes a simple matter of " 1.1297 -"scripting." 1.1298 -msgstr "" 1.1299 - 1.1300 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1301 -#: ../en/ch01-intro.xml:384 1.1302 -msgid "" 1.1303 -"If you have an employee in the field, troubleshooting a problem at a " 1.1304 -"customer's site, they'll benefit from distributed revision control. The tool " 1.1305 -"will let them generate custom builds, try different fixes in isolation from " 1.1306 -"each other, and search efficiently through history for the sources of bugs " 1.1307 -"and regressions in the customer's environment, all without needing to connect " 1.1308 -"to your company's network." 1.1309 -msgstr "" 1.1310 - 1.1311 -#. type: Content of: <book><chapter><sect1><title> 1.1312 -#: ../en/ch01-intro.xml:395 1.1313 -msgid "Why choose Mercurial?" 1.1314 -msgstr "为什么选择 Mercurial?" 1.1315 - 1.1316 -#. type: Content of: <book><chapter><sect1><para> 1.1317 -#: ../en/ch01-intro.xml:397 1.1318 -msgid "" 1.1319 -"Mercurial has a unique set of properties that make it a particularly good " 1.1320 -"choice as a revision control system." 1.1321 -msgstr "" 1.1322 - 1.1323 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1324 -#: ../en/ch01-intro.xml:400 1.1325 -msgid "It is easy to learn and use." 1.1326 -msgstr "" 1.1327 - 1.1328 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1329 -#: ../en/ch01-intro.xml:401 1.1330 -msgid "It is lightweight." 1.1331 -msgstr "" 1.1332 - 1.1333 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1334 -#: ../en/ch01-intro.xml:402 1.1335 -msgid "It scales excellently." 1.1336 -msgstr "" 1.1337 - 1.1338 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1339 -#: ../en/ch01-intro.xml:403 1.1340 -msgid "It is easy to customise." 1.1341 -msgstr "" 1.1342 - 1.1343 -#. type: Content of: <book><chapter><sect1><para> 1.1344 -#: ../en/ch01-intro.xml:406 1.1345 -msgid "" 1.1346 -"If you are at all familiar with revision control systems, you should be able " 1.1347 -"to get up and running with Mercurial in less than five minutes. Even if not, " 1.1348 -"it will take no more than a few minutes longer. Mercurial's command and " 1.1349 -"feature sets are generally uniform and consistent, so you can keep track of a " 1.1350 -"few general rules instead of a host of exceptions." 1.1351 -msgstr "" 1.1352 - 1.1353 -#. type: Content of: <book><chapter><sect1><para> 1.1354 -#: ../en/ch01-intro.xml:413 1.1355 -msgid "" 1.1356 -"On a small project, you can start working with Mercurial in moments. Creating " 1.1357 -"new changes and branches; transferring changes around (whether locally or " 1.1358 -"over a network); and history and status operations are all fast. Mercurial " 1.1359 -"attempts to stay nimble and largely out of your way by combining low " 1.1360 -"cognitive overhead with blazingly fast operations." 1.1361 -msgstr "" 1.1362 - 1.1363 -#. type: Content of: <book><chapter><sect1><para> 1.1364 -#: ../en/ch01-intro.xml:420 1.1365 -msgid "" 1.1366 -"The usefulness of Mercurial is not limited to small projects: it is used by " 1.1367 -"projects with hundreds to thousands of contributors, each containing tens of " 1.1368 -"thousands of files and hundreds of megabytes of source code." 1.1369 -msgstr "" 1.1370 - 1.1371 -#. type: Content of: <book><chapter><sect1><para> 1.1372 -#: ../en/ch01-intro.xml:425 1.1373 -msgid "" 1.1374 -"If the core functionality of Mercurial is not enough for you, it's easy to " 1.1375 -"build on. Mercurial is well suited to scripting tasks, and its clean " 1.1376 -"internals and implementation in Python make it easy to add features in the " 1.1377 -"form of extensions. There are a number of popular and useful extensions " 1.1378 -"already available, ranging from helping to identify bugs to improving " 1.1379 -"performance." 1.1380 -msgstr "" 1.1381 - 1.1382 -#. type: Content of: <book><chapter><sect1><title> 1.1383 -#: ../en/ch01-intro.xml:435 1.1384 -msgid "Mercurial compared with other tools" 1.1385 -msgstr "Mercurial 与其它工具的比较" 1.1386 - 1.1387 -#. type: Content of: <book><chapter><sect1><para> 1.1388 -#: ../en/ch01-intro.xml:437 1.1389 -msgid "" 1.1390 -"Before you read on, please understand that this section necessarily reflects " 1.1391 -"my own experiences, interests, and (dare I say it) biases. I have used every " 1.1392 -"one of the revision control tools listed below, in most cases for several " 1.1393 -"years at a time." 1.1394 -msgstr "" 1.1395 - 1.1396 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1397 -#: ../en/ch01-intro.xml:445 ../en/ch01-intro.xml:656 1.1398 -msgid "Subversion" 1.1399 -msgstr "" 1.1400 - 1.1401 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1402 -#: ../en/ch01-intro.xml:447 1.1403 -msgid "" 1.1404 -"Subversion is a popular revision control tool, developed to replace CVS. It " 1.1405 -"has a centralised client/server architecture." 1.1406 -msgstr "" 1.1407 - 1.1408 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1409 -#: ../en/ch01-intro.xml:451 1.1410 -msgid "" 1.1411 -"Subversion and Mercurial have similarly named commands for performing the " 1.1412 -"same operations, so if you're familiar with one, it is easy to learn to use " 1.1413 -"the other. Both tools are portable to all popular operating systems." 1.1414 -msgstr "" 1.1415 - 1.1416 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1417 -#: ../en/ch01-intro.xml:456 1.1418 -msgid "" 1.1419 -"Prior to version 1.5, Subversion had no useful support for merges. At the " 1.1420 -"time of writing, its merge tracking capability is new, and known to be <ulink " 1.1421 -"url=\"http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced." 1.1422 -"html#svn.branchmerge.advanced.finalword\">complicated and buggy</ulink>." 1.1423 -msgstr "" 1.1424 - 1.1425 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1426 -#: ../en/ch01-intro.xml:462 1.1427 -msgid "" 1.1428 -"Mercurial has a substantial performance advantage over Subversion on every " 1.1429 -"revision control operation I have benchmarked. I have measured its advantage " 1.1430 -"as ranging from a factor of two to a factor of six when compared with " 1.1431 -"Subversion 1.4.3's <emphasis>ra_local</emphasis> file store, which is the " 1.1432 -"fastest access method available. In more realistic deployments involving a " 1.1433 -"network-based store, Subversion will be at a substantially larger " 1.1434 -"disadvantage. Because many Subversion commands must talk to the server and " 1.1435 -"Subversion does not have useful replication facilities, server capacity and " 1.1436 -"network bandwidth become bottlenecks for modestly large projects." 1.1437 -msgstr "" 1.1438 - 1.1439 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1440 -#: ../en/ch01-intro.xml:475 1.1441 -msgid "" 1.1442 -"Additionally, Subversion incurs substantial storage overhead to avoid network " 1.1443 -"transactions for a few common operations, such as finding modified files " 1.1444 -"(<literal>status</literal>) and displaying modifications against the current " 1.1445 -"revision (<literal>diff</literal>). As a result, a Subversion working copy " 1.1446 -"is often the same size as, or larger than, a Mercurial repository and working " 1.1447 -"directory, even though the Mercurial repository contains a complete history " 1.1448 -"of the project." 1.1449 -msgstr "" 1.1450 - 1.1451 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1452 -#: ../en/ch01-intro.xml:485 1.1453 -msgid "" 1.1454 -"Subversion is widely supported by third party tools. Mercurial currently " 1.1455 -"lags considerably in this area. This gap is closing, however, and indeed " 1.1456 -"some of Mercurial's GUI tools now outshine their Subversion equivalents. " 1.1457 -"Like Mercurial, Subversion has an excellent user manual." 1.1458 -msgstr "" 1.1459 - 1.1460 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1461 -#: ../en/ch01-intro.xml:491 1.1462 -msgid "" 1.1463 -"Because Subversion doesn't store revision history on the client, it is well " 1.1464 -"suited to managing projects that deal with lots of large, opaque binary " 1.1465 -"files. If you check in fifty revisions to an incompressible 10MB file, " 1.1466 -"Subversion's client-side space usage stays constant The space used by any " 1.1467 -"distributed SCM will grow rapidly in proportion to the number of revisions, " 1.1468 -"because the differences between each revision are large." 1.1469 -msgstr "" 1.1470 - 1.1471 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1472 -#: ../en/ch01-intro.xml:500 1.1473 -msgid "" 1.1474 -"In addition, it's often difficult or, more usually, impossible to merge " 1.1475 -"different versions of a binary file. Subversion's ability to let a user lock " 1.1476 -"a file, so that they temporarily have the exclusive right to commit changes " 1.1477 -"to it, can be a significant advantage to a project where binary files are " 1.1478 -"widely used." 1.1479 -msgstr "" 1.1480 - 1.1481 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1482 -#: ../en/ch01-intro.xml:507 1.1483 -msgid "" 1.1484 -"Mercurial can import revision history from a Subversion repository. It can " 1.1485 -"also export revision history to a Subversion repository. This makes it easy " 1.1486 -"to <quote>test the waters</quote> and use Mercurial and Subversion in " 1.1487 -"parallel before deciding to switch. History conversion is incremental, so " 1.1488 -"you can perform an initial conversion, then small additional conversions " 1.1489 -"afterwards to bring in new changes." 1.1490 -msgstr "" 1.1491 - 1.1492 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1493 -#: ../en/ch01-intro.xml:519 ../en/ch01-intro.xml:658 1.1494 -msgid "Git" 1.1495 -msgstr "" 1.1496 - 1.1497 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1498 -#: ../en/ch01-intro.xml:521 1.1499 -msgid "" 1.1500 -"Git is a distributed revision control tool that was developed for managing " 1.1501 -"the Linux kernel source tree. Like Mercurial, its early design was somewhat " 1.1502 -"influenced by Monotone." 1.1503 -msgstr "" 1.1504 - 1.1505 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1506 -#: ../en/ch01-intro.xml:526 1.1507 -msgid "" 1.1508 -"Git has a very large command set, with version 1.5.0 providing 139 individual " 1.1509 -"commands. It has something of a reputation for being difficult to learn. " 1.1510 -"Compared to Git, Mercurial has a strong focus on simplicity." 1.1511 -msgstr "" 1.1512 - 1.1513 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1514 -#: ../en/ch01-intro.xml:531 1.1515 -msgid "" 1.1516 -"In terms of performance, Git is extremely fast. In several cases, it is " 1.1517 -"faster than Mercurial, at least on Linux, while Mercurial performs better on " 1.1518 -"other operations. However, on Windows, the performance and general level of " 1.1519 -"support that Git provides is, at the time of writing, far behind that of " 1.1520 -"Mercurial." 1.1521 -msgstr "" 1.1522 - 1.1523 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1524 -#: ../en/ch01-intro.xml:538 1.1525 -msgid "" 1.1526 -"While a Mercurial repository needs no maintenance, a Git repository requires " 1.1527 -"frequent manual <quote>repacks</quote> of its metadata. Without these, " 1.1528 -"performance degrades, while space usage grows rapidly. A server that " 1.1529 -"contains many Git repositories that are not rigorously and frequently " 1.1530 -"repacked will become heavily disk-bound during backups, and there have been " 1.1531 -"instances of daily backups taking far longer than 24 hours as a result. A " 1.1532 -"freshly packed Git repository is slightly smaller than a Mercurial " 1.1533 -"repository, but an unpacked repository is several orders of magnitude larger." 1.1534 -msgstr "" 1.1535 - 1.1536 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1537 -#: ../en/ch01-intro.xml:549 1.1538 -msgid "" 1.1539 -"The core of Git is written in C. Many Git commands are implemented as shell " 1.1540 -"or Perl scripts, and the quality of these scripts varies widely. I have " 1.1541 -"encountered several instances where scripts charged along blindly in the " 1.1542 -"presence of errors that should have been fatal." 1.1543 -msgstr "" 1.1544 - 1.1545 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1546 -#: ../en/ch01-intro.xml:555 1.1547 -msgid "Mercurial can import revision history from a Git repository." 1.1548 -msgstr "" 1.1549 - 1.1550 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1551 -#: ../en/ch01-intro.xml:561 ../en/ch01-intro.xml:657 1.1552 -msgid "CVS" 1.1553 -msgstr "" 1.1554 - 1.1555 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1556 -#: ../en/ch01-intro.xml:563 1.1557 -msgid "" 1.1558 -"CVS is probably the most widely used revision control tool in the world. Due " 1.1559 -"to its age and internal untidiness, it has been only lightly maintained for " 1.1560 -"many years." 1.1561 -msgstr "" 1.1562 - 1.1563 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1564 -#: ../en/ch01-intro.xml:567 1.1565 -msgid "" 1.1566 -"It has a centralised client/server architecture. It does not group related " 1.1567 -"file changes into atomic commits, making it easy for people to <quote>break " 1.1568 -"the build</quote>: one person can successfully commit part of a change and " 1.1569 -"then be blocked by the need for a merge, causing other people to see only a " 1.1570 -"portion of the work they intended to do. This also affects how you work with " 1.1571 -"project history. If you want to see all of the modifications someone made as " 1.1572 -"part of a task, you will need to manually inspect the descriptions and " 1.1573 -"timestamps of the changes made to each file involved (if you even know what " 1.1574 -"those files were)." 1.1575 -msgstr "" 1.1576 - 1.1577 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1578 -#: ../en/ch01-intro.xml:579 1.1579 -msgid "" 1.1580 -"CVS has a muddled notion of tags and branches that I will not attempt to even " 1.1581 -"describe. It does not support renaming of files or directories well, making " 1.1582 -"it easy to corrupt a repository. It has almost no internal consistency " 1.1583 -"checking capabilities, so it is usually not even possible to tell whether or " 1.1584 -"how a repository is corrupt. I would not recommend CVS for any project, " 1.1585 -"existing or new." 1.1586 -msgstr "" 1.1587 - 1.1588 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1589 -#: ../en/ch01-intro.xml:587 1.1590 -msgid "" 1.1591 -"Mercurial can import CVS revision history. However, there are a few caveats " 1.1592 -"that apply; these are true of every other revision control tool's CVS " 1.1593 -"importer, too. Due to CVS's lack of atomic changes and unversioned " 1.1594 -"filesystem hierarchy, it is not possible to reconstruct CVS history " 1.1595 -"completely accurately; some guesswork is involved, and renames will usually " 1.1596 -"not show up. Because a lot of advanced CVS administration has to be done by " 1.1597 -"hand and is hence error-prone, it's common for CVS importers to run into " 1.1598 -"multiple problems with corrupted repositories (completely bogus revision " 1.1599 -"timestamps and files that have remained locked for over a decade are just two " 1.1600 -"of the less interesting problems I can recall from personal experience)." 1.1601 -msgstr "" 1.1602 - 1.1603 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1604 -#: ../en/ch01-intro.xml:601 1.1605 -msgid "Mercurial can import revision history from a CVS repository." 1.1606 -msgstr "" 1.1607 - 1.1608 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1609 -#: ../en/ch01-intro.xml:607 1.1610 -msgid "Commercial tools" 1.1611 -msgstr "商业工具" 1.1612 - 1.1613 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1614 -#: ../en/ch01-intro.xml:609 1.1615 -msgid "" 1.1616 -"Perforce has a centralised client/server architecture, with no client-side " 1.1617 -"caching of any data. Unlike modern revision control tools, Perforce requires " 1.1618 -"that a user run a command to inform the server about every file they intend " 1.1619 -"to edit." 1.1620 -msgstr "" 1.1621 - 1.1622 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1623 -#: ../en/ch01-intro.xml:615 1.1624 -msgid "" 1.1625 -"The performance of Perforce is quite good for small teams, but it falls off " 1.1626 -"rapidly as the number of users grows beyond a few dozen. Modestly large " 1.1627 -"Perforce installations require the deployment of proxies to cope with the " 1.1628 -"load their users generate." 1.1629 -msgstr "" 1.1630 - 1.1631 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1632 -#: ../en/ch01-intro.xml:624 1.1633 -msgid "Choosing a revision control tool" 1.1634 -msgstr "选择版本控制工具" 1.1635 - 1.1636 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1637 -#: ../en/ch01-intro.xml:626 1.1638 -msgid "" 1.1639 -"With the exception of CVS, all of the tools listed above have unique " 1.1640 -"strengths that suit them to particular styles of work. There is no single " 1.1641 -"revision control tool that is best in all situations." 1.1642 -msgstr "" 1.1643 - 1.1644 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1645 -#: ../en/ch01-intro.xml:631 1.1646 -msgid "" 1.1647 -"As an example, Subversion is a good choice for working with frequently edited " 1.1648 -"binary files, due to its centralised nature and support for file locking." 1.1649 -msgstr "" 1.1650 - 1.1651 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1652 -#: ../en/ch01-intro.xml:635 1.1653 -msgid "" 1.1654 -"I personally find Mercurial's properties of simplicity, performance, and good " 1.1655 -"merge support to be a compelling combination that has served me well for " 1.1656 -"several years." 1.1657 -msgstr "" 1.1658 - 1.1659 -#. type: Content of: <book><chapter><sect1><title> 1.1660 -#: ../en/ch01-intro.xml:643 1.1661 -msgid "Switching from another tool to Mercurial" 1.1662 -msgstr "从其它工具切换到 Mercurial" 1.1663 - 1.1664 -#. type: Content of: <book><chapter><sect1><para> 1.1665 -#: ../en/ch01-intro.xml:645 1.1666 -msgid "" 1.1667 -"Mercurial is bundled with an extension named <literal role=\"hg-ext" 1.1668 -"\">convert</literal>, which can incrementally import revision history from " 1.1669 -"several other revision control tools. By <quote>incremental</quote>, I mean " 1.1670 -"that you can convert all of a project's history to date in one go, then rerun " 1.1671 -"the conversion later to obtain new changes that happened after the initial " 1.1672 -"conversion." 1.1673 -msgstr "" 1.1674 - 1.1675 -#. type: Content of: <book><chapter><sect1><para> 1.1676 -#: ../en/ch01-intro.xml:653 1.1677 -msgid "" 1.1678 -"The revision control tools supported by <literal role=\"hg-ext\">convert</" 1.1679 -"literal> are as follows:" 1.1680 -msgstr "" 1.1681 - 1.1682 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.1683 -#: ../en/ch01-intro.xml:659 1.1684 -msgid "Darcs" 1.1685 -msgstr "" 1.1686 - 1.1687 -#. type: Content of: <book><chapter><sect1><para> 1.1688 -#: ../en/ch01-intro.xml:661 1.1689 -msgid "" 1.1690 -"In addition, <literal role=\"hg-ext\">convert</literal> can export changes " 1.1691 -"from Mercurial to Subversion. This makes it possible to try Subversion and " 1.1692 -"Mercurial in parallel before committing to a switchover, without risking the " 1.1693 -"loss of any work." 1.1694 -msgstr "" 1.1695 - 1.1696 -#. type: Content of: <book><chapter><sect1><para> 1.1697 -#: ../en/ch01-intro.xml:667 1.1698 -msgid "" 1.1699 -"The <command role=\"hg-ext-conver\">convert</command> command is easy to " 1.1700 -"use. Simply point it at the path or URL of the source repository, optionally " 1.1701 -"give it the name of the destination repository, and it will start working. " 1.1702 -"After the initial conversion, just run the same command again to import new " 1.1703 -"changes." 1.1704 -msgstr "" 1.1705 - 1.1706 -#. type: Content of: <book><chapter><title> 1.1707 -#: ../en/ch02-tour-basic.xml:5 1.1708 +#: ../en/ch01-tour-basic.xml:5 1.1709 msgid "A tour of Mercurial: the basics" 1.1710 msgstr "Mercurial 教程: 基础知识" 1.1711 1.1712 #. type: Content of: <book><chapter><sect1><title> 1.1713 -#: ../en/ch02-tour-basic.xml:8 1.1714 +#: ../en/ch01-tour-basic.xml:8 1.1715 msgid "Installing Mercurial on your system" 1.1716 msgstr "安装 Mercurial" 1.1717 1.1718 #. type: Content of: <book><chapter><sect1><para> 1.1719 -#: ../en/ch02-tour-basic.xml:10 1.1720 +#: ../en/ch01-tour-basic.xml:10 1.1721 msgid "" 1.1722 "Prebuilt binary packages of Mercurial are available for every popular " 1.1723 "operating system. These make it easy to start using Mercurial on your " 1.1724 @@ -2463,12 +1540,12 @@ 1.1725 "用 Mercurial 变得很容易。" 1.1726 1.1727 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1728 -#: ../en/ch02-tour-basic.xml:15 1.1729 +#: ../en/ch01-tour-basic.xml:15 1.1730 msgid "Linux" 1.1731 msgstr "Linux" 1.1732 1.1733 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1734 -#: ../en/ch02-tour-basic.xml:17 1.1735 +#: ../en/ch01-tour-basic.xml:17 1.1736 msgid "" 1.1737 "Because each Linux distribution has its own packaging tools, policies, and " 1.1738 "rate of development, it's difficult to give a comprehensive set of " 1.1739 @@ -2481,7 +1558,7 @@ 1.1740 "使用的发行版的 Mercurial 维护者的活跃程度。" 1.1741 1.1742 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1743 -#: ../en/ch02-tour-basic.xml:24 1.1744 +#: ../en/ch01-tour-basic.xml:24 1.1745 msgid "" 1.1746 "To keep things simple, I will focus on installing Mercurial from the command " 1.1747 "line under the most popular Linux distributions. Most of these distributions " 1.1748 @@ -2493,39 +1570,39 @@ 1.1749 "Mercurial;寻找的包名称是 <literal>mercurial</literal>。" 1.1750 1.1751 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1752 -#: ../en/ch02-tour-basic.xml:32 1.1753 +#: ../en/ch01-tour-basic.xml:32 1.1754 msgid "Debian:" 1.1755 msgstr "Debian:" 1.1756 1.1757 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1758 -#: ../en/ch02-tour-basic.xml:34 1.1759 +#: ../en/ch01-tour-basic.xml:34 1.1760 msgid "Fedora Core:" 1.1761 msgstr "Fedora Core:" 1.1762 1.1763 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1764 -#: ../en/ch02-tour-basic.xml:36 1.1765 +#: ../en/ch01-tour-basic.xml:36 1.1766 msgid "Gentoo:" 1.1767 msgstr "Gentoo:" 1.1768 1.1769 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1770 -#: ../en/ch02-tour-basic.xml:38 1.1771 +#: ../en/ch01-tour-basic.xml:38 1.1772 msgid "OpenSUSE:" 1.1773 msgstr "OpenSUSE:" 1.1774 1.1775 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1776 -#: ../en/ch02-tour-basic.xml:40 1.1777 +#: ../en/ch01-tour-basic.xml:40 1.1778 msgid "" 1.1779 "Ubuntu: Ubuntu's Mercurial package is based on Debian's. To install it, run " 1.1780 "the following command." 1.1781 msgstr "Ubuntu: Ubuntu 的 Mercurial 包基于 Debian。安装时,使用如下命令:" 1.1782 1.1783 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1784 -#: ../en/ch02-tour-basic.xml:48 1.1785 +#: ../en/ch01-tour-basic.xml:48 1.1786 msgid "Solaris" 1.1787 msgstr "Solaris" 1.1788 1.1789 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1790 -#: ../en/ch02-tour-basic.xml:50 1.1791 +#: ../en/ch01-tour-basic.xml:50 1.1792 msgid "" 1.1793 "SunFreeWare, at <ulink url=\"http://www.sunfreeware.com\">http://www." 1.1794 "sunfreeware.com</ulink>, is a good source for a large number of pre-built " 1.1795 @@ -2537,12 +1614,12 @@ 1.1796 "和 64 位包,包含 Mercurial 的当前版本。" 1.1797 1.1798 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1799 -#: ../en/ch02-tour-basic.xml:58 1.1800 +#: ../en/ch01-tour-basic.xml:58 1.1801 msgid "Mac OS X" 1.1802 msgstr "Mac OS X" 1.1803 1.1804 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1805 -#: ../en/ch02-tour-basic.xml:60 1.1806 +#: ../en/ch01-tour-basic.xml:60 1.1807 msgid "" 1.1808 "Lee Cantey publishes an installer of Mercurial for Mac OS X at <ulink url=" 1.1809 "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " 1.1810 @@ -2553,7 +1630,7 @@ 1.1811 msgstr "" 1.1812 1.1813 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1814 -#: ../en/ch02-tour-basic.xml:69 1.1815 +#: ../en/ch01-tour-basic.xml:69 1.1816 msgid "" 1.1817 "It's also possible to install Mercurial using Fink or MacPorts, two popular " 1.1818 "free package managers for Mac OS X. If you have Fink, use <command>sudo apt-" 1.1819 @@ -2562,12 +1639,12 @@ 1.1820 msgstr "" 1.1821 1.1822 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1823 -#: ../en/ch02-tour-basic.xml:77 1.1824 +#: ../en/ch01-tour-basic.xml:77 1.1825 msgid "Windows" 1.1826 msgstr "" 1.1827 1.1828 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1829 -#: ../en/ch02-tour-basic.xml:79 1.1830 +#: ../en/ch01-tour-basic.xml:79 1.1831 msgid "" 1.1832 "Lee Cantey publishes an installer of Mercurial for Windows at <ulink url=" 1.1833 "\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " 1.1834 @@ -2575,7 +1652,7 @@ 1.1835 msgstr "" 1.1836 1.1837 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.1838 -#: ../en/ch02-tour-basic.xml:86 1.1839 +#: ../en/ch01-tour-basic.xml:86 1.1840 msgid "" 1.1841 "The Windows version of Mercurial does not automatically convert line endings " 1.1842 "between Windows and Unix styles. If you want to share work with Unix users, " 1.1843 @@ -2583,12 +1660,12 @@ 1.1844 msgstr "" 1.1845 1.1846 #. type: Content of: <book><chapter><sect1><title> 1.1847 -#: ../en/ch02-tour-basic.xml:96 1.1848 +#: ../en/ch01-tour-basic.xml:96 1.1849 msgid "Getting started" 1.1850 msgstr "开始" 1.1851 1.1852 #. type: Content of: <book><chapter><sect1><para> 1.1853 -#: ../en/ch02-tour-basic.xml:98 1.1854 +#: ../en/ch01-tour-basic.xml:98 1.1855 msgid "" 1.1856 "To begin, we'll use the <command role=\"hg-cmd\">hg version</command> command " 1.1857 "to find out whether Mercurial is actually installed properly. The actual " 1.1858 @@ -2597,12 +1674,12 @@ 1.1859 msgstr "" 1.1860 1.1861 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1862 -#: ../en/ch02-tour-basic.xml:107 1.1863 +#: ../en/ch01-tour-basic.xml:107 1.1864 msgid "Built-in help" 1.1865 msgstr "内置帮助" 1.1866 1.1867 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1868 -#: ../en/ch02-tour-basic.xml:109 1.1869 +#: ../en/ch01-tour-basic.xml:109 1.1870 msgid "" 1.1871 "Mercurial provides a built-in help system. This is invaluable for those " 1.1872 "times when you find yourself stuck trying to remember how to run a command. " 1.1873 @@ -2613,7 +1690,7 @@ 1.1874 msgstr "" 1.1875 1.1876 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1877 -#: ../en/ch02-tour-basic.xml:120 1.1878 +#: ../en/ch01-tour-basic.xml:120 1.1879 msgid "" 1.1880 "For a more impressive level of detail (which you won't usually need) run " 1.1881 "<command role=\"hg-cmd\">hg help <option role=\"hg-opt-global\">-v</option></" 1.1882 @@ -2623,12 +1700,12 @@ 1.1883 msgstr "" 1.1884 1.1885 #. type: Content of: <book><chapter><sect1><title> 1.1886 -#: ../en/ch02-tour-basic.xml:131 1.1887 +#: ../en/ch01-tour-basic.xml:131 1.1888 msgid "Working with a repository" 1.1889 msgstr "使用版本库" 1.1890 1.1891 #. type: Content of: <book><chapter><sect1><para> 1.1892 -#: ../en/ch02-tour-basic.xml:133 1.1893 +#: ../en/ch01-tour-basic.xml:133 1.1894 msgid "" 1.1895 "In Mercurial, everything happens inside a <emphasis>repository</emphasis>. " 1.1896 "The repository for a project contains all of the files that <quote>belong to</" 1.1897 @@ -2636,7 +1713,7 @@ 1.1898 msgstr "" 1.1899 1.1900 #. type: Content of: <book><chapter><sect1><para> 1.1901 -#: ../en/ch02-tour-basic.xml:139 1.1902 +#: ../en/ch01-tour-basic.xml:139 1.1903 msgid "" 1.1904 "There's nothing particularly magical about a repository; it is simply a " 1.1905 "directory tree in your filesystem that Mercurial treats as special. You can " 1.1906 @@ -2645,12 +1722,12 @@ 1.1907 msgstr "" 1.1908 1.1909 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1910 -#: ../en/ch02-tour-basic.xml:146 1.1911 +#: ../en/ch01-tour-basic.xml:146 1.1912 msgid "Making a local copy of a repository" 1.1913 msgstr "创建版本库的工作副本" 1.1914 1.1915 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1916 -#: ../en/ch02-tour-basic.xml:148 1.1917 +#: ../en/ch01-tour-basic.xml:148 1.1918 msgid "" 1.1919 "<emphasis>Copying</emphasis> a repository is just a little bit special. " 1.1920 "While you could use a normal file copying command to make a copy of a " 1.1921 @@ -2660,21 +1737,21 @@ 1.1922 msgstr "" 1.1923 1.1924 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1925 -#: ../en/ch02-tour-basic.xml:157 1.1926 +#: ../en/ch01-tour-basic.xml:157 1.1927 msgid "" 1.1928 "If our clone succeeded, we should now have a local directory called <filename " 1.1929 "class=\"directory\">hello</filename>. This directory will contain some files." 1.1930 msgstr "" 1.1931 1.1932 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1933 -#: ../en/ch02-tour-basic.xml:163 1.1934 +#: ../en/ch01-tour-basic.xml:163 1.1935 msgid "" 1.1936 "These files have the same contents and history in our repository as they do " 1.1937 "in the repository we cloned." 1.1938 msgstr "" 1.1939 1.1940 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1941 -#: ../en/ch02-tour-basic.xml:166 1.1942 +#: ../en/ch01-tour-basic.xml:166 1.1943 msgid "" 1.1944 "Every Mercurial repository is complete, self-contained, and independent. It " 1.1945 "contains its own private copy of a project's files and history. A cloned " 1.1946 @@ -2684,7 +1761,7 @@ 1.1947 msgstr "" 1.1948 1.1949 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1950 -#: ../en/ch02-tour-basic.xml:173 1.1951 +#: ../en/ch01-tour-basic.xml:173 1.1952 msgid "" 1.1953 "What this means for now is that we're free to experiment with our repository, " 1.1954 "safe in the knowledge that it's a private <quote>sandbox</quote> that won't " 1.1955 @@ -2692,12 +1769,12 @@ 1.1956 msgstr "" 1.1957 1.1958 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1959 -#: ../en/ch02-tour-basic.xml:179 1.1960 +#: ../en/ch01-tour-basic.xml:179 1.1961 msgid "What's in a repository?" 1.1962 msgstr "什么是版本库?" 1.1963 1.1964 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1965 -#: ../en/ch02-tour-basic.xml:181 1.1966 +#: ../en/ch01-tour-basic.xml:181 1.1967 msgid "" 1.1968 "When we take a more detailed look inside a repository, we can see that it " 1.1969 "contains a directory named <filename class=\"directory\">.hg</filename>. " 1.1970 @@ -2705,7 +1782,7 @@ 1.1971 msgstr "" 1.1972 1.1973 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1974 -#: ../en/ch02-tour-basic.xml:188 1.1975 +#: ../en/ch01-tour-basic.xml:188 1.1976 msgid "" 1.1977 "The contents of the <filename class=\"directory\">.hg</filename> directory " 1.1978 "and its subdirectories are private to Mercurial. Every other file and " 1.1979 @@ -2713,7 +1790,7 @@ 1.1980 msgstr "" 1.1981 1.1982 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1983 -#: ../en/ch02-tour-basic.xml:194 1.1984 +#: ../en/ch01-tour-basic.xml:194 1.1985 msgid "" 1.1986 "To introduce a little terminology, the <filename class=\"directory\">.hg</" 1.1987 "filename> directory is the <quote>real</quote> repository, and all of the " 1.1988 @@ -2726,12 +1803,12 @@ 1.1989 msgstr "" 1.1990 1.1991 #. type: Content of: <book><chapter><sect1><title> 1.1992 -#: ../en/ch02-tour-basic.xml:209 1.1993 +#: ../en/ch01-tour-basic.xml:209 1.1994 msgid "A tour through history" 1.1995 msgstr "回溯历史" 1.1996 1.1997 #. type: Content of: <book><chapter><sect1><para> 1.1998 -#: ../en/ch02-tour-basic.xml:211 1.1999 +#: ../en/ch01-tour-basic.xml:211 1.2000 msgid "" 1.2001 "One of the first things we might want to do with a new, unfamiliar repository " 1.2002 "is understand its history. The <command role=\"hg-cmd\">hg log</command> " 1.2003 @@ -2739,7 +1816,7 @@ 1.2004 msgstr "" 1.2005 1.2006 #. type: Content of: <book><chapter><sect1><para> 1.2007 -#: ../en/ch02-tour-basic.xml:218 1.2008 +#: ../en/ch01-tour-basic.xml:218 1.2009 msgid "" 1.2010 "By default, this command prints a brief paragraph of output for each change " 1.2011 "to the project that was recorded. In Mercurial terminology, we call each of " 1.2012 @@ -2748,14 +1825,14 @@ 1.2013 msgstr "" 1.2014 1.2015 #. type: Content of: <book><chapter><sect1><para> 1.2016 -#: ../en/ch02-tour-basic.xml:224 1.2017 +#: ../en/ch01-tour-basic.xml:224 1.2018 msgid "" 1.2019 "The fields in a record of output from <command role=\"hg-cmd\">hg log</" 1.2020 "command> are as follows." 1.2021 msgstr "" 1.2022 1.2023 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2024 -#: ../en/ch02-tour-basic.xml:227 1.2025 +#: ../en/ch01-tour-basic.xml:227 1.2026 msgid "" 1.2027 "<literal>changeset</literal>: This field has the format of a number, followed " 1.2028 "by a colon, followed by a hexadecimal string. These are " 1.2029 @@ -2765,7 +1842,7 @@ 1.2030 msgstr "" 1.2031 1.2032 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2033 -#: ../en/ch02-tour-basic.xml:233 1.2034 +#: ../en/ch01-tour-basic.xml:233 1.2035 msgid "" 1.2036 "<literal>user</literal>: The identity of the person who created the " 1.2037 "changeset. This is a free-form field, but it most often contains a person's " 1.2038 @@ -2773,7 +1850,7 @@ 1.2039 msgstr "" 1.2040 1.2041 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2042 -#: ../en/ch02-tour-basic.xml:237 1.2043 +#: ../en/ch01-tour-basic.xml:237 1.2044 msgid "" 1.2045 "<literal>date</literal>: The date and time on which the changeset was " 1.2046 "created, and the timezone in which it was created. (The date and time are " 1.2047 @@ -2782,21 +1859,21 @@ 1.2048 msgstr "" 1.2049 1.2050 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2051 -#: ../en/ch02-tour-basic.xml:242 1.2052 +#: ../en/ch01-tour-basic.xml:242 1.2053 msgid "" 1.2054 "<literal>summary</literal>: The first line of the text message that the " 1.2055 "creator of the changeset entered to describe the changeset." 1.2056 msgstr "" 1.2057 1.2058 #. type: Content of: <book><chapter><sect1><para> 1.2059 -#: ../en/ch02-tour-basic.xml:245 1.2060 +#: ../en/ch01-tour-basic.xml:245 1.2061 msgid "" 1.2062 "The default output printed by <command role=\"hg-cmd\">hg log</command> is " 1.2063 "purely a summary; it is missing a lot of detail." 1.2064 msgstr "" 1.2065 1.2066 #. type: Content of: <book><chapter><sect1><para> 1.2067 -#: ../en/ch02-tour-basic.xml:249 1.2068 +#: ../en/ch01-tour-basic.xml:249 1.2069 msgid "" 1.2070 "Figure <xref endterm=\"fig.tour-basic.history.caption\" linkend=\"fig.tour-" 1.2071 "basic.history\"/> provides a graphical representation of the history of the " 1.2072 @@ -2807,39 +1884,39 @@ 1.2073 msgstr "" 1.2074 1.2075 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> 1.2076 -#: ../en/ch02-tour-basic.xml:260 1.2077 +#: ../en/ch01-tour-basic.xml:260 1.2078 msgid "" 1.2079 "<imageobject><imagedata fileref=\"images/tour-history.png\"/></imageobject>" 1.2080 msgstr "" 1.2081 1.2082 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><textobject><phrase> 1.2083 -#: ../en/ch02-tour-basic.xml:261 ../en/ch03-tour-merge.xml:48 1.2084 -#: ../en/ch03-tour-merge.xml:78 ../en/ch03-tour-merge.xml:126 1.2085 -#: ../en/ch03-tour-merge.xml:182 ../en/ch03-tour-merge.xml:254 1.2086 -#: ../en/ch04-concepts.xml:56 ../en/ch04-concepts.xml:108 1.2087 -#: ../en/ch04-concepts.xml:194 ../en/ch04-concepts.xml:301 1.2088 -#: ../en/ch04-concepts.xml:353 ../en/ch04-concepts.xml:370 1.2089 -#: ../en/ch04-concepts.xml:414 ../en/ch04-concepts.xml:436 1.2090 -#: ../en/ch04-concepts.xml:480 ../en/ch06-collab.xml:277 1.2091 -#: ../en/ch09-undo.xml:366 ../en/ch09-undo.xml:417 ../en/ch09-undo.xml:485 1.2092 -#: ../en/ch09-undo.xml:527 ../en/ch12-mq.xml:409 1.2093 +#: ../en/ch01-tour-basic.xml:261 ../en/ch02-tour-merge.xml:48 1.2094 +#: ../en/ch02-tour-merge.xml:78 ../en/ch02-tour-merge.xml:126 1.2095 +#: ../en/ch02-tour-merge.xml:182 ../en/ch02-tour-merge.xml:254 1.2096 +#: ../en/ch03-concepts.xml:56 ../en/ch03-concepts.xml:108 1.2097 +#: ../en/ch03-concepts.xml:194 ../en/ch03-concepts.xml:301 1.2098 +#: ../en/ch03-concepts.xml:353 ../en/ch03-concepts.xml:370 1.2099 +#: ../en/ch03-concepts.xml:414 ../en/ch03-concepts.xml:436 1.2100 +#: ../en/ch03-concepts.xml:480 ../en/ch05-collab.xml:277 1.2101 +#: ../en/ch08-undo.xml:366 ../en/ch08-undo.xml:417 ../en/ch08-undo.xml:485 1.2102 +#: ../en/ch08-undo.xml:527 ../en/ch11-mq.xml:410 1.2103 msgid "XXX add text" 1.2104 msgstr "" 1.2105 1.2106 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> 1.2107 -#: ../en/ch02-tour-basic.xml:262 1.2108 +#: ../en/ch01-tour-basic.xml:262 1.2109 msgid "" 1.2110 "Graphical history of the <filename class=\"directory\">hello</filename> " 1.2111 "repository" 1.2112 msgstr "" 1.2113 1.2114 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2115 -#: ../en/ch02-tour-basic.xml:269 1.2116 +#: ../en/ch01-tour-basic.xml:269 1.2117 msgid "Changesets, revisions, and talking to other people" 1.2118 msgstr "改变集,版本,与其它用户交互" 1.2119 1.2120 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2121 -#: ../en/ch02-tour-basic.xml:272 1.2122 +#: ../en/ch01-tour-basic.xml:272 1.2123 msgid "" 1.2124 "As English is a notoriously sloppy language, and computer science has a " 1.2125 "hallowed history of terminological confusion (why use one term when four will " 1.2126 @@ -2851,7 +1928,7 @@ 1.2127 msgstr "" 1.2128 1.2129 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2130 -#: ../en/ch02-tour-basic.xml:282 1.2131 +#: ../en/ch01-tour-basic.xml:282 1.2132 msgid "" 1.2133 "While it doesn't matter what <emphasis>word</emphasis> you use to refer to " 1.2134 "the concept of <quote>a changeset</quote>, the <emphasis>identifier</" 1.2135 @@ -2862,13 +1939,13 @@ 1.2136 msgstr "" 1.2137 1.2138 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.2139 -#: ../en/ch02-tour-basic.xml:291 1.2140 +#: ../en/ch01-tour-basic.xml:291 1.2141 msgid "" 1.2142 "The revision number is <emphasis>only valid in that repository</emphasis>," 1.2143 msgstr "" 1.2144 1.2145 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.2146 -#: ../en/ch02-tour-basic.xml:293 1.2147 +#: ../en/ch01-tour-basic.xml:293 1.2148 msgid "" 1.2149 "while the hex string is the <emphasis>permanent, unchanging identifier</" 1.2150 "emphasis> that will always identify that exact changeset in <emphasis>every</" 1.2151 @@ -2876,7 +1953,7 @@ 1.2152 msgstr "" 1.2153 1.2154 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2155 -#: ../en/ch02-tour-basic.xml:298 1.2156 +#: ../en/ch01-tour-basic.xml:298 1.2157 msgid "" 1.2158 "This distinction is important. If you send someone an email talking about " 1.2159 "<quote>revision 33</quote>, there's a high likelihood that their revision 33 " 1.2160 @@ -2888,7 +1965,7 @@ 1.2161 msgstr "" 1.2162 1.2163 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2164 -#: ../en/ch02-tour-basic.xml:308 1.2165 +#: ../en/ch01-tour-basic.xml:308 1.2166 msgid "" 1.2167 "Mercurial uses revision numbers purely as a convenient shorthand. If you " 1.2168 "need to discuss a changeset with someone, or make a record of a changeset for " 1.2169 @@ -2897,12 +1974,12 @@ 1.2170 msgstr "" 1.2171 1.2172 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2173 -#: ../en/ch02-tour-basic.xml:316 1.2174 +#: ../en/ch01-tour-basic.xml:316 1.2175 msgid "Viewing specific revisions" 1.2176 msgstr "察看指定版本" 1.2177 1.2178 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2179 -#: ../en/ch02-tour-basic.xml:318 1.2180 +#: ../en/ch01-tour-basic.xml:318 1.2181 msgid "" 1.2182 "To narrow the output of <command role=\"hg-cmd\">hg log</command> down to a " 1.2183 "single revision, use the <option role=\"hg-opt-log\">-r</option> (or <option " 1.2184 @@ -2912,7 +1989,7 @@ 1.2185 msgstr "" 1.2186 1.2187 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2188 -#: ../en/ch02-tour-basic.xml:327 1.2189 +#: ../en/ch01-tour-basic.xml:327 1.2190 msgid "" 1.2191 "If you want to see the history of several revisions without having to list " 1.2192 "each one, you can use <emphasis>range notation</emphasis>; this lets you " 1.2193 @@ -2921,7 +1998,7 @@ 1.2194 msgstr "" 1.2195 1.2196 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2197 -#: ../en/ch02-tour-basic.xml:335 1.2198 +#: ../en/ch01-tour-basic.xml:335 1.2199 msgid "" 1.2200 "Mercurial also honours the order in which you specify revisions, so <command " 1.2201 "role=\"hg-cmd\">hg log -r 2:4</command> prints 2, 3, and 4. while <command " 1.2202 @@ -2929,12 +2006,12 @@ 1.2203 msgstr "" 1.2204 1.2205 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2206 -#: ../en/ch02-tour-basic.xml:342 1.2207 +#: ../en/ch01-tour-basic.xml:342 1.2208 msgid "More detailed information" 1.2209 msgstr "更详细的信息" 1.2210 1.2211 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2212 -#: ../en/ch02-tour-basic.xml:344 1.2213 +#: ../en/ch01-tour-basic.xml:344 1.2214 msgid "" 1.2215 "While the summary information printed by <command role=\"hg-cmd\">hg log</" 1.2216 "command> is useful if you already know what you're looking for, you may need " 1.2217 @@ -2946,7 +2023,7 @@ 1.2218 msgstr "" 1.2219 1.2220 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2221 -#: ../en/ch02-tour-basic.xml:356 1.2222 +#: ../en/ch01-tour-basic.xml:356 1.2223 msgid "" 1.2224 "If you want to see both the description and content of a change, add the " 1.2225 "<option role=\"hg-opt-log\">-p</option> (or <option role=\"hg-opt-log\">--" 1.2226 @@ -2956,12 +2033,12 @@ 1.2227 msgstr "" 1.2228 1.2229 #. type: Content of: <book><chapter><sect1><title> 1.2230 -#: ../en/ch02-tour-basic.xml:369 1.2231 +#: ../en/ch01-tour-basic.xml:369 1.2232 msgid "All about command options" 1.2233 msgstr "命令选项" 1.2234 1.2235 #. type: Content of: <book><chapter><sect1><para> 1.2236 -#: ../en/ch02-tour-basic.xml:371 1.2237 +#: ../en/ch01-tour-basic.xml:371 1.2238 msgid "" 1.2239 "Let's take a brief break from exploring Mercurial commands to discuss a " 1.2240 "pattern in the way that they work; you may find this useful to keep in mind " 1.2241 @@ -2969,7 +2046,7 @@ 1.2242 msgstr "" 1.2243 1.2244 #. type: Content of: <book><chapter><sect1><para> 1.2245 -#: ../en/ch02-tour-basic.xml:375 1.2246 +#: ../en/ch01-tour-basic.xml:375 1.2247 msgid "" 1.2248 "Mercurial has a consistent and straightforward approach to dealing with the " 1.2249 "options that you can pass to commands. It follows the conventions for " 1.2250 @@ -2977,7 +2054,7 @@ 1.2251 msgstr "" 1.2252 1.2253 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2254 -#: ../en/ch02-tour-basic.xml:380 1.2255 +#: ../en/ch01-tour-basic.xml:380 1.2256 msgid "" 1.2257 "Every option has a long name. For example, as we've already seen, the " 1.2258 "<command role=\"hg-cmd\">hg log</command> command accepts a <option role=\"hg-" 1.2259 @@ -2985,7 +2062,7 @@ 1.2260 msgstr "" 1.2261 1.2262 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2263 -#: ../en/ch02-tour-basic.xml:384 1.2264 +#: ../en/ch01-tour-basic.xml:384 1.2265 msgid "" 1.2266 "Most options have short names, too. Instead of <option role=\"hg-opt-log\">--" 1.2267 "rev</option>, we can use <option role=\"hg-opt-log\">-r</option>. (The " 1.2268 @@ -2994,7 +2071,7 @@ 1.2269 msgstr "" 1.2270 1.2271 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2272 -#: ../en/ch02-tour-basic.xml:389 1.2273 +#: ../en/ch01-tour-basic.xml:389 1.2274 msgid "" 1.2275 "Long options start with two dashes (e.g. <option role=\"hg-opt-log\">--rev</" 1.2276 "option>), while short options start with one (e.g. <option role=\"hg-opt-log" 1.2277 @@ -3002,7 +2079,7 @@ 1.2278 msgstr "" 1.2279 1.2280 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2281 -#: ../en/ch02-tour-basic.xml:393 1.2282 +#: ../en/ch01-tour-basic.xml:393 1.2283 msgid "" 1.2284 "Option naming and usage is consistent across commands. For example, every " 1.2285 "command that lets you specify a changeset ID or revision number accepts both " 1.2286 @@ -3011,7 +2088,7 @@ 1.2287 msgstr "" 1.2288 1.2289 #. type: Content of: <book><chapter><sect1><para> 1.2290 -#: ../en/ch02-tour-basic.xml:399 1.2291 +#: ../en/ch01-tour-basic.xml:399 1.2292 msgid "" 1.2293 "In the examples throughout this book, I use short options instead of long. " 1.2294 "This just reflects my own preference, so don't read anything significant into " 1.2295 @@ -3019,7 +2096,7 @@ 1.2296 msgstr "" 1.2297 1.2298 #. type: Content of: <book><chapter><sect1><para> 1.2299 -#: ../en/ch02-tour-basic.xml:403 1.2300 +#: ../en/ch01-tour-basic.xml:403 1.2301 msgid "" 1.2302 "Most commands that print output of some kind will print more output when " 1.2303 "passed a <option role=\"hg-opt-global\">-v</option> (or <option role=\"hg-opt-" 1.2304 @@ -3028,19 +2105,19 @@ 1.2305 msgstr "" 1.2306 1.2307 #. type: Content of: <book><chapter><sect1><title> 1.2308 -#: ../en/ch02-tour-basic.xml:411 1.2309 +#: ../en/ch01-tour-basic.xml:411 1.2310 msgid "Making and reviewing changes" 1.2311 msgstr "创建和复审修改" 1.2312 1.2313 #. type: Content of: <book><chapter><sect1><para> 1.2314 -#: ../en/ch02-tour-basic.xml:413 1.2315 +#: ../en/ch01-tour-basic.xml:413 1.2316 msgid "" 1.2317 "Now that we have a grasp of viewing history in Mercurial, let's take a look " 1.2318 "at making some changes and examining them." 1.2319 msgstr "" 1.2320 1.2321 #. type: Content of: <book><chapter><sect1><para> 1.2322 -#: ../en/ch02-tour-basic.xml:417 1.2323 +#: ../en/ch01-tour-basic.xml:417 1.2324 msgid "" 1.2325 "The first thing we'll do is isolate our experiment in a repository of its " 1.2326 "own. We use the <command role=\"hg-cmd\">hg clone</command> command, but we " 1.2327 @@ -3051,7 +2128,7 @@ 1.2328 msgstr "" 1.2329 1.2330 #. type: Content of: <book><chapter><sect1><para> 1.2331 -#: ../en/ch02-tour-basic.xml:427 1.2332 +#: ../en/ch01-tour-basic.xml:427 1.2333 msgid "" 1.2334 "As an aside, it's often good practice to keep a <quote>pristine</quote> copy " 1.2335 "of a remote repository around, which you can then make temporary clones of to " 1.2336 @@ -3063,7 +2140,7 @@ 1.2337 msgstr "" 1.2338 1.2339 #. type: Content of: <book><chapter><sect1><para> 1.2340 -#: ../en/ch02-tour-basic.xml:436 1.2341 +#: ../en/ch01-tour-basic.xml:436 1.2342 msgid "" 1.2343 "In our <filename class=\"directory\">my-hello</filename> repository, we have " 1.2344 "a file <filename>hello.c</filename> that contains the classic <quote>hello, " 1.2345 @@ -3076,14 +2153,14 @@ 1.2346 msgstr "" 1.2347 1.2348 #. type: Content of: <book><chapter><sect1><para> 1.2349 -#: ../en/ch02-tour-basic.xml:449 1.2350 +#: ../en/ch01-tour-basic.xml:449 1.2351 msgid "" 1.2352 "Mercurial's <command role=\"hg-cmd\">hg status</command> command will tell us " 1.2353 "what Mercurial knows about the files in the repository." 1.2354 msgstr "" 1.2355 1.2356 #. type: Content of: <book><chapter><sect1><para> 1.2357 -#: ../en/ch02-tour-basic.xml:455 1.2358 +#: ../en/ch01-tour-basic.xml:455 1.2359 msgid "" 1.2360 "The <command role=\"hg-cmd\">hg status</command> command prints no output for " 1.2361 "some files, but a line starting with <quote><literal>M</literal></quote> for " 1.2362 @@ -3093,7 +2170,7 @@ 1.2363 msgstr "" 1.2364 1.2365 #. type: Content of: <book><chapter><sect1><para> 1.2366 -#: ../en/ch02-tour-basic.xml:462 1.2367 +#: ../en/ch01-tour-basic.xml:462 1.2368 msgid "" 1.2369 "The <quote><literal>M</literal></quote> indicates that Mercurial has noticed " 1.2370 "that we modified <filename>hello.c</filename>. We didn't need to " 1.2371 @@ -3103,7 +2180,7 @@ 1.2372 msgstr "" 1.2373 1.2374 #. type: Content of: <book><chapter><sect1><para> 1.2375 -#: ../en/ch02-tour-basic.xml:470 1.2376 +#: ../en/ch01-tour-basic.xml:470 1.2377 msgid "" 1.2378 "It's a little bit helpful to know that we've modified <filename>hello.c</" 1.2379 "filename>, but we might prefer to know exactly <emphasis>what</emphasis> " 1.2380 @@ -3112,12 +2189,12 @@ 1.2381 msgstr "" 1.2382 1.2383 #. type: Content of: <book><chapter><sect1><title> 1.2384 -#: ../en/ch02-tour-basic.xml:480 1.2385 +#: ../en/ch01-tour-basic.xml:480 1.2386 msgid "Recording changes in a new changeset" 1.2387 msgstr "在新修改集中记录修改" 1.2388 1.2389 #. type: Content of: <book><chapter><sect1><para> 1.2390 -#: ../en/ch02-tour-basic.xml:482 1.2391 +#: ../en/ch01-tour-basic.xml:482 1.2392 msgid "" 1.2393 "We can modify files, build and test our changes, and use <command role=\"hg-" 1.2394 "cmd\">hg status</command> and <command role=\"hg-cmd\">hg diff</command> to " 1.2395 @@ -3126,7 +2203,7 @@ 1.2396 msgstr "" 1.2397 1.2398 #. type: Content of: <book><chapter><sect1><para> 1.2399 -#: ../en/ch02-tour-basic.xml:489 1.2400 +#: ../en/ch01-tour-basic.xml:489 1.2401 msgid "" 1.2402 "The <command role=\"hg-cmd\">hg commit</command> command lets us create a new " 1.2403 "changeset; we'll usually refer to this as <quote>making a commit</quote> or " 1.2404 @@ -3134,12 +2211,12 @@ 1.2405 msgstr "" 1.2406 1.2407 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2408 -#: ../en/ch02-tour-basic.xml:495 1.2409 +#: ../en/ch01-tour-basic.xml:495 1.2410 msgid "Setting up a username" 1.2411 msgstr "配置用户名称" 1.2412 1.2413 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2414 -#: ../en/ch02-tour-basic.xml:497 1.2415 +#: ../en/ch01-tour-basic.xml:497 1.2416 msgid "" 1.2417 "When you try to run <command role=\"hg-cmd\">hg commit</command> for the " 1.2418 "first time, it is not guaranteed to succeed. Mercurial records your name and " 1.2419 @@ -3150,7 +2227,7 @@ 1.2420 msgstr "" 1.2421 1.2422 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.2423 -#: ../en/ch02-tour-basic.xml:506 1.2424 +#: ../en/ch01-tour-basic.xml:506 1.2425 msgid "" 1.2426 "If you specify a <option role=\"hg-opt-commit\">-u</option> option to the " 1.2427 "<command role=\"hg-cmd\">hg commit</command> command on the command line, " 1.2428 @@ -3158,14 +2235,14 @@ 1.2429 msgstr "" 1.2430 1.2431 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.2432 -#: ../en/ch02-tour-basic.xml:511 1.2433 +#: ../en/ch01-tour-basic.xml:511 1.2434 msgid "" 1.2435 "If you have set the <envar>HGUSER</envar> environment variable, this is " 1.2436 "checked next." 1.2437 msgstr "" 1.2438 1.2439 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.2440 -#: ../en/ch02-tour-basic.xml:514 1.2441 +#: ../en/ch01-tour-basic.xml:514 1.2442 msgid "" 1.2443 "If you create a file in your home directory called <filename role=\"special" 1.2444 "\">.hgrc</filename>, with a <envar role=\"rc-item-ui\">username</envar> " 1.2445 @@ -3174,14 +2251,14 @@ 1.2446 msgstr "" 1.2447 1.2448 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.2449 -#: ../en/ch02-tour-basic.xml:521 1.2450 +#: ../en/ch01-tour-basic.xml:521 1.2451 msgid "" 1.2452 "If you have set the <envar>EMAIL</envar> environment variable, this will be " 1.2453 "used next." 1.2454 msgstr "" 1.2455 1.2456 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.2457 -#: ../en/ch02-tour-basic.xml:524 1.2458 +#: ../en/ch01-tour-basic.xml:524 1.2459 msgid "" 1.2460 "Mercurial will query your system to find out your local user name and host " 1.2461 "name, and construct a username from these components. Since this often " 1.2462 @@ -3190,7 +2267,7 @@ 1.2463 msgstr "" 1.2464 1.2465 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2466 -#: ../en/ch02-tour-basic.xml:531 1.2467 +#: ../en/ch01-tour-basic.xml:531 1.2468 msgid "" 1.2469 "If all of these mechanisms fail, Mercurial will fail, printing an error " 1.2470 "message. In this case, it will not let you commit until you set up a " 1.2471 @@ -3198,7 +2275,7 @@ 1.2472 msgstr "" 1.2473 1.2474 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2475 -#: ../en/ch02-tour-basic.xml:535 1.2476 +#: ../en/ch01-tour-basic.xml:535 1.2477 msgid "" 1.2478 "You should think of the <envar>HGUSER</envar> environment variable and the " 1.2479 "<option role=\"hg-opt-commit\">-u</option> option to the <command role=\"hg-" 1.2480 @@ -3209,12 +2286,12 @@ 1.2481 msgstr "" 1.2482 1.2483 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.2484 -#: ../en/ch02-tour-basic.xml:544 1.2485 +#: ../en/ch01-tour-basic.xml:544 1.2486 msgid "Creating a Mercurial configuration file" 1.2487 msgstr "创建 Mercurial 的配置文件" 1.2488 1.2489 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.2490 -#: ../en/ch02-tour-basic.xml:546 1.2491 +#: ../en/ch01-tour-basic.xml:546 1.2492 msgid "" 1.2493 "To set a user name, use your favourite editor to create a file called " 1.2494 "<filename role=\"special\">.hgrc</filename> in your home directory. " 1.2495 @@ -3224,7 +2301,7 @@ 1.2496 msgstr "" 1.2497 1.2498 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.2499 -#: ../en/ch02-tour-basic.xml:557 1.2500 +#: ../en/ch01-tour-basic.xml:558 1.2501 msgid "" 1.2502 "The <quote><literal>[ui]</literal></quote> line begins a <emphasis>section</" 1.2503 "emphasis> of the config file, so you can read the <quote><literal>username " 1.2504 @@ -3236,12 +2313,12 @@ 1.2505 msgstr "" 1.2506 1.2507 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.2508 -#: ../en/ch02-tour-basic.xml:570 1.2509 +#: ../en/ch01-tour-basic.xml:571 1.2510 msgid "Choosing a user name" 1.2511 msgstr "选择用户名称" 1.2512 1.2513 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.2514 -#: ../en/ch02-tour-basic.xml:572 1.2515 +#: ../en/ch01-tour-basic.xml:573 1.2516 msgid "" 1.2517 "You can use any text you like as the value of the <literal>username</literal> " 1.2518 "config item, since this information is for reading by other people, but for " 1.2519 @@ -3250,7 +2327,7 @@ 1.2520 msgstr "" 1.2521 1.2522 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> 1.2523 -#: ../en/ch02-tour-basic.xml:579 1.2524 +#: ../en/ch01-tour-basic.xml:580 1.2525 msgid "" 1.2526 "Mercurial's built-in web server obfuscates email addresses, to make it more " 1.2527 "difficult for the email harvesting tools that spammers use. This reduces the " 1.2528 @@ -3259,12 +2336,12 @@ 1.2529 msgstr "" 1.2530 1.2531 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2532 -#: ../en/ch02-tour-basic.xml:589 1.2533 +#: ../en/ch01-tour-basic.xml:590 1.2534 msgid "Writing a commit message" 1.2535 msgstr "写提交日志" 1.2536 1.2537 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2538 -#: ../en/ch02-tour-basic.xml:591 1.2539 +#: ../en/ch01-tour-basic.xml:592 1.2540 msgid "" 1.2541 "When we commit a change, Mercurial drops us into a text editor, to enter a " 1.2542 "message that will describe the modifications we've made in this changeset. " 1.2543 @@ -3274,7 +2351,7 @@ 1.2544 msgstr "" 1.2545 1.2546 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2547 -#: ../en/ch02-tour-basic.xml:601 1.2548 +#: ../en/ch01-tour-basic.xml:602 1.2549 msgid "" 1.2550 "The editor that the <command role=\"hg-cmd\">hg commit</command> command " 1.2551 "drops us into will contain an empty line, followed by a number of lines " 1.2552 @@ -3282,7 +2359,7 @@ 1.2553 msgstr "" 1.2554 1.2555 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2556 -#: ../en/ch02-tour-basic.xml:608 1.2557 +#: ../en/ch01-tour-basic.xml:609 1.2558 msgid "" 1.2559 "Mercurial ignores the lines that start with <quote><literal>HG:</literal></" 1.2560 "quote>; it uses them only to tell us which files it's recording changes to. " 1.2561 @@ -3290,12 +2367,12 @@ 1.2562 msgstr "" 1.2563 1.2564 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2565 -#: ../en/ch02-tour-basic.xml:614 1.2566 +#: ../en/ch01-tour-basic.xml:615 1.2567 msgid "Writing a good commit message" 1.2568 msgstr "写好提交日志" 1.2569 1.2570 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2571 -#: ../en/ch02-tour-basic.xml:616 1.2572 +#: ../en/ch01-tour-basic.xml:617 1.2573 msgid "" 1.2574 "Since <command role=\"hg-cmd\">hg log</command> only prints the first line of " 1.2575 "a commit message by default, it's best to write a commit message whose first " 1.2576 @@ -3305,7 +2382,7 @@ 1.2577 msgstr "" 1.2578 1.2579 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2580 -#: ../en/ch02-tour-basic.xml:630 1.2581 +#: ../en/ch01-tour-basic.xml:631 1.2582 msgid "" 1.2583 "As far as the remainder of the contents of the commit message are concerned, " 1.2584 "there are no hard-and-fast rules. Mercurial itself doesn't interpret or care " 1.2585 @@ -3314,7 +2391,7 @@ 1.2586 msgstr "" 1.2587 1.2588 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2589 -#: ../en/ch02-tour-basic.xml:636 1.2590 +#: ../en/ch01-tour-basic.xml:637 1.2591 msgid "" 1.2592 "My personal preference is for short, but informative, commit messages that " 1.2593 "tell me something that I can't figure out with a quick glance at the output " 1.2594 @@ -3322,12 +2399,12 @@ 1.2595 msgstr "" 1.2596 1.2597 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2598 -#: ../en/ch02-tour-basic.xml:643 1.2599 +#: ../en/ch01-tour-basic.xml:644 1.2600 msgid "Aborting a commit" 1.2601 msgstr "终止提交" 1.2602 1.2603 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2604 -#: ../en/ch02-tour-basic.xml:645 1.2605 +#: ../en/ch01-tour-basic.xml:646 1.2606 msgid "" 1.2607 "If you decide that you don't want to commit while in the middle of editing a " 1.2608 "commit message, simply exit from your editor without saving the file that " 1.2609 @@ -3336,7 +2413,7 @@ 1.2610 msgstr "" 1.2611 1.2612 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2613 -#: ../en/ch02-tour-basic.xml:650 1.2614 +#: ../en/ch01-tour-basic.xml:651 1.2615 msgid "" 1.2616 "If we run the <command role=\"hg-cmd\">hg commit</command> command without " 1.2617 "any arguments, it records all of the changes we've made, as reported by " 1.2618 @@ -3345,12 +2422,12 @@ 1.2619 msgstr "" 1.2620 1.2621 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2622 -#: ../en/ch02-tour-basic.xml:657 1.2623 +#: ../en/ch01-tour-basic.xml:658 1.2624 msgid "Admiring our new handiwork" 1.2625 msgstr "欣赏我们的新手艺" 1.2626 1.2627 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2628 -#: ../en/ch02-tour-basic.xml:659 1.2629 +#: ../en/ch01-tour-basic.xml:660 1.2630 msgid "" 1.2631 "Once we've finished the commit, we can use the <command role=\"hg-cmd\">hg " 1.2632 "tip</command> command to display the changeset we just created. This command " 1.2633 @@ -3359,19 +2436,19 @@ 1.2634 msgstr "" 1.2635 1.2636 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2637 -#: ../en/ch02-tour-basic.xml:668 1.2638 +#: ../en/ch01-tour-basic.xml:669 1.2639 msgid "" 1.2640 "We refer to the newest revision in the repository as the tip revision, or " 1.2641 "simply the tip." 1.2642 msgstr "" 1.2643 1.2644 #. type: Content of: <book><chapter><sect1><title> 1.2645 -#: ../en/ch02-tour-basic.xml:675 1.2646 +#: ../en/ch01-tour-basic.xml:676 1.2647 msgid "Sharing changes" 1.2648 msgstr "共享修改" 1.2649 1.2650 #. type: Content of: <book><chapter><sect1><para> 1.2651 -#: ../en/ch02-tour-basic.xml:677 1.2652 +#: ../en/ch01-tour-basic.xml:678 1.2653 msgid "" 1.2654 "We mentioned earlier that repositories in Mercurial are self-contained. This " 1.2655 "means that the changeset we just created exists only in our <filename class=" 1.2656 @@ -3380,12 +2457,12 @@ 1.2657 msgstr "" 1.2658 1.2659 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2660 -#: ../en/ch02-tour-basic.xml:685 1.2661 +#: ../en/ch01-tour-basic.xml:686 1.2662 msgid "Pulling changes from another repository" 1.2663 msgstr "从其它版本库取得修改" 1.2664 1.2665 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2666 -#: ../en/ch02-tour-basic.xml:686 1.2667 +#: ../en/ch01-tour-basic.xml:687 1.2668 msgid "" 1.2669 "To get started, let's clone our original <filename class=\"directory\">hello</" 1.2670 "filename> repository, which does not contain the change we just committed. " 1.2671 @@ -3394,7 +2471,7 @@ 1.2672 msgstr "" 1.2673 1.2674 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2675 -#: ../en/ch02-tour-basic.xml:694 1.2676 +#: ../en/ch01-tour-basic.xml:695 1.2677 msgid "" 1.2678 "We'll use the <command role=\"hg-cmd\">hg pull</command> command to bring " 1.2679 "changes from <filename class=\"directory\">my-hello</filename> into <filename " 1.2680 @@ -3407,7 +2484,7 @@ 1.2681 msgstr "" 1.2682 1.2683 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2684 -#: ../en/ch02-tour-basic.xml:707 1.2685 +#: ../en/ch01-tour-basic.xml:708 1.2686 msgid "" 1.2687 "(Of course, someone could cause more changesets to appear in the repository " 1.2688 "that we ran <command role=\"hg-cmd\">hg incoming</command> in, before we get " 1.2689 @@ -3416,7 +2493,7 @@ 1.2690 msgstr "" 1.2691 1.2692 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2693 -#: ../en/ch02-tour-basic.xml:714 1.2694 +#: ../en/ch01-tour-basic.xml:715 1.2695 msgid "" 1.2696 "Bringing changes into a repository is a simple matter of running the <command " 1.2697 "role=\"hg-cmd\">hg pull</command> command, and telling it which repository to " 1.2698 @@ -3424,7 +2501,7 @@ 1.2699 msgstr "" 1.2700 1.2701 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2702 -#: ../en/ch02-tour-basic.xml:721 1.2703 +#: ../en/ch01-tour-basic.xml:722 1.2704 msgid "" 1.2705 "As you can see from the before-and-after output of <command role=\"hg-cmd" 1.2706 "\">hg tip</command>, we have successfully pulled changes into our " 1.2707 @@ -3433,12 +2510,12 @@ 1.2708 msgstr "" 1.2709 1.2710 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2711 -#: ../en/ch02-tour-basic.xml:729 1.2712 +#: ../en/ch01-tour-basic.xml:730 1.2713 msgid "Updating the working directory" 1.2714 msgstr "更新工作目录" 1.2715 1.2716 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2717 -#: ../en/ch02-tour-basic.xml:731 1.2718 +#: ../en/ch01-tour-basic.xml:732 1.2719 msgid "" 1.2720 "We have so far glossed over the relationship between a repository and its " 1.2721 "working directory. The <command role=\"hg-cmd\">hg pull</command> command " 1.2722 @@ -3450,7 +2527,7 @@ 1.2723 msgstr "" 1.2724 1.2725 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2726 -#: ../en/ch02-tour-basic.xml:743 1.2727 +#: ../en/ch01-tour-basic.xml:744 1.2728 msgid "" 1.2729 "It might seem a bit strange that <command role=\"hg-cmd\">hg pull</command> " 1.2730 "doesn't update the working directory automatically. There's actually a good " 1.2731 @@ -3464,7 +2541,7 @@ 1.2732 msgstr "" 1.2733 1.2734 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2735 -#: ../en/ch02-tour-basic.xml:754 1.2736 +#: ../en/ch01-tour-basic.xml:755 1.2737 msgid "" 1.2738 "However, since pull-then-update is such a common thing to do, Mercurial lets " 1.2739 "you combine the two by passing the <option role=\"hg-opt-pull\">-u</option> " 1.2740 @@ -3472,7 +2549,7 @@ 1.2741 msgstr "" 1.2742 1.2743 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2744 -#: ../en/ch02-tour-basic.xml:759 1.2745 +#: ../en/ch01-tour-basic.xml:760 1.2746 msgid "" 1.2747 "If you look back at the output of <command role=\"hg-cmd\">hg pull</command> " 1.2748 "in section <xref linkend=\"sec.tour.pull\"/> when we ran it without <option " 1.2749 @@ -3482,14 +2559,14 @@ 1.2750 msgstr "" 1.2751 1.2752 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2753 -#: ../en/ch02-tour-basic.xml:768 1.2754 +#: ../en/ch01-tour-basic.xml:769 1.2755 msgid "" 1.2756 "To find out what revision the working directory is at, use the <command role=" 1.2757 "\"hg-cmd\">hg parents</command> command." 1.2758 msgstr "" 1.2759 1.2760 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2761 -#: ../en/ch02-tour-basic.xml:774 1.2762 +#: ../en/ch01-tour-basic.xml:775 1.2763 msgid "" 1.2764 "If you look back at figure <xref endterm=\"fig.tour-basic.history.caption\" " 1.2765 "linkend=\"fig.tour-basic.history\"/>, you'll see arrows connecting each " 1.2766 @@ -3500,7 +2577,7 @@ 1.2767 msgstr "" 1.2768 1.2769 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2770 -#: ../en/ch02-tour-basic.xml:784 1.2771 +#: ../en/ch01-tour-basic.xml:785 1.2772 msgid "" 1.2773 "To update the working directory to a particular revision, give a revision " 1.2774 "number or changeset ID to the <command role=\"hg-cmd\">hg update</command> " 1.2775 @@ -3508,7 +2585,7 @@ 1.2776 msgstr "" 1.2777 1.2778 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2779 -#: ../en/ch02-tour-basic.xml:791 1.2780 +#: ../en/ch01-tour-basic.xml:792 1.2781 msgid "" 1.2782 "If you omit an explicit revision, <command role=\"hg-cmd\">hg update</" 1.2783 "command> will update to the tip revision, as shown by the second call to " 1.2784 @@ -3516,12 +2593,12 @@ 1.2785 msgstr "" 1.2786 1.2787 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2788 -#: ../en/ch02-tour-basic.xml:799 1.2789 +#: ../en/ch01-tour-basic.xml:800 1.2790 msgid "Pushing changes to another repository" 1.2791 msgstr "发布修改到其它版本库" 1.2792 1.2793 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2794 -#: ../en/ch02-tour-basic.xml:801 1.2795 +#: ../en/ch01-tour-basic.xml:802 1.2796 msgid "" 1.2797 "Mercurial lets us push changes to another repository, from the repository " 1.2798 "we're currently visiting. As with the example of <command role=\"hg-cmd\">hg " 1.2799 @@ -3530,21 +2607,21 @@ 1.2800 msgstr "" 1.2801 1.2802 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2803 -#: ../en/ch02-tour-basic.xml:809 1.2804 +#: ../en/ch01-tour-basic.xml:810 1.2805 msgid "" 1.2806 "The <command role=\"hg-cmd\">hg outgoing</command> command tells us what " 1.2807 "changes would be pushed into another repository." 1.2808 msgstr "" 1.2809 1.2810 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2811 -#: ../en/ch02-tour-basic.xml:815 1.2812 +#: ../en/ch01-tour-basic.xml:816 1.2813 msgid "" 1.2814 "And the <command role=\"hg-cmd\">hg push</command> command does the actual " 1.2815 "push." 1.2816 msgstr "" 1.2817 1.2818 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2819 -#: ../en/ch02-tour-basic.xml:821 1.2820 +#: ../en/ch01-tour-basic.xml:822 1.2821 msgid "" 1.2822 "As with <command role=\"hg-cmd\">hg pull</command>, the <command role=\"hg-cmd" 1.2823 "\">hg push</command> command does not update the working directory in the " 1.2824 @@ -3555,19 +2632,19 @@ 1.2825 msgstr "" 1.2826 1.2827 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2828 -#: ../en/ch02-tour-basic.xml:830 1.2829 +#: ../en/ch01-tour-basic.xml:831 1.2830 msgid "" 1.2831 "What happens if we try to pull or push changes and the receiving repository " 1.2832 "already has those changes? Nothing too exciting." 1.2833 msgstr "" 1.2834 1.2835 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2836 -#: ../en/ch02-tour-basic.xml:837 1.2837 +#: ../en/ch01-tour-basic.xml:838 1.2838 msgid "Sharing changes over a network" 1.2839 msgstr "通过网络共享修改" 1.2840 1.2841 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2842 -#: ../en/ch02-tour-basic.xml:839 1.2843 +#: ../en/ch01-tour-basic.xml:840 1.2844 msgid "" 1.2845 "The commands we have covered in the previous few sections are not limited to " 1.2846 "working with local repositories. Each works in exactly the same fashion over " 1.2847 @@ -3575,7 +2652,7 @@ 1.2848 msgstr "" 1.2849 1.2850 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2851 -#: ../en/ch02-tour-basic.xml:847 1.2852 +#: ../en/ch01-tour-basic.xml:848 1.2853 msgid "" 1.2854 "In this example, we can see what changes we could push to the remote " 1.2855 "repository, but the repository is understandably not set up to let anonymous " 1.2856 @@ -3583,12 +2660,12 @@ 1.2857 msgstr "" 1.2858 1.2859 #. type: Content of: <book><chapter><title> 1.2860 -#: ../en/ch03-tour-merge.xml:5 1.2861 +#: ../en/ch02-tour-merge.xml:5 1.2862 msgid "A tour of Mercurial: merging work" 1.2863 msgstr "Mercurial 教程: 合并工作" 1.2864 1.2865 #. type: Content of: <book><chapter><para> 1.2866 -#: ../en/ch03-tour-merge.xml:7 1.2867 +#: ../en/ch02-tour-merge.xml:7 1.2868 msgid "" 1.2869 "We've now covered cloning a repository, making changes in a repository, and " 1.2870 "pulling or pushing changes from one repository into another. Our next step " 1.2871 @@ -3596,19 +2673,19 @@ 1.2872 msgstr "" 1.2873 1.2874 #. type: Content of: <book><chapter><sect1><title> 1.2875 -#: ../en/ch03-tour-merge.xml:13 1.2876 +#: ../en/ch02-tour-merge.xml:13 1.2877 msgid "Merging streams of work" 1.2878 msgstr "合并的流程" 1.2879 1.2880 #. type: Content of: <book><chapter><sect1><para> 1.2881 -#: ../en/ch03-tour-merge.xml:15 1.2882 +#: ../en/ch02-tour-merge.xml:15 1.2883 msgid "" 1.2884 "Merging is a fundamental part of working with a distributed revision control " 1.2885 "tool." 1.2886 msgstr "" 1.2887 1.2888 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2889 -#: ../en/ch03-tour-merge.xml:18 1.2890 +#: ../en/ch02-tour-merge.xml:18 1.2891 msgid "" 1.2892 "Alice and Bob each have a personal copy of a repository for a project they're " 1.2893 "collaborating on. Alice fixes a bug in her repository; Bob adds a new " 1.2894 @@ -3617,7 +2694,7 @@ 1.2895 msgstr "" 1.2896 1.2897 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2898 -#: ../en/ch03-tour-merge.xml:24 1.2899 +#: ../en/ch02-tour-merge.xml:24 1.2900 msgid "" 1.2901 "I frequently work on several different tasks for a single project at once, " 1.2902 "each safely isolated in its own repository. Working this way means that I " 1.2903 @@ -3625,7 +2702,7 @@ 1.2904 msgstr "" 1.2905 1.2906 #. type: Content of: <book><chapter><sect1><para> 1.2907 -#: ../en/ch03-tour-merge.xml:30 1.2908 +#: ../en/ch02-tour-merge.xml:30 1.2909 msgid "" 1.2910 "Because merging is such a common thing to need to do, Mercurial makes it " 1.2911 "easy. Let's walk through the process. We'll begin by cloning yet another " 1.2912 @@ -3633,7 +2710,7 @@ 1.2913 msgstr "" 1.2914 1.2915 #. type: Content of: <book><chapter><sect1><para> 1.2916 -#: ../en/ch03-tour-merge.xml:37 1.2917 +#: ../en/ch02-tour-merge.xml:37 1.2918 msgid "" 1.2919 "We should now have two copies of <filename>hello.c</filename> with different " 1.2920 "contents. The histories of the two repositories have also diverged, as " 1.2921 @@ -3642,14 +2719,14 @@ 1.2922 msgstr "" 1.2923 1.2924 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> 1.2925 -#: ../en/ch03-tour-merge.xml:47 1.2926 +#: ../en/ch02-tour-merge.xml:47 1.2927 msgid "" 1.2928 "<imageobject><imagedata fileref=\"images/tour-merge-sep-repos.png\"/></" 1.2929 "imageobject>" 1.2930 msgstr "" 1.2931 1.2932 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> 1.2933 -#: ../en/ch03-tour-merge.xml:49 1.2934 +#: ../en/ch02-tour-merge.xml:49 1.2935 msgid "" 1.2936 "Divergent recent histories of the <filename class=\"directory\">my-hello</" 1.2937 "filename> and <filename class=\"directory\">my-new-hello</filename> " 1.2938 @@ -3657,7 +2734,7 @@ 1.2939 msgstr "" 1.2940 1.2941 #. type: Content of: <book><chapter><sect1><para> 1.2942 -#: ../en/ch03-tour-merge.xml:57 1.2943 +#: ../en/ch02-tour-merge.xml:57 1.2944 msgid "" 1.2945 "We already know that pulling changes from our <filename class=\"directory" 1.2946 "\">my-hello</filename> repository will have no effect on the working " 1.2947 @@ -3665,19 +2742,19 @@ 1.2948 msgstr "" 1.2949 1.2950 #. type: Content of: <book><chapter><sect1><para> 1.2951 -#: ../en/ch03-tour-merge.xml:63 1.2952 +#: ../en/ch02-tour-merge.xml:63 1.2953 msgid "" 1.2954 "However, the <command role=\"hg-cmd\">hg pull</command> command says " 1.2955 "something about <quote>heads</quote>." 1.2956 msgstr "" 1.2957 1.2958 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2959 -#: ../en/ch03-tour-merge.xml:67 1.2960 +#: ../en/ch02-tour-merge.xml:67 1.2961 msgid "Head changesets" 1.2962 msgstr "顶点改变集" 1.2963 1.2964 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2965 -#: ../en/ch03-tour-merge.xml:69 1.2966 +#: ../en/ch02-tour-merge.xml:69 1.2967 msgid "" 1.2968 "A head is a change that has no descendants, or children, as they're also " 1.2969 "known. The tip revision is thus a head, because the newest revision in a " 1.2970 @@ -3686,20 +2763,20 @@ 1.2971 msgstr "" 1.2972 1.2973 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.2974 -#: ../en/ch03-tour-merge.xml:77 1.2975 +#: ../en/ch02-tour-merge.xml:77 1.2976 msgid "" 1.2977 "<imageobject><imagedata fileref=\"images/tour-merge-pull.png\"/></imageobject>" 1.2978 msgstr "" 1.2979 1.2980 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.2981 -#: ../en/ch03-tour-merge.xml:79 1.2982 +#: ../en/ch02-tour-merge.xml:79 1.2983 msgid "" 1.2984 "Repository contents after pulling from <filename class=\"directory\">my-" 1.2985 "hello</filename> into <filename class=\"directory\">my-new-hello</filename>" 1.2986 msgstr "" 1.2987 1.2988 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2989 -#: ../en/ch03-tour-merge.xml:85 1.2990 +#: ../en/ch02-tour-merge.xml:85 1.2991 msgid "" 1.2992 "In figure <xref endterm=\"fig.tour-merge.pull.caption\" linkend=\"fig.tour-" 1.2993 "merge.pull\"/>, you can see the effect of the pull from <filename class=" 1.2994 @@ -3716,19 +2793,19 @@ 1.2995 msgstr "" 1.2996 1.2997 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2998 -#: ../en/ch03-tour-merge.xml:106 1.2999 +#: ../en/ch02-tour-merge.xml:106 1.3000 msgid "Performing the merge" 1.3001 msgstr "执行合并" 1.3002 1.3003 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3004 -#: ../en/ch03-tour-merge.xml:108 1.3005 +#: ../en/ch02-tour-merge.xml:108 1.3006 msgid "" 1.3007 "What happens if we try to use the normal <command role=\"hg-cmd\">hg update</" 1.3008 "command> command to update to the new tip?" 1.3009 msgstr "" 1.3010 1.3011 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3012 -#: ../en/ch03-tour-merge.xml:114 1.3013 +#: ../en/ch02-tour-merge.xml:114 1.3014 msgid "" 1.3015 "Mercurial is telling us that the <command role=\"hg-cmd\">hg update</command> " 1.3016 "command won't do a merge; it won't update the working directory when it " 1.3017 @@ -3738,19 +2815,19 @@ 1.3018 msgstr "" 1.3019 1.3020 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3021 -#: ../en/ch03-tour-merge.xml:125 1.3022 +#: ../en/ch02-tour-merge.xml:125 1.3023 msgid "" 1.3024 "<imageobject><imagedata fileref=\"images/tour-merge-merge.png\"/></" 1.3025 "imageobject>" 1.3026 msgstr "" 1.3027 1.3028 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3029 -#: ../en/ch03-tour-merge.xml:127 1.3030 +#: ../en/ch02-tour-merge.xml:127 1.3031 msgid "Working directory and repository during merge, and following commit" 1.3032 msgstr "" 1.3033 1.3034 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3035 -#: ../en/ch03-tour-merge.xml:132 1.3036 +#: ../en/ch02-tour-merge.xml:132 1.3037 msgid "" 1.3038 "This updates the working directory so that it contains changes from " 1.3039 "<emphasis>both</emphasis> heads, which is reflected in both the output of " 1.3040 @@ -3759,12 +2836,12 @@ 1.3041 msgstr "" 1.3042 1.3043 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3044 -#: ../en/ch03-tour-merge.xml:142 1.3045 +#: ../en/ch02-tour-merge.xml:142 1.3046 msgid "Committing the results of the merge" 1.3047 msgstr "提交合并结果" 1.3048 1.3049 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3050 -#: ../en/ch03-tour-merge.xml:144 1.3051 +#: ../en/ch02-tour-merge.xml:144 1.3052 msgid "" 1.3053 "Whenever we've done a merge, <command role=\"hg-cmd\">hg parents</command> " 1.3054 "will display two parents until we <command role=\"hg-cmd\">hg commit</" 1.3055 @@ -3772,7 +2849,7 @@ 1.3056 msgstr "" 1.3057 1.3058 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3059 -#: ../en/ch03-tour-merge.xml:151 1.3060 +#: ../en/ch02-tour-merge.xml:151 1.3061 msgid "" 1.3062 "We now have a new tip revision; notice that it has <emphasis>both</emphasis> " 1.3063 "of our former heads as its parents. These are the same revisions that were " 1.3064 @@ -3780,7 +2857,7 @@ 1.3065 msgstr "" 1.3066 1.3067 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3068 -#: ../en/ch03-tour-merge.xml:158 1.3069 +#: ../en/ch02-tour-merge.xml:158 1.3070 msgid "" 1.3071 "In figure <xref endterm=\"fig.tour-merge.merge.caption\" linkend=\"fig.tour-" 1.3072 "merge.merge\"/>, you can see a representation of what happens to the working " 1.3073 @@ -3790,12 +2867,12 @@ 1.3074 msgstr "" 1.3075 1.3076 #. type: Content of: <book><chapter><sect1><title> 1.3077 -#: ../en/ch03-tour-merge.xml:169 1.3078 +#: ../en/ch02-tour-merge.xml:169 1.3079 msgid "Merging conflicting changes" 1.3080 msgstr "合并有冲突的改变" 1.3081 1.3082 #. type: Content of: <book><chapter><sect1><para> 1.3083 -#: ../en/ch03-tour-merge.xml:171 1.3084 +#: ../en/ch02-tour-merge.xml:171 1.3085 msgid "" 1.3086 "Most merges are simple affairs, but sometimes you'll find yourself merging " 1.3087 "changes where each modifies the same portions of the same files. Unless both " 1.3088 @@ -3805,19 +2882,19 @@ 1.3089 msgstr "" 1.3090 1.3091 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> 1.3092 -#: ../en/ch03-tour-merge.xml:180 1.3093 +#: ../en/ch02-tour-merge.xml:180 1.3094 msgid "" 1.3095 "<imageobject><imagedata fileref=\"images/tour-merge-conflict.png\"/> </" 1.3096 "imageobject>" 1.3097 msgstr "" 1.3098 1.3099 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> 1.3100 -#: ../en/ch03-tour-merge.xml:183 1.3101 +#: ../en/ch02-tour-merge.xml:183 1.3102 msgid "Conflicting changes to a document" 1.3103 msgstr "" 1.3104 1.3105 #. type: Content of: <book><chapter><sect1><para> 1.3106 -#: ../en/ch03-tour-merge.xml:188 1.3107 +#: ../en/ch02-tour-merge.xml:188 1.3108 msgid "" 1.3109 "Figure <xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-" 1.3110 "merge.conflict\"/> illustrates an instance of two conflicting changes to a " 1.3111 @@ -3828,7 +2905,7 @@ 1.3112 msgstr "" 1.3113 1.3114 #. type: Content of: <book><chapter><sect1><para> 1.3115 -#: ../en/ch03-tour-merge.xml:196 1.3116 +#: ../en/ch02-tour-merge.xml:196 1.3117 msgid "" 1.3118 "Mercurial doesn't have a built-in facility for handling conflicts. Instead, " 1.3119 "it runs an external program called <command>hgmerge</command>. This is a " 1.3120 @@ -3841,7 +2918,7 @@ 1.3121 msgstr "" 1.3122 1.3123 #. type: Content of: <book><chapter><sect1><para> 1.3124 -#: ../en/ch03-tour-merge.xml:207 1.3125 +#: ../en/ch02-tour-merge.xml:207 1.3126 msgid "" 1.3127 "It's also possible to get Mercurial to run another program or script instead " 1.3128 "of <command>hgmerge</command>, by setting the <envar>HGMERGE</envar> " 1.3129 @@ -3849,12 +2926,12 @@ 1.3130 msgstr "" 1.3131 1.3132 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3133 -#: ../en/ch03-tour-merge.xml:213 1.3134 +#: ../en/ch02-tour-merge.xml:213 1.3135 msgid "Using a graphical merge tool" 1.3136 msgstr "使用图形合并工具" 1.3137 1.3138 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3139 -#: ../en/ch03-tour-merge.xml:215 1.3140 +#: ../en/ch02-tour-merge.xml:215 1.3141 msgid "" 1.3142 "My preferred graphical merge tool is <command>kdiff3</command>, which I'll " 1.3143 "use to describe the features that are common to graphical file merging " 1.3144 @@ -3867,7 +2944,7 @@ 1.3145 msgstr "" 1.3146 1.3147 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3148 -#: ../en/ch03-tour-merge.xml:226 1.3149 +#: ../en/ch02-tour-merge.xml:226 1.3150 msgid "" 1.3151 "At the left is the <emphasis>base</emphasis> version of the file, i.e. the " 1.3152 "most recent version from which the two versions we're trying to merge are " 1.3153 @@ -3875,21 +2952,21 @@ 1.3154 msgstr "" 1.3155 1.3156 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3157 -#: ../en/ch03-tour-merge.xml:231 1.3158 +#: ../en/ch02-tour-merge.xml:231 1.3159 msgid "" 1.3160 "In the middle is <quote>our</quote> version of the file, with the contents " 1.3161 "that we modified." 1.3162 msgstr "" 1.3163 1.3164 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3165 -#: ../en/ch03-tour-merge.xml:234 1.3166 +#: ../en/ch02-tour-merge.xml:234 1.3167 msgid "" 1.3168 "On the right is <quote>their</quote> version of the file, the one that from " 1.3169 "the changeset that we're trying to merge with." 1.3170 msgstr "" 1.3171 1.3172 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3173 -#: ../en/ch03-tour-merge.xml:238 1.3174 +#: ../en/ch02-tour-merge.xml:238 1.3175 msgid "" 1.3176 "In the pane below these is the current <emphasis>result</emphasis> of the " 1.3177 "merge. Our task is to replace all of the red text, which indicates unresolved " 1.3178 @@ -3898,7 +2975,7 @@ 1.3179 msgstr "" 1.3180 1.3181 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3182 -#: ../en/ch03-tour-merge.xml:245 1.3183 +#: ../en/ch02-tour-merge.xml:245 1.3184 msgid "" 1.3185 "All four of these panes are <emphasis>locked together</emphasis>; if we " 1.3186 "scroll vertically or horizontally in any of them, the others are updated to " 1.3187 @@ -3906,19 +2983,19 @@ 1.3188 msgstr "" 1.3189 1.3190 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3191 -#: ../en/ch03-tour-merge.xml:252 1.3192 +#: ../en/ch02-tour-merge.xml:252 1.3193 msgid "" 1.3194 "<imageobject><imagedata width=\"100%\" fileref=\"images/kdiff3.png\"/> </" 1.3195 "imageobject>" 1.3196 msgstr "" 1.3197 1.3198 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3199 -#: ../en/ch03-tour-merge.xml:255 1.3200 +#: ../en/ch02-tour-merge.xml:255 1.3201 msgid "Using <command>kdiff3</command> to merge versions of a file" 1.3202 msgstr "" 1.3203 1.3204 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3205 -#: ../en/ch03-tour-merge.xml:261 1.3206 +#: ../en/ch02-tour-merge.xml:261 1.3207 msgid "" 1.3208 "For each conflicting portion of the file, we can choose to resolve the " 1.3209 "conflict using some combination of text from the base version, ours, or " 1.3210 @@ -3927,7 +3004,7 @@ 1.3211 msgstr "" 1.3212 1.3213 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3214 -#: ../en/ch03-tour-merge.xml:267 1.3215 +#: ../en/ch02-tour-merge.xml:267 1.3216 msgid "" 1.3217 "There are <emphasis>many</emphasis> file merging tools available, too many to " 1.3218 "cover here. They vary in which platforms they are available for, and in " 1.3219 @@ -3937,12 +3014,12 @@ 1.3220 msgstr "" 1.3221 1.3222 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3223 -#: ../en/ch03-tour-merge.xml:276 1.3224 +#: ../en/ch02-tour-merge.xml:276 1.3225 msgid "A worked example" 1.3226 msgstr "合并实例" 1.3227 1.3228 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3229 -#: ../en/ch03-tour-merge.xml:278 1.3230 +#: ../en/ch02-tour-merge.xml:278 1.3231 msgid "" 1.3232 "In this example, we will reproduce the file modification history of figure " 1.3233 "<xref endterm=\"fig.tour-merge.conflict.caption\" linkend=\"fig.tour-merge." 1.3234 @@ -3951,12 +3028,12 @@ 1.3235 msgstr "" 1.3236 1.3237 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3238 -#: ../en/ch03-tour-merge.xml:286 1.3239 +#: ../en/ch02-tour-merge.xml:286 1.3240 msgid "We'll clone the repository and make a change to the file." 1.3241 msgstr "" 1.3242 1.3243 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3244 -#: ../en/ch03-tour-merge.xml:291 1.3245 +#: ../en/ch02-tour-merge.xml:291 1.3246 msgid "" 1.3247 "And another clone, to simulate someone else making a change to the file. " 1.3248 "(This hints at the idea that it's not all that unusual to merge with yourself " 1.3249 @@ -3965,14 +3042,14 @@ 1.3250 msgstr "" 1.3251 1.3252 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3253 -#: ../en/ch03-tour-merge.xml:299 1.3254 +#: ../en/ch02-tour-merge.xml:299 1.3255 msgid "" 1.3256 "Having created two different versions of the file, we'll set up an " 1.3257 "environment suitable for running our merge." 1.3258 msgstr "" 1.3259 1.3260 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3261 -#: ../en/ch03-tour-merge.xml:305 1.3262 +#: ../en/ch02-tour-merge.xml:305 1.3263 msgid "" 1.3264 "In this example, I won't use Mercurial's normal <command>hgmerge</command> " 1.3265 "program to do the merge, because it would drop my nice automated example-" 1.3266 @@ -3984,12 +3061,12 @@ 1.3267 msgstr "" 1.3268 1.3269 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3270 -#: ../en/ch03-tour-merge.xml:315 1.3271 +#: ../en/ch02-tour-merge.xml:315 1.3272 msgid "<emphasis role=\"bold\">XXX FIX THIS EXAMPLE.</emphasis>" 1.3273 msgstr "" 1.3274 1.3275 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3276 -#: ../en/ch03-tour-merge.xml:320 1.3277 +#: ../en/ch02-tour-merge.xml:320 1.3278 msgid "" 1.3279 "Because <command>merge</command> can't resolve the conflicting changes, it " 1.3280 "leaves <emphasis>merge markers</emphasis> inside the file that has conflicts, " 1.3281 @@ -3998,7 +3075,7 @@ 1.3282 msgstr "" 1.3283 1.3284 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3285 -#: ../en/ch03-tour-merge.xml:326 1.3286 +#: ../en/ch02-tour-merge.xml:326 1.3287 msgid "" 1.3288 "Mercurial can tell from the way <command>merge</command> exits that it wasn't " 1.3289 "able to merge successfully, so it tells us what commands we'll need to run if " 1.3290 @@ -4008,7 +3085,7 @@ 1.3291 msgstr "" 1.3292 1.3293 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3294 -#: ../en/ch03-tour-merge.xml:333 1.3295 +#: ../en/ch02-tour-merge.xml:333 1.3296 msgid "" 1.3297 "If automatic or manual merges fail, there's nothing to prevent us from " 1.3298 "<quote>fixing up</quote> the affected files ourselves, and committing the " 1.3299 @@ -4016,19 +3093,19 @@ 1.3300 msgstr "" 1.3301 1.3302 #. type: Content of: <book><chapter><sect1><title> 1.3303 -#: ../en/ch03-tour-merge.xml:342 1.3304 +#: ../en/ch02-tour-merge.xml:342 1.3305 msgid "Simplifying the pull-merge-commit sequence" 1.3306 msgstr "简化拉-合并-提交程序" 1.3307 1.3308 #. type: Content of: <book><chapter><sect1><para> 1.3309 -#: ../en/ch03-tour-merge.xml:344 1.3310 +#: ../en/ch02-tour-merge.xml:344 1.3311 msgid "" 1.3312 "The process of merging changes as outlined above is straightforward, but " 1.3313 "requires running three commands in sequence." 1.3314 msgstr "" 1.3315 1.3316 #. type: Content of: <book><chapter><sect1><para> 1.3317 -#: ../en/ch03-tour-merge.xml:350 1.3318 +#: ../en/ch02-tour-merge.xml:350 1.3319 msgid "" 1.3320 "In the case of the final commit, you also need to enter a commit message, " 1.3321 "which is almost always going to be a piece of uninteresting " 1.3322 @@ -4036,7 +3113,7 @@ 1.3323 msgstr "" 1.3324 1.3325 #. type: Content of: <book><chapter><sect1><para> 1.3326 -#: ../en/ch03-tour-merge.xml:354 1.3327 +#: ../en/ch02-tour-merge.xml:354 1.3328 msgid "" 1.3329 "It would be nice to reduce the number of steps needed, if this were " 1.3330 "possible. Indeed, Mercurial is distributed with an extension called <literal " 1.3331 @@ -4044,7 +3121,7 @@ 1.3332 msgstr "" 1.3333 1.3334 #. type: Content of: <book><chapter><sect1><para> 1.3335 -#: ../en/ch03-tour-merge.xml:359 1.3336 +#: ../en/ch02-tour-merge.xml:359 1.3337 msgid "" 1.3338 "Mercurial provides a flexible extension mechanism that lets people extend its " 1.3339 "functionality, while keeping the core of Mercurial small and easy to deal " 1.3340 @@ -4054,7 +3131,7 @@ 1.3341 msgstr "" 1.3342 1.3343 #. type: Content of: <book><chapter><sect1><para> 1.3344 -#: ../en/ch03-tour-merge.xml:366 1.3345 +#: ../en/ch02-tour-merge.xml:366 1.3346 msgid "" 1.3347 "The <literal role=\"hg-ext\">fetch</literal> extension adds a new command " 1.3348 "called, not surprisingly, <command role=\"hg-cmd\">hg fetch</command>. This " 1.3349 @@ -4068,7 +3145,7 @@ 1.3350 msgstr "" 1.3351 1.3352 #. type: Content of: <book><chapter><sect1><para> 1.3353 -#: ../en/ch03-tour-merge.xml:379 1.3354 +#: ../en/ch02-tour-merge.xml:379 1.3355 msgid "" 1.3356 "Enabling the <literal role=\"hg-ext\">fetch</literal> extension is easy. " 1.3357 "Edit your <filename role=\"special\">.hgrc</filename>, and either go to the " 1.3358 @@ -4078,7 +3155,7 @@ 1.3359 msgstr "" 1.3360 1.3361 #. type: Content of: <book><chapter><sect1><para> 1.3362 -#: ../en/ch03-tour-merge.xml:389 1.3363 +#: ../en/ch02-tour-merge.xml:388 1.3364 msgid "" 1.3365 "(Normally, on the right-hand side of the <quote><literal>=</literal></quote> " 1.3366 "would appear the location of the extension, but since the <literal role=\"hg-" 1.3367 @@ -4087,12 +3164,12 @@ 1.3368 msgstr "" 1.3369 1.3370 #. type: Content of: <book><chapter><title> 1.3371 -#: ../en/ch04-concepts.xml:5 1.3372 +#: ../en/ch03-concepts.xml:5 1.3373 msgid "Behind the scenes" 1.3374 msgstr "Mercurial 内幕" 1.3375 1.3376 #. type: Content of: <book><chapter><para> 1.3377 -#: ../en/ch04-concepts.xml:7 1.3378 +#: ../en/ch03-concepts.xml:7 1.3379 msgid "" 1.3380 "Unlike many revision control systems, the concepts upon which Mercurial is " 1.3381 "built are simple enough that it's easy to understand how the software really " 1.3382 @@ -4101,7 +3178,7 @@ 1.3383 msgstr "" 1.3384 1.3385 #. type: Content of: <book><chapter><para> 1.3386 -#: ../en/ch04-concepts.xml:13 1.3387 +#: ../en/ch03-concepts.xml:13 1.3388 msgid "" 1.3389 "This understanding gives me confidence that Mercurial has been carefully " 1.3390 "designed to be both <emphasis>safe</emphasis> and <emphasis>efficient</" 1.3391 @@ -4111,7 +3188,7 @@ 1.3392 msgstr "" 1.3393 1.3394 #. type: Content of: <book><chapter><para> 1.3395 -#: ../en/ch04-concepts.xml:20 1.3396 +#: ../en/ch03-concepts.xml:20 1.3397 msgid "" 1.3398 "In this chapter, we'll initially cover the core concepts behind Mercurial's " 1.3399 "design, then continue to discuss some of the interesting details of its " 1.3400 @@ -4119,17 +3196,17 @@ 1.3401 msgstr "" 1.3402 1.3403 #. type: Content of: <book><chapter><sect1><title> 1.3404 -#: ../en/ch04-concepts.xml:25 1.3405 +#: ../en/ch03-concepts.xml:25 1.3406 msgid "Mercurial's historical record" 1.3407 msgstr "Mercurial 的历史记录" 1.3408 1.3409 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3410 -#: ../en/ch04-concepts.xml:28 1.3411 +#: ../en/ch03-concepts.xml:28 1.3412 msgid "Tracking the history of a single file" 1.3413 msgstr "跟踪单一文件的历史" 1.3414 1.3415 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3416 -#: ../en/ch04-concepts.xml:30 1.3417 +#: ../en/ch03-concepts.xml:30 1.3418 msgid "" 1.3419 "When Mercurial tracks modifications to a file, it stores the history of that " 1.3420 "file in a metadata object called a <emphasis>filelog</emphasis>. Each entry " 1.3421 @@ -4141,7 +3218,7 @@ 1.3422 msgstr "" 1.3423 1.3424 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3425 -#: ../en/ch04-concepts.xml:41 1.3426 +#: ../en/ch03-concepts.xml:41 1.3427 msgid "" 1.3428 "A file that is large, or has a lot of history, has its filelog stored in " 1.3429 "separate data (<quote><literal>.d</literal></quote> suffix) and index " 1.3430 @@ -4154,23 +3231,23 @@ 1.3431 msgstr "" 1.3432 1.3433 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3434 -#: ../en/ch04-concepts.xml:55 1.3435 +#: ../en/ch03-concepts.xml:55 1.3436 msgid "<imageobject><imagedata fileref=\"images/filelog.png\"/></imageobject>" 1.3437 msgstr "" 1.3438 1.3439 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3440 -#: ../en/ch04-concepts.xml:57 1.3441 +#: ../en/ch03-concepts.xml:57 1.3442 msgid "" 1.3443 "Relationships between files in working directory and filelogs in repository" 1.3444 msgstr "" 1.3445 1.3446 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3447 -#: ../en/ch04-concepts.xml:65 1.3448 +#: ../en/ch03-concepts.xml:65 1.3449 msgid "Managing tracked files" 1.3450 msgstr "管理跟踪的文件" 1.3451 1.3452 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3453 -#: ../en/ch04-concepts.xml:67 1.3454 +#: ../en/ch03-concepts.xml:67 1.3455 msgid "" 1.3456 "Mercurial uses a structure called a <emphasis>manifest</emphasis> to collect " 1.3457 "together information about the files that it tracks. Each entry in the " 1.3458 @@ -4180,12 +3257,12 @@ 1.3459 msgstr "" 1.3460 1.3461 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3462 -#: ../en/ch04-concepts.xml:77 1.3463 +#: ../en/ch03-concepts.xml:77 1.3464 msgid "Recording changeset information" 1.3465 msgstr "记录修改集信息" 1.3466 1.3467 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3468 -#: ../en/ch04-concepts.xml:79 1.3469 +#: ../en/ch03-concepts.xml:79 1.3470 msgid "" 1.3471 "The <emphasis>changelog</emphasis> contains information about each " 1.3472 "changeset. Each revision records who committed a change, the changeset " 1.3473 @@ -4194,12 +3271,12 @@ 1.3474 msgstr "" 1.3475 1.3476 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3477 -#: ../en/ch04-concepts.xml:87 1.3478 +#: ../en/ch03-concepts.xml:87 1.3479 msgid "Relationships between revisions" 1.3480 msgstr "版本之间的关系" 1.3481 1.3482 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3483 -#: ../en/ch04-concepts.xml:89 1.3484 +#: ../en/ch03-concepts.xml:89 1.3485 msgid "" 1.3486 "Within a changelog, a manifest, or a filelog, each revision stores a pointer " 1.3487 "to its immediate parent (or to its two parents, if it's a merge revision). " 1.3488 @@ -4209,7 +3286,7 @@ 1.3489 msgstr "" 1.3490 1.3491 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3492 -#: ../en/ch04-concepts.xml:96 1.3493 +#: ../en/ch03-concepts.xml:96 1.3494 msgid "" 1.3495 "For every changeset in a repository, there is exactly one revision stored in " 1.3496 "the changelog. Each revision of the changelog contains a pointer to a single " 1.3497 @@ -4220,17 +3297,17 @@ 1.3498 msgstr "" 1.3499 1.3500 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3501 -#: ../en/ch04-concepts.xml:107 1.3502 +#: ../en/ch03-concepts.xml:107 1.3503 msgid "<imageobject><imagedata fileref=\"images/metadata.png\"/></imageobject>" 1.3504 msgstr "" 1.3505 1.3506 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3507 -#: ../en/ch04-concepts.xml:109 1.3508 +#: ../en/ch03-concepts.xml:109 1.3509 msgid "Metadata relationships" 1.3510 msgstr "" 1.3511 1.3512 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3513 -#: ../en/ch04-concepts.xml:114 1.3514 +#: ../en/ch03-concepts.xml:114 1.3515 msgid "" 1.3516 "As the illustration shows, there is <emphasis>not</emphasis> a <quote>one to " 1.3517 "one</quote> relationship between revisions in the changelog, manifest, or " 1.3518 @@ -4242,24 +3319,24 @@ 1.3519 msgstr "" 1.3520 1.3521 #. type: Content of: <book><chapter><sect1><title> 1.3522 -#: ../en/ch04-concepts.xml:127 1.3523 +#: ../en/ch03-concepts.xml:127 1.3524 msgid "Safe, efficient storage" 1.3525 msgstr "安全,高效的存储" 1.3526 1.3527 #. type: Content of: <book><chapter><sect1><para> 1.3528 -#: ../en/ch04-concepts.xml:129 1.3529 +#: ../en/ch03-concepts.xml:129 1.3530 msgid "" 1.3531 "The underpinnings of changelogs, manifests, and filelogs are provided by a " 1.3532 "single structure called the <emphasis>revlog</emphasis>." 1.3533 msgstr "" 1.3534 1.3535 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3536 -#: ../en/ch04-concepts.xml:134 1.3537 +#: ../en/ch03-concepts.xml:134 1.3538 msgid "Efficient storage" 1.3539 msgstr "高效存储" 1.3540 1.3541 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3542 -#: ../en/ch04-concepts.xml:136 1.3543 +#: ../en/ch03-concepts.xml:136 1.3544 msgid "" 1.3545 "The revlog provides efficient storage of revisions using a <emphasis>delta</" 1.3546 "emphasis> mechanism. Instead of storing a complete copy of a file for each " 1.3547 @@ -4269,7 +3346,7 @@ 1.3548 msgstr "" 1.3549 1.3550 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3551 -#: ../en/ch04-concepts.xml:144 1.3552 +#: ../en/ch03-concepts.xml:144 1.3553 msgid "" 1.3554 "Some obsolete revision control systems can only work with deltas of text " 1.3555 "files. They must either store binary files as complete snapshots or encoded " 1.3556 @@ -4279,12 +3356,12 @@ 1.3557 msgstr "" 1.3558 1.3559 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3560 -#: ../en/ch04-concepts.xml:153 1.3561 +#: ../en/ch03-concepts.xml:153 1.3562 msgid "Safe operation" 1.3563 msgstr "安全操作" 1.3564 1.3565 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3566 -#: ../en/ch04-concepts.xml:155 1.3567 +#: ../en/ch03-concepts.xml:155 1.3568 msgid "" 1.3569 "Mercurial only ever <emphasis>appends</emphasis> data to the end of a revlog " 1.3570 "file. It never modifies a section of a file after it has written it. This is " 1.3571 @@ -4293,7 +3370,7 @@ 1.3572 msgstr "" 1.3573 1.3574 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3575 -#: ../en/ch04-concepts.xml:161 1.3576 +#: ../en/ch03-concepts.xml:161 1.3577 msgid "" 1.3578 "In addition, Mercurial treats every write as part of a <emphasis>transaction</" 1.3579 "emphasis> that can span a number of files. A transaction is " 1.3580 @@ -4305,7 +3382,7 @@ 1.3581 msgstr "" 1.3582 1.3583 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3584 -#: ../en/ch04-concepts.xml:171 1.3585 +#: ../en/ch03-concepts.xml:171 1.3586 msgid "" 1.3587 "The fact that Mercurial only appends to files makes it easier to provide this " 1.3588 "transactional guarantee. The easier it is to do stuff like this, the more " 1.3589 @@ -4313,12 +3390,12 @@ 1.3590 msgstr "" 1.3591 1.3592 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3593 -#: ../en/ch04-concepts.xml:178 1.3594 +#: ../en/ch03-concepts.xml:178 1.3595 msgid "Fast retrieval" 1.3596 msgstr "快速检索" 1.3597 1.3598 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3599 -#: ../en/ch04-concepts.xml:180 1.3600 +#: ../en/ch03-concepts.xml:180 1.3601 msgid "" 1.3602 "Mercurial cleverly avoids a pitfall common to all earlier revision control " 1.3603 "systems: the problem of <emphasis>inefficient retrieval</emphasis>. Most " 1.3604 @@ -4331,17 +3408,17 @@ 1.3605 msgstr "" 1.3606 1.3607 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3608 -#: ../en/ch04-concepts.xml:193 1.3609 +#: ../en/ch03-concepts.xml:193 1.3610 msgid "<imageobject><imagedata fileref=\"images/snapshot.png\"/></imageobject>" 1.3611 msgstr "" 1.3612 1.3613 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3614 -#: ../en/ch04-concepts.xml:195 1.3615 +#: ../en/ch03-concepts.xml:195 1.3616 msgid "Snapshot of a revlog, with incremental deltas" 1.3617 msgstr "" 1.3618 1.3619 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3620 -#: ../en/ch04-concepts.xml:200 1.3621 +#: ../en/ch03-concepts.xml:200 1.3622 msgid "" 1.3623 "The innovation that Mercurial applies to this problem is simple but " 1.3624 "effective. Once the cumulative amount of delta information stored since the " 1.3625 @@ -4353,7 +3430,7 @@ 1.3626 msgstr "" 1.3627 1.3628 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3629 -#: ../en/ch04-concepts.xml:209 1.3630 +#: ../en/ch03-concepts.xml:209 1.3631 msgid "" 1.3632 "Figure <xref endterm=\"fig.concepts.snapshot.caption\" linkend=\"fig.concepts." 1.3633 "snapshot\"/> illustrates the idea. In an entry in a revlog's index file, " 1.3634 @@ -4362,12 +3439,12 @@ 1.3635 msgstr "" 1.3636 1.3637 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.3638 -#: ../en/ch04-concepts.xml:216 1.3639 +#: ../en/ch03-concepts.xml:216 1.3640 msgid "Aside: the influence of video compression" 1.3641 msgstr "" 1.3642 1.3643 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3644 -#: ../en/ch04-concepts.xml:218 1.3645 +#: ../en/ch03-concepts.xml:218 1.3646 msgid "" 1.3647 "If you're familiar with video compression or have ever watched a TV feed " 1.3648 "through a digital cable or satellite service, you may know that most video " 1.3649 @@ -4378,7 +3455,7 @@ 1.3650 msgstr "" 1.3651 1.3652 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3653 -#: ../en/ch04-concepts.xml:227 1.3654 +#: ../en/ch03-concepts.xml:227 1.3655 msgid "" 1.3656 "Because it's possible for a video stream to <quote>drop out</quote> " 1.3657 "occasionally due to signal glitches, and to limit the accumulation of " 1.3658 @@ -4391,12 +3468,12 @@ 1.3659 msgstr "" 1.3660 1.3661 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3662 -#: ../en/ch04-concepts.xml:241 1.3663 +#: ../en/ch03-concepts.xml:241 1.3664 msgid "Identification and strong integrity" 1.3665 msgstr "鉴别和强完整性" 1.3666 1.3667 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3668 -#: ../en/ch04-concepts.xml:243 1.3669 +#: ../en/ch03-concepts.xml:243 1.3670 msgid "" 1.3671 "Along with delta or snapshot information, a revlog entry contains a " 1.3672 "cryptographic hash of the data that it represents. This makes it difficult " 1.3673 @@ -4404,7 +3481,7 @@ 1.3674 msgstr "" 1.3675 1.3676 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3677 -#: ../en/ch04-concepts.xml:248 1.3678 +#: ../en/ch03-concepts.xml:248 1.3679 msgid "" 1.3680 "Hashes provide more than a mere check against corruption; they are used as " 1.3681 "the identifiers for revisions. The changeset identification hashes that you " 1.3682 @@ -4413,7 +3490,7 @@ 1.3683 msgstr "" 1.3684 1.3685 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3686 -#: ../en/ch04-concepts.xml:255 1.3687 +#: ../en/ch03-concepts.xml:255 1.3688 msgid "" 1.3689 "Mercurial verifies that hashes are correct when it retrieves file revisions " 1.3690 "and when it pulls changes from another repository. If it encounters an " 1.3691 @@ -4421,7 +3498,7 @@ 1.3692 msgstr "" 1.3693 1.3694 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3695 -#: ../en/ch04-concepts.xml:260 1.3696 +#: ../en/ch03-concepts.xml:260 1.3697 msgid "" 1.3698 "In addition to the effect it has on retrieval efficiency, Mercurial's use of " 1.3699 "periodic snapshots makes it more robust against partial data corruption. If " 1.3700 @@ -4432,12 +3509,12 @@ 1.3701 msgstr "" 1.3702 1.3703 #. type: Content of: <book><chapter><sect1><title> 1.3704 -#: ../en/ch04-concepts.xml:272 1.3705 +#: ../en/ch03-concepts.xml:272 1.3706 msgid "Revision history, branching, and merging" 1.3707 msgstr "修订历史,分支与合并" 1.3708 1.3709 #. type: Content of: <book><chapter><sect1><para> 1.3710 -#: ../en/ch04-concepts.xml:274 1.3711 +#: ../en/ch03-concepts.xml:274 1.3712 msgid "" 1.3713 "Every entry in a Mercurial revlog knows the identity of its immediate " 1.3714 "ancestor revision, usually referred to as its <emphasis>parent</emphasis>. " 1.3715 @@ -4448,7 +3525,7 @@ 1.3716 msgstr "" 1.3717 1.3718 #. type: Content of: <book><chapter><sect1><para> 1.3719 -#: ../en/ch04-concepts.xml:282 1.3720 +#: ../en/ch03-concepts.xml:282 1.3721 msgid "" 1.3722 "In figure <xref endterm=\"fig.concepts.revlog.caption\" linkend=\"fig." 1.3723 "concepts.revlog\"/>, you can see an example of the conceptual structure of a " 1.3724 @@ -4457,7 +3534,7 @@ 1.3725 msgstr "" 1.3726 1.3727 #. type: Content of: <book><chapter><sect1><para> 1.3728 -#: ../en/ch04-concepts.xml:289 1.3729 +#: ../en/ch03-concepts.xml:289 1.3730 msgid "" 1.3731 "The first revision in a revlog (at the bottom of the image) has the null ID " 1.3732 "in both of its parent slots. For a <quote>normal</quote> revision, its first " 1.3733 @@ -4469,29 +3546,29 @@ 1.3734 msgstr "" 1.3735 1.3736 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject> 1.3737 -#: ../en/ch04-concepts.xml:300 1.3738 +#: ../en/ch03-concepts.xml:300 1.3739 msgid "<imageobject><imagedata fileref=\"images/revlog.png\"/></imageobject>" 1.3740 msgstr "" 1.3741 1.3742 #. type: Content of: <book><chapter><sect1><informalfigure><mediaobject><caption><para> 1.3743 -#: ../en/ch04-concepts.xml:302 1.3744 +#: ../en/ch03-concepts.xml:302 1.3745 msgid "Revision in revlog" 1.3746 msgstr "" 1.3747 1.3748 #. type: Content of: <book><chapter><sect1><title> 1.3749 -#: ../en/ch04-concepts.xml:309 1.3750 +#: ../en/ch03-concepts.xml:309 1.3751 msgid "The working directory" 1.3752 msgstr "工作目录" 1.3753 1.3754 #. type: Content of: <book><chapter><sect1><para> 1.3755 -#: ../en/ch04-concepts.xml:311 1.3756 +#: ../en/ch03-concepts.xml:311 1.3757 msgid "" 1.3758 "In the working directory, Mercurial stores a snapshot of the files from the " 1.3759 "repository as of a particular changeset." 1.3760 msgstr "" 1.3761 1.3762 #. type: Content of: <book><chapter><sect1><para> 1.3763 -#: ../en/ch04-concepts.xml:314 1.3764 +#: ../en/ch03-concepts.xml:314 1.3765 msgid "" 1.3766 "The working directory <quote>knows</quote> which changeset it contains. When " 1.3767 "you update the working directory to contain a particular changeset, Mercurial " 1.3768 @@ -4502,7 +3579,7 @@ 1.3769 msgstr "" 1.3770 1.3771 #. type: Content of: <book><chapter><sect1><para> 1.3772 -#: ../en/ch04-concepts.xml:323 1.3773 +#: ../en/ch03-concepts.xml:323 1.3774 msgid "" 1.3775 "The <emphasis>dirstate</emphasis> contains Mercurial's knowledge of the " 1.3776 "working directory. This details which changeset the working directory is " 1.3777 @@ -4511,7 +3588,7 @@ 1.3778 msgstr "" 1.3779 1.3780 #. type: Content of: <book><chapter><sect1><para> 1.3781 -#: ../en/ch04-concepts.xml:329 1.3782 +#: ../en/ch03-concepts.xml:329 1.3783 msgid "" 1.3784 "Just as a revision of a revlog has room for two parents, so that it can " 1.3785 "represent either a normal revision (with one parent) or a merge of two " 1.3786 @@ -4526,12 +3603,12 @@ 1.3787 msgstr "" 1.3788 1.3789 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3790 -#: ../en/ch04-concepts.xml:343 1.3791 +#: ../en/ch03-concepts.xml:343 1.3792 msgid "What happens when you commit" 1.3793 msgstr "当你提交时发生的事情" 1.3794 1.3795 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3796 -#: ../en/ch04-concepts.xml:345 1.3797 +#: ../en/ch03-concepts.xml:345 1.3798 msgid "" 1.3799 "The dirstate stores parent information for more than just book-keeping " 1.3800 "purposes. Mercurial uses the parents of the dirstate as <emphasis>the " 1.3801 @@ -4539,17 +3616,17 @@ 1.3802 msgstr "" 1.3803 1.3804 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3805 -#: ../en/ch04-concepts.xml:352 1.3806 +#: ../en/ch03-concepts.xml:352 1.3807 msgid "<imageobject><imagedata fileref=\"images/wdir.png\"/></imageobject>" 1.3808 msgstr "" 1.3809 1.3810 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3811 -#: ../en/ch04-concepts.xml:354 1.3812 +#: ../en/ch03-concepts.xml:354 1.3813 msgid "The working directory can have two parents" 1.3814 msgstr "" 1.3815 1.3816 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3817 -#: ../en/ch04-concepts.xml:359 1.3818 +#: ../en/ch03-concepts.xml:359 1.3819 msgid "" 1.3820 "Figure <xref endterm=\"fig.concepts.wdir.caption\" linkend=\"fig.concepts.wdir" 1.3821 "\"/> shows the normal state of the working directory, where it has a single " 1.3822 @@ -4558,19 +3635,19 @@ 1.3823 msgstr "" 1.3824 1.3825 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3826 -#: ../en/ch04-concepts.xml:368 1.3827 +#: ../en/ch03-concepts.xml:368 1.3828 msgid "" 1.3829 "<imageobject><imagedata fileref=\"images/wdir-after-commit.png\"/> </" 1.3830 "imageobject>" 1.3831 msgstr "" 1.3832 1.3833 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3834 -#: ../en/ch04-concepts.xml:371 1.3835 +#: ../en/ch03-concepts.xml:371 1.3836 msgid "The working directory gains new parents after a commit" 1.3837 msgstr "" 1.3838 1.3839 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3840 -#: ../en/ch04-concepts.xml:376 1.3841 +#: ../en/ch03-concepts.xml:376 1.3842 msgid "" 1.3843 "It's useful to think of the working directory as <quote>the changeset I'm " 1.3844 "about to commit</quote>. Any files that you tell Mercurial that you've " 1.3845 @@ -4580,7 +3657,7 @@ 1.3846 msgstr "" 1.3847 1.3848 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3849 -#: ../en/ch04-concepts.xml:384 1.3850 +#: ../en/ch03-concepts.xml:384 1.3851 msgid "" 1.3852 "After a commit, Mercurial will update the parents of the working directory, " 1.3853 "so that the first parent is the ID of the new changeset, and the second is " 1.3854 @@ -4591,12 +3668,12 @@ 1.3855 msgstr "" 1.3856 1.3857 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3858 -#: ../en/ch04-concepts.xml:396 1.3859 +#: ../en/ch03-concepts.xml:396 1.3860 msgid "Creating a new head" 1.3861 msgstr "创建新顶点" 1.3862 1.3863 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3864 -#: ../en/ch04-concepts.xml:398 1.3865 +#: ../en/ch03-concepts.xml:398 1.3866 msgid "" 1.3867 "It's perfectly normal to update the working directory to a changeset other " 1.3868 "than the current tip. For example, you might want to know what your project " 1.3869 @@ -4610,19 +3687,19 @@ 1.3870 msgstr "" 1.3871 1.3872 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3873 -#: ../en/ch04-concepts.xml:412 1.3874 +#: ../en/ch03-concepts.xml:412 1.3875 msgid "" 1.3876 "<imageobject><imagedata fileref=\"images/wdir-pre-branch.png\"/> </" 1.3877 "imageobject>" 1.3878 msgstr "" 1.3879 1.3880 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3881 -#: ../en/ch04-concepts.xml:415 1.3882 +#: ../en/ch03-concepts.xml:415 1.3883 msgid "The working directory, updated to an older changeset" 1.3884 msgstr "" 1.3885 1.3886 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3887 -#: ../en/ch04-concepts.xml:420 1.3888 +#: ../en/ch03-concepts.xml:420 1.3889 msgid "" 1.3890 "Having updated the working directory to an older changeset, what happens if " 1.3891 "you make some changes, and then commit? Mercurial behaves in the same way as " 1.3892 @@ -4635,18 +3712,18 @@ 1.3893 msgstr "" 1.3894 1.3895 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3896 -#: ../en/ch04-concepts.xml:434 1.3897 +#: ../en/ch03-concepts.xml:434 1.3898 msgid "" 1.3899 "<imageobject><imagedata fileref=\"images/wdir-branch.png\"/> </imageobject>" 1.3900 msgstr "" 1.3901 1.3902 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3903 -#: ../en/ch04-concepts.xml:437 1.3904 +#: ../en/ch03-concepts.xml:437 1.3905 msgid "After a commit made while synced to an older changeset" 1.3906 msgstr "" 1.3907 1.3908 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.3909 -#: ../en/ch04-concepts.xml:443 1.3910 +#: ../en/ch03-concepts.xml:443 1.3911 msgid "" 1.3912 "If you're new to Mercurial, you should keep in mind a common <quote>error</" 1.3913 "quote>, which is to use the <command role=\"hg-cmd\">hg pull</command> " 1.3914 @@ -4660,7 +3737,7 @@ 1.3915 msgstr "" 1.3916 1.3917 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.3918 -#: ../en/ch04-concepts.xml:455 1.3919 +#: ../en/ch03-concepts.xml:455 1.3920 msgid "" 1.3921 "I put the word <quote>error</quote> in quotes because all that you need to do " 1.3922 "to rectify this situation is <command role=\"hg-cmd\">hg merge</command>, " 1.3923 @@ -4671,12 +3748,12 @@ 1.3924 msgstr "" 1.3925 1.3926 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3927 -#: ../en/ch04-concepts.xml:467 1.3928 +#: ../en/ch03-concepts.xml:467 1.3929 msgid "Merging heads" 1.3930 msgstr "合并顶点" 1.3931 1.3932 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3933 -#: ../en/ch04-concepts.xml:469 1.3934 +#: ../en/ch03-concepts.xml:469 1.3935 msgid "" 1.3936 "When you run the <command role=\"hg-cmd\">hg merge</command> command, " 1.3937 "Mercurial leaves the first parent of the working directory unchanged, and " 1.3938 @@ -4686,18 +3763,18 @@ 1.3939 msgstr "" 1.3940 1.3941 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.3942 -#: ../en/ch04-concepts.xml:478 1.3943 +#: ../en/ch03-concepts.xml:478 1.3944 msgid "" 1.3945 "<imageobject><imagedata fileref=\"images/wdir-merge.png\"/> </imageobject>" 1.3946 msgstr "" 1.3947 1.3948 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.3949 -#: ../en/ch04-concepts.xml:481 1.3950 +#: ../en/ch03-concepts.xml:481 1.3951 msgid "Merging two heads" 1.3952 msgstr "" 1.3953 1.3954 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3955 -#: ../en/ch04-concepts.xml:486 1.3956 +#: ../en/ch03-concepts.xml:486 1.3957 msgid "" 1.3958 "Mercurial also has to modify the working directory, to merge the files " 1.3959 "managed in the two changesets. Simplified a little, the merging process goes " 1.3960 @@ -4705,33 +3782,33 @@ 1.3961 msgstr "" 1.3962 1.3963 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3964 -#: ../en/ch04-concepts.xml:491 1.3965 +#: ../en/ch03-concepts.xml:491 1.3966 msgid "If neither changeset has modified a file, do nothing with that file." 1.3967 msgstr "" 1.3968 1.3969 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3970 -#: ../en/ch04-concepts.xml:494 1.3971 +#: ../en/ch03-concepts.xml:494 1.3972 msgid "" 1.3973 "If one changeset has modified a file, and the other hasn't, create the " 1.3974 "modified copy of the file in the working directory." 1.3975 msgstr "" 1.3976 1.3977 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3978 -#: ../en/ch04-concepts.xml:498 1.3979 +#: ../en/ch03-concepts.xml:498 1.3980 msgid "" 1.3981 "If one changeset has removed a file, and the other hasn't (or has also " 1.3982 "deleted it), delete the file from the working directory." 1.3983 msgstr "" 1.3984 1.3985 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3986 -#: ../en/ch04-concepts.xml:502 1.3987 +#: ../en/ch03-concepts.xml:502 1.3988 msgid "" 1.3989 "If one changeset has removed a file, but the other has modified the file, ask " 1.3990 "the user what to do: keep the modified file, or remove it?" 1.3991 msgstr "" 1.3992 1.3993 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3994 -#: ../en/ch04-concepts.xml:506 1.3995 +#: ../en/ch03-concepts.xml:506 1.3996 msgid "" 1.3997 "If both changesets have modified a file, invoke an external merge program to " 1.3998 "choose the new contents for the merged file. This may require input from the " 1.3999 @@ -4739,14 +3816,14 @@ 1.4000 msgstr "" 1.4001 1.4002 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4003 -#: ../en/ch04-concepts.xml:511 1.4004 +#: ../en/ch03-concepts.xml:511 1.4005 msgid "" 1.4006 "If one changeset has modified a file, and the other has renamed or copied the " 1.4007 "file, make sure that the changes follow the new name of the file." 1.4008 msgstr "" 1.4009 1.4010 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4011 -#: ../en/ch04-concepts.xml:515 1.4012 +#: ../en/ch03-concepts.xml:515 1.4013 msgid "" 1.4014 "There are more details&emdash;merging has plenty of corner cases&emdash;but " 1.4015 "these are the most common choices that are involved in a merge. As you can " 1.4016 @@ -4755,7 +3832,7 @@ 1.4017 msgstr "" 1.4018 1.4019 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4020 -#: ../en/ch04-concepts.xml:522 1.4021 +#: ../en/ch03-concepts.xml:522 1.4022 msgid "" 1.4023 "When you're thinking about what happens when you commit after a merge, once " 1.4024 "again the working directory is <quote>the changeset I'm about to commit</" 1.4025 @@ -4765,7 +3842,7 @@ 1.4026 msgstr "" 1.4027 1.4028 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4029 -#: ../en/ch04-concepts.xml:529 1.4030 +#: ../en/ch03-concepts.xml:529 1.4031 msgid "" 1.4032 "Mercurial lets you perform multiple merges, but you must commit the results " 1.4033 "of each individual merge as you go. This is necessary because Mercurial only " 1.4034 @@ -4776,12 +3853,12 @@ 1.4035 msgstr "" 1.4036 1.4037 #. type: Content of: <book><chapter><sect1><title> 1.4038 -#: ../en/ch04-concepts.xml:540 1.4039 +#: ../en/ch03-concepts.xml:540 1.4040 msgid "Other interesting design features" 1.4041 msgstr "其它有趣的设计特性" 1.4042 1.4043 #. type: Content of: <book><chapter><sect1><para> 1.4044 -#: ../en/ch04-concepts.xml:542 1.4045 +#: ../en/ch03-concepts.xml:542 1.4046 msgid "" 1.4047 "In the sections above, I've tried to highlight some of the most important " 1.4048 "aspects of Mercurial's design, to illustrate that it pays careful attention " 1.4049 @@ -4794,12 +3871,12 @@ 1.4050 msgstr "" 1.4051 1.4052 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4053 -#: ../en/ch04-concepts.xml:553 1.4054 +#: ../en/ch03-concepts.xml:553 1.4055 msgid "Clever compression" 1.4056 msgstr "智能压缩" 1.4057 1.4058 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4059 -#: ../en/ch04-concepts.xml:555 1.4060 +#: ../en/ch03-concepts.xml:555 1.4061 msgid "" 1.4062 "When appropriate, Mercurial will store both snapshots and deltas in " 1.4063 "compressed form. It does this by always <emphasis>trying to</emphasis> " 1.4064 @@ -4808,7 +3885,7 @@ 1.4065 msgstr "" 1.4066 1.4067 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4068 -#: ../en/ch04-concepts.xml:561 1.4069 +#: ../en/ch03-concepts.xml:561 1.4070 msgid "" 1.4071 "This means that Mercurial does <quote>the right thing</quote> when storing a " 1.4072 "file whose native form is compressed, such as a <literal>zip</literal> " 1.4073 @@ -4818,7 +3895,7 @@ 1.4074 msgstr "" 1.4075 1.4076 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4077 -#: ../en/ch04-concepts.xml:569 1.4078 +#: ../en/ch03-concepts.xml:569 1.4079 msgid "" 1.4080 "Deltas between revisions of a compressed file are usually larger than " 1.4081 "snapshots of the file, and Mercurial again does <quote>the right thing</" 1.4082 @@ -4828,12 +3905,12 @@ 1.4083 msgstr "" 1.4084 1.4085 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4086 -#: ../en/ch04-concepts.xml:578 1.4087 +#: ../en/ch03-concepts.xml:578 1.4088 msgid "Network recompression" 1.4089 msgstr "网络重新压缩" 1.4090 1.4091 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4092 -#: ../en/ch04-concepts.xml:580 1.4093 +#: ../en/ch03-concepts.xml:580 1.4094 msgid "" 1.4095 "When storing revisions on disk, Mercurial uses the <quote>deflate</quote> " 1.4096 "compression algorithm (the same one used by the popular <literal>zip</" 1.4097 @@ -4843,7 +3920,7 @@ 1.4098 msgstr "" 1.4099 1.4100 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4101 -#: ../en/ch04-concepts.xml:588 1.4102 +#: ../en/ch03-concepts.xml:588 1.4103 msgid "" 1.4104 "If the connection is over HTTP, Mercurial recompresses the entire stream of " 1.4105 "data using a compression algorithm that gives a better compression ratio (the " 1.4106 @@ -4855,7 +3932,7 @@ 1.4107 msgstr "" 1.4108 1.4109 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4110 -#: ../en/ch04-concepts.xml:598 1.4111 +#: ../en/ch03-concepts.xml:598 1.4112 msgid "" 1.4113 "(If the connection is over <command>ssh</command>, Mercurial " 1.4114 "<emphasis>doesn't</emphasis> recompress the stream, because <command>ssh</" 1.4115 @@ -4863,12 +3940,12 @@ 1.4116 msgstr "" 1.4117 1.4118 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4119 -#: ../en/ch04-concepts.xml:606 1.4120 +#: ../en/ch03-concepts.xml:606 1.4121 msgid "Read/write ordering and atomicity" 1.4122 msgstr "读写顺序与原子性" 1.4123 1.4124 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4125 -#: ../en/ch04-concepts.xml:608 1.4126 +#: ../en/ch03-concepts.xml:608 1.4127 msgid "" 1.4128 "Appending to files isn't the whole story when it comes to guaranteeing that a " 1.4129 "reader won't see a partial write. If you recall figure <xref endterm=\"fig." 1.4130 @@ -4878,7 +3955,7 @@ 1.4131 msgstr "" 1.4132 1.4133 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4134 -#: ../en/ch04-concepts.xml:616 1.4135 +#: ../en/ch03-concepts.xml:616 1.4136 msgid "" 1.4137 "A writer starts a transaction by writing filelog and manifest data, and " 1.4138 "doesn't write any changelog data until those are finished. A reader starts " 1.4139 @@ -4886,7 +3963,7 @@ 1.4140 msgstr "" 1.4141 1.4142 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4143 -#: ../en/ch04-concepts.xml:621 1.4144 +#: ../en/ch03-concepts.xml:621 1.4145 msgid "" 1.4146 "Since the writer has always finished writing filelog and manifest data before " 1.4147 "it writes to the changelog, a reader will never read a pointer to a partially " 1.4148 @@ -4895,12 +3972,12 @@ 1.4149 msgstr "" 1.4150 1.4151 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4152 -#: ../en/ch04-concepts.xml:629 1.4153 +#: ../en/ch03-concepts.xml:629 1.4154 msgid "Concurrent access" 1.4155 msgstr "并发访问" 1.4156 1.4157 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4158 -#: ../en/ch04-concepts.xml:631 1.4159 +#: ../en/ch03-concepts.xml:631 1.4160 msgid "" 1.4161 "The read/write ordering and atomicity guarantees mean that Mercurial never " 1.4162 "needs to <emphasis>lock</emphasis> a repository when it's reading data, even " 1.4163 @@ -4911,7 +3988,7 @@ 1.4164 msgstr "" 1.4165 1.4166 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4167 -#: ../en/ch04-concepts.xml:640 1.4168 +#: ../en/ch03-concepts.xml:640 1.4169 msgid "" 1.4170 "The lockless nature of reading means that if you're sharing a repository on a " 1.4171 "multi-user system, you don't need to grant other local users permission to " 1.4172 @@ -4925,7 +4002,7 @@ 1.4173 msgstr "" 1.4174 1.4175 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4176 -#: ../en/ch04-concepts.xml:653 1.4177 +#: ../en/ch03-concepts.xml:653 1.4178 msgid "" 1.4179 "Mercurial uses locks to ensure that only one process can write to a " 1.4180 "repository at a time (the locking mechanism is safe even over filesystems " 1.4181 @@ -4939,12 +4016,12 @@ 1.4182 msgstr "" 1.4183 1.4184 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4185 -#: ../en/ch04-concepts.xml:665 1.4186 +#: ../en/ch03-concepts.xml:665 1.4187 msgid "Safe dirstate access" 1.4188 msgstr "安全的目录状态访问" 1.4189 1.4190 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4191 -#: ../en/ch04-concepts.xml:667 1.4192 +#: ../en/ch03-concepts.xml:667 1.4193 msgid "" 1.4194 "As with revision data, Mercurial doesn't take a lock to read the dirstate " 1.4195 "file; it does acquire a lock to write it. To avoid the possibility of " 1.4196 @@ -4956,12 +4033,12 @@ 1.4197 msgstr "" 1.4198 1.4199 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4200 -#: ../en/ch04-concepts.xml:680 1.4201 +#: ../en/ch03-concepts.xml:680 1.4202 msgid "Avoiding seeks" 1.4203 msgstr "避免查找" 1.4204 1.4205 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4206 -#: ../en/ch04-concepts.xml:682 1.4207 +#: ../en/ch03-concepts.xml:682 1.4208 msgid "" 1.4209 "Critical to Mercurial's performance is the avoidance of seeks of the disk " 1.4210 "head, since any seek is far more expensive than even a comparatively large " 1.4211 @@ -4969,7 +4046,7 @@ 1.4212 msgstr "" 1.4213 1.4214 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4215 -#: ../en/ch04-concepts.xml:686 1.4216 +#: ../en/ch03-concepts.xml:686 1.4217 msgid "" 1.4218 "This is why, for example, the dirstate is stored in a single file. If there " 1.4219 "were a dirstate file per directory that Mercurial tracked, the disk would " 1.4220 @@ -4978,7 +4055,7 @@ 1.4221 msgstr "" 1.4222 1.4223 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4224 -#: ../en/ch04-concepts.xml:692 1.4225 +#: ../en/ch03-concepts.xml:692 1.4226 msgid "" 1.4227 "Mercurial also uses a <quote>copy on write</quote> scheme when cloning a " 1.4228 "repository on local storage. Instead of copying every revlog file from the " 1.4229 @@ -4991,7 +4068,7 @@ 1.4230 msgstr "" 1.4231 1.4232 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4233 -#: ../en/ch04-concepts.xml:703 1.4234 +#: ../en/ch03-concepts.xml:703 1.4235 msgid "" 1.4236 "A few revision control developers have pointed out that this idea of making a " 1.4237 "complete private copy of a file is not very efficient in its use of storage. " 1.4238 @@ -5003,12 +4080,12 @@ 1.4239 msgstr "" 1.4240 1.4241 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4242 -#: ../en/ch04-concepts.xml:715 1.4243 +#: ../en/ch03-concepts.xml:715 1.4244 msgid "Other contents of the dirstate" 1.4245 msgstr "目录状态的其它内容" 1.4246 1.4247 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4248 -#: ../en/ch04-concepts.xml:717 1.4249 +#: ../en/ch03-concepts.xml:717 1.4250 msgid "" 1.4251 "Because Mercurial doesn't force you to tell it when you're modifying a file, " 1.4252 "it uses the dirstate to store some extra information so it can determine " 1.4253 @@ -5018,7 +4095,7 @@ 1.4254 msgstr "" 1.4255 1.4256 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4257 -#: ../en/ch04-concepts.xml:724 1.4258 +#: ../en/ch03-concepts.xml:724 1.4259 msgid "" 1.4260 "When you explicitly <command role=\"hg-cmd\">hg add</command>, <command role=" 1.4261 "\"hg-cmd\">hg remove</command>, <command role=\"hg-cmd\">hg rename</command> " 1.4262 @@ -5027,7 +4104,7 @@ 1.4263 msgstr "" 1.4264 1.4265 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4266 -#: ../en/ch04-concepts.xml:731 1.4267 +#: ../en/ch03-concepts.xml:731 1.4268 msgid "" 1.4269 "When Mercurial is checking the states of files in the working directory, it " 1.4270 "first checks a file's modification time. If that has not changed, the file " 1.4271 @@ -5041,17 +4118,17 @@ 1.4272 msgstr "" 1.4273 1.4274 #. type: Content of: <book><chapter><title> 1.4275 -#: ../en/ch05-daily.xml:5 1.4276 +#: ../en/ch04-daily.xml:5 1.4277 msgid "Mercurial in daily use" 1.4278 msgstr "Mercurial 的日常使用" 1.4279 1.4280 #. type: Content of: <book><chapter><sect1><title> 1.4281 -#: ../en/ch05-daily.xml:8 1.4282 +#: ../en/ch04-daily.xml:8 1.4283 msgid "Telling Mercurial which files to track" 1.4284 msgstr "告诉 Mercurial 要跟踪哪些文件" 1.4285 1.4286 #. type: Content of: <book><chapter><sect1><para> 1.4287 -#: ../en/ch05-daily.xml:10 1.4288 +#: ../en/ch04-daily.xml:10 1.4289 msgid "" 1.4290 "Mercurial does not work with files in your repository unless you tell it to " 1.4291 "manage them. The <command role=\"hg-cmd\">hg status</command> command will " 1.4292 @@ -5061,7 +4138,7 @@ 1.4293 1.4294 # 1.4295 #. type: Content of: <book><chapter><sect1><para> 1.4296 -#: ../en/ch05-daily.xml:17 1.4297 +#: ../en/ch04-daily.xml:17 1.4298 msgid "" 1.4299 "To tell Mercurial to track a file, use the <command role=\"hg-cmd\">hg add</" 1.4300 "command> command. Once you have added a file, the entry in the output of " 1.4301 @@ -5070,7 +4147,7 @@ 1.4302 msgstr "" 1.4303 1.4304 #. type: Content of: <book><chapter><sect1><para> 1.4305 -#: ../en/ch05-daily.xml:26 1.4306 +#: ../en/ch04-daily.xml:26 1.4307 msgid "" 1.4308 "After you run a <command role=\"hg-cmd\">hg commit</command>, the files that " 1.4309 "you added before the commit will no longer be listed in the output of " 1.4310 @@ -5084,7 +4161,7 @@ 1.4311 msgstr "" 1.4312 1.4313 #. type: Content of: <book><chapter><sect1><para> 1.4314 -#: ../en/ch05-daily.xml:38 1.4315 +#: ../en/ch04-daily.xml:38 1.4316 msgid "" 1.4317 "Once you add a file, Mercurial doesn't do anything with it immediately. " 1.4318 "Instead, it will take a snapshot of the file's state the next time you " 1.4319 @@ -5093,12 +4170,12 @@ 1.4320 msgstr "" 1.4321 1.4322 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4323 -#: ../en/ch05-daily.xml:45 1.4324 +#: ../en/ch04-daily.xml:45 1.4325 msgid "Explicit versus implicit file naming" 1.4326 msgstr "明确与隐含文件命名" 1.4327 1.4328 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4329 -#: ../en/ch05-daily.xml:47 1.4330 +#: ../en/ch04-daily.xml:47 1.4331 msgid "" 1.4332 "A useful behaviour that Mercurial has is that if you pass the name of a " 1.4333 "directory to a command, every Mercurial command will treat this as <quote>I " 1.4334 @@ -5107,7 +4184,7 @@ 1.4335 msgstr "" 1.4336 1.4337 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4338 -#: ../en/ch05-daily.xml:54 1.4339 +#: ../en/ch04-daily.xml:54 1.4340 msgid "" 1.4341 "Notice in this example that Mercurial printed the names of the files it " 1.4342 "added, whereas it didn't do so when we added the file named <filename>a</" 1.4343 @@ -5115,7 +4192,7 @@ 1.4344 msgstr "" 1.4345 1.4346 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4347 -#: ../en/ch05-daily.xml:59 1.4348 +#: ../en/ch04-daily.xml:59 1.4349 msgid "" 1.4350 "What's going on is that in the former case, we explicitly named the file to " 1.4351 "add on the command line, so the assumption that Mercurial makes in such cases " 1.4352 @@ -5123,7 +4200,7 @@ 1.4353 msgstr "" 1.4354 1.4355 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4356 -#: ../en/ch05-daily.xml:64 1.4357 +#: ../en/ch04-daily.xml:64 1.4358 msgid "" 1.4359 "However, when we <emphasis>imply</emphasis> the names of files by giving the " 1.4360 "name of a directory, Mercurial takes the extra step of printing the name of " 1.4361 @@ -5133,12 +4210,12 @@ 1.4362 msgstr "" 1.4363 1.4364 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4365 -#: ../en/ch05-daily.xml:73 1.4366 +#: ../en/ch04-daily.xml:73 1.4367 msgid "Aside: Mercurial tracks files, not directories" 1.4368 msgstr "旁白: Mercurial 只跟踪文件,不跟踪目录" 1.4369 1.4370 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4371 -#: ../en/ch05-daily.xml:75 1.4372 +#: ../en/ch04-daily.xml:75 1.4373 msgid "" 1.4374 "Mercurial does not track directory information. Instead, it tracks the path " 1.4375 "to a file. Before creating a file, it first creates any missing directory " 1.4376 @@ -5149,7 +4226,7 @@ 1.4377 msgstr "" 1.4378 1.4379 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4380 -#: ../en/ch05-daily.xml:84 1.4381 +#: ../en/ch04-daily.xml:84 1.4382 msgid "" 1.4383 "Empty directories are rarely useful, and there are unintrusive workarounds " 1.4384 "that you can use to achieve an appropriate effect. The developers of " 1.4385 @@ -5158,7 +4235,7 @@ 1.4386 msgstr "" 1.4387 1.4388 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4389 -#: ../en/ch05-daily.xml:91 1.4390 +#: ../en/ch04-daily.xml:91 1.4391 msgid "" 1.4392 "If you need an empty directory in your repository, there are a few ways to " 1.4393 "achieve this. One is to create a directory, then <command role=\"hg-cmd\">hg " 1.4394 @@ -5169,20 +4246,20 @@ 1.4395 msgstr "" 1.4396 1.4397 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4398 -#: ../en/ch05-daily.xml:102 1.4399 +#: ../en/ch04-daily.xml:102 1.4400 msgid "" 1.4401 "Another way to tackle a need for an empty directory is to simply create one " 1.4402 "in your automated build scripts before they will need it." 1.4403 msgstr "" 1.4404 1.4405 #. type: Content of: <book><chapter><sect1><title> 1.4406 -#: ../en/ch05-daily.xml:109 1.4407 +#: ../en/ch04-daily.xml:109 1.4408 msgid "How to stop tracking a file" 1.4409 msgstr "如何停止跟踪文件" 1.4410 1.4411 # 1.4412 #. type: Content of: <book><chapter><sect1><para> 1.4413 -#: ../en/ch05-daily.xml:111 1.4414 +#: ../en/ch04-daily.xml:111 1.4415 msgid "" 1.4416 "Once you decide that a file no longer belongs in your repository, use the " 1.4417 "<command role=\"hg-cmd\">hg remove</command> command; this deletes the file, " 1.4418 @@ -5192,7 +4269,7 @@ 1.4419 msgstr "" 1.4420 1.4421 #. type: Content of: <book><chapter><sect1><para> 1.4422 -#: ../en/ch05-daily.xml:120 1.4423 +#: ../en/ch04-daily.xml:120 1.4424 msgid "" 1.4425 "After you <command role=\"hg-cmd\">hg remove</command> a file, Mercurial will " 1.4426 "no longer track changes to that file, even if you recreate a file with the " 1.4427 @@ -5203,36 +4280,36 @@ 1.4428 msgstr "" 1.4429 1.4430 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4431 -#: ../en/ch05-daily.xml:129 1.4432 +#: ../en/ch04-daily.xml:129 1.4433 msgid "Removing a file does not affect its history" 1.4434 msgstr "删除文件不影响历史" 1.4435 1.4436 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4437 -#: ../en/ch05-daily.xml:131 1.4438 +#: ../en/ch04-daily.xml:131 1.4439 msgid "It is important to understand that removing a file has only two effects." 1.4440 msgstr "" 1.4441 1.4442 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4443 -#: ../en/ch05-daily.xml:134 1.4444 +#: ../en/ch04-daily.xml:134 1.4445 msgid "It removes the current version of the file from the working directory." 1.4446 msgstr "" 1.4447 1.4448 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4449 -#: ../en/ch05-daily.xml:137 1.4450 +#: ../en/ch04-daily.xml:137 1.4451 msgid "" 1.4452 "It stops Mercurial from tracking changes to the file, from the time of the " 1.4453 "next commit." 1.4454 msgstr "" 1.4455 1.4456 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4457 -#: ../en/ch05-daily.xml:140 1.4458 +#: ../en/ch04-daily.xml:140 1.4459 msgid "" 1.4460 "Removing a file <emphasis>does not</emphasis> in any way alter the " 1.4461 "<emphasis>history</emphasis> of the file." 1.4462 msgstr "" 1.4463 1.4464 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4465 -#: ../en/ch05-daily.xml:143 1.4466 +#: ../en/ch04-daily.xml:143 1.4467 msgid "" 1.4468 "If you update the working directory to a changeset in which a file that you " 1.4469 "have removed was still tracked, it will reappear in the working directory, " 1.4470 @@ -5242,12 +4319,12 @@ 1.4471 msgstr "" 1.4472 1.4473 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4474 -#: ../en/ch05-daily.xml:153 1.4475 +#: ../en/ch04-daily.xml:153 1.4476 msgid "Missing files" 1.4477 msgstr "丢失的文件" 1.4478 1.4479 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4480 -#: ../en/ch05-daily.xml:155 1.4481 +#: ../en/ch04-daily.xml:155 1.4482 msgid "" 1.4483 "Mercurial considers a file that you have deleted, but not used <command role=" 1.4484 "\"hg-cmd\">hg remove</command> to delete, to be <emphasis>missing</" 1.4485 @@ -5257,7 +4334,7 @@ 1.4486 msgstr "" 1.4487 1.4488 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4489 -#: ../en/ch05-daily.xml:165 1.4490 +#: ../en/ch04-daily.xml:165 1.4491 msgid "" 1.4492 "If your repository contains a file that <command role=\"hg-cmd\">hg status</" 1.4493 "command> reports as missing, and you want the file to stay gone, you can run " 1.4494 @@ -5267,7 +4344,7 @@ 1.4495 msgstr "" 1.4496 1.4497 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4498 -#: ../en/ch05-daily.xml:175 1.4499 +#: ../en/ch04-daily.xml:175 1.4500 msgid "" 1.4501 "On the other hand, if you deleted the missing file by accident, give <command " 1.4502 "role=\"hg-cmd\">hg revert</command> the name of the file to recover. It will " 1.4503 @@ -5275,12 +4352,12 @@ 1.4504 msgstr "" 1.4505 1.4506 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4507 -#: ../en/ch05-daily.xml:184 1.4508 +#: ../en/ch04-daily.xml:184 1.4509 msgid "Aside: why tell Mercurial explicitly to remove a file?" 1.4510 msgstr "旁白: 为什么要明确告诉 Mercurial 删除文件?" 1.4511 1.4512 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4513 -#: ../en/ch05-daily.xml:187 1.4514 +#: ../en/ch04-daily.xml:187 1.4515 msgid "" 1.4516 "You might wonder why Mercurial requires you to explicitly tell it that you " 1.4517 "are deleting a file. Early during the development of Mercurial, it let you " 1.4518 @@ -5291,12 +4368,12 @@ 1.4519 msgstr "" 1.4520 1.4521 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4522 -#: ../en/ch05-daily.xml:198 1.4523 +#: ../en/ch04-daily.xml:198 1.4524 msgid "Useful shorthand&emdash;adding and removing files in one step" 1.4525 msgstr "有用的速记&emdash;一个步骤添加和删除文件" 1.4526 1.4527 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4528 -#: ../en/ch05-daily.xml:201 1.4529 +#: ../en/ch04-daily.xml:201 1.4530 msgid "" 1.4531 "Mercurial offers a combination command, <command role=\"hg-cmd\">hg " 1.4532 "addremove</command>, that adds untracked files and marks missing files as " 1.4533 @@ -5304,7 +4381,7 @@ 1.4534 msgstr "" 1.4535 1.4536 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4537 -#: ../en/ch05-daily.xml:207 1.4538 +#: ../en/ch04-daily.xml:207 1.4539 msgid "" 1.4540 "The <command role=\"hg-cmd\">hg commit</command> command also provides a " 1.4541 "<option role=\"hg-opt-commit\">-A</option> option that performs this same add-" 1.4542 @@ -5312,12 +4389,12 @@ 1.4543 msgstr "" 1.4544 1.4545 #. type: Content of: <book><chapter><sect1><title> 1.4546 -#: ../en/ch05-daily.xml:217 1.4547 +#: ../en/ch04-daily.xml:217 1.4548 msgid "Copying files" 1.4549 msgstr "复制文件" 1.4550 1.4551 #. type: Content of: <book><chapter><sect1><para> 1.4552 -#: ../en/ch05-daily.xml:219 1.4553 +#: ../en/ch04-daily.xml:219 1.4554 msgid "" 1.4555 "Mercurial provides a <command role=\"hg-cmd\">hg copy</command> command that " 1.4556 "lets you make a new copy of a file. When you copy a file using this command, " 1.4557 @@ -5327,12 +4404,12 @@ 1.4558 msgstr "" 1.4559 1.4560 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4561 -#: ../en/ch05-daily.xml:227 1.4562 +#: ../en/ch04-daily.xml:227 1.4563 msgid "The results of copying during a merge" 1.4564 msgstr "合并期间的复制结果" 1.4565 1.4566 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4567 -#: ../en/ch05-daily.xml:229 1.4568 +#: ../en/ch04-daily.xml:229 1.4569 msgid "" 1.4570 "What happens during a merge is that changes <quote>follow</quote> a copy. To " 1.4571 "best illustrate what this means, let's create an example. We'll start with " 1.4572 @@ -5340,28 +4417,28 @@ 1.4573 msgstr "" 1.4574 1.4575 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4576 -#: ../en/ch05-daily.xml:236 1.4577 +#: ../en/ch04-daily.xml:236 1.4578 msgid "" 1.4579 "We need to do some work in parallel, so that we'll have something to merge. " 1.4580 "So let's clone our repository." 1.4581 msgstr "" 1.4582 1.4583 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4584 -#: ../en/ch05-daily.xml:242 1.4585 +#: ../en/ch04-daily.xml:242 1.4586 msgid "" 1.4587 "Back in our initial repository, let's use the <command role=\"hg-cmd\">hg " 1.4588 "copy</command> command to make a copy of the first file we created." 1.4589 msgstr "" 1.4590 1.4591 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4592 -#: ../en/ch05-daily.xml:248 1.4593 +#: ../en/ch04-daily.xml:248 1.4594 msgid "" 1.4595 "If we look at the output of the <command role=\"hg-cmd\">hg status</command> " 1.4596 "command afterwards, the copied file looks just like a normal added file." 1.4597 msgstr "" 1.4598 1.4599 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4600 -#: ../en/ch05-daily.xml:254 1.4601 +#: ../en/ch04-daily.xml:254 1.4602 msgid "" 1.4603 "But if we pass the <option role=\"hg-opt-status\">-C</option> option to " 1.4604 "<command role=\"hg-cmd\">hg status</command>, it prints another line of " 1.4605 @@ -5370,14 +4447,14 @@ 1.4606 msgstr "" 1.4607 1.4608 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4609 -#: ../en/ch05-daily.xml:262 1.4610 +#: ../en/ch04-daily.xml:262 1.4611 msgid "" 1.4612 "Now, back in the repository we cloned, let's make a change in parallel. " 1.4613 "We'll add a line of content to the original file that we created." 1.4614 msgstr "" 1.4615 1.4616 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4617 -#: ../en/ch05-daily.xml:268 1.4618 +#: ../en/ch04-daily.xml:268 1.4619 msgid "" 1.4620 "Now we have a modified <filename>file</filename> in this repository. When we " 1.4621 "pull the changes from the first repository, and merge the two heads, " 1.4622 @@ -5386,19 +4463,19 @@ 1.4623 msgstr "" 1.4624 1.4625 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4626 -#: ../en/ch05-daily.xml:278 1.4627 +#: ../en/ch04-daily.xml:278 1.4628 msgid "Why should changes follow copies?" 1.4629 msgstr "为什么复制后需要后续修改?" 1.4630 1.4631 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4632 -#: ../en/ch05-daily.xml:280 1.4633 +#: ../en/ch04-daily.xml:280 1.4634 msgid "" 1.4635 "This behaviour, of changes to a file propagating out to copies of the file, " 1.4636 "might seem esoteric, but in most cases it's highly desirable." 1.4637 msgstr "" 1.4638 1.4639 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4640 -#: ../en/ch05-daily.xml:284 1.4641 +#: ../en/ch04-daily.xml:284 1.4642 msgid "" 1.4643 "First of all, remember that this propagation <emphasis>only</emphasis> " 1.4644 "happens when you merge. So if you <command role=\"hg-cmd\">hg copy</command> " 1.4645 @@ -5407,7 +4484,7 @@ 1.4646 msgstr "" 1.4647 1.4648 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4649 -#: ../en/ch05-daily.xml:290 1.4650 +#: ../en/ch04-daily.xml:290 1.4651 msgid "" 1.4652 "The second thing to know is that modifications will only propagate across a " 1.4653 "copy as long as the repository that you're pulling changes from " 1.4654 @@ -5415,7 +4492,7 @@ 1.4655 msgstr "" 1.4656 1.4657 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4658 -#: ../en/ch05-daily.xml:295 1.4659 +#: ../en/ch04-daily.xml:295 1.4660 msgid "" 1.4661 "The reason that Mercurial does this is as follows. Let's say I make an " 1.4662 "important bug fix in a source file, and commit my changes. Meanwhile, you've " 1.4663 @@ -5425,7 +4502,7 @@ 1.4664 msgstr "" 1.4665 1.4666 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4667 -#: ../en/ch05-daily.xml:302 1.4668 +#: ../en/ch04-daily.xml:302 1.4669 msgid "" 1.4670 "If you pulled and merged my changes, and Mercurial <emphasis>didn't</" 1.4671 "emphasis> propagate changes across copies, your source file would now contain " 1.4672 @@ -5434,7 +4511,7 @@ 1.4673 msgstr "" 1.4674 1.4675 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4676 -#: ../en/ch05-daily.xml:308 1.4677 +#: ../en/ch04-daily.xml:308 1.4678 msgid "" 1.4679 "By automatically propagating the change that fixed the bug from the original " 1.4680 "file to the copy, Mercurial prevents this class of problem. To my knowledge, " 1.4681 @@ -5443,7 +4520,7 @@ 1.4682 msgstr "" 1.4683 1.4684 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4685 -#: ../en/ch05-daily.xml:314 1.4686 +#: ../en/ch04-daily.xml:314 1.4687 msgid "" 1.4688 "Once your change history has a record that the copy and subsequent merge " 1.4689 "occurred, there's usually no further need to propagate changes from the " 1.4690 @@ -5452,12 +4529,12 @@ 1.4691 msgstr "" 1.4692 1.4693 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4694 -#: ../en/ch05-daily.xml:322 1.4695 +#: ../en/ch04-daily.xml:322 1.4696 msgid "How to make changes <emphasis>not</emphasis> follow a copy" 1.4697 msgstr "如何让复制后<emphasis>不</emphasis>修改?" 1.4698 1.4699 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4700 -#: ../en/ch05-daily.xml:325 1.4701 +#: ../en/ch04-daily.xml:325 1.4702 msgid "" 1.4703 "If, for some reason, you decide that this business of automatically " 1.4704 "propagating changes across copies is not for you, simply use your system's " 1.4705 @@ -5469,12 +4546,12 @@ 1.4706 msgstr "" 1.4707 1.4708 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4709 -#: ../en/ch05-daily.xml:338 1.4710 +#: ../en/ch04-daily.xml:338 1.4711 msgid "Behaviour of the <command role=\"hg-cmd\">hg copy</command> command" 1.4712 msgstr "命令 <command role=\"hg-cmd\">hg copy</command> 的特性" 1.4713 1.4714 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4715 -#: ../en/ch05-daily.xml:341 1.4716 +#: ../en/ch04-daily.xml:341 1.4717 msgid "" 1.4718 "When you use the <command role=\"hg-cmd\">hg copy</command> command, " 1.4719 "Mercurial makes a copy of each source file as it currently stands in the " 1.4720 @@ -5486,7 +4563,7 @@ 1.4721 msgstr "" 1.4722 1.4723 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4724 -#: ../en/ch05-daily.xml:351 1.4725 +#: ../en/ch04-daily.xml:351 1.4726 msgid "" 1.4727 "The <command role=\"hg-cmd\">hg copy</command> command acts similarly to the " 1.4728 "Unix <command>cp</command> command (you can use the <command role=\"hg-cmd" 1.4729 @@ -5497,21 +4574,21 @@ 1.4730 msgstr "" 1.4731 1.4732 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4733 -#: ../en/ch05-daily.xml:362 1.4734 +#: ../en/ch04-daily.xml:362 1.4735 msgid "" 1.4736 "If the destination is a directory, Mercurial copies its sources into that " 1.4737 "directory." 1.4738 msgstr "" 1.4739 1.4740 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4741 -#: ../en/ch05-daily.xml:367 1.4742 +#: ../en/ch04-daily.xml:367 1.4743 msgid "" 1.4744 "Copying a directory is recursive, and preserves the directory structure of " 1.4745 "the source." 1.4746 msgstr "" 1.4747 1.4748 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4749 -#: ../en/ch05-daily.xml:373 1.4750 +#: ../en/ch04-daily.xml:373 1.4751 msgid "" 1.4752 "If the source and destination are both directories, the source tree is " 1.4753 "recreated in the destination directory." 1.4754 @@ -5519,7 +4596,7 @@ 1.4755 1.4756 # 1.4757 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4758 -#: ../en/ch05-daily.xml:378 1.4759 +#: ../en/ch04-daily.xml:378 1.4760 msgid "" 1.4761 "As with the <command role=\"hg-cmd\">hg rename</command> command, if you copy " 1.4762 "a file manually and then want Mercurial to know that you've copied the file, " 1.4763 @@ -5528,12 +4605,12 @@ 1.4764 msgstr "" 1.4765 1.4766 #. type: Content of: <book><chapter><sect1><title> 1.4767 -#: ../en/ch05-daily.xml:389 1.4768 +#: ../en/ch04-daily.xml:389 1.4769 msgid "Renaming files" 1.4770 msgstr "改名文件" 1.4771 1.4772 #. type: Content of: <book><chapter><sect1><para> 1.4773 -#: ../en/ch05-daily.xml:391 1.4774 +#: ../en/ch04-daily.xml:391 1.4775 msgid "" 1.4776 "It's rather more common to need to rename a file than to make a copy of it. " 1.4777 "The reason I discussed the <command role=\"hg-cmd\">hg copy</command> command " 1.4778 @@ -5543,7 +4620,7 @@ 1.4779 msgstr "" 1.4780 1.4781 #. type: Content of: <book><chapter><sect1><para> 1.4782 -#: ../en/ch05-daily.xml:399 1.4783 +#: ../en/ch04-daily.xml:399 1.4784 msgid "" 1.4785 "When you use the <command role=\"hg-cmd\">hg rename</command> command, " 1.4786 "Mercurial makes a copy of each source file, then deletes it and marks the " 1.4787 @@ -5551,14 +4628,14 @@ 1.4788 msgstr "" 1.4789 1.4790 #. type: Content of: <book><chapter><sect1><para> 1.4791 -#: ../en/ch05-daily.xml:405 1.4792 +#: ../en/ch04-daily.xml:405 1.4793 msgid "" 1.4794 "The <command role=\"hg-cmd\">hg status</command> command shows the newly " 1.4795 "copied file as added, and the copied-from file as removed." 1.4796 msgstr "" 1.4797 1.4798 #. type: Content of: <book><chapter><sect1><para> 1.4799 -#: ../en/ch05-daily.xml:411 1.4800 +#: ../en/ch04-daily.xml:411 1.4801 msgid "" 1.4802 "As with the results of a <command role=\"hg-cmd\">hg copy</command>, we must " 1.4803 "use the <option role=\"hg-opt-status\">-C</option> option to <command role=" 1.4804 @@ -5567,7 +4644,7 @@ 1.4805 msgstr "" 1.4806 1.4807 #. type: Content of: <book><chapter><sect1><para> 1.4808 -#: ../en/ch05-daily.xml:420 1.4809 +#: ../en/ch04-daily.xml:420 1.4810 msgid "" 1.4811 "As with <command role=\"hg-cmd\">hg remove</command> and <command role=\"hg-" 1.4812 "cmd\">hg copy</command>, you can tell Mercurial about a rename after the fact " 1.4813 @@ -5578,19 +4655,19 @@ 1.4814 msgstr "" 1.4815 1.4816 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4817 -#: ../en/ch05-daily.xml:430 1.4818 +#: ../en/ch04-daily.xml:430 1.4819 msgid "Renaming files and merging changes" 1.4820 msgstr "改名文件与合并修改" 1.4821 1.4822 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4823 -#: ../en/ch05-daily.xml:432 1.4824 +#: ../en/ch04-daily.xml:432 1.4825 msgid "" 1.4826 "Since Mercurial's rename is implemented as copy-and-remove, the same " 1.4827 "propagation of changes happens when you merge after a rename as after a copy." 1.4828 msgstr "" 1.4829 1.4830 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4831 -#: ../en/ch05-daily.xml:436 1.4832 +#: ../en/ch04-daily.xml:436 1.4833 msgid "" 1.4834 "If I modify a file, and you rename it to a new name, and then we merge our " 1.4835 "respective changes, my modifications to the file under its original name will " 1.4836 @@ -5600,7 +4677,7 @@ 1.4837 msgstr "" 1.4838 1.4839 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4840 -#: ../en/ch05-daily.xml:443 1.4841 +#: ../en/ch04-daily.xml:443 1.4842 msgid "" 1.4843 "Whereas having changes follow a copy is a feature where you can perhaps nod " 1.4844 "and say <quote>yes, that might be useful,</quote> it should be clear that " 1.4845 @@ -5610,12 +4687,12 @@ 1.4846 msgstr "" 1.4847 1.4848 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4849 -#: ../en/ch05-daily.xml:452 1.4850 +#: ../en/ch04-daily.xml:452 1.4851 msgid "Divergent renames and merging" 1.4852 msgstr "改名与合并的分歧" 1.4853 1.4854 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4855 -#: ../en/ch05-daily.xml:454 1.4856 +#: ../en/ch04-daily.xml:454 1.4857 msgid "" 1.4858 "The case of diverging names occurs when two developers start with a " 1.4859 "file&emdash;let's call it <filename>foo</filename>&emdash;in their respective " 1.4860 @@ -5623,17 +4700,17 @@ 1.4861 msgstr "" 1.4862 1.4863 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4864 -#: ../en/ch05-daily.xml:461 1.4865 +#: ../en/ch04-daily.xml:461 1.4866 msgid "Anne renames the file to <filename>bar</filename>." 1.4867 msgstr "" 1.4868 1.4869 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4870 -#: ../en/ch05-daily.xml:465 1.4871 +#: ../en/ch04-daily.xml:465 1.4872 msgid "Meanwhile, Bob renames it to <filename>quux</filename>." 1.4873 msgstr "" 1.4874 1.4875 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4876 -#: ../en/ch05-daily.xml:470 1.4877 +#: ../en/ch04-daily.xml:470 1.4878 msgid "" 1.4879 "I like to think of this as a conflict because each developer has expressed " 1.4880 "different intentions about what the file ought to be named." 1.4881 @@ -5641,7 +4718,7 @@ 1.4882 1.4883 # 1.4884 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4885 -#: ../en/ch05-daily.xml:474 1.4886 +#: ../en/ch04-daily.xml:474 1.4887 msgid "" 1.4888 "What do you think should happen when they merge their work? Mercurial's " 1.4889 "actual behaviour is that it always preserves <emphasis>both</emphasis> names " 1.4890 @@ -5649,19 +4726,19 @@ 1.4891 msgstr "" 1.4892 1.4893 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4894 -#: ../en/ch05-daily.xml:481 1.4895 +#: ../en/ch04-daily.xml:481 1.4896 msgid "" 1.4897 "Notice that Mercurial does warn about the divergent renames, but it leaves it " 1.4898 "up to you to do something about the divergence after the merge." 1.4899 msgstr "" 1.4900 1.4901 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4902 -#: ../en/ch05-daily.xml:487 1.4903 +#: ../en/ch04-daily.xml:487 1.4904 msgid "Convergent renames and merging" 1.4905 msgstr "收敛改名与合并" 1.4906 1.4907 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4908 -#: ../en/ch05-daily.xml:489 1.4909 +#: ../en/ch04-daily.xml:489 1.4910 msgid "" 1.4911 "Another kind of rename conflict occurs when two people choose to rename " 1.4912 "different <emphasis>source</emphasis> files to the same " 1.4913 @@ -5670,12 +4747,12 @@ 1.4914 msgstr "" 1.4915 1.4916 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4917 -#: ../en/ch05-daily.xml:497 1.4918 +#: ../en/ch04-daily.xml:497 1.4919 msgid "Other name-related corner cases" 1.4920 msgstr "其它名称相关的角落" 1.4921 1.4922 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4923 -#: ../en/ch05-daily.xml:499 1.4924 +#: ../en/ch04-daily.xml:499 1.4925 msgid "" 1.4926 "Mercurial has a longstanding bug in which it fails to handle a merge where " 1.4927 "one side has a file with a given name, while another has a directory with the " 1.4928 @@ -5684,19 +4761,19 @@ 1.4929 msgstr "" 1.4930 1.4931 #. type: Content of: <book><chapter><sect1><title> 1.4932 -#: ../en/ch05-daily.xml:511 1.4933 +#: ../en/ch04-daily.xml:511 1.4934 msgid "Recovering from mistakes" 1.4935 msgstr "从错误恢复" 1.4936 1.4937 #. type: Content of: <book><chapter><sect1><para> 1.4938 -#: ../en/ch05-daily.xml:513 1.4939 +#: ../en/ch04-daily.xml:513 1.4940 msgid "" 1.4941 "Mercurial has some useful commands that will help you to recover from some " 1.4942 "common mistakes." 1.4943 msgstr "" 1.4944 1.4945 #. type: Content of: <book><chapter><sect1><para> 1.4946 -#: ../en/ch05-daily.xml:516 1.4947 +#: ../en/ch04-daily.xml:516 1.4948 msgid "" 1.4949 "The <command role=\"hg-cmd\">hg revert</command> command lets you undo " 1.4950 "changes that you have made to your working directory. For example, if you " 1.4951 @@ -5708,7 +4785,7 @@ 1.4952 msgstr "" 1.4953 1.4954 #. type: Content of: <book><chapter><sect1><para> 1.4955 -#: ../en/ch05-daily.xml:526 1.4956 +#: ../en/ch04-daily.xml:526 1.4957 msgid "" 1.4958 "It's useful to remember that the <command role=\"hg-cmd\">hg revert</command> " 1.4959 "command is useful for changes that you have not yet committed. Once you've " 1.4960 @@ -5717,7 +4794,7 @@ 1.4961 msgstr "" 1.4962 1.4963 #. type: Content of: <book><chapter><sect1><para> 1.4964 -#: ../en/ch05-daily.xml:532 1.4965 +#: ../en/ch04-daily.xml:532 1.4966 msgid "" 1.4967 "For more information about the <command role=\"hg-cmd\">hg revert</command> " 1.4968 "command, and details about how to deal with changes you have already " 1.4969 @@ -5725,12 +4802,12 @@ 1.4970 msgstr "" 1.4971 1.4972 #. type: Content of: <book><chapter><title> 1.4973 -#: ../en/ch06-collab.xml:5 1.4974 +#: ../en/ch05-collab.xml:5 1.4975 msgid "Collaborating with other people" 1.4976 msgstr "团体协作" 1.4977 1.4978 #. type: Content of: <book><chapter><para> 1.4979 -#: ../en/ch06-collab.xml:7 1.4980 +#: ../en/ch05-collab.xml:7 1.4981 msgid "" 1.4982 "As a completely decentralised tool, Mercurial doesn't impose any policy on " 1.4983 "how people ought to work with each other. However, if you're new to " 1.4984 @@ -5739,19 +4816,19 @@ 1.4985 msgstr "" 1.4986 1.4987 #. type: Content of: <book><chapter><sect1><title> 1.4988 -#: ../en/ch06-collab.xml:14 1.4989 +#: ../en/ch05-collab.xml:14 1.4990 msgid "Mercurial's web interface" 1.4991 msgstr "Mercurial 的 web 接口" 1.4992 1.4993 #. type: Content of: <book><chapter><sect1><para> 1.4994 -#: ../en/ch06-collab.xml:16 1.4995 +#: ../en/ch05-collab.xml:16 1.4996 msgid "" 1.4997 "Mercurial has a powerful web interface that provides several useful " 1.4998 "capabilities." 1.4999 msgstr "" 1.5000 1.5001 #. type: Content of: <book><chapter><sect1><para> 1.5002 -#: ../en/ch06-collab.xml:19 1.5003 +#: ../en/ch05-collab.xml:19 1.5004 msgid "" 1.5005 "For interactive use, the web interface lets you browse a single repository or " 1.5006 "a collection of repositories. You can view the history of a repository, " 1.5007 @@ -5760,7 +4837,7 @@ 1.5008 msgstr "" 1.5009 1.5010 #. type: Content of: <book><chapter><sect1><para> 1.5011 -#: ../en/ch06-collab.xml:24 1.5012 +#: ../en/ch05-collab.xml:24 1.5013 msgid "" 1.5014 "Also for human consumption, the web interface provides an RSS feed of the " 1.5015 "changes in a repository. This lets you <quote>subscribe</quote> to a " 1.5016 @@ -5772,7 +4849,7 @@ 1.5017 msgstr "" 1.5018 1.5019 #. type: Content of: <book><chapter><sect1><para> 1.5020 -#: ../en/ch06-collab.xml:34 1.5021 +#: ../en/ch05-collab.xml:34 1.5022 msgid "" 1.5023 "The web interface also lets remote users clone a repository, pull changes " 1.5024 "from it, and (when the server is configured to permit it) push changes back " 1.5025 @@ -5781,7 +4858,7 @@ 1.5026 msgstr "" 1.5027 1.5028 #. type: Content of: <book><chapter><sect1><para> 1.5029 -#: ../en/ch06-collab.xml:40 1.5030 +#: ../en/ch05-collab.xml:40 1.5031 msgid "" 1.5032 "The easiest way to get started with the web interface is to use your web " 1.5033 "browser to visit an existing repository, such as the master Mercurial " 1.5034 @@ -5790,7 +4867,7 @@ 1.5035 msgstr "" 1.5036 1.5037 #. type: Content of: <book><chapter><sect1><para> 1.5038 -#: ../en/ch06-collab.xml:45 1.5039 +#: ../en/ch05-collab.xml:45 1.5040 msgid "" 1.5041 "If you're interested in providing a web interface to your own repositories, " 1.5042 "Mercurial provides two ways to do this. The first is using the <command role=" 1.5043 @@ -5804,12 +4881,12 @@ 1.5044 msgstr "" 1.5045 1.5046 #. type: Content of: <book><chapter><sect1><title> 1.5047 -#: ../en/ch06-collab.xml:60 1.5048 +#: ../en/ch05-collab.xml:60 1.5049 msgid "Collaboration models" 1.5050 msgstr "协作模型" 1.5051 1.5052 #. type: Content of: <book><chapter><sect1><para> 1.5053 -#: ../en/ch06-collab.xml:62 1.5054 +#: ../en/ch05-collab.xml:62 1.5055 msgid "" 1.5056 "With a suitably flexible tool, making decisions about workflow is much more " 1.5057 "of a social engineering challenge than a technical one. Mercurial imposes few " 1.5058 @@ -5819,12 +4896,12 @@ 1.5059 msgstr "" 1.5060 1.5061 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5062 -#: ../en/ch06-collab.xml:70 1.5063 +#: ../en/ch05-collab.xml:70 1.5064 msgid "Factors to keep in mind" 1.5065 msgstr "要牢记的因素" 1.5066 1.5067 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5068 -#: ../en/ch06-collab.xml:72 1.5069 +#: ../en/ch05-collab.xml:72 1.5070 msgid "" 1.5071 "The most important aspect of any model that you must keep in mind is how well " 1.5072 "it matches the needs and capabilities of the people who will be using it. " 1.5073 @@ -5833,7 +4910,7 @@ 1.5074 msgstr "" 1.5075 1.5076 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5077 -#: ../en/ch06-collab.xml:78 1.5078 +#: ../en/ch05-collab.xml:78 1.5079 msgid "" 1.5080 "I once put together a workflow model that seemed to make perfect sense to me, " 1.5081 "but that caused a considerable amount of consternation and strife within my " 1.5082 @@ -5846,7 +4923,7 @@ 1.5083 msgstr "" 1.5084 1.5085 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5086 -#: ../en/ch06-collab.xml:88 1.5087 +#: ../en/ch05-collab.xml:88 1.5088 msgid "" 1.5089 "Don't sweep foreseeable social or technical problems under the rug. Whatever " 1.5090 "scheme you put into effect, you should plan for mistakes and problem " 1.5091 @@ -5860,12 +4937,12 @@ 1.5092 msgstr "" 1.5093 1.5094 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5095 -#: ../en/ch06-collab.xml:102 1.5096 +#: ../en/ch05-collab.xml:102 1.5097 msgid "Informal anarchy" 1.5098 msgstr "无政府状态" 1.5099 1.5100 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5101 -#: ../en/ch06-collab.xml:104 1.5102 +#: ../en/ch05-collab.xml:104 1.5103 msgid "" 1.5104 "I wouldn't suggest an <quote>anything goes</quote> approach as something " 1.5105 "sustainable, but it's a model that's easy to grasp, and it works perfectly " 1.5106 @@ -5873,7 +4950,7 @@ 1.5107 msgstr "" 1.5108 1.5109 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5110 -#: ../en/ch06-collab.xml:109 1.5111 +#: ../en/ch05-collab.xml:109 1.5112 msgid "" 1.5113 "As one example, many projects have a loose-knit group of collaborators who " 1.5114 "rarely physically meet each other. Some groups like to overcome the " 1.5115 @@ -5885,7 +4962,7 @@ 1.5116 msgstr "" 1.5117 1.5118 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5119 -#: ../en/ch06-collab.xml:118 1.5120 +#: ../en/ch05-collab.xml:118 1.5121 msgid "" 1.5122 "A sprint is the perfect place to use the <command role=\"hg-cmd\">hg serve</" 1.5123 "command> command, since <command role=\"hg-cmd\">hg serve</command> does not " 1.5124 @@ -5900,7 +4977,7 @@ 1.5125 msgstr "" 1.5126 1.5127 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5128 -#: ../en/ch06-collab.xml:132 1.5129 +#: ../en/ch05-collab.xml:132 1.5130 msgid "" 1.5131 "The charm, and the problem, with doing things in an ad hoc fashion like this " 1.5132 "is that only people who know about your changes, and where they are, can see " 1.5133 @@ -5910,12 +4987,12 @@ 1.5134 msgstr "" 1.5135 1.5136 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5137 -#: ../en/ch06-collab.xml:141 1.5138 +#: ../en/ch05-collab.xml:141 1.5139 msgid "A single central repository" 1.5140 msgstr "单一中央版本库" 1.5141 1.5142 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5143 -#: ../en/ch06-collab.xml:143 1.5144 +#: ../en/ch05-collab.xml:143 1.5145 msgid "" 1.5146 "For smaller projects migrating from a centralised revision control tool, " 1.5147 "perhaps the easiest way to get started is to have changes flow through a " 1.5148 @@ -5924,7 +5001,7 @@ 1.5149 msgstr "" 1.5150 1.5151 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5152 -#: ../en/ch06-collab.xml:149 1.5153 +#: ../en/ch05-collab.xml:149 1.5154 msgid "" 1.5155 "Contributors start by cloning a copy of this repository. They can pull " 1.5156 "changes from it whenever they need to, and some (perhaps all) developers have " 1.5157 @@ -5933,7 +5010,7 @@ 1.5158 msgstr "" 1.5159 1.5160 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5161 -#: ../en/ch06-collab.xml:154 1.5162 +#: ../en/ch05-collab.xml:154 1.5163 msgid "" 1.5164 "Under this model, it can still often make sense for people to pull changes " 1.5165 "directly from each other, without going through the central repository. " 1.5166 @@ -5946,7 +5023,7 @@ 1.5167 msgstr "" 1.5168 1.5169 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5170 -#: ../en/ch06-collab.xml:165 1.5171 +#: ../en/ch05-collab.xml:165 1.5172 msgid "" 1.5173 "In this kind of scenario, people usually use the <command>ssh</command> " 1.5174 "protocol to securely push changes to the central repository, as documented in " 1.5175 @@ -5958,12 +5035,12 @@ 1.5176 msgstr "" 1.5177 1.5178 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5179 -#: ../en/ch06-collab.xml:178 1.5180 +#: ../en/ch05-collab.xml:178 1.5181 msgid "Working with multiple branches" 1.5182 msgstr "使用多个分支工作" 1.5183 1.5184 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5185 -#: ../en/ch06-collab.xml:180 1.5186 +#: ../en/ch05-collab.xml:180 1.5187 msgid "" 1.5188 "Projects of any significant size naturally tend to make progress on several " 1.5189 "fronts simultaneously. In the case of software, it's common for a project to " 1.5190 @@ -5977,7 +5054,7 @@ 1.5191 msgstr "" 1.5192 1.5193 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5194 -#: ../en/ch06-collab.xml:193 1.5195 +#: ../en/ch05-collab.xml:193 1.5196 msgid "" 1.5197 "Mercurial is particularly well suited to managing a number of simultaneous, " 1.5198 "but not identical, branches. Each <quote>development direction</quote> can " 1.5199 @@ -5988,19 +5065,19 @@ 1.5200 msgstr "" 1.5201 1.5202 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5203 -#: ../en/ch06-collab.xml:202 1.5204 +#: ../en/ch05-collab.xml:202 1.5205 msgid "" 1.5206 "Here's an example of how this can work in practice. Let's say you have one " 1.5207 "<quote>main branch</quote> on a central server." 1.5208 msgstr "" 1.5209 1.5210 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5211 -#: ../en/ch06-collab.xml:208 1.5212 +#: ../en/ch05-collab.xml:208 1.5213 msgid "People clone it, make changes locally, test them, and push them back." 1.5214 msgstr "" 1.5215 1.5216 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5217 -#: ../en/ch06-collab.xml:211 1.5218 +#: ../en/ch05-collab.xml:211 1.5219 msgid "" 1.5220 "Once the main branch reaches a release milestone, you can use the <command " 1.5221 "role=\"hg-cmd\">hg tag</command> command to give a permanent name to the " 1.5222 @@ -6008,12 +5085,12 @@ 1.5223 msgstr "" 1.5224 1.5225 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5226 -#: ../en/ch06-collab.xml:217 1.5227 +#: ../en/ch05-collab.xml:217 1.5228 msgid "Let's say some ongoing development occurs on the main branch." 1.5229 msgstr "" 1.5230 1.5231 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5232 -#: ../en/ch06-collab.xml:222 1.5233 +#: ../en/ch05-collab.xml:222 1.5234 msgid "" 1.5235 "Using the tag that was recorded at the milestone, people who clone that " 1.5236 "repository at any time in the future can use <command role=\"hg-cmd\">hg " 1.5237 @@ -6023,7 +5100,7 @@ 1.5238 1.5239 # 1.5240 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5241 -#: ../en/ch06-collab.xml:230 1.5242 +#: ../en/ch05-collab.xml:230 1.5243 msgid "" 1.5244 "In addition, immediately after the main branch is tagged, someone can then " 1.5245 "clone the main branch on the server to a new <quote>stable</quote> branch, " 1.5246 @@ -6031,7 +5108,7 @@ 1.5247 msgstr "" 1.5248 1.5249 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5250 -#: ../en/ch06-collab.xml:236 1.5251 +#: ../en/ch05-collab.xml:236 1.5252 msgid "" 1.5253 "Someone who needs to make a change to the stable branch can then clone " 1.5254 "<emphasis>that</emphasis> repository, make their changes, commit, and push " 1.5255 @@ -6039,7 +5116,7 @@ 1.5256 msgstr "" 1.5257 1.5258 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5259 -#: ../en/ch06-collab.xml:242 1.5260 +#: ../en/ch05-collab.xml:242 1.5261 msgid "" 1.5262 "Because Mercurial repositories are independent, and Mercurial doesn't move " 1.5263 "changes around automatically, the stable and main branches are " 1.5264 @@ -6049,7 +5126,7 @@ 1.5265 msgstr "" 1.5266 1.5267 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5268 -#: ../en/ch06-collab.xml:249 1.5269 +#: ../en/ch05-collab.xml:249 1.5270 msgid "" 1.5271 "You'll often want all of your bugfixes on the stable branch to show up on the " 1.5272 "main branch, too. Rather than rewrite a bugfix on the main branch, you can " 1.5273 @@ -6058,7 +5135,7 @@ 1.5274 msgstr "" 1.5275 1.5276 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5277 -#: ../en/ch06-collab.xml:257 1.5278 +#: ../en/ch05-collab.xml:257 1.5279 msgid "" 1.5280 "The main branch will still contain changes that are not on the stable branch, " 1.5281 "but it will also contain all of the bugfixes from the stable branch. The " 1.5282 @@ -6066,12 +5143,12 @@ 1.5283 msgstr "" 1.5284 1.5285 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.5286 -#: ../en/ch06-collab.xml:264 ../en/ch06-collab.xml:278 1.5287 +#: ../en/ch05-collab.xml:264 ../en/ch05-collab.xml:278 1.5288 msgid "Feature branches" 1.5289 msgstr "特性分支" 1.5290 1.5291 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5292 -#: ../en/ch06-collab.xml:266 1.5293 +#: ../en/ch05-collab.xml:266 1.5294 msgid "" 1.5295 "For larger projects, an effective way to manage change is to break up a team " 1.5296 "into smaller groups. Each group has a shared branch of its own, cloned from " 1.5297 @@ -6081,14 +5158,14 @@ 1.5298 msgstr "" 1.5299 1.5300 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.5301 -#: ../en/ch06-collab.xml:275 1.5302 +#: ../en/ch05-collab.xml:275 1.5303 msgid "" 1.5304 "<imageobject><imagedata fileref=\"images/feature-branches.png\"/> </" 1.5305 "imageobject>" 1.5306 msgstr "" 1.5307 1.5308 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5309 -#: ../en/ch06-collab.xml:283 1.5310 +#: ../en/ch05-collab.xml:283 1.5311 msgid "" 1.5312 "When a particular feature is deemed to be in suitable shape, someone on that " 1.5313 "feature team pulls and merges from the master branch into the feature branch, " 1.5314 @@ -6096,12 +5173,12 @@ 1.5315 msgstr "" 1.5316 1.5317 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5318 -#: ../en/ch06-collab.xml:290 1.5319 +#: ../en/ch05-collab.xml:290 1.5320 msgid "The release train" 1.5321 msgstr "发布列车" 1.5322 1.5323 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5324 -#: ../en/ch06-collab.xml:292 1.5325 +#: ../en/ch05-collab.xml:292 1.5326 msgid "" 1.5327 "Some projects are organised on a <quote>train</quote> basis: a release is " 1.5328 "scheduled to happen every few months, and whatever features are ready when " 1.5329 @@ -6109,7 +5186,7 @@ 1.5330 msgstr "" 1.5331 1.5332 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5333 -#: ../en/ch06-collab.xml:297 1.5334 +#: ../en/ch05-collab.xml:297 1.5335 msgid "" 1.5336 "This model resembles working with feature branches. The difference is that " 1.5337 "when a feature branch misses a train, someone on the feature team pulls and " 1.5338 @@ -6119,12 +5196,12 @@ 1.5339 msgstr "" 1.5340 1.5341 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5342 -#: ../en/ch06-collab.xml:306 1.5343 +#: ../en/ch05-collab.xml:306 1.5344 msgid "The Linux kernel model" 1.5345 msgstr "Linux 内核模型" 1.5346 1.5347 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5348 -#: ../en/ch06-collab.xml:308 1.5349 +#: ../en/ch05-collab.xml:308 1.5350 msgid "" 1.5351 "The development of the Linux kernel has a shallow hierarchical structure, " 1.5352 "surrounded by a cloud of apparent chaos. Because most Linux developers use " 1.5353 @@ -6134,7 +5211,7 @@ 1.5354 msgstr "" 1.5355 1.5356 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5357 -#: ../en/ch06-collab.xml:316 1.5358 +#: ../en/ch05-collab.xml:316 1.5359 msgid "" 1.5360 "At the center of the community sits Linus Torvalds, the creator of Linux. He " 1.5361 "publishes a single source repository that is considered the " 1.5362 @@ -6144,7 +5221,7 @@ 1.5363 msgstr "" 1.5364 1.5365 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5366 -#: ../en/ch06-collab.xml:323 1.5367 +#: ../en/ch05-collab.xml:323 1.5368 msgid "" 1.5369 "Linus has a number of <quote>trusted lieutenants</quote>. As a general rule, " 1.5370 "he pulls whatever changes they publish, in most cases without even reviewing " 1.5371 @@ -6158,7 +5235,7 @@ 1.5372 msgstr "" 1.5373 1.5374 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5375 -#: ../en/ch06-collab.xml:335 1.5376 +#: ../en/ch05-collab.xml:335 1.5377 msgid "" 1.5378 "Individual lieutenants have their own approaches to reviewing, accepting, and " 1.5379 "publishing changes; and for deciding when to feed them to Linus. In " 1.5380 @@ -6171,7 +5248,7 @@ 1.5381 msgstr "" 1.5382 1.5383 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5384 -#: ../en/ch06-collab.xml:346 1.5385 +#: ../en/ch05-collab.xml:346 1.5386 msgid "" 1.5387 "This model has two notable features. The first is that it's <quote>pull " 1.5388 "only</quote>. You have to ask, convince, or beg another developer to take a " 1.5389 @@ -6181,7 +5258,7 @@ 1.5390 msgstr "" 1.5391 1.5392 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5393 -#: ../en/ch06-collab.xml:353 1.5394 +#: ../en/ch05-collab.xml:353 1.5395 msgid "" 1.5396 "The second is that it's based on reputation and acclaim. If you're an " 1.5397 "unknown, Linus will probably ignore changes from you without even " 1.5398 @@ -6195,7 +5272,7 @@ 1.5399 msgstr "" 1.5400 1.5401 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5402 -#: ../en/ch06-collab.xml:364 1.5403 +#: ../en/ch05-collab.xml:364 1.5404 msgid "" 1.5405 "Reputation and acclaim don't necessarily cross subsystem or <quote>people</" 1.5406 "quote> boundaries. If you're a respected but specialised storage hacker, and " 1.5407 @@ -6204,7 +5281,7 @@ 1.5408 msgstr "" 1.5409 1.5410 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5411 -#: ../en/ch06-collab.xml:371 1.5412 +#: ../en/ch05-collab.xml:371 1.5413 msgid "" 1.5414 "To people who come from more orderly project backgrounds, the comparatively " 1.5415 "chaotic Linux kernel development process often seems completely insane. It's " 1.5416 @@ -6214,12 +5291,12 @@ 1.5417 msgstr "" 1.5418 1.5419 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5420 -#: ../en/ch06-collab.xml:381 1.5421 +#: ../en/ch05-collab.xml:381 1.5422 msgid "Pull-only versus shared-push collaboration" 1.5423 msgstr "只读与共享写协作" 1.5424 1.5425 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5426 -#: ../en/ch06-collab.xml:383 1.5427 +#: ../en/ch05-collab.xml:383 1.5428 msgid "" 1.5429 "A perpetual source of heat in the open source community is whether a " 1.5430 "development model in which people only ever pull changes from others is " 1.5431 @@ -6228,7 +5305,7 @@ 1.5432 msgstr "" 1.5433 1.5434 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5435 -#: ../en/ch06-collab.xml:389 1.5436 +#: ../en/ch05-collab.xml:389 1.5437 msgid "" 1.5438 "Typically, the backers of the shared-push model use tools that actively " 1.5439 "enforce this approach. If you're using a centralised revision control tool " 1.5440 @@ -6239,7 +5316,7 @@ 1.5441 msgstr "" 1.5442 1.5443 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5444 -#: ../en/ch06-collab.xml:397 1.5445 +#: ../en/ch05-collab.xml:397 1.5446 msgid "" 1.5447 "A good distributed revision control tool, such as Mercurial, will support " 1.5448 "both models. You and your collaborators can then structure how you work " 1.5449 @@ -6248,12 +5325,12 @@ 1.5450 msgstr "" 1.5451 1.5452 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5453 -#: ../en/ch06-collab.xml:405 1.5454 +#: ../en/ch05-collab.xml:405 1.5455 msgid "Where collaboration meets branch management" 1.5456 msgstr "协作与分支管理" 1.5457 1.5458 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5459 -#: ../en/ch06-collab.xml:407 1.5460 +#: ../en/ch05-collab.xml:407 1.5461 msgid "" 1.5462 "Once you and your team set up some shared repositories and start propagating " 1.5463 "changes back and forth between local and shared repos, you begin to face a " 1.5464 @@ -6265,24 +5342,24 @@ 1.5465 msgstr "" 1.5466 1.5467 #. type: Content of: <book><chapter><sect1><title> 1.5468 -#: ../en/ch06-collab.xml:419 1.5469 +#: ../en/ch05-collab.xml:419 1.5470 msgid "The technical side of sharing" 1.5471 msgstr "共享的技术因素" 1.5472 1.5473 #. type: Content of: <book><chapter><sect1><para> 1.5474 -#: ../en/ch06-collab.xml:421 1.5475 +#: ../en/ch05-collab.xml:421 1.5476 msgid "" 1.5477 "The remainder of this chapter is devoted to the question of serving data to " 1.5478 "your collaborators." 1.5479 msgstr "" 1.5480 1.5481 #. type: Content of: <book><chapter><sect1><title> 1.5482 -#: ../en/ch06-collab.xml:426 1.5483 +#: ../en/ch05-collab.xml:426 1.5484 msgid "Informal sharing with <command role=\"hg-cmd\">hg serve</command>" 1.5485 msgstr "使用 <command role=\"hg-cmd\">hg serve</command> 进行非正式共享" 1.5486 1.5487 #. type: Content of: <book><chapter><sect1><para> 1.5488 -#: ../en/ch06-collab.xml:429 1.5489 +#: ../en/ch05-collab.xml:429 1.5490 msgid "" 1.5491 "Mercurial's <command role=\"hg-cmd\">hg serve</command> command is " 1.5492 "wonderfully suited to small, tight-knit, and fast-paced group environments. " 1.5493 @@ -6291,7 +5368,7 @@ 1.5494 msgstr "" 1.5495 1.5496 #. type: Content of: <book><chapter><sect1><para> 1.5497 -#: ../en/ch06-collab.xml:434 1.5498 +#: ../en/ch05-collab.xml:434 1.5499 msgid "" 1.5500 "Run <command role=\"hg-cmd\">hg serve</command> inside a repository, and in " 1.5501 "under a second it will bring up a specialised HTTP server; this will accept " 1.5502 @@ -6304,21 +5381,21 @@ 1.5503 msgstr "" 1.5504 1.5505 #. type: Content of: <book><chapter><sect1><para> 1.5506 -#: ../en/ch06-collab.xml:445 1.5507 +#: ../en/ch05-collab.xml:445 1.5508 msgid "" 1.5509 "The <command role=\"hg-cmd\">hg serve</command> command is <emphasis>not</" 1.5510 "emphasis> a general-purpose web server. It can do only two things:" 1.5511 msgstr "" 1.5512 1.5513 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.5514 -#: ../en/ch06-collab.xml:449 1.5515 +#: ../en/ch05-collab.xml:449 1.5516 msgid "" 1.5517 "Allow people to browse the history of the repository it's serving, from their " 1.5518 "normal web browsers." 1.5519 msgstr "" 1.5520 1.5521 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.5522 -#: ../en/ch06-collab.xml:453 1.5523 +#: ../en/ch05-collab.xml:453 1.5524 msgid "" 1.5525 "Speak Mercurial's wire protocol, so that people can <command role=\"hg-cmd" 1.5526 "\">hg clone</command> or <command role=\"hg-cmd\">hg pull</command> changes " 1.5527 @@ -6326,7 +5403,7 @@ 1.5528 msgstr "" 1.5529 1.5530 #. type: Content of: <book><chapter><sect1><para> 1.5531 -#: ../en/ch06-collab.xml:458 1.5532 +#: ../en/ch05-collab.xml:458 1.5533 msgid "" 1.5534 "In particular, <command role=\"hg-cmd\">hg serve</command> won't allow remote " 1.5535 "users to <emphasis>modify</emphasis> your repository. It's intended for read-" 1.5536 @@ -6334,7 +5411,7 @@ 1.5537 msgstr "" 1.5538 1.5539 #. type: Content of: <book><chapter><sect1><para> 1.5540 -#: ../en/ch06-collab.xml:462 1.5541 +#: ../en/ch05-collab.xml:462 1.5542 msgid "" 1.5543 "If you're getting started with Mercurial, there's nothing to prevent you from " 1.5544 "using <command role=\"hg-cmd\">hg serve</command> to serve up a repository on " 1.5545 @@ -6345,12 +5422,12 @@ 1.5546 msgstr "" 1.5547 1.5548 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5549 -#: ../en/ch06-collab.xml:472 1.5550 +#: ../en/ch05-collab.xml:472 1.5551 msgid "A few things to keep in mind" 1.5552 msgstr "要牢记的几件事" 1.5553 1.5554 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5555 -#: ../en/ch06-collab.xml:474 1.5556 +#: ../en/ch05-collab.xml:474 1.5557 msgid "" 1.5558 "Because it provides unauthenticated read access to all clients, you should " 1.5559 "only use <command role=\"hg-cmd\">hg serve</command> in an environment where " 1.5560 @@ -6359,7 +5436,7 @@ 1.5561 msgstr "" 1.5562 1.5563 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5564 -#: ../en/ch06-collab.xml:480 1.5565 +#: ../en/ch05-collab.xml:480 1.5566 msgid "" 1.5567 "The <command role=\"hg-cmd\">hg serve</command> command knows nothing about " 1.5568 "any firewall software you might have installed on your system or network. It " 1.5569 @@ -6370,7 +5447,7 @@ 1.5570 msgstr "" 1.5571 1.5572 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5573 -#: ../en/ch06-collab.xml:489 1.5574 +#: ../en/ch05-collab.xml:489 1.5575 msgid "" 1.5576 "By default, <command role=\"hg-cmd\">hg serve</command> listens for incoming " 1.5577 "connections on port 8000. If another process is already listening on the " 1.5578 @@ -6379,7 +5456,7 @@ 1.5579 msgstr "" 1.5580 1.5581 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5582 -#: ../en/ch06-collab.xml:495 1.5583 +#: ../en/ch05-collab.xml:495 1.5584 msgid "" 1.5585 "Normally, when <command role=\"hg-cmd\">hg serve</command> starts, it prints " 1.5586 "no output, which can be a bit unnerving. If you'd like to confirm that it is " 1.5587 @@ -6389,12 +5466,12 @@ 1.5588 msgstr "" 1.5589 1.5590 #. type: Content of: <book><chapter><sect1><title> 1.5591 -#: ../en/ch06-collab.xml:505 1.5592 +#: ../en/ch05-collab.xml:505 1.5593 msgid "Using the Secure Shell (ssh) protocol" 1.5594 msgstr "使用 ssh 协议" 1.5595 1.5596 #. type: Content of: <book><chapter><sect1><para> 1.5597 -#: ../en/ch06-collab.xml:507 1.5598 +#: ../en/ch05-collab.xml:507 1.5599 msgid "" 1.5600 "You can pull and push changes securely over a network connection using the " 1.5601 "Secure Shell (<literal>ssh</literal>) protocol. To use this successfully, " 1.5602 @@ -6403,7 +5480,7 @@ 1.5603 msgstr "" 1.5604 1.5605 #. type: Content of: <book><chapter><sect1><para> 1.5606 -#: ../en/ch06-collab.xml:512 1.5607 +#: ../en/ch05-collab.xml:512 1.5608 msgid "" 1.5609 "If you're not familiar with ssh, it's a network protocol that lets you " 1.5610 "securely communicate with another computer. To use it with Mercurial, you'll " 1.5611 @@ -6412,31 +5489,31 @@ 1.5612 msgstr "" 1.5613 1.5614 #. type: Content of: <book><chapter><sect1><para> 1.5615 -#: ../en/ch06-collab.xml:518 1.5616 +#: ../en/ch05-collab.xml:518 1.5617 msgid "" 1.5618 "(If you <emphasis>are</emphasis> familiar with ssh, you'll probably find some " 1.5619 "of the material that follows to be elementary in nature.)" 1.5620 msgstr "" 1.5621 1.5622 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5623 -#: ../en/ch06-collab.xml:523 1.5624 +#: ../en/ch05-collab.xml:523 1.5625 msgid "How to read and write ssh URLs" 1.5626 msgstr "如何读写 ssh 路径" 1.5627 1.5628 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5629 -#: ../en/ch06-collab.xml:525 1.5630 +#: ../en/ch05-collab.xml:525 1.5631 msgid "An ssh URL tends to look like this:" 1.5632 msgstr "" 1.5633 1.5634 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.5635 -#: ../en/ch06-collab.xml:528 1.5636 +#: ../en/ch05-collab.xml:528 1.5637 msgid "" 1.5638 "The <quote><literal>ssh://</literal></quote> part tells Mercurial to use the " 1.5639 "ssh protocol." 1.5640 msgstr "" 1.5641 1.5642 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.5643 -#: ../en/ch06-collab.xml:531 1.5644 +#: ../en/ch05-collab.xml:531 1.5645 msgid "" 1.5646 "The <quote><literal>bos@</literal></quote> component indicates what username " 1.5647 "to log into the server as. You can leave this out if the remote username is " 1.5648 @@ -6444,28 +5521,28 @@ 1.5649 msgstr "" 1.5650 1.5651 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.5652 -#: ../en/ch06-collab.xml:536 1.5653 +#: ../en/ch05-collab.xml:536 1.5654 msgid "" 1.5655 "The <quote><literal>hg.serpentine.com</literal></quote> gives the hostname of " 1.5656 "the server to log into." 1.5657 msgstr "" 1.5658 1.5659 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.5660 -#: ../en/ch06-collab.xml:540 1.5661 +#: ../en/ch05-collab.xml:540 1.5662 msgid "" 1.5663 "The <quote>:22</quote> identifies the port number to connect to the server " 1.5664 -"on. The default port is 22, so you only need to specify this part if you're " 1.5665 -"<emphasis>not</emphasis> using port 22." 1.5666 +"on. The default port is 22, so you only need to specify a colon and port " 1.5667 +"number if you're <emphasis>not</emphasis> using port 22." 1.5668 msgstr "" 1.5669 1.5670 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.5671 -#: ../en/ch06-collab.xml:545 1.5672 +#: ../en/ch05-collab.xml:545 1.5673 msgid "" 1.5674 "The remainder of the URL is the local path to the repository on the server." 1.5675 msgstr "" 1.5676 1.5677 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5678 -#: ../en/ch06-collab.xml:549 1.5679 +#: ../en/ch05-collab.xml:549 1.5680 msgid "" 1.5681 "There's plenty of scope for confusion with the path component of ssh URLs, as " 1.5682 "there is no standard way for tools to interpret it. Some programs behave " 1.5683 @@ -6475,7 +5552,7 @@ 1.5684 msgstr "" 1.5685 1.5686 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5687 -#: ../en/ch06-collab.xml:556 1.5688 +#: ../en/ch05-collab.xml:556 1.5689 msgid "" 1.5690 "Mercurial treats the path to a repository on the server as relative to the " 1.5691 "remote user's home directory. For example, if user <literal>foo</literal> on " 1.5692 @@ -6486,7 +5563,7 @@ 1.5693 msgstr "" 1.5694 1.5695 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5696 -#: ../en/ch06-collab.xml:565 1.5697 +#: ../en/ch05-collab.xml:565 1.5698 msgid "" 1.5699 "If you want to specify a path relative to another user's home directory, you " 1.5700 "can use a path that starts with a tilde character followed by the user's name " 1.5701 @@ -6494,19 +5571,19 @@ 1.5702 msgstr "" 1.5703 1.5704 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5705 -#: ../en/ch06-collab.xml:571 1.5706 +#: ../en/ch05-collab.xml:571 1.5707 msgid "" 1.5708 "And if you really want to specify an <emphasis>absolute</emphasis> path on " 1.5709 "the server, begin the path component with two slashes, as in this example." 1.5710 msgstr "" 1.5711 1.5712 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5713 -#: ../en/ch06-collab.xml:578 1.5714 +#: ../en/ch05-collab.xml:578 1.5715 msgid "Finding an ssh client for your system" 1.5716 msgstr "为你的系统寻找 ssh 客户端" 1.5717 1.5718 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5719 -#: ../en/ch06-collab.xml:580 1.5720 +#: ../en/ch05-collab.xml:580 1.5721 msgid "" 1.5722 "Almost every Unix-like system comes with OpenSSH preinstalled. If you're " 1.5723 "using such a system, run <literal>which ssh</literal> to find out if the " 1.5724 @@ -6517,50 +5594,50 @@ 1.5725 msgstr "" 1.5726 1.5727 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5728 -#: ../en/ch06-collab.xml:588 1.5729 +#: ../en/ch05-collab.xml:588 1.5730 msgid "" 1.5731 "On Windows, you'll first need to download a suitable ssh client. There are " 1.5732 "two alternatives." 1.5733 msgstr "" 1.5734 1.5735 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5736 -#: ../en/ch06-collab.xml:591 1.5737 +#: ../en/ch05-collab.xml:591 1.5738 msgid "" 1.5739 "Simon Tatham's excellent PuTTY package <citation>web:putty</citation> " 1.5740 "provides a complete suite of ssh client commands." 1.5741 msgstr "" 1.5742 1.5743 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5744 -#: ../en/ch06-collab.xml:595 1.5745 +#: ../en/ch05-collab.xml:595 1.5746 msgid "" 1.5747 "If you have a high tolerance for pain, you can use the Cygwin port of OpenSSH." 1.5748 msgstr "" 1.5749 1.5750 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5751 -#: ../en/ch06-collab.xml:598 1.5752 -msgid "" 1.5753 -"In either case, you'll need to edit your \\hgini\\ file to tell Mercurial " 1.5754 -"where to find the actual client command. For example, if you're using PuTTY, " 1.5755 -"you'll need to use the <command>plink</command> command as a command-line ssh " 1.5756 -"client." 1.5757 +#: ../en/ch05-collab.xml:598 1.5758 +msgid "" 1.5759 +"In either case, you'll need to edit your <filename role=\"special\">hg.ini</" 1.5760 +"filename> file to tell Mercurial where to find the actual client command. " 1.5761 +"For example, if you're using PuTTY, you'll need to use the <command>plink</" 1.5762 +"command> command as a command-line ssh client." 1.5763 msgstr "" 1.5764 1.5765 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.5766 -#: ../en/ch06-collab.xml:607 1.5767 +#: ../en/ch05-collab.xml:608 1.5768 msgid "" 1.5769 "The path to <command>plink</command> shouldn't contain any whitespace " 1.5770 "characters, or Mercurial may not be able to run it correctly (so putting it " 1.5771 -"in <filename class=\"directory\">C:\\\\Program Files</filename> is probably " 1.5772 -"not a good idea)." 1.5773 -msgstr "" 1.5774 - 1.5775 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.5776 -#: ../en/ch06-collab.xml:616 1.5777 +"in <filename class=\"directory\">C:\\Program Files</filename> is probably not " 1.5778 +"a good idea)." 1.5779 +msgstr "" 1.5780 + 1.5781 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.5782 +#: ../en/ch05-collab.xml:617 1.5783 msgid "Generating a key pair" 1.5784 msgstr "产生密钥对" 1.5785 1.5786 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5787 -#: ../en/ch06-collab.xml:618 1.5788 +#: ../en/ch05-collab.xml:619 1.5789 msgid "" 1.5790 "To avoid the need to repetitively type a password every time you need to use " 1.5791 "your ssh client, I recommend generating a key pair. On a Unix-like system, " 1.5792 @@ -6570,7 +5647,7 @@ 1.5793 msgstr "" 1.5794 1.5795 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5796 -#: ../en/ch06-collab.xml:626 1.5797 +#: ../en/ch05-collab.xml:627 1.5798 msgid "" 1.5799 "When you generate a key pair, it's usually <emphasis>highly</emphasis> " 1.5800 "advisable to protect it with a passphrase. (The only time that you might not " 1.5801 @@ -6579,7 +5656,7 @@ 1.5802 msgstr "" 1.5803 1.5804 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5805 -#: ../en/ch06-collab.xml:632 1.5806 +#: ../en/ch05-collab.xml:633 1.5807 msgid "" 1.5808 "Simply generating a key pair isn't enough, however. You'll need to add the " 1.5809 "public key to the set of authorised keys for whatever user you're logging in " 1.5810 @@ -6590,7 +5667,7 @@ 1.5811 msgstr "" 1.5812 1.5813 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5814 -#: ../en/ch06-collab.xml:641 1.5815 +#: ../en/ch05-collab.xml:642 1.5816 msgid "" 1.5817 "On a Unix-like system, your public key will have a <filename>.pub</filename> " 1.5818 "extension. If you're using <command>puttygen</command> on Windows, you can " 1.5819 @@ -6600,12 +5677,12 @@ 1.5820 msgstr "" 1.5821 1.5822 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5823 -#: ../en/ch06-collab.xml:650 1.5824 +#: ../en/ch05-collab.xml:651 1.5825 msgid "Using an authentication agent" 1.5826 msgstr "使用认证代理" 1.5827 1.5828 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5829 -#: ../en/ch06-collab.xml:652 1.5830 +#: ../en/ch05-collab.xml:653 1.5831 msgid "" 1.5832 "An authentication agent is a daemon that stores passphrases in memory (so it " 1.5833 "will forget passphrases if you log out and log back in again). An ssh client " 1.5834 @@ -6617,7 +5694,7 @@ 1.5835 msgstr "" 1.5836 1.5837 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5838 -#: ../en/ch06-collab.xml:661 1.5839 +#: ../en/ch05-collab.xml:662 1.5840 msgid "" 1.5841 "The downside of storing passphrases in an agent is that it's possible for a " 1.5842 "well-prepared attacker to recover the plain text of your passphrases, in some " 1.5843 @@ -6627,7 +5704,7 @@ 1.5844 msgstr "" 1.5845 1.5846 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5847 -#: ../en/ch06-collab.xml:668 1.5848 +#: ../en/ch05-collab.xml:669 1.5849 msgid "" 1.5850 "On Unix-like systems, the agent is called <command>ssh-agent</command>, and " 1.5851 "it's often run automatically for you when you log in. You'll need to use the " 1.5852 @@ -6638,12 +5715,12 @@ 1.5853 msgstr "" 1.5854 1.5855 #. type: Content of: <book><chapter><sect1><sect2><title> 1.5856 -#: ../en/ch06-collab.xml:679 1.5857 +#: ../en/ch05-collab.xml:680 1.5858 msgid "Configuring the server side properly" 1.5859 msgstr "正确配置服务器端" 1.5860 1.5861 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5862 -#: ../en/ch06-collab.xml:681 1.5863 +#: ../en/ch05-collab.xml:682 1.5864 msgid "" 1.5865 "Because ssh can be fiddly to set up if you're new to it, there's a variety of " 1.5866 "things that can go wrong. Add Mercurial on top, and there's plenty more " 1.5867 @@ -6653,7 +5730,7 @@ 1.5868 msgstr "" 1.5869 1.5870 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5871 -#: ../en/ch06-collab.xml:689 1.5872 +#: ../en/ch05-collab.xml:690 1.5873 msgid "" 1.5874 "Before you try using Mercurial to talk to an ssh server, it's best to make " 1.5875 "sure that you can use the normal <command>ssh</command> or <command>putty</" 1.5876 @@ -6666,7 +5743,7 @@ 1.5877 msgstr "" 1.5878 1.5879 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5880 -#: ../en/ch06-collab.xml:700 1.5881 +#: ../en/ch05-collab.xml:701 1.5882 msgid "" 1.5883 "The first thing to be sure of on the server side is that you can actually log " 1.5884 "in from another machine at all. If you can't use <command>ssh</command> or " 1.5885 @@ -6675,7 +5752,7 @@ 1.5886 msgstr "" 1.5887 1.5888 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5889 -#: ../en/ch06-collab.xml:707 1.5890 +#: ../en/ch05-collab.xml:708 1.5891 msgid "" 1.5892 "If you get a <quote>connection refused</quote> error, either there isn't an " 1.5893 "SSH daemon running on the server at all, or it's inaccessible due to firewall " 1.5894 @@ -6683,7 +5760,7 @@ 1.5895 msgstr "" 1.5896 1.5897 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5898 -#: ../en/ch06-collab.xml:712 1.5899 +#: ../en/ch05-collab.xml:713 1.5900 msgid "" 1.5901 "If you get a <quote>no route to host</quote> error, you either have an " 1.5902 "incorrect address for the server or a seriously locked down firewall that " 1.5903 @@ -6691,7 +5768,7 @@ 1.5904 msgstr "" 1.5905 1.5906 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5907 -#: ../en/ch06-collab.xml:717 1.5908 +#: ../en/ch05-collab.xml:718 1.5909 msgid "" 1.5910 "If you get a <quote>permission denied</quote> error, you may have mistyped " 1.5911 "the username on the server, or you could have mistyped your key's passphrase " 1.5912 @@ -6699,7 +5776,7 @@ 1.5913 msgstr "" 1.5914 1.5915 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5916 -#: ../en/ch06-collab.xml:722 1.5917 +#: ../en/ch05-collab.xml:723 1.5918 msgid "" 1.5919 "In summary, if you're having trouble talking to the server's ssh daemon, " 1.5920 "first make sure that one is running at all. On many systems it will be " 1.5921 @@ -6711,7 +5788,7 @@ 1.5922 msgstr "" 1.5923 1.5924 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5925 -#: ../en/ch06-collab.xml:732 1.5926 +#: ../en/ch05-collab.xml:733 1.5927 msgid "" 1.5928 "If you're using an authentication agent on the client side to store " 1.5929 "passphrases for your keys, you ought to be able to log into the server " 1.5930 @@ -6720,26 +5797,26 @@ 1.5931 msgstr "" 1.5932 1.5933 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5934 -#: ../en/ch06-collab.xml:738 1.5935 +#: ../en/ch05-collab.xml:739 1.5936 msgid "" 1.5937 "You might have forgotten to use <command>ssh-add</command> or " 1.5938 "<command>pageant</command> to store the passphrase." 1.5939 msgstr "" 1.5940 1.5941 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5942 -#: ../en/ch06-collab.xml:742 1.5943 +#: ../en/ch05-collab.xml:743 1.5944 msgid "You might have stored the passphrase for the wrong key." 1.5945 msgstr "" 1.5946 1.5947 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5948 -#: ../en/ch06-collab.xml:745 1.5949 +#: ../en/ch05-collab.xml:746 1.5950 msgid "" 1.5951 "If you're being prompted for the remote user's password, there are another " 1.5952 "few possible problems to check." 1.5953 msgstr "" 1.5954 1.5955 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5956 -#: ../en/ch06-collab.xml:748 1.5957 +#: ../en/ch05-collab.xml:749 1.5958 msgid "" 1.5959 "Either the user's home directory or their <filename role=\"special\" class=" 1.5960 "\"directory\">.ssh</filename> directory might have excessively liberal " 1.5961 @@ -6750,7 +5827,7 @@ 1.5962 msgstr "" 1.5963 1.5964 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.5965 -#: ../en/ch06-collab.xml:757 1.5966 +#: ../en/ch05-collab.xml:758 1.5967 msgid "" 1.5968 "The user's <filename role=\"special\">authorized_keys</filename> file may " 1.5969 "have a problem. If anyone other than the user owns or can write to that file, " 1.5970 @@ -6758,7 +5835,7 @@ 1.5971 msgstr "" 1.5972 1.5973 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5974 -#: ../en/ch06-collab.xml:764 1.5975 +#: ../en/ch05-collab.xml:765 1.5976 msgid "" 1.5977 "In the ideal world, you should be able to run the following command " 1.5978 "successfully, and it should print exactly one line of output, the current " 1.5979 @@ -6766,7 +5843,7 @@ 1.5980 msgstr "" 1.5981 1.5982 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5983 -#: ../en/ch06-collab.xml:769 1.5984 +#: ../en/ch05-collab.xml:770 1.5985 msgid "" 1.5986 "If, on your server, you have login scripts that print banners or other junk " 1.5987 "even when running non-interactive commands like this, you should fix them " 1.5988 @@ -6781,7 +5858,7 @@ 1.5989 msgstr "" 1.5990 1.5991 #. type: Content of: <book><chapter><sect1><sect2><para> 1.5992 -#: ../en/ch06-collab.xml:783 1.5993 +#: ../en/ch05-collab.xml:784 1.5994 msgid "" 1.5995 "Once you've verified that plain old ssh is working with your server, the next " 1.5996 "step is to ensure that Mercurial runs on the server. The following command " 1.5997 @@ -6789,7 +5866,7 @@ 1.5998 msgstr "" 1.5999 1.6000 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6001 -#: ../en/ch06-collab.xml:788 1.6002 +#: ../en/ch05-collab.xml:791 1.6003 msgid "" 1.6004 "If you see an error message instead of normal <command role=\"hg-cmd\">hg " 1.6005 "version</command> output, this is usually because you haven't installed " 1.6006 @@ -6799,21 +5876,21 @@ 1.6007 msgstr "" 1.6008 1.6009 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6010 -#: ../en/ch06-collab.xml:795 1.6011 +#: ../en/ch05-collab.xml:798 1.6012 msgid "" 1.6013 "Is Mercurial really installed on the server at all? I know this sounds " 1.6014 "trivial, but it's worth checking!" 1.6015 msgstr "" 1.6016 1.6017 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6018 -#: ../en/ch06-collab.xml:799 1.6019 +#: ../en/ch05-collab.xml:802 1.6020 msgid "" 1.6021 "Maybe your shell's search path (usually set via the <envar>PATH</envar> " 1.6022 "environment variable) is simply misconfigured." 1.6023 msgstr "" 1.6024 1.6025 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6026 -#: ../en/ch06-collab.xml:803 1.6027 +#: ../en/ch05-collab.xml:806 1.6028 msgid "" 1.6029 "Perhaps your <envar>PATH</envar> environment variable is only being set to " 1.6030 "point to the location of the <command>hg</command> executable if the login " 1.6031 @@ -6822,7 +5899,7 @@ 1.6032 msgstr "" 1.6033 1.6034 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6035 -#: ../en/ch06-collab.xml:810 1.6036 +#: ../en/ch05-collab.xml:813 1.6037 msgid "" 1.6038 "The <envar>PYTHONPATH</envar> environment variable may need to contain the " 1.6039 "path to the Mercurial Python modules. It might not be set at all; it could " 1.6040 @@ -6830,7 +5907,7 @@ 1.6041 msgstr "" 1.6042 1.6043 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6044 -#: ../en/ch06-collab.xml:817 1.6045 +#: ../en/ch05-collab.xml:820 1.6046 msgid "" 1.6047 "If you can run <command role=\"hg-cmd\">hg version</command> over an ssh " 1.6048 "connection, well done! You've got the server and client sorted out. You " 1.6049 @@ -6841,12 +5918,12 @@ 1.6050 msgstr "" 1.6051 1.6052 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6053 -#: ../en/ch06-collab.xml:827 1.6054 +#: ../en/ch05-collab.xml:830 1.6055 msgid "Using compression with ssh" 1.6056 msgstr "通过 ssh 使用压缩" 1.6057 1.6058 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6059 -#: ../en/ch06-collab.xml:829 1.6060 +#: ../en/ch05-collab.xml:832 1.6061 msgid "" 1.6062 "Mercurial does not compress data when it uses the ssh protocol, because the " 1.6063 "ssh protocol can transparently compress data. However, the default behaviour " 1.6064 @@ -6854,7 +5931,7 @@ 1.6065 msgstr "" 1.6066 1.6067 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6068 -#: ../en/ch06-collab.xml:834 1.6069 +#: ../en/ch05-collab.xml:837 1.6070 msgid "" 1.6071 "Over any network other than a fast LAN (even a wireless network), using " 1.6072 "compression is likely to significantly speed up Mercurial's network " 1.6073 @@ -6864,16 +5941,16 @@ 1.6074 msgstr "" 1.6075 1.6076 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6077 -#: ../en/ch06-collab.xml:841 1.6078 +#: ../en/ch05-collab.xml:844 1.6079 msgid "" 1.6080 "Both <command>ssh</command> and <command>plink</command> accept a <option " 1.6081 "role=\"cmd-opt-ssh\">-C</option> option which turns on compression. You can " 1.6082 -"easily edit your <filename role=\"special\"> /.hgrc</filename>\\ to enable " 1.6083 +"easily edit your <filename role=\"special\">~/.hgrc</filename> to enable " 1.6084 "compression for all of Mercurial's uses of the ssh protocol." 1.6085 msgstr "" 1.6086 1.6087 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6088 -#: ../en/ch06-collab.xml:848 1.6089 +#: ../en/ch05-collab.xml:852 1.6090 msgid "" 1.6091 "If you use <command>ssh</command>, you can configure it to always use " 1.6092 "compression when talking to your server. To do this, edit your <filename " 1.6093 @@ -6882,7 +5959,7 @@ 1.6094 msgstr "" 1.6095 1.6096 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6097 -#: ../en/ch06-collab.xml:855 1.6098 +#: ../en/ch05-collab.xml:860 1.6099 msgid "" 1.6100 "This defines an alias, <literal>hg</literal>. When you use it on the " 1.6101 "<command>ssh</command> command line or in a Mercurial <literal>ssh</literal>-" 1.6102 @@ -6892,19 +5969,19 @@ 1.6103 msgstr "" 1.6104 1.6105 #. type: Content of: <book><chapter><sect1><title> 1.6106 -#: ../en/ch06-collab.xml:866 1.6107 +#: ../en/ch05-collab.xml:871 1.6108 msgid "Serving over HTTP using CGI" 1.6109 msgstr "使用 CGI 通过 HTTP 提供服务" 1.6110 1.6111 #. type: Content of: <book><chapter><sect1><para> 1.6112 -#: ../en/ch06-collab.xml:868 1.6113 +#: ../en/ch05-collab.xml:873 1.6114 msgid "" 1.6115 "Depending on how ambitious you are, configuring Mercurial's CGI interface can " 1.6116 "take anything from a few moments to several hours." 1.6117 msgstr "" 1.6118 1.6119 #. type: Content of: <book><chapter><sect1><para> 1.6120 -#: ../en/ch06-collab.xml:872 1.6121 +#: ../en/ch05-collab.xml:877 1.6122 msgid "" 1.6123 "We'll begin with the simplest of examples, and work our way towards a more " 1.6124 "complex configuration. Even for the most basic case, you're almost certainly " 1.6125 @@ -6912,7 +5989,7 @@ 1.6126 msgstr "" 1.6127 1.6128 #. type: Content of: <book><chapter><sect1><note><para> 1.6129 -#: ../en/ch06-collab.xml:878 1.6130 +#: ../en/ch05-collab.xml:883 1.6131 msgid "" 1.6132 "Configuring a web server is a complex, fiddly, and highly system-dependent " 1.6133 "activity. I can't possibly give you instructions that will cover anything " 1.6134 @@ -6922,33 +5999,33 @@ 1.6135 msgstr "" 1.6136 1.6137 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6138 -#: ../en/ch06-collab.xml:888 1.6139 +#: ../en/ch05-collab.xml:893 1.6140 msgid "Web server configuration checklist" 1.6141 msgstr "Web 服务器配置检查表" 1.6142 1.6143 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6144 -#: ../en/ch06-collab.xml:890 1.6145 +#: ../en/ch05-collab.xml:895 1.6146 msgid "" 1.6147 "Before you continue, do take a few moments to check a few aspects of your " 1.6148 "system's setup." 1.6149 msgstr "" 1.6150 1.6151 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.6152 -#: ../en/ch06-collab.xml:894 1.6153 +#: ../en/ch05-collab.xml:899 1.6154 msgid "" 1.6155 "Do you have a web server installed at all? Mac OS X ships with Apache, but " 1.6156 "many other systems may not have a web server installed." 1.6157 msgstr "" 1.6158 1.6159 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.6160 -#: ../en/ch06-collab.xml:898 1.6161 +#: ../en/ch05-collab.xml:903 1.6162 msgid "" 1.6163 "If you have a web server installed, is it actually running? On most systems, " 1.6164 "even if one is present, it will be disabled by default." 1.6165 msgstr "" 1.6166 1.6167 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.6168 -#: ../en/ch06-collab.xml:902 1.6169 +#: ../en/ch05-collab.xml:907 1.6170 msgid "" 1.6171 "Is your server configured to allow you to run CGI programs in the directory " 1.6172 "where you plan to do so? Most servers default to explicitly disabling the " 1.6173 @@ -6956,7 +6033,7 @@ 1.6174 msgstr "" 1.6175 1.6176 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6177 -#: ../en/ch06-collab.xml:908 1.6178 +#: ../en/ch05-collab.xml:913 1.6179 msgid "" 1.6180 "If you don't have a web server installed, and don't have substantial " 1.6181 "experience configuring Apache, you should consider using the " 1.6182 @@ -6969,22 +6046,22 @@ 1.6183 msgstr "" 1.6184 1.6185 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6186 -#: ../en/ch06-collab.xml:921 1.6187 +#: ../en/ch05-collab.xml:926 1.6188 msgid "Basic CGI configuration" 1.6189 msgstr "基本 CGI 配置" 1.6190 1.6191 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6192 -#: ../en/ch06-collab.xml:923 1.6193 +#: ../en/ch05-collab.xml:928 1.6194 msgid "" 1.6195 "On Unix-like systems, it's common for users to have a subdirectory named " 1.6196 "something like <filename class=\"directory\">public_html</filename> in their " 1.6197 "home directory, from which they can serve up web pages. A file named " 1.6198 "<filename>foo</filename> in this directory will be accessible at a URL of the " 1.6199 -"form <literal>http://www.example.com/\\ {</literal>username/foo}." 1.6200 -msgstr "" 1.6201 - 1.6202 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.6203 -#: ../en/ch06-collab.xml:932 1.6204 +"form <literal>http://www.example.com/username/foo</literal>." 1.6205 +msgstr "" 1.6206 + 1.6207 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.6208 +#: ../en/ch05-collab.xml:936 1.6209 msgid "" 1.6210 "To get started, find the <filename role=\"special\">hgweb.cgi</filename> " 1.6211 "script that should be present in your Mercurial installation. If you can't " 1.6212 @@ -6994,14 +6071,14 @@ 1.6213 msgstr "" 1.6214 1.6215 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6216 -#: ../en/ch06-collab.xml:939 ../en/ch06-collab.xml:1112 1.6217 +#: ../en/ch05-collab.xml:943 ../en/ch05-collab.xml:1112 1.6218 msgid "" 1.6219 "You'll need to copy this script into your <filename class=\"directory" 1.6220 "\">public_html</filename> directory, and ensure that it's executable." 1.6221 msgstr "" 1.6222 1.6223 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6224 -#: ../en/ch06-collab.xml:944 1.6225 +#: ../en/ch05-collab.xml:948 1.6226 msgid "" 1.6227 "The <literal>755</literal> argument to <command>chmod</command> is a little " 1.6228 "more general than just making the script executable: it ensures that the " 1.6229 @@ -7014,12 +6091,12 @@ 1.6230 msgstr "" 1.6231 1.6232 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6233 -#: ../en/ch06-collab.xml:958 1.6234 +#: ../en/ch05-collab.xml:962 1.6235 msgid "What could <emphasis>possibly</emphasis> go wrong?" 1.6236 msgstr "什么<emphasis>可能</emphasis>会出错?" 1.6237 1.6238 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6239 -#: ../en/ch06-collab.xml:961 1.6240 +#: ../en/ch05-collab.xml:965 1.6241 msgid "" 1.6242 "Once you've copied the CGI script into place, go into a web browser, and try " 1.6243 "to open the URL <ulink url=\"http://myhostname/ myuser/hgweb.cgi\">http://" 1.6244 @@ -7033,7 +6110,7 @@ 1.6245 msgstr "" 1.6246 1.6247 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6248 -#: ../en/ch06-collab.xml:975 1.6249 +#: ../en/ch05-collab.xml:979 1.6250 msgid "" 1.6251 "Your web server may have per-user directories disabled. If you're using " 1.6252 "Apache, search your config file for a <literal>UserDir</literal> directive. " 1.6253 @@ -7046,7 +6123,7 @@ 1.6254 msgstr "" 1.6255 1.6256 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6257 -#: ../en/ch06-collab.xml:986 1.6258 +#: ../en/ch05-collab.xml:990 1.6259 msgid "" 1.6260 "Your file access permissions may be too restrictive. The web server must be " 1.6261 "able to traverse your home directory and directories under your <filename " 1.6262 @@ -7056,7 +6133,7 @@ 1.6263 msgstr "" 1.6264 1.6265 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6266 -#: ../en/ch06-collab.xml:996 1.6267 +#: ../en/ch05-collab.xml:1000 1.6268 msgid "" 1.6269 "The other possibility with permissions is that you might get a completely " 1.6270 "empty window when you try to load the script. In this case, it's likely that " 1.6271 @@ -7066,15 +6143,21 @@ 1.6272 msgstr "" 1.6273 1.6274 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6275 -#: ../en/ch06-collab.xml:1003 1.6276 +#: ../en/ch05-collab.xml:1007 1.6277 msgid "" 1.6278 "Your web server may be configured to disallow execution of CGI programs in " 1.6279 "your per-user web directory. Here's Apache's default per-user configuration " 1.6280 "from my Fedora system." 1.6281 msgstr "" 1.6282 1.6283 +#. type: CDATA 1.6284 +#: ../en/ch05-collab.xml:1012 1.6285 +#, no-wrap 1.6286 +msgid "&ch06-apache-config.lst;]]" 1.6287 +msgstr "" 1.6288 + 1.6289 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6290 -#: ../en/ch06-collab.xml:1014 1.6291 +#: ../en/ch05-collab.xml:1014 1.6292 msgid "" 1.6293 "If you find a similar-looking <literal>Directory</literal> group in your " 1.6294 "Apache configuration, the directive to look at inside it is <literal>Options</" 1.6295 @@ -7083,7 +6166,7 @@ 1.6296 msgstr "" 1.6297 1.6298 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6299 -#: ../en/ch06-collab.xml:1021 1.6300 +#: ../en/ch05-collab.xml:1021 1.6301 msgid "" 1.6302 "If you find that Apache serves you the text of the CGI script instead of " 1.6303 "executing it, you may need to either uncomment (if already present) or add a " 1.6304 @@ -7091,7 +6174,7 @@ 1.6305 msgstr "" 1.6306 1.6307 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6308 -#: ../en/ch06-collab.xml:1027 1.6309 +#: ../en/ch05-collab.xml:1027 1.6310 msgid "" 1.6311 "The next possibility is that you might be served with a colourful Python " 1.6312 "backtrace claiming that it can't import a <literal>mercurial</literal>-" 1.6313 @@ -7106,7 +6189,7 @@ 1.6314 msgstr "" 1.6315 1.6316 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6317 -#: ../en/ch06-collab.xml:1041 1.6318 +#: ../en/ch05-collab.xml:1041 1.6319 msgid "" 1.6320 "Finally, you are <emphasis>certain</emphasis> to by served with another " 1.6321 "colourful Python backtrace: this one will complain that it can't find " 1.6322 @@ -7117,19 +6200,19 @@ 1.6323 msgstr "" 1.6324 1.6325 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6326 -#: ../en/ch06-collab.xml:1051 1.6327 +#: ../en/ch05-collab.xml:1051 1.6328 msgid "" 1.6329 "At this point, when you try to reload the page, you should be presented with " 1.6330 "a nice HTML view of your repository's history. Whew!" 1.6331 msgstr "" 1.6332 1.6333 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6334 -#: ../en/ch06-collab.xml:1057 1.6335 +#: ../en/ch05-collab.xml:1057 1.6336 msgid "Configuring lighttpd" 1.6337 msgstr "配置 lighttpd" 1.6338 1.6339 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6340 -#: ../en/ch06-collab.xml:1059 1.6341 +#: ../en/ch05-collab.xml:1059 1.6342 msgid "" 1.6343 "To be exhaustive in my experiments, I tried configuring the increasingly " 1.6344 "popular <literal>lighttpd</literal> web server to serve the same repository " 1.6345 @@ -7140,7 +6223,7 @@ 1.6346 msgstr "" 1.6347 1.6348 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6349 -#: ../en/ch06-collab.xml:1069 1.6350 +#: ../en/ch05-collab.xml:1069 1.6351 msgid "" 1.6352 "Once I had Apache running, getting <literal>lighttpd</literal> to serve the " 1.6353 "repository was a snap (in other words, even if you're trying to use " 1.6354 @@ -7152,7 +6235,7 @@ 1.6355 msgstr "" 1.6356 1.6357 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6358 -#: ../en/ch06-collab.xml:1081 1.6359 +#: ../en/ch05-collab.xml:1081 1.6360 msgid "" 1.6361 "With this done, <literal>lighttpd</literal> ran immediately for me. If I had " 1.6362 "configured <literal>lighttpd</literal> before Apache, I'd almost certainly " 1.6363 @@ -7163,12 +6246,12 @@ 1.6364 msgstr "" 1.6365 1.6366 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6367 -#: ../en/ch06-collab.xml:1094 1.6368 +#: ../en/ch05-collab.xml:1094 1.6369 msgid "Sharing multiple repositories with one CGI script" 1.6370 msgstr "使用一个 CGI 脚本共享多个版本库" 1.6371 1.6372 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6373 -#: ../en/ch06-collab.xml:1096 1.6374 +#: ../en/ch05-collab.xml:1096 1.6375 msgid "" 1.6376 "The <filename role=\"special\">hgweb.cgi</filename> script only lets you " 1.6377 "publish a single repository, which is an annoying restriction. If you want " 1.6378 @@ -7178,7 +6261,7 @@ 1.6379 msgstr "" 1.6380 1.6381 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6382 -#: ../en/ch06-collab.xml:1104 1.6383 +#: ../en/ch05-collab.xml:1104 1.6384 msgid "" 1.6385 "The procedure to configure <filename role=\"special\">hgwebdir.cgi</filename> " 1.6386 "is only a little more involved than for <filename role=\"special\">hgweb.cgi</" 1.6387 @@ -7189,7 +6272,7 @@ 1.6388 msgstr "" 1.6389 1.6390 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6391 -#: ../en/ch06-collab.xml:1117 1.6392 +#: ../en/ch05-collab.xml:1117 1.6393 msgid "" 1.6394 "With basic configuration out of the way, try to visit <ulink url=\"http://" 1.6395 "myhostname/ myuser/hgwebdir.cgi\">http://myhostname/ myuser/hgwebdir.cgi</" 1.6396 @@ -7199,7 +6282,7 @@ 1.6397 msgstr "" 1.6398 1.6399 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6400 -#: ../en/ch06-collab.xml:1126 1.6401 +#: ../en/ch05-collab.xml:1126 1.6402 msgid "" 1.6403 "The <filename role=\"special\">hgwebdir.cgi</filename> script relies on an " 1.6404 "external configuration file. By default, it searches for a file named " 1.6405 @@ -7211,7 +6294,7 @@ 1.6406 msgstr "" 1.6407 1.6408 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6409 -#: ../en/ch06-collab.xml:1136 1.6410 +#: ../en/ch05-collab.xml:1136 1.6411 msgid "" 1.6412 "The easiest way to configure <filename role=\"special\">hgwebdir.cgi</" 1.6413 "filename> is with a section named <literal>collections</literal>. This will " 1.6414 @@ -7220,7 +6303,7 @@ 1.6415 msgstr "" 1.6416 1.6417 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6418 -#: ../en/ch06-collab.xml:1144 1.6419 +#: ../en/ch05-collab.xml:1144 1.6420 msgid "" 1.6421 "Mercurial interprets this by looking at the directory name on the " 1.6422 "<emphasis>right</emphasis> hand side of the <quote><literal>=</literal></" 1.6423 @@ -7232,7 +6315,7 @@ 1.6424 msgstr "" 1.6425 1.6426 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6427 -#: ../en/ch06-collab.xml:1153 1.6428 +#: ../en/ch05-collab.xml:1153 1.6429 msgid "" 1.6430 "Given the example above, if we have a repository whose local path is " 1.6431 "<filename class=\"directory\">/my/root/this/repo</filename>, the CGI script " 1.6432 @@ -7246,7 +6329,7 @@ 1.6433 msgstr "" 1.6434 1.6435 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6436 -#: ../en/ch06-collab.xml:1167 1.6437 +#: ../en/ch05-collab.xml:1167 1.6438 msgid "" 1.6439 "If we replace <filename class=\"directory\">/my/root</filename> on the left " 1.6440 "hand side of this example with <filename class=\"directory\">/my</filename>, " 1.6441 @@ -7257,7 +6340,7 @@ 1.6442 msgstr "" 1.6443 1.6444 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6445 -#: ../en/ch06-collab.xml:1177 1.6446 +#: ../en/ch05-collab.xml:1177 1.6447 msgid "" 1.6448 "The <filename role=\"special\">hgwebdir.cgi</filename> script will " 1.6449 "recursively search each directory listed in the <literal>collections</" 1.6450 @@ -7266,7 +6349,7 @@ 1.6451 msgstr "" 1.6452 1.6453 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6454 -#: ../en/ch06-collab.xml:1183 1.6455 +#: ../en/ch05-collab.xml:1183 1.6456 msgid "" 1.6457 "The <literal>collections</literal> mechanism makes it easy to publish many " 1.6458 "repositories in a <quote>fire and forget</quote> manner. You only need to " 1.6459 @@ -7277,12 +6360,12 @@ 1.6460 msgstr "" 1.6461 1.6462 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6463 -#: ../en/ch06-collab.xml:1193 1.6464 +#: ../en/ch05-collab.xml:1193 1.6465 msgid "Explicitly specifying which repositories to publish" 1.6466 msgstr "明确指出要发布的版本库" 1.6467 1.6468 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6469 -#: ../en/ch06-collab.xml:1196 1.6470 +#: ../en/ch05-collab.xml:1196 1.6471 msgid "" 1.6472 "In addition to the <literal>collections</literal> mechanism, the <filename " 1.6473 "role=\"special\">hgwebdir.cgi</filename> script allows you to publish a " 1.6474 @@ -7291,7 +6374,7 @@ 1.6475 msgstr "" 1.6476 1.6477 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6478 -#: ../en/ch06-collab.xml:1204 1.6479 +#: ../en/ch05-collab.xml:1205 1.6480 msgid "" 1.6481 "In this case, the virtual path (the component that will appear in a URL) is " 1.6482 "on the left hand side of each definition, while the path to the repository is " 1.6483 @@ -7301,7 +6384,7 @@ 1.6484 msgstr "" 1.6485 1.6486 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6487 -#: ../en/ch06-collab.xml:1211 1.6488 +#: ../en/ch05-collab.xml:1212 1.6489 msgid "" 1.6490 "If you wish, you can use both the <literal>collections</literal> and " 1.6491 "<literal>paths</literal> mechanisms simultaneously in a single configuration " 1.6492 @@ -7309,7 +6392,7 @@ 1.6493 msgstr "" 1.6494 1.6495 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> 1.6496 -#: ../en/ch06-collab.xml:1217 1.6497 +#: ../en/ch05-collab.xml:1218 1.6498 msgid "" 1.6499 "If multiple repositories have the same virtual path, <filename role=\"special" 1.6500 "\">hgwebdir.cgi</filename> will not report an error. Instead, it will behave " 1.6501 @@ -7317,12 +6400,12 @@ 1.6502 msgstr "" 1.6503 1.6504 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6505 -#: ../en/ch06-collab.xml:1226 1.6506 +#: ../en/ch05-collab.xml:1227 1.6507 msgid "Downloading source archives" 1.6508 msgstr "下载源代码档案包" 1.6509 1.6510 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6511 -#: ../en/ch06-collab.xml:1228 1.6512 +#: ../en/ch05-collab.xml:1229 1.6513 msgid "" 1.6514 "Mercurial's web interface lets users download an archive of any revision. " 1.6515 "This archive will contain a snapshot of the working directory as of that " 1.6516 @@ -7330,21 +6413,21 @@ 1.6517 msgstr "" 1.6518 1.6519 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6520 -#: ../en/ch06-collab.xml:1233 1.6521 +#: ../en/ch05-collab.xml:1234 1.6522 msgid "" 1.6523 "By default, this feature is not enabled. To enable it, you'll need to add an " 1.6524 "<envar role=\"rc-item-web\">allow_archive</envar> item to the <literal role=" 1.6525 -"\"rc-web\">web</literal> section of your <filename role=\"special\"> /.hgrc</" 1.6526 +"\"rc-web\">web</literal> section of your <filename role=\"special\">~/.hgrc</" 1.6527 "filename>." 1.6528 msgstr "" 1.6529 1.6530 #. type: Content of: <book><chapter><sect1><sect2><title> 1.6531 -#: ../en/ch06-collab.xml:1241 1.6532 +#: ../en/ch05-collab.xml:1242 1.6533 msgid "Web configuration options" 1.6534 msgstr "Web 配置选项" 1.6535 1.6536 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6537 -#: ../en/ch06-collab.xml:1243 1.6538 +#: ../en/ch05-collab.xml:1244 1.6539 msgid "" 1.6540 "Mercurial's web interfaces (the <command role=\"hg-cmd\">hg serve</command> " 1.6541 "command, and the <filename role=\"special\">hgweb.cgi</filename> and " 1.6542 @@ -7354,7 +6437,7 @@ 1.6543 msgstr "" 1.6544 1.6545 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6546 -#: ../en/ch06-collab.xml:1251 1.6547 +#: ../en/ch05-collab.xml:1252 1.6548 msgid "" 1.6549 "<envar role=\"rc-item-web\">allow_archive</envar>: Determines which (if any) " 1.6550 "archive download mechanisms Mercurial supports. If you enable this feature, " 1.6551 @@ -7364,7 +6447,7 @@ 1.6552 msgstr "" 1.6553 1.6554 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.6555 -#: ../en/ch06-collab.xml:1260 1.6556 +#: ../en/ch05-collab.xml:1261 1.6557 msgid "" 1.6558 "<literal>bz2</literal>: A <command>tar</command> archive, compressed using " 1.6559 "<literal>bzip2</literal> compression. This has the best compression ratio, " 1.6560 @@ -7372,14 +6455,14 @@ 1.6561 msgstr "" 1.6562 1.6563 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.6564 -#: ../en/ch06-collab.xml:1266 1.6565 +#: ../en/ch05-collab.xml:1267 1.6566 msgid "" 1.6567 "<literal>gz</literal>: A <command>tar</command> archive, compressed using " 1.6568 "<literal>gzip</literal> compression." 1.6569 msgstr "" 1.6570 1.6571 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.6572 -#: ../en/ch06-collab.xml:1270 1.6573 +#: ../en/ch05-collab.xml:1271 1.6574 msgid "" 1.6575 "<literal>zip</literal>: A <command>zip</command> archive, compressed using " 1.6576 "LZW compression. This format has the worst compression ratio, but is widely " 1.6577 @@ -7387,7 +6470,7 @@ 1.6578 msgstr "" 1.6579 1.6580 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6581 -#: ../en/ch06-collab.xml:1276 1.6582 +#: ../en/ch05-collab.xml:1277 1.6583 msgid "" 1.6584 "If you provide an empty list, or don't have an <envar role=\"rc-item-web" 1.6585 "\">allow_archive</envar> entry at all, this feature will be disabled. Here " 1.6586 @@ -7395,7 +6478,7 @@ 1.6587 msgstr "" 1.6588 1.6589 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6590 -#: ../en/ch06-collab.xml:1283 1.6591 +#: ../en/ch05-collab.xml:1284 1.6592 msgid "" 1.6593 "<envar role=\"rc-item-web\">allowpull</envar>: Boolean. Determines whether " 1.6594 "the web interface allows remote users to <command role=\"hg-cmd\">hg pull</" 1.6595 @@ -7405,33 +6488,33 @@ 1.6596 msgstr "" 1.6597 1.6598 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6599 -#: ../en/ch06-collab.xml:1292 1.6600 +#: ../en/ch05-collab.xml:1293 1.6601 msgid "" 1.6602 "<envar role=\"rc-item-web\">contact</envar>: String. A free-form (but " 1.6603 "preferably brief) string identifying the person or group in charge of the " 1.6604 "repository. This often contains the name and email address of a person or " 1.6605 "mailing list. It often makes sense to place this entry in a repository's own " 1.6606 "<filename role=\"special\">.hg/hgrc</filename> file, but it can make sense to " 1.6607 -"use in a global <filename role=\"special\"> /.hgrc</filename>\\ if every " 1.6608 +"use in a global <filename role=\"special\">~/.hgrc</filename> if every " 1.6609 "repository has a single maintainer." 1.6610 msgstr "" 1.6611 1.6612 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6613 -#: ../en/ch06-collab.xml:1303 1.6614 +#: ../en/ch05-collab.xml:1304 1.6615 msgid "" 1.6616 "<envar role=\"rc-item-web\">maxchanges</envar>: Integer. The default maximum " 1.6617 "number of changesets to display in a single page of output." 1.6618 msgstr "" 1.6619 1.6620 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6621 -#: ../en/ch06-collab.xml:1307 1.6622 +#: ../en/ch05-collab.xml:1308 1.6623 msgid "" 1.6624 "<envar role=\"rc-item-web\">maxfiles</envar>: Integer. The default maximum " 1.6625 "number of modified files to display in a single page of output." 1.6626 msgstr "" 1.6627 1.6628 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6629 -#: ../en/ch06-collab.xml:1311 1.6630 +#: ../en/ch05-collab.xml:1312 1.6631 msgid "" 1.6632 "<envar role=\"rc-item-web\">stripes</envar>: Integer. If the web interface " 1.6633 "displays alternating <quote>stripes</quote> to make it easier to visually " 1.6634 @@ -7440,7 +6523,7 @@ 1.6635 msgstr "" 1.6636 1.6637 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6638 -#: ../en/ch06-collab.xml:1317 1.6639 +#: ../en/ch05-collab.xml:1318 1.6640 msgid "" 1.6641 "<envar role=\"rc-item-web\">style</envar>: Controls the template Mercurial " 1.6642 "uses to display the web interface. Mercurial ships with two web templates, " 1.6643 @@ -7451,7 +6534,7 @@ 1.6644 msgstr "" 1.6645 1.6646 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.6647 -#: ../en/ch06-collab.xml:1328 1.6648 +#: ../en/ch05-collab.xml:1330 1.6649 msgid "" 1.6650 "<envar role=\"rc-item-web\">templates</envar>: Path. The directory in which " 1.6651 "to search for template files. By default, Mercurial searches in the " 1.6652 @@ -7459,32 +6542,32 @@ 1.6653 msgstr "" 1.6654 1.6655 #. type: Content of: <book><chapter><sect1><sect2><para> 1.6656 -#: ../en/ch06-collab.xml:1333 1.6657 +#: ../en/ch05-collab.xml:1335 1.6658 msgid "" 1.6659 "If you are using <filename role=\"special\">hgwebdir.cgi</filename>, you can " 1.6660 "place a few configuration items in a <literal role=\"rc-web\">web</literal> " 1.6661 "section of the <filename role=\"special\">hgweb.config</filename> file " 1.6662 -"instead of a <filename role=\"special\"> /.hgrc</filename>\\ file, for " 1.6663 +"instead of a <filename role=\"special\">~/.hgrc</filename> file, for " 1.6664 "convenience. These items are <envar role=\"rc-item-web\">motd</envar> and " 1.6665 "<envar role=\"rc-item-web\">style</envar>." 1.6666 msgstr "" 1.6667 1.6668 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6669 -#: ../en/ch06-collab.xml:1344 1.6670 +#: ../en/ch05-collab.xml:1346 1.6671 msgid "Options specific to an individual repository" 1.6672 msgstr "针对单个版本库的选项" 1.6673 1.6674 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6675 -#: ../en/ch06-collab.xml:1346 1.6676 +#: ../en/ch05-collab.xml:1348 1.6677 msgid "" 1.6678 "A few <literal role=\"rc-web\">web</literal> configuration items ought to be " 1.6679 "placed in a repository's local <filename role=\"special\">.hg/hgrc</" 1.6680 -"filename>, rather than a user's or global <filename role=\"special\"> /.hgrc</" 1.6681 +"filename>, rather than a user's or global <filename role=\"special\">~/.hgrc</" 1.6682 "filename>." 1.6683 msgstr "" 1.6684 1.6685 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6686 -#: ../en/ch06-collab.xml:1352 1.6687 +#: ../en/ch05-collab.xml:1353 1.6688 msgid "" 1.6689 "<envar role=\"rc-item-web\">description</envar>: String. A free-form (but " 1.6690 "preferably brief) string that describes the contents or purpose of the " 1.6691 @@ -7492,7 +6575,7 @@ 1.6692 msgstr "" 1.6693 1.6694 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6695 -#: ../en/ch06-collab.xml:1357 1.6696 +#: ../en/ch05-collab.xml:1358 1.6697 msgid "" 1.6698 "<envar role=\"rc-item-web\">name</envar>: String. The name to use for the " 1.6699 "repository in the web interface. This overrides the default name, which is " 1.6700 @@ -7500,21 +6583,21 @@ 1.6701 msgstr "" 1.6702 1.6703 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6704 -#: ../en/ch06-collab.xml:1365 1.6705 +#: ../en/ch05-collab.xml:1366 1.6706 msgid "" 1.6707 "Options specific to the <command role=\"hg-cmd\">hg serve</command> command" 1.6708 msgstr "命令 <command role=\"hg-cmd\">hg serve</command> 的选项" 1.6709 1.6710 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6711 -#: ../en/ch06-collab.xml:1368 1.6712 +#: ../en/ch05-collab.xml:1369 1.6713 msgid "" 1.6714 "Some of the items in the <literal role=\"rc-web\">web</literal> section of a " 1.6715 -"<filename role=\"special\"> /.hgrc</filename>\\ file are only for use with " 1.6716 -"the <command role=\"hg-cmd\">hg serve</command> command." 1.6717 +"<filename role=\"special\">~/.hgrc</filename> file are only for use with the " 1.6718 +"<command role=\"hg-cmd\">hg serve</command> command." 1.6719 msgstr "" 1.6720 1.6721 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6722 -#: ../en/ch06-collab.xml:1374 1.6723 +#: ../en/ch05-collab.xml:1375 1.6724 msgid "" 1.6725 "<envar role=\"rc-item-web\">accesslog</envar>: Path. The name of a file into " 1.6726 "which to write an access log. By default, the <command role=\"hg-cmd\">hg " 1.6727 @@ -7524,7 +6607,7 @@ 1.6728 msgstr "" 1.6729 1.6730 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6731 -#: ../en/ch06-collab.xml:1382 1.6732 +#: ../en/ch05-collab.xml:1383 1.6733 msgid "" 1.6734 "<envar role=\"rc-item-web\">address</envar>: String. The local address on " 1.6735 "which the server should listen for incoming connections. By default, the " 1.6736 @@ -7532,7 +6615,7 @@ 1.6737 msgstr "" 1.6738 1.6739 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6740 -#: ../en/ch06-collab.xml:1387 1.6741 +#: ../en/ch05-collab.xml:1388 1.6742 msgid "" 1.6743 "<envar role=\"rc-item-web\">errorlog</envar>: Path. The name of a file into " 1.6744 "which to write an error log. By default, the <command role=\"hg-cmd\">hg " 1.6745 @@ -7541,30 +6624,31 @@ 1.6746 msgstr "" 1.6747 1.6748 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6749 -#: ../en/ch06-collab.xml:1393 1.6750 +#: ../en/ch05-collab.xml:1394 1.6751 msgid "" 1.6752 "<envar role=\"rc-item-web\">ipv6</envar>: Boolean. Whether to use the IPv6 " 1.6753 "protocol. By default, IPv6 is not used." 1.6754 msgstr "" 1.6755 1.6756 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.6757 -#: ../en/ch06-collab.xml:1397 1.6758 +#: ../en/ch05-collab.xml:1398 1.6759 msgid "" 1.6760 "<envar role=\"rc-item-web\">port</envar>: Integer. The TCP port number on " 1.6761 "which the server should listen. The default port number used is 8000." 1.6762 msgstr "" 1.6763 1.6764 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.6765 -#: ../en/ch06-collab.xml:1404 1.6766 -msgid "" 1.6767 -"Choosing the right <filename role=\"special\"> /.hgrc</filename>\\ file to " 1.6768 -"add <literal role=\"rc-web\">web</literal> items to" 1.6769 +#: ../en/ch05-collab.xml:1405 1.6770 +#, fuzzy 1.6771 +msgid "" 1.6772 +"Choosing the right <filename role=\"special\">~/.hgrc</filename> file to add " 1.6773 +"<literal role=\"rc-web\">web</literal> items to" 1.6774 msgstr "" 1.6775 "选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal " 1.6776 "role=\"rc-web\">web</literal> 条目" 1.6777 1.6778 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6779 -#: ../en/ch06-collab.xml:1408 1.6780 +#: ../en/ch05-collab.xml:1409 1.6781 msgid "" 1.6782 "It is important to remember that a web server like Apache or " 1.6783 "<literal>lighttpd</literal> will run under a user ID that is different to " 1.6784 @@ -7573,38 +6657,37 @@ 1.6785 msgstr "" 1.6786 1.6787 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.6788 -#: ../en/ch06-collab.xml:1415 1.6789 +#: ../en/ch05-collab.xml:1416 1.6790 msgid "" 1.6791 "If you add <literal role=\"rc-web\">web</literal> items to your own personal " 1.6792 -"<filename role=\"special\"> /.hgrc</filename>\\ file, CGI scripts won't read " 1.6793 -"that <filename role=\"special\"> /.hgrc</filename>\\ file. Those settings " 1.6794 -"will thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</" 1.6795 +"<filename role=\"special\">~/.hgrc</filename> file, CGI scripts won't read " 1.6796 +"that <filename role=\"special\">~/.hgrc</filename> file. Those settings will " 1.6797 +"thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</" 1.6798 "command> command when you run it. To cause CGI scripts to see your settings, " 1.6799 -"either create a <filename role=\"special\"> /.hgrc</filename>\\ file in the " 1.6800 +"either create a <filename role=\"special\">~/.hgrc</filename> file in the " 1.6801 "home directory of the user ID that runs your web server, or add those " 1.6802 -"settings to a system-wide <filename role=\"special\"> /.hgrc</filename>\\ " 1.6803 -"file." 1.6804 +"settings to a system-wide <filename role=\"special\">~/.hgrc</filename> file." 1.6805 msgstr "" 1.6806 1.6807 #. type: Content of: <book><chapter><title> 1.6808 -#: ../en/ch07-filenames.xml:5 1.6809 +#: ../en/ch06-filenames.xml:5 1.6810 msgid "File names and pattern matching" 1.6811 msgstr "文件名称与模式匹配" 1.6812 1.6813 #. type: Content of: <book><chapter><para> 1.6814 -#: ../en/ch07-filenames.xml:7 1.6815 +#: ../en/ch06-filenames.xml:7 1.6816 msgid "" 1.6817 "Mercurial provides mechanisms that let you work with file names in a " 1.6818 "consistent and expressive way." 1.6819 msgstr "" 1.6820 1.6821 #. type: Content of: <book><chapter><sect1><title> 1.6822 -#: ../en/ch07-filenames.xml:11 1.6823 +#: ../en/ch06-filenames.xml:11 1.6824 msgid "Simple file naming" 1.6825 msgstr "简单文件名称" 1.6826 1.6827 #. type: Content of: <book><chapter><sect1><para> 1.6828 -#: ../en/ch07-filenames.xml:13 1.6829 +#: ../en/ch06-filenames.xml:13 1.6830 msgid "" 1.6831 "Mercurial uses a unified piece of machinery <quote>under the hood</quote> to " 1.6832 "handle file names. Every command behaves uniformly with respect to file " 1.6833 @@ -7612,7 +6695,7 @@ 1.6834 msgstr "" 1.6835 1.6836 #. type: Content of: <book><chapter><sect1><para> 1.6837 -#: ../en/ch07-filenames.xml:18 1.6838 +#: ../en/ch06-filenames.xml:18 1.6839 msgid "" 1.6840 "If you explicitly name real files on the command line, Mercurial works with " 1.6841 "exactly those files, as you would expect. &interaction.filenames.files;" 1.6842 @@ -7620,7 +6703,7 @@ 1.6843 1.6844 # 1.6845 #. type: Content of: <book><chapter><sect1><para> 1.6846 -#: ../en/ch07-filenames.xml:22 1.6847 +#: ../en/ch06-filenames.xml:22 1.6848 msgid "" 1.6849 "When you provide a directory name, Mercurial will interpret this as " 1.6850 "<quote>operate on every file in this directory and its subdirectories</" 1.6851 @@ -7630,12 +6713,12 @@ 1.6852 msgstr "" 1.6853 1.6854 #. type: Content of: <book><chapter><sect1><title> 1.6855 -#: ../en/ch07-filenames.xml:33 1.6856 +#: ../en/ch06-filenames.xml:33 1.6857 msgid "Running commands without any file names" 1.6858 msgstr "不提供文件名称的执行命令" 1.6859 1.6860 #. type: Content of: <book><chapter><sect1><para> 1.6861 -#: ../en/ch07-filenames.xml:35 1.6862 +#: ../en/ch06-filenames.xml:35 1.6863 msgid "" 1.6864 "Mercurial's commands that work with file names have useful default behaviours " 1.6865 "when you invoke them without providing any file names or patterns. What kind " 1.6866 @@ -7645,14 +6728,14 @@ 1.6867 msgstr "" 1.6868 1.6869 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.6870 -#: ../en/ch07-filenames.xml:42 1.6871 +#: ../en/ch06-filenames.xml:42 1.6872 msgid "" 1.6873 "Most commands will operate on the entire working directory. This is what the " 1.6874 "<command role=\"hg-cmd\">hg add</command> command does, for example." 1.6875 msgstr "" 1.6876 1.6877 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.6878 -#: ../en/ch07-filenames.xml:46 1.6879 +#: ../en/ch06-filenames.xml:46 1.6880 msgid "" 1.6881 "If the command has effects that are difficult or impossible to reverse, it " 1.6882 "will force you to explicitly provide at least one name or pattern (see " 1.6883 @@ -7662,7 +6745,7 @@ 1.6884 1.6885 # 1.6886 #. type: Content of: <book><chapter><sect1><para> 1.6887 -#: ../en/ch07-filenames.xml:54 1.6888 +#: ../en/ch06-filenames.xml:54 1.6889 msgid "" 1.6890 "It's easy to work around these default behaviours if they don't suit you. If " 1.6891 "a command normally operates on the whole working directory, you can invoke it " 1.6892 @@ -7672,7 +6755,7 @@ 1.6893 1.6894 # 1.6895 #. type: Content of: <book><chapter><sect1><para> 1.6896 -#: ../en/ch07-filenames.xml:62 1.6897 +#: ../en/ch06-filenames.xml:62 1.6898 msgid "" 1.6899 "Along the same lines, some commands normally print file names relative to the " 1.6900 "root of the repository, even if you're invoking them from a subdirectory. " 1.6901 @@ -7685,12 +6768,12 @@ 1.6902 msgstr "" 1.6903 1.6904 #. type: Content of: <book><chapter><sect1><title> 1.6905 -#: ../en/ch07-filenames.xml:76 1.6906 +#: ../en/ch06-filenames.xml:76 1.6907 msgid "Telling you what's going on" 1.6908 msgstr "告诉你正在做什么" 1.6909 1.6910 #. type: Content of: <book><chapter><sect1><para> 1.6911 -#: ../en/ch07-filenames.xml:78 1.6912 +#: ../en/ch06-filenames.xml:78 1.6913 msgid "" 1.6914 "The <command role=\"hg-cmd\">hg add</command> example in the preceding " 1.6915 "section illustrates something else that's helpful about Mercurial commands. " 1.6916 @@ -7700,7 +6783,7 @@ 1.6917 msgstr "" 1.6918 1.6919 #. type: Content of: <book><chapter><sect1><para> 1.6920 -#: ../en/ch07-filenames.xml:85 1.6921 +#: ../en/ch06-filenames.xml:85 1.6922 msgid "" 1.6923 "The principle here is of <emphasis>least surprise</emphasis>. If you've " 1.6924 "exactly named a file on the command line, there's no point in repeating it " 1.6925 @@ -7710,7 +6793,7 @@ 1.6926 msgstr "" 1.6927 1.6928 #. type: Content of: <book><chapter><sect1><para> 1.6929 -#: ../en/ch07-filenames.xml:92 1.6930 +#: ../en/ch06-filenames.xml:92 1.6931 msgid "" 1.6932 "For commands that behave this way, you can silence them using the <option " 1.6933 "role=\"hg-opt-global\">-q</option> option. You can also get them to print " 1.6934 @@ -7719,12 +6802,12 @@ 1.6935 msgstr "" 1.6936 1.6937 #. type: Content of: <book><chapter><sect1><title> 1.6938 -#: ../en/ch07-filenames.xml:100 1.6939 +#: ../en/ch06-filenames.xml:100 1.6940 msgid "Using patterns to identify files" 1.6941 msgstr "使用模式标识文件" 1.6942 1.6943 #. type: Content of: <book><chapter><sect1><para> 1.6944 -#: ../en/ch07-filenames.xml:102 1.6945 +#: ../en/ch06-filenames.xml:102 1.6946 msgid "" 1.6947 "In addition to working with file and directory names, Mercurial lets you use " 1.6948 "<emphasis>patterns</emphasis> to identify files. Mercurial's pattern " 1.6949 @@ -7732,7 +6815,7 @@ 1.6950 msgstr "" 1.6951 1.6952 #. type: Content of: <book><chapter><sect1><para> 1.6953 -#: ../en/ch07-filenames.xml:106 1.6954 +#: ../en/ch06-filenames.xml:106 1.6955 msgid "" 1.6956 "On Unix-like systems (Linux, MacOS, etc.), the job of matching file names to " 1.6957 "patterns normally falls to the shell. On these systems, you must explicitly " 1.6958 @@ -7742,21 +6825,21 @@ 1.6959 msgstr "" 1.6960 1.6961 #. type: Content of: <book><chapter><sect1><para> 1.6962 -#: ../en/ch07-filenames.xml:113 1.6963 +#: ../en/ch06-filenames.xml:113 1.6964 msgid "" 1.6965 "To provide a pattern in place of a regular name on the command line, the " 1.6966 "mechanism is simple:" 1.6967 msgstr "" 1.6968 1.6969 #. type: Content of: <book><chapter><sect1><para> 1.6970 -#: ../en/ch07-filenames.xml:116 1.6971 +#: ../en/ch06-filenames.xml:116 1.6972 msgid "" 1.6973 "That is, a pattern is identified by a short text string that says what kind " 1.6974 "of pattern this is, followed by a colon, followed by the actual pattern." 1.6975 msgstr "" 1.6976 1.6977 #. type: Content of: <book><chapter><sect1><para> 1.6978 -#: ../en/ch07-filenames.xml:120 1.6979 +#: ../en/ch06-filenames.xml:120 1.6980 msgid "" 1.6981 "Mercurial supports two kinds of pattern syntax. The most frequently used is " 1.6982 "called <literal>glob</literal>; this is the same kind of pattern matching " 1.6983 @@ -7765,7 +6848,7 @@ 1.6984 msgstr "" 1.6985 1.6986 #. type: Content of: <book><chapter><sect1><para> 1.6987 -#: ../en/ch07-filenames.xml:125 1.6988 +#: ../en/ch06-filenames.xml:125 1.6989 msgid "" 1.6990 "When Mercurial does automatic pattern matching on Windows, it uses " 1.6991 "<literal>glob</literal> syntax. You can thus omit the <quote><literal>glob:</" 1.6992 @@ -7773,14 +6856,14 @@ 1.6993 msgstr "" 1.6994 1.6995 #. type: Content of: <book><chapter><sect1><para> 1.6996 -#: ../en/ch07-filenames.xml:130 1.6997 +#: ../en/ch06-filenames.xml:130 1.6998 msgid "" 1.6999 "The <literal>re</literal> syntax is more powerful; it lets you specify " 1.7000 "patterns using regular expressions, also known as regexps." 1.7001 msgstr "" 1.7002 1.7003 #. type: Content of: <book><chapter><sect1><para> 1.7004 -#: ../en/ch07-filenames.xml:134 1.7005 +#: ../en/ch06-filenames.xml:134 1.7006 msgid "" 1.7007 "By the way, in the examples that follow, notice that I'm careful to wrap all " 1.7008 "of my patterns in quote characters, so that they won't get expanded by the " 1.7009 @@ -7788,12 +6871,12 @@ 1.7010 msgstr "" 1.7011 1.7012 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7013 -#: ../en/ch07-filenames.xml:140 1.7014 +#: ../en/ch06-filenames.xml:140 1.7015 msgid "Shell-style <literal>glob</literal> patterns" 1.7016 msgstr "外壳风格的 <literal>glob</literal> 模式" 1.7017 1.7018 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7019 -#: ../en/ch07-filenames.xml:142 1.7020 +#: ../en/ch06-filenames.xml:142 1.7021 msgid "" 1.7022 "This is an overview of the kinds of patterns you can use when you're matching " 1.7023 "on glob patterns." 1.7024 @@ -7801,7 +6884,7 @@ 1.7025 1.7026 # 1.7027 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7028 -#: ../en/ch07-filenames.xml:145 1.7029 +#: ../en/ch06-filenames.xml:145 1.7030 msgid "" 1.7031 "The <quote><literal>*</literal></quote> character matches any string, within " 1.7032 "a single directory." 1.7033 @@ -7809,7 +6892,7 @@ 1.7034 1.7035 # 1.7036 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7037 -#: ../en/ch07-filenames.xml:150 1.7038 +#: ../en/ch06-filenames.xml:150 1.7039 msgid "" 1.7040 "The <quote><literal>**</literal></quote> pattern matches any string, and " 1.7041 "crosses directory boundaries. It's not a standard Unix glob token, but it's " 1.7042 @@ -7818,13 +6901,13 @@ 1.7043 1.7044 # 1.7045 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7046 -#: ../en/ch07-filenames.xml:157 1.7047 +#: ../en/ch06-filenames.xml:157 1.7048 msgid "" 1.7049 "The <quote><literal>?</literal></quote> pattern matches any single character." 1.7050 msgstr "" 1.7051 1.7052 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7053 -#: ../en/ch07-filenames.xml:162 1.7054 +#: ../en/ch06-filenames.xml:162 1.7055 msgid "" 1.7056 "The <quote><literal>[</literal></quote> character begins a " 1.7057 "<emphasis>character class</emphasis>. This matches any single character " 1.7058 @@ -7835,7 +6918,7 @@ 1.7059 msgstr "" 1.7060 1.7061 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7062 -#: ../en/ch07-filenames.xml:172 1.7063 +#: ../en/ch06-filenames.xml:172 1.7064 msgid "" 1.7065 "If the first character after the <quote><literal>[</literal></quote> in a " 1.7066 "character class is a <quote><literal>!</literal></quote>, it " 1.7067 @@ -7844,7 +6927,7 @@ 1.7068 msgstr "" 1.7069 1.7070 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7071 -#: ../en/ch07-filenames.xml:178 1.7072 +#: ../en/ch06-filenames.xml:178 1.7073 msgid "" 1.7074 "A <quote><literal>{</literal></quote> begins a group of subpatterns, where " 1.7075 "the whole group matches if any subpattern in the group matches. The " 1.7076 @@ -7853,13 +6936,13 @@ 1.7077 msgstr "" 1.7078 1.7079 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.7080 -#: ../en/ch07-filenames.xml:187 1.7081 +#: ../en/ch06-filenames.xml:187 1.7082 msgid "Watch out!" 1.7083 msgstr "千万小心!" 1.7084 1.7085 # 1.7086 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.7087 -#: ../en/ch07-filenames.xml:189 1.7088 +#: ../en/ch06-filenames.xml:189 1.7089 msgid "" 1.7090 "Don't forget that if you want to match a pattern in any directory, you should " 1.7091 "not be using the <quote><literal>*</literal></quote> match-any token, as this " 1.7092 @@ -7869,12 +6952,12 @@ 1.7093 msgstr "" 1.7094 1.7095 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7096 -#: ../en/ch07-filenames.xml:201 1.7097 +#: ../en/ch06-filenames.xml:201 1.7098 msgid "Regular expression matching with <literal>re</literal> patterns" 1.7099 msgstr "使用 <literal>re</literal> 模式的正则表达式匹配" 1.7100 1.7101 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7102 -#: ../en/ch07-filenames.xml:204 1.7103 +#: ../en/ch06-filenames.xml:204 1.7104 msgid "" 1.7105 "Mercurial accepts the same regular expression syntax as the Python " 1.7106 "programming language (it uses Python's regexp engine internally). This is " 1.7107 @@ -7883,7 +6966,7 @@ 1.7108 msgstr "" 1.7109 1.7110 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7111 -#: ../en/ch07-filenames.xml:210 1.7112 +#: ../en/ch06-filenames.xml:210 1.7113 msgid "" 1.7114 "I won't discuss Mercurial's regexp dialect in any detail here, as regexps are " 1.7115 "not often used. Perl-style regexps are in any case already exhaustively " 1.7116 @@ -7893,7 +6976,7 @@ 1.7117 msgstr "" 1.7118 1.7119 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7120 -#: ../en/ch07-filenames.xml:217 1.7121 +#: ../en/ch06-filenames.xml:217 1.7122 msgid "" 1.7123 "A regexp is matched against an entire file name, relative to the root of the " 1.7124 "repository. In other words, even if you're already in subbdirectory " 1.7125 @@ -7903,7 +6986,7 @@ 1.7126 msgstr "" 1.7127 1.7128 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7129 -#: ../en/ch07-filenames.xml:224 1.7130 +#: ../en/ch06-filenames.xml:224 1.7131 msgid "" 1.7132 "One thing to note, if you're familiar with Perl-style regexps, is that " 1.7133 "Mercurial's are <emphasis>rooted</emphasis>. That is, a regexp starts " 1.7134 @@ -7913,12 +6996,12 @@ 1.7135 msgstr "" 1.7136 1.7137 #. type: Content of: <book><chapter><sect1><title> 1.7138 -#: ../en/ch07-filenames.xml:234 1.7139 +#: ../en/ch06-filenames.xml:234 1.7140 msgid "Filtering files" 1.7141 msgstr "过滤文件" 1.7142 1.7143 #. type: Content of: <book><chapter><sect1><para> 1.7144 -#: ../en/ch07-filenames.xml:236 1.7145 +#: ../en/ch06-filenames.xml:236 1.7146 msgid "" 1.7147 "Not only does Mercurial give you a variety of ways to specify files; it lets " 1.7148 "you further winnow those files using <emphasis>filters</emphasis>. Commands " 1.7149 @@ -7926,7 +7009,7 @@ 1.7150 msgstr "" 1.7151 1.7152 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7153 -#: ../en/ch07-filenames.xml:241 1.7154 +#: ../en/ch06-filenames.xml:241 1.7155 msgid "" 1.7156 "<option role=\"hg-opt-global\">-I</option>, or <option role=\"hg-opt-global" 1.7157 "\">--include</option>, lets you specify a pattern that file names must match " 1.7158 @@ -7934,7 +7017,7 @@ 1.7159 msgstr "" 1.7160 1.7161 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7162 -#: ../en/ch07-filenames.xml:246 1.7163 +#: ../en/ch06-filenames.xml:246 1.7164 msgid "" 1.7165 "<option role=\"hg-opt-global\">-X</option>, or <option role=\"hg-opt-global" 1.7166 "\">--exclude</option>, gives you a way to <emphasis>avoid</emphasis> " 1.7167 @@ -7942,7 +7025,7 @@ 1.7168 msgstr "" 1.7169 1.7170 #. type: Content of: <book><chapter><sect1><para> 1.7171 -#: ../en/ch07-filenames.xml:251 1.7172 +#: ../en/ch06-filenames.xml:251 1.7173 msgid "" 1.7174 "You can provide multiple <option role=\"hg-opt-global\">-I</option> and " 1.7175 "<option role=\"hg-opt-global\">-X</option> options on the command line, and " 1.7176 @@ -7951,36 +7034,36 @@ 1.7177 msgstr "" 1.7178 1.7179 #. type: Content of: <book><chapter><sect1><para> 1.7180 -#: ../en/ch07-filenames.xml:258 1.7181 +#: ../en/ch06-filenames.xml:258 1.7182 msgid "" 1.7183 "You can read a <option role=\"hg-opt-global\">-I</option> filter as " 1.7184 "<quote>process only the files that match this filter</quote>." 1.7185 msgstr "" 1.7186 1.7187 #. type: Content of: <book><chapter><sect1><para> 1.7188 -#: ../en/ch07-filenames.xml:264 1.7189 +#: ../en/ch06-filenames.xml:264 1.7190 msgid "" 1.7191 "The <option role=\"hg-opt-global\">-X</option> filter is best read as " 1.7192 "<quote>process only the files that don't match this pattern</quote>." 1.7193 msgstr "" 1.7194 1.7195 #. type: Content of: <book><chapter><sect1><title> 1.7196 -#: ../en/ch07-filenames.xml:272 1.7197 +#: ../en/ch06-filenames.xml:272 1.7198 msgid "Ignoring unwanted files and directories" 1.7199 msgstr "忽略不需要的文件和目录" 1.7200 1.7201 #. type: Content of: <book><chapter><sect1><para> 1.7202 -#: ../en/ch07-filenames.xml:274 1.7203 +#: ../en/ch06-filenames.xml:274 1.7204 msgid "XXX." 1.7205 msgstr "" 1.7206 1.7207 #. type: Content of: <book><chapter><sect1><title> 1.7208 -#: ../en/ch07-filenames.xml:278 1.7209 +#: ../en/ch06-filenames.xml:278 1.7210 msgid "Case sensitivity" 1.7211 msgstr "大小写敏感性" 1.7212 1.7213 #. type: Content of: <book><chapter><sect1><para> 1.7214 -#: ../en/ch07-filenames.xml:280 1.7215 +#: ../en/ch06-filenames.xml:280 1.7216 msgid "" 1.7217 "If you're working in a mixed development environment that contains both Linux " 1.7218 "(or other Unix) systems and Macs or Windows systems, you should keep in the " 1.7219 @@ -7991,7 +7074,7 @@ 1.7220 msgstr "" 1.7221 1.7222 #. type: Content of: <book><chapter><sect1><para> 1.7223 -#: ../en/ch07-filenames.xml:289 1.7224 +#: ../en/ch06-filenames.xml:289 1.7225 msgid "" 1.7226 "Operating systems and filesystems differ in the way they handle the " 1.7227 "<emphasis>case</emphasis> of characters in file and directory names. There " 1.7228 @@ -7999,7 +7082,7 @@ 1.7229 msgstr "" 1.7230 1.7231 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7232 -#: ../en/ch07-filenames.xml:294 1.7233 +#: ../en/ch06-filenames.xml:294 1.7234 msgid "" 1.7235 "Completely case insensitive. Uppercase and lowercase versions of a letter " 1.7236 "are treated as identical, both when creating a file and during subsequent " 1.7237 @@ -8007,7 +7090,7 @@ 1.7238 msgstr "" 1.7239 1.7240 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7241 -#: ../en/ch07-filenames.xml:299 1.7242 +#: ../en/ch06-filenames.xml:299 1.7243 msgid "" 1.7244 "Case preserving, but insensitive. When a file or directory is created, the " 1.7245 "case of its name is stored, and can be retrieved and displayed by the " 1.7246 @@ -8019,7 +7102,7 @@ 1.7247 msgstr "" 1.7248 1.7249 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7250 -#: ../en/ch07-filenames.xml:310 1.7251 +#: ../en/ch06-filenames.xml:310 1.7252 msgid "" 1.7253 "Case sensitive. The case of a name is significant at all times. The names " 1.7254 "<filename>foo</filename> and {FoO} identify different files. This is the way " 1.7255 @@ -8027,7 +7110,7 @@ 1.7256 msgstr "" 1.7257 1.7258 #. type: Content of: <book><chapter><sect1><para> 1.7259 -#: ../en/ch07-filenames.xml:316 1.7260 +#: ../en/ch06-filenames.xml:316 1.7261 msgid "" 1.7262 "On Unix-like systems, it is possible to have any or all of the above ways of " 1.7263 "handling case in action at once. For example, if you use a USB thumb drive " 1.7264 @@ -8036,12 +7119,12 @@ 1.7265 msgstr "" 1.7266 1.7267 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7268 -#: ../en/ch07-filenames.xml:323 1.7269 +#: ../en/ch06-filenames.xml:323 1.7270 msgid "Safe, portable repository storage" 1.7271 msgstr "安全,可移植的版本库存储" 1.7272 1.7273 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7274 -#: ../en/ch07-filenames.xml:325 1.7275 +#: ../en/ch06-filenames.xml:325 1.7276 msgid "" 1.7277 "Mercurial's repository storage mechanism is <emphasis>case safe</emphasis>. " 1.7278 "It translates file names so that they can be safely stored on both case " 1.7279 @@ -8052,12 +7135,12 @@ 1.7280 msgstr "" 1.7281 1.7282 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7283 -#: ../en/ch07-filenames.xml:336 1.7284 +#: ../en/ch06-filenames.xml:336 1.7285 msgid "Detecting case conflicts" 1.7286 msgstr "检测大小写冲突" 1.7287 1.7288 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7289 -#: ../en/ch07-filenames.xml:338 1.7290 +#: ../en/ch06-filenames.xml:338 1.7291 msgid "" 1.7292 "When operating in the working directory, Mercurial honours the naming policy " 1.7293 "of the filesystem where the working directory is located. If the filesystem " 1.7294 @@ -8066,7 +7149,7 @@ 1.7295 msgstr "" 1.7296 1.7297 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7298 -#: ../en/ch07-filenames.xml:344 1.7299 +#: ../en/ch06-filenames.xml:344 1.7300 msgid "" 1.7301 "An important aspect of this approach is that it is possible to commit a " 1.7302 "changeset on a case sensitive (typically Linux or Unix) filesystem that will " 1.7303 @@ -8079,7 +7162,7 @@ 1.7304 msgstr "" 1.7305 1.7306 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7307 -#: ../en/ch07-filenames.xml:355 1.7308 +#: ../en/ch06-filenames.xml:355 1.7309 msgid "" 1.7310 "If a Windows or Mac user pulls this change, they will not initially have a " 1.7311 "problem, because Mercurial's repository storage mechanism is case safe. " 1.7312 @@ -8091,12 +7174,12 @@ 1.7313 msgstr "" 1.7314 1.7315 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7316 -#: ../en/ch07-filenames.xml:367 1.7317 +#: ../en/ch06-filenames.xml:367 1.7318 msgid "Fixing a case conflict" 1.7319 msgstr "修正大小写冲突" 1.7320 1.7321 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7322 -#: ../en/ch07-filenames.xml:369 1.7323 +#: ../en/ch06-filenames.xml:369 1.7324 msgid "" 1.7325 "If you are using Windows or a Mac in a mixed environment where some of your " 1.7326 "collaborators are using Linux or Unix, and Mercurial reports a case folding " 1.7327 @@ -8106,7 +7189,7 @@ 1.7328 msgstr "" 1.7329 1.7330 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7331 -#: ../en/ch07-filenames.xml:376 1.7332 +#: ../en/ch06-filenames.xml:376 1.7333 msgid "" 1.7334 "Just find a nearby Linux or Unix box, clone the problem repository onto it, " 1.7335 "and use Mercurial's <command role=\"hg-cmd\">hg rename</command> command to " 1.7336 @@ -8118,7 +7201,7 @@ 1.7337 msgstr "" 1.7338 1.7339 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7340 -#: ../en/ch07-filenames.xml:386 1.7341 +#: ../en/ch06-filenames.xml:386 1.7342 msgid "" 1.7343 "The changeset with case-conflicting names will remain in your project's " 1.7344 "history, and you still won't be able to <command role=\"hg-cmd\">hg update</" 1.7345 @@ -8127,7 +7210,7 @@ 1.7346 msgstr "" 1.7347 1.7348 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.7349 -#: ../en/ch07-filenames.xml:393 1.7350 +#: ../en/ch06-filenames.xml:393 1.7351 msgid "" 1.7352 "Prior to version 0.9.3, Mercurial did not use a case safe repository storage " 1.7353 "mechanism, and did not detect case folding conflicts. If you are using an " 1.7354 @@ -8136,12 +7219,12 @@ 1.7355 msgstr "" 1.7356 1.7357 #. type: Content of: <book><chapter><title> 1.7358 -#: ../en/ch08-branch.xml:5 1.7359 +#: ../en/ch07-branch.xml:5 1.7360 msgid "Managing releases and branchy development" 1.7361 msgstr "发布管理与分支开发" 1.7362 1.7363 #. type: Content of: <book><chapter><para> 1.7364 -#: ../en/ch08-branch.xml:7 1.7365 +#: ../en/ch07-branch.xml:7 1.7366 msgid "" 1.7367 "Mercurial provides several mechanisms for you to manage a project that is " 1.7368 "making progress on multiple fronts at once. To understand these mechanisms, " 1.7369 @@ -8149,7 +7232,7 @@ 1.7370 msgstr "" 1.7371 1.7372 #. type: Content of: <book><chapter><para> 1.7373 -#: ../en/ch08-branch.xml:12 1.7374 +#: ../en/ch07-branch.xml:12 1.7375 msgid "" 1.7376 "Many software projects issue periodic <quote>major</quote> releases that " 1.7377 "contain substantial new features. In parallel, they may issue <quote>minor</" 1.7378 @@ -8158,7 +7241,7 @@ 1.7379 msgstr "" 1.7380 1.7381 #. type: Content of: <book><chapter><para> 1.7382 -#: ../en/ch08-branch.xml:18 1.7383 +#: ../en/ch07-branch.xml:18 1.7384 msgid "" 1.7385 "In this chapter, we'll start by talking about how to keep records of project " 1.7386 "milestones such as releases. We'll then continue on to talk about the flow " 1.7387 @@ -8167,12 +7250,12 @@ 1.7388 msgstr "" 1.7389 1.7390 #. type: Content of: <book><chapter><sect1><title> 1.7391 -#: ../en/ch08-branch.xml:25 1.7392 +#: ../en/ch07-branch.xml:25 1.7393 msgid "Giving a persistent name to a revision" 1.7394 msgstr "给版本指定一个永久的名称" 1.7395 1.7396 #. type: Content of: <book><chapter><sect1><para> 1.7397 -#: ../en/ch08-branch.xml:27 1.7398 +#: ../en/ch07-branch.xml:27 1.7399 msgid "" 1.7400 "Once you decide that you'd like to call a particular revision a " 1.7401 "<quote>release</quote>, it's a good idea to record the identity of that " 1.7402 @@ -8183,7 +7266,7 @@ 1.7403 1.7404 # 1.7405 #. type: Content of: <book><chapter><sect1><para> 1.7406 -#: ../en/ch08-branch.xml:34 1.7407 +#: ../en/ch07-branch.xml:34 1.7408 msgid "" 1.7409 "Mercurial lets you give a permanent name to any revision using the <command " 1.7410 "role=\"hg-cmd\">hg tag</command> command. Not surprisingly, these names are " 1.7411 @@ -8191,7 +7274,7 @@ 1.7412 msgstr "" 1.7413 1.7414 #. type: Content of: <book><chapter><sect1><para> 1.7415 -#: ../en/ch08-branch.xml:40 1.7416 +#: ../en/ch07-branch.xml:40 1.7417 msgid "" 1.7418 "A tag is nothing more than a <quote>symbolic name</quote> for a revision. " 1.7419 "Tags exist purely for your convenience, so that you have a handy permanent " 1.7420 @@ -8202,22 +7285,22 @@ 1.7421 msgstr "" 1.7422 1.7423 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7424 -#: ../en/ch08-branch.xml:49 1.7425 +#: ../en/ch07-branch.xml:49 1.7426 msgid "Colon (ASCII 58, <quote><literal>:</literal></quote>)" 1.7427 msgstr "" 1.7428 1.7429 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7430 -#: ../en/ch08-branch.xml:52 1.7431 +#: ../en/ch07-branch.xml:52 1.7432 msgid "Carriage return (ASCII 13, <quote><literal>\\r</literal></quote>)" 1.7433 msgstr "" 1.7434 1.7435 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7436 -#: ../en/ch08-branch.xml:55 1.7437 +#: ../en/ch07-branch.xml:55 1.7438 msgid "Newline (ASCII 10, <quote><literal>\\n</literal></quote>)" 1.7439 msgstr "" 1.7440 1.7441 #. type: Content of: <book><chapter><sect1><para> 1.7442 -#: ../en/ch08-branch.xml:59 1.7443 +#: ../en/ch07-branch.xml:59 1.7444 msgid "" 1.7445 "You can use the <command role=\"hg-cmd\">hg tags</command> command to display " 1.7446 "the tags present in your repository. In the output, each tagged revision is " 1.7447 @@ -8226,7 +7309,7 @@ 1.7448 msgstr "" 1.7449 1.7450 #. type: Content of: <book><chapter><sect1><para> 1.7451 -#: ../en/ch08-branch.xml:67 1.7452 +#: ../en/ch07-branch.xml:67 1.7453 msgid "" 1.7454 "Notice that <literal>tip</literal> is listed in the output of <command role=" 1.7455 "\"hg-cmd\">hg tags</command>. The <literal>tip</literal> tag is a special " 1.7456 @@ -8235,7 +7318,7 @@ 1.7457 msgstr "" 1.7458 1.7459 #. type: Content of: <book><chapter><sect1><para> 1.7460 -#: ../en/ch08-branch.xml:73 1.7461 +#: ../en/ch07-branch.xml:73 1.7462 msgid "" 1.7463 "In the output of the <command role=\"hg-cmd\">hg tags</command> command, tags " 1.7464 "are listed in reverse order, by revision number. This usually means that " 1.7465 @@ -8245,7 +7328,7 @@ 1.7466 msgstr "" 1.7467 1.7468 #. type: Content of: <book><chapter><sect1><para> 1.7469 -#: ../en/ch08-branch.xml:80 1.7470 +#: ../en/ch07-branch.xml:80 1.7471 msgid "" 1.7472 "When you run <command role=\"hg-cmd\">hg log</command>, if it displays a " 1.7473 "revision that has tags associated with it, it will print those tags." 1.7474 @@ -8253,7 +7336,7 @@ 1.7475 1.7476 # 1.7477 #. type: Content of: <book><chapter><sect1><para> 1.7478 -#: ../en/ch08-branch.xml:86 1.7479 +#: ../en/ch07-branch.xml:86 1.7480 msgid "" 1.7481 "Any time you need to provide a revision ID to a Mercurial command, the " 1.7482 "command will accept a tag name in its place. Internally, Mercurial will " 1.7483 @@ -8261,7 +7344,7 @@ 1.7484 msgstr "" 1.7485 1.7486 #. type: Content of: <book><chapter><sect1><para> 1.7487 -#: ../en/ch08-branch.xml:93 1.7488 +#: ../en/ch07-branch.xml:93 1.7489 msgid "" 1.7490 "There's no limit on the number of tags you can have in a repository, or on " 1.7491 "the number of tags that a single revision can have. As a practical matter, " 1.7492 @@ -8272,7 +7355,7 @@ 1.7493 msgstr "" 1.7494 1.7495 #. type: Content of: <book><chapter><sect1><para> 1.7496 -#: ../en/ch08-branch.xml:101 1.7497 +#: ../en/ch07-branch.xml:101 1.7498 msgid "" 1.7499 "For example, if your project has milestones as frequent as every few days, " 1.7500 "it's perfectly reasonable to tag each one of those. But if you have a " 1.7501 @@ -8283,14 +7366,14 @@ 1.7502 msgstr "" 1.7503 1.7504 #. type: Content of: <book><chapter><sect1><para> 1.7505 -#: ../en/ch08-branch.xml:109 1.7506 +#: ../en/ch07-branch.xml:109 1.7507 msgid "" 1.7508 "If you want to remove a tag that you no longer want, use <command role=\"hg-" 1.7509 "cmd\">hg tag --remove</command>." 1.7510 msgstr "" 1.7511 1.7512 #. type: Content of: <book><chapter><sect1><para> 1.7513 -#: ../en/ch08-branch.xml:114 1.7514 +#: ../en/ch07-branch.xml:114 1.7515 msgid "" 1.7516 "You can also modify a tag at any time, so that it identifies a different " 1.7517 "revision, by simply issuing a new <command role=\"hg-cmd\">hg tag</command> " 1.7518 @@ -8300,7 +7383,7 @@ 1.7519 msgstr "" 1.7520 1.7521 #. type: Content of: <book><chapter><sect1><para> 1.7522 -#: ../en/ch08-branch.xml:123 1.7523 +#: ../en/ch07-branch.xml:123 1.7524 msgid "" 1.7525 "There will still be a permanent record of the previous identity of the tag, " 1.7526 "but Mercurial will no longer use it. There's thus no penalty to tagging the " 1.7527 @@ -8310,7 +7393,7 @@ 1.7528 1.7529 # 1.7530 #. type: Content of: <book><chapter><sect1><para> 1.7531 -#: ../en/ch08-branch.xml:129 1.7532 +#: ../en/ch07-branch.xml:129 1.7533 msgid "" 1.7534 "Mercurial stores tags in a normal revision-controlled file in your " 1.7535 "repository. If you've created any tags, you'll find them in a file named " 1.7536 @@ -8322,12 +7405,12 @@ 1.7537 msgstr "" 1.7538 1.7539 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7540 -#: ../en/ch08-branch.xml:142 1.7541 +#: ../en/ch07-branch.xml:142 1.7542 msgid "Handling tag conflicts during a merge" 1.7543 msgstr "在合并期间处理标签冲突" 1.7544 1.7545 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7546 -#: ../en/ch08-branch.xml:144 1.7547 +#: ../en/ch07-branch.xml:144 1.7548 msgid "" 1.7549 "You won't often need to care about the <filename role=\"special\">.hgtags</" 1.7550 "filename> file, but it sometimes makes its presence known during a merge. " 1.7551 @@ -8337,7 +7420,7 @@ 1.7552 msgstr "" 1.7553 1.7554 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7555 -#: ../en/ch08-branch.xml:151 1.7556 +#: ../en/ch07-branch.xml:151 1.7557 msgid "" 1.7558 "If you're resolving a conflict in the <filename role=\"special\">.hgtags</" 1.7559 "filename> file during a merge, there's one twist to modifying the <filename " 1.7560 @@ -8348,7 +7431,7 @@ 1.7561 msgstr "" 1.7562 1.7563 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7564 -#: ../en/ch08-branch.xml:161 1.7565 +#: ../en/ch07-branch.xml:161 1.7566 msgid "" 1.7567 "An unfortunate consequence of this design is that you can't actually verify " 1.7568 "that your merged <filename role=\"special\">.hgtags</filename> file is " 1.7569 @@ -8362,12 +7445,12 @@ 1.7570 msgstr "" 1.7571 1.7572 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7573 -#: ../en/ch08-branch.xml:176 1.7574 +#: ../en/ch07-branch.xml:176 1.7575 msgid "Tags and cloning" 1.7576 msgstr "标签与克隆" 1.7577 1.7578 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7579 -#: ../en/ch08-branch.xml:178 1.7580 +#: ../en/ch07-branch.xml:178 1.7581 msgid "" 1.7582 "You may have noticed that the <command role=\"hg-cmd\">hg clone</command> " 1.7583 "command has a <option role=\"hg-opt-clone\">-r</option> option that lets you " 1.7584 @@ -8377,7 +7460,7 @@ 1.7585 msgstr "" 1.7586 1.7587 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7588 -#: ../en/ch08-branch.xml:186 1.7589 +#: ../en/ch07-branch.xml:186 1.7590 msgid "" 1.7591 "Recall that a tag is stored as a revision to the <filename role=\"special\">." 1.7592 "hgtags</filename> file, so that when you create a tag, the changeset in which " 1.7593 @@ -8391,12 +7474,12 @@ 1.7594 msgstr "" 1.7595 1.7596 #. type: Content of: <book><chapter><sect1><sect2><title> 1.7597 -#: ../en/ch08-branch.xml:201 1.7598 +#: ../en/ch07-branch.xml:201 1.7599 msgid "When permanent tags are too much" 1.7600 msgstr "当永久标签太多的时候" 1.7601 1.7602 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7603 -#: ../en/ch08-branch.xml:203 1.7604 +#: ../en/ch07-branch.xml:203 1.7605 msgid "" 1.7606 "Since Mercurial's tags are revision controlled and carried around with a " 1.7607 "project's history, everyone you work with will see the tags you create. But " 1.7608 @@ -8407,7 +7490,7 @@ 1.7609 msgstr "" 1.7610 1.7611 #. type: Content of: <book><chapter><sect1><sect2><para> 1.7612 -#: ../en/ch08-branch.xml:213 1.7613 +#: ../en/ch07-branch.xml:213 1.7614 msgid "" 1.7615 "For cases like this, what you might want to use are <emphasis>local</" 1.7616 "emphasis> tags. You can create a local tag with the <option role=\"hg-opt-tag" 1.7617 @@ -8421,12 +7504,12 @@ 1.7618 msgstr "" 1.7619 1.7620 #. type: Content of: <book><chapter><sect1><title> 1.7621 -#: ../en/ch08-branch.xml:228 1.7622 +#: ../en/ch07-branch.xml:228 1.7623 msgid "The flow of changes&emdash;big picture vs. little" 1.7624 msgstr "修改流程&emdash;宏观与微观" 1.7625 1.7626 #. type: Content of: <book><chapter><sect1><para> 1.7627 -#: ../en/ch08-branch.xml:230 1.7628 +#: ../en/ch07-branch.xml:230 1.7629 msgid "" 1.7630 "To return to the outline I sketched at the beginning of a chapter, let's " 1.7631 "think about a project that has multiple concurrent pieces of work under " 1.7632 @@ -8434,7 +7517,7 @@ 1.7633 msgstr "" 1.7634 1.7635 #. type: Content of: <book><chapter><sect1><para> 1.7636 -#: ../en/ch08-branch.xml:234 1.7637 +#: ../en/ch07-branch.xml:234 1.7638 msgid "" 1.7639 "There might be a push for a new <quote>main</quote> release; a new minor " 1.7640 "bugfix release to the last main release; and an unexpected <quote>hot fix</" 1.7641 @@ -8442,7 +7525,7 @@ 1.7642 msgstr "" 1.7643 1.7644 #. type: Content of: <book><chapter><sect1><para> 1.7645 -#: ../en/ch08-branch.xml:239 1.7646 +#: ../en/ch07-branch.xml:239 1.7647 msgid "" 1.7648 "The usual way people refer to these different concurrent directions of " 1.7649 "development is as <quote>branches</quote>. However, we've already seen " 1.7650 @@ -8452,14 +7535,14 @@ 1.7651 msgstr "" 1.7652 1.7653 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7654 -#: ../en/ch08-branch.xml:246 1.7655 +#: ../en/ch07-branch.xml:246 1.7656 msgid "" 1.7657 "<quote>Big picture</quote> branches represent the sweep of a project's " 1.7658 "evolution; people give them names, and talk about them in conversation." 1.7659 msgstr "" 1.7660 1.7661 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.7662 -#: ../en/ch08-branch.xml:250 1.7663 +#: ../en/ch07-branch.xml:250 1.7664 msgid "" 1.7665 "<quote>Little picture</quote> branches are artefacts of the day-to-day " 1.7666 "activity of developing and merging changes. They expose the narrative of how " 1.7667 @@ -8467,12 +7550,12 @@ 1.7668 msgstr "" 1.7669 1.7670 #. type: Content of: <book><chapter><sect1><title> 1.7671 -#: ../en/ch08-branch.xml:258 1.7672 +#: ../en/ch07-branch.xml:258 1.7673 msgid "Managing big-picture branches in repositories" 1.7674 msgstr "在版本库中管理分支" 1.7675 1.7676 #. type: Content of: <book><chapter><sect1><para> 1.7677 -#: ../en/ch08-branch.xml:260 1.7678 +#: ../en/ch07-branch.xml:260 1.7679 msgid "" 1.7680 "The easiest way to isolate a <quote>big picture</quote> branch in Mercurial " 1.7681 "is in a dedicated repository. If you have an existing shared " 1.7682 @@ -8483,14 +7566,14 @@ 1.7683 msgstr "" 1.7684 1.7685 #. type: Content of: <book><chapter><sect1><para> 1.7686 -#: ../en/ch08-branch.xml:270 1.7687 +#: ../en/ch07-branch.xml:270 1.7688 msgid "" 1.7689 "You can then clone a new shared <literal>myproject-1.0.1</literal> repository " 1.7690 "as of that tag." 1.7691 msgstr "" 1.7692 1.7693 #. type: Content of: <book><chapter><sect1><para> 1.7694 -#: ../en/ch08-branch.xml:276 1.7695 +#: ../en/ch07-branch.xml:276 1.7696 msgid "" 1.7697 "Afterwards, if someone needs to work on a bug fix that ought to go into an " 1.7698 "upcoming 1.0.1 minor release, they clone the <literal>myproject-1.0.1</" 1.7699 @@ -8498,19 +7581,19 @@ 1.7700 msgstr "" 1.7701 1.7702 #. type: Content of: <book><chapter><sect1><para> 1.7703 -#: ../en/ch08-branch.xml:283 1.7704 +#: ../en/ch07-branch.xml:283 1.7705 msgid "" 1.7706 "Meanwhile, development for the next major release can continue, isolated and " 1.7707 "unabated, in the <literal>myproject</literal> repository." 1.7708 msgstr "" 1.7709 1.7710 #. type: Content of: <book><chapter><sect1><title> 1.7711 -#: ../en/ch08-branch.xml:291 1.7712 +#: ../en/ch07-branch.xml:291 1.7713 msgid "Don't repeat yourself: merging across branches" 1.7714 msgstr "不要重复劳动:在分支间合并" 1.7715 1.7716 #. type: Content of: <book><chapter><sect1><para> 1.7717 -#: ../en/ch08-branch.xml:293 1.7718 +#: ../en/ch07-branch.xml:293 1.7719 msgid "" 1.7720 "In many cases, if you have a bug to fix on a maintenance branch, the chances " 1.7721 "are good that the bug exists on your project's main branch (and possibly " 1.7722 @@ -8520,26 +7603,26 @@ 1.7723 msgstr "" 1.7724 1.7725 #. type: Content of: <book><chapter><sect1><para> 1.7726 -#: ../en/ch08-branch.xml:301 1.7727 +#: ../en/ch07-branch.xml:301 1.7728 msgid "" 1.7729 "In the simplest instance, all you need to do is pull changes from your " 1.7730 "maintenance branch into your local clone of the target branch." 1.7731 msgstr "" 1.7732 1.7733 #. type: Content of: <book><chapter><sect1><para> 1.7734 -#: ../en/ch08-branch.xml:307 1.7735 +#: ../en/ch07-branch.xml:307 1.7736 msgid "" 1.7737 "You'll then need to merge the heads of the two branches, and push back to the " 1.7738 "main branch." 1.7739 msgstr "" 1.7740 1.7741 #. type: Content of: <book><chapter><sect1><title> 1.7742 -#: ../en/ch08-branch.xml:314 1.7743 +#: ../en/ch07-branch.xml:314 1.7744 msgid "Naming branches within one repository" 1.7745 msgstr "版本库中的命名分支" 1.7746 1.7747 #. type: Content of: <book><chapter><sect1><para> 1.7748 -#: ../en/ch08-branch.xml:316 1.7749 +#: ../en/ch07-branch.xml:316 1.7750 msgid "" 1.7751 "In most instances, isolating branches in repositories is the right approach. " 1.7752 "Its simplicity makes it easy to understand; and so it's hard to make " 1.7753 @@ -8549,7 +7632,7 @@ 1.7754 msgstr "" 1.7755 1.7756 #. type: Content of: <book><chapter><sect1><para> 1.7757 -#: ../en/ch08-branch.xml:323 1.7758 +#: ../en/ch07-branch.xml:323 1.7759 msgid "" 1.7760 "If you're more in the <quote>power user</quote> category (<emphasis>and</" 1.7761 "emphasis> your collaborators are too), there is an alternative way of " 1.7762 @@ -8562,7 +7645,7 @@ 1.7763 msgstr "" 1.7764 1.7765 #. type: Content of: <book><chapter><sect1><para> 1.7766 -#: ../en/ch08-branch.xml:334 1.7767 +#: ../en/ch07-branch.xml:334 1.7768 msgid "" 1.7769 "The key to working this way is that Mercurial lets you assign a persistent " 1.7770 "<emphasis>name</emphasis> to a branch. There always exists a branch named " 1.7771 @@ -8572,7 +7655,7 @@ 1.7772 msgstr "" 1.7773 1.7774 #. type: Content of: <book><chapter><sect1><para> 1.7775 -#: ../en/ch08-branch.xml:341 1.7776 +#: ../en/ch07-branch.xml:341 1.7777 msgid "" 1.7778 "As an example, when you run the <command role=\"hg-cmd\">hg commit</command> " 1.7779 "command, and it pops up your editor so that you can enter a commit message, " 1.7780 @@ -8582,7 +7665,7 @@ 1.7781 msgstr "" 1.7782 1.7783 #. type: Content of: <book><chapter><sect1><para> 1.7784 -#: ../en/ch08-branch.xml:348 1.7785 +#: ../en/ch07-branch.xml:348 1.7786 msgid "" 1.7787 "To start working with named branches, use the <command role=\"hg-cmd\">hg " 1.7788 "branches</command> command. This command lists the named branches already " 1.7789 @@ -8590,14 +7673,14 @@ 1.7790 msgstr "" 1.7791 1.7792 #. type: Content of: <book><chapter><sect1><para> 1.7793 -#: ../en/ch08-branch.xml:355 1.7794 +#: ../en/ch07-branch.xml:355 1.7795 msgid "" 1.7796 "Since you haven't created any named branches yet, the only one that exists is " 1.7797 "<literal>default</literal>." 1.7798 msgstr "" 1.7799 1.7800 #. type: Content of: <book><chapter><sect1><para> 1.7801 -#: ../en/ch08-branch.xml:358 1.7802 +#: ../en/ch07-branch.xml:358 1.7803 msgid "" 1.7804 "To find out what the <quote>current</quote> branch is, run the <command role=" 1.7805 "\"hg-cmd\">hg branch</command> command, giving it no arguments. This tells " 1.7806 @@ -8606,7 +7689,7 @@ 1.7807 1.7808 # 1.7809 #. type: Content of: <book><chapter><sect1><para> 1.7810 -#: ../en/ch08-branch.xml:365 1.7811 +#: ../en/ch07-branch.xml:365 1.7812 msgid "" 1.7813 "To create a new branch, run the <command role=\"hg-cmd\">hg branch</command> " 1.7814 "command again. This time, give it one argument: the name of the branch you " 1.7815 @@ -8614,7 +7697,7 @@ 1.7816 msgstr "" 1.7817 1.7818 #. type: Content of: <book><chapter><sect1><para> 1.7819 -#: ../en/ch08-branch.xml:371 1.7820 +#: ../en/ch07-branch.xml:371 1.7821 msgid "" 1.7822 "After you've created a branch, you might wonder what effect the <command role=" 1.7823 "\"hg-cmd\">hg branch</command> command has had. What do the <command role=" 1.7824 @@ -8623,7 +7706,7 @@ 1.7825 msgstr "" 1.7826 1.7827 #. type: Content of: <book><chapter><sect1><para> 1.7828 -#: ../en/ch08-branch.xml:378 1.7829 +#: ../en/ch07-branch.xml:378 1.7830 msgid "" 1.7831 "Nothing has changed in the working directory, and there's been no new history " 1.7832 "created. As this suggests, running the <command role=\"hg-cmd\">hg branch</" 1.7833 @@ -8632,7 +7715,7 @@ 1.7834 msgstr "" 1.7835 1.7836 #. type: Content of: <book><chapter><sect1><para> 1.7837 -#: ../en/ch08-branch.xml:385 1.7838 +#: ../en/ch07-branch.xml:385 1.7839 msgid "" 1.7840 "When you commit a change, Mercurial records the name of the branch on which " 1.7841 "you committed. Once you've switched from the <literal>default</literal> " 1.7842 @@ -8643,7 +7726,7 @@ 1.7843 msgstr "" 1.7844 1.7845 #. type: Content of: <book><chapter><sect1><para> 1.7846 -#: ../en/ch08-branch.xml:395 1.7847 +#: ../en/ch07-branch.xml:395 1.7848 msgid "" 1.7849 "The <command role=\"hg-cmd\">hg log</command>-like commands will print the " 1.7850 "branch name of every changeset that's not on the <literal>default</literal> " 1.7851 @@ -8652,7 +7735,7 @@ 1.7852 msgstr "" 1.7853 1.7854 #. type: Content of: <book><chapter><sect1><para> 1.7855 -#: ../en/ch08-branch.xml:400 1.7856 +#: ../en/ch07-branch.xml:400 1.7857 msgid "" 1.7858 "Once you've named a branch and committed a change with that name, every " 1.7859 "subsequent commit that descends from that change will inherit the same branch " 1.7860 @@ -8661,19 +7744,19 @@ 1.7861 msgstr "" 1.7862 1.7863 #. type: Content of: <book><chapter><sect1><para> 1.7864 -#: ../en/ch08-branch.xml:408 1.7865 +#: ../en/ch07-branch.xml:408 1.7866 msgid "" 1.7867 "In practice, this is something you won't do very often, as branch names tend " 1.7868 "to have fairly long lifetimes. (This isn't a rule, just an observation.)" 1.7869 msgstr "" 1.7870 1.7871 #. type: Content of: <book><chapter><sect1><title> 1.7872 -#: ../en/ch08-branch.xml:414 1.7873 +#: ../en/ch07-branch.xml:414 1.7874 msgid "Dealing with multiple named branches in a repository" 1.7875 msgstr "在版本库中处理多个命名分支" 1.7876 1.7877 #. type: Content of: <book><chapter><sect1><para> 1.7878 -#: ../en/ch08-branch.xml:417 1.7879 +#: ../en/ch07-branch.xml:417 1.7880 msgid "" 1.7881 "If you have more than one named branch in a repository, Mercurial will " 1.7882 "remember the branch that your working directory on when you start a command " 1.7883 @@ -8686,7 +7769,7 @@ 1.7884 msgstr "" 1.7885 1.7886 #. type: Content of: <book><chapter><sect1><para> 1.7887 -#: ../en/ch08-branch.xml:427 1.7888 +#: ../en/ch07-branch.xml:427 1.7889 msgid "" 1.7890 "This behaviour is a little subtle, so let's see it in action. First, let's " 1.7891 "remind ourselves what branch we're currently on, and what branches are in our " 1.7892 @@ -8694,14 +7777,14 @@ 1.7893 msgstr "" 1.7894 1.7895 #. type: Content of: <book><chapter><sect1><para> 1.7896 -#: ../en/ch08-branch.xml:433 1.7897 +#: ../en/ch07-branch.xml:433 1.7898 msgid "" 1.7899 "We're on the <literal>bar</literal> branch, but there also exists an older " 1.7900 "<command role=\"hg-cmd\">hg foo</command> branch." 1.7901 msgstr "" 1.7902 1.7903 #. type: Content of: <book><chapter><sect1><para> 1.7904 -#: ../en/ch08-branch.xml:437 1.7905 +#: ../en/ch07-branch.xml:437 1.7906 msgid "" 1.7907 "We can <command role=\"hg-cmd\">hg update</command> back and forth between " 1.7908 "the tips of the <literal>foo</literal> and <literal>bar</literal> branches " 1.7909 @@ -8712,7 +7795,7 @@ 1.7910 1.7911 # 1.7912 #. type: Content of: <book><chapter><sect1><para> 1.7913 -#: ../en/ch08-branch.xml:446 1.7914 +#: ../en/ch07-branch.xml:446 1.7915 msgid "" 1.7916 "If we go back to the <literal>foo</literal> branch and then run <command role=" 1.7917 "\"hg-cmd\">hg update</command>, it will keep us on <literal>foo</literal>, " 1.7918 @@ -8721,19 +7804,19 @@ 1.7919 1.7920 # 1.7921 #. type: Content of: <book><chapter><sect1><para> 1.7922 -#: ../en/ch08-branch.xml:453 1.7923 +#: ../en/ch07-branch.xml:453 1.7924 msgid "" 1.7925 "Committing a new change on the <literal>foo</literal> branch introduces a new " 1.7926 "head." 1.7927 msgstr "" 1.7928 1.7929 #. type: Content of: <book><chapter><sect1><title> 1.7930 -#: ../en/ch08-branch.xml:460 1.7931 +#: ../en/ch07-branch.xml:460 1.7932 msgid "Branch names and merging" 1.7933 msgstr "分支名称与合并" 1.7934 1.7935 #. type: Content of: <book><chapter><sect1><para> 1.7936 -#: ../en/ch08-branch.xml:462 1.7937 +#: ../en/ch07-branch.xml:462 1.7938 msgid "" 1.7939 "As you've probably noticed, merges in Mercurial are not symmetrical. Let's " 1.7940 "say our repository has two heads, 17 and 23. If I <command role=\"hg-cmd" 1.7941 @@ -8745,7 +7828,7 @@ 1.7942 msgstr "" 1.7943 1.7944 #. type: Content of: <book><chapter><sect1><para> 1.7945 -#: ../en/ch08-branch.xml:472 1.7946 +#: ../en/ch07-branch.xml:472 1.7947 msgid "" 1.7948 "This affects Mercurial's choice of branch name when you merge. After a " 1.7949 "merge, Mercurial will retain the branch name of the first parent when you " 1.7950 @@ -8755,7 +7838,7 @@ 1.7951 msgstr "" 1.7952 1.7953 #. type: Content of: <book><chapter><sect1><para> 1.7954 -#: ../en/ch08-branch.xml:479 1.7955 +#: ../en/ch07-branch.xml:479 1.7956 msgid "" 1.7957 "It's not unusual for a repository to contain multiple heads, each with the " 1.7958 "same branch name. Let's say I'm working on the <literal>foo</literal> " 1.7959 @@ -8767,7 +7850,7 @@ 1.7960 1.7961 # 1.7962 #. type: Content of: <book><chapter><sect1><para> 1.7963 -#: ../en/ch08-branch.xml:487 1.7964 +#: ../en/ch07-branch.xml:487 1.7965 msgid "" 1.7966 "But if I'm working on the <literal>bar</literal> branch, and I merge work " 1.7967 "from the <literal>foo</literal> branch, the result will remain on the " 1.7968 @@ -8775,7 +7858,7 @@ 1.7969 msgstr "" 1.7970 1.7971 #. type: Content of: <book><chapter><sect1><para> 1.7972 -#: ../en/ch08-branch.xml:493 1.7973 +#: ../en/ch07-branch.xml:493 1.7974 msgid "" 1.7975 "To give a more concrete example, if I'm working on the <literal>bleeding-" 1.7976 "edge</literal> branch, and I want to bring in the latest fixes from the " 1.7977 @@ -8785,12 +7868,12 @@ 1.7978 msgstr "" 1.7979 1.7980 #. type: Content of: <book><chapter><sect1><title> 1.7981 -#: ../en/ch08-branch.xml:502 1.7982 +#: ../en/ch07-branch.xml:502 1.7983 msgid "Branch naming is generally useful" 1.7984 msgstr "分支名称通常都很有用" 1.7985 1.7986 #. type: Content of: <book><chapter><sect1><para> 1.7987 -#: ../en/ch08-branch.xml:504 1.7988 +#: ../en/ch07-branch.xml:504 1.7989 msgid "" 1.7990 "You shouldn't think of named branches as applicable only to situations where " 1.7991 "you have multiple long-lived branches cohabiting in a single repository. " 1.7992 @@ -8798,7 +7881,7 @@ 1.7993 msgstr "" 1.7994 1.7995 #. type: Content of: <book><chapter><sect1><para> 1.7996 -#: ../en/ch08-branch.xml:509 1.7997 +#: ../en/ch07-branch.xml:509 1.7998 msgid "" 1.7999 "In the simplest case, giving a name to each branch gives you a permanent " 1.8000 "record of which branch a changeset originated on. This gives you more " 1.8001 @@ -8807,7 +7890,7 @@ 1.8002 msgstr "" 1.8003 1.8004 #. type: Content of: <book><chapter><sect1><para> 1.8005 -#: ../en/ch08-branch.xml:514 1.8006 +#: ../en/ch07-branch.xml:514 1.8007 msgid "" 1.8008 "If you're working with shared repositories, you can set up a <literal role=" 1.8009 "\"hook\">pretxnchangegroup</literal> hook on each that will block incoming " 1.8010 @@ -8819,12 +7902,12 @@ 1.8011 msgstr "" 1.8012 1.8013 #. type: Content of: <book><chapter><title> 1.8014 -#: ../en/ch09-undo.xml:5 1.8015 +#: ../en/ch08-undo.xml:5 1.8016 msgid "Finding and fixing mistakes" 1.8017 msgstr "查找和修改错误" 1.8018 1.8019 #. type: Content of: <book><chapter><para> 1.8020 -#: ../en/ch09-undo.xml:7 1.8021 +#: ../en/ch08-undo.xml:7 1.8022 msgid "" 1.8023 "To err might be human, but to really handle the consequences well takes a top-" 1.8024 "notch revision control system. In this chapter, we'll discuss some of the " 1.8025 @@ -8834,17 +7917,17 @@ 1.8026 msgstr "" 1.8027 1.8028 #. type: Content of: <book><chapter><sect1><title> 1.8029 -#: ../en/ch09-undo.xml:15 1.8030 +#: ../en/ch08-undo.xml:15 1.8031 msgid "Erasing local history" 1.8032 msgstr "销毁本地历史" 1.8033 1.8034 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8035 -#: ../en/ch09-undo.xml:18 1.8036 +#: ../en/ch08-undo.xml:18 1.8037 msgid "The accidental commit" 1.8038 msgstr "意外的提交" 1.8039 1.8040 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8041 -#: ../en/ch09-undo.xml:20 1.8042 +#: ../en/ch08-undo.xml:20 1.8043 msgid "" 1.8044 "I have the occasional but persistent problem of typing rather more quickly " 1.8045 "than I can think, which sometimes results in me committing a changeset that " 1.8046 @@ -8855,12 +7938,12 @@ 1.8047 msgstr "" 1.8048 1.8049 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8050 -#: ../en/ch09-undo.xml:31 1.8051 +#: ../en/ch08-undo.xml:31 1.8052 msgid "Rolling back a transaction" 1.8053 msgstr "回滚一个事务" 1.8054 1.8055 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8056 -#: ../en/ch09-undo.xml:33 1.8057 +#: ../en/ch08-undo.xml:33 1.8058 msgid "" 1.8059 "In section <xref linkend=\"sec.concepts.txn\"/>, I mentioned that Mercurial " 1.8060 "treats each modification of a repository as a <emphasis>transaction</" 1.8061 @@ -8873,7 +7956,7 @@ 1.8062 msgstr "" 1.8063 1.8064 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8065 -#: ../en/ch09-undo.xml:43 1.8066 +#: ../en/ch08-undo.xml:43 1.8067 msgid "" 1.8068 "Here's a mistake that I often find myself making: committing a change in " 1.8069 "which I've created a new file, but forgotten to <command role=\"hg-cmd\">hg " 1.8070 @@ -8881,14 +7964,14 @@ 1.8071 msgstr "" 1.8072 1.8073 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8074 -#: ../en/ch09-undo.xml:50 1.8075 +#: ../en/ch08-undo.xml:50 1.8076 msgid "" 1.8077 "Looking at the output of <command role=\"hg-cmd\">hg status</command> after " 1.8078 "the commit immediately confirms the error." 1.8079 msgstr "" 1.8080 1.8081 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8082 -#: ../en/ch09-undo.xml:56 1.8083 +#: ../en/ch08-undo.xml:56 1.8084 msgid "" 1.8085 "The commit captured the changes to the file <filename>a</filename>, but not " 1.8086 "the new file <filename>b</filename>. If I were to push this changeset to a " 1.8087 @@ -8899,7 +7982,7 @@ 1.8088 msgstr "" 1.8089 1.8090 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8091 -#: ../en/ch09-undo.xml:65 1.8092 +#: ../en/ch08-undo.xml:65 1.8093 msgid "" 1.8094 "However, luck is with me&emdash;I've caught my error before I pushed the " 1.8095 "changeset. I use the <command role=\"hg-cmd\">hg rollback</command> command, " 1.8096 @@ -8907,7 +7990,7 @@ 1.8097 msgstr "" 1.8098 1.8099 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8100 -#: ../en/ch09-undo.xml:72 1.8101 +#: ../en/ch08-undo.xml:72 1.8102 msgid "" 1.8103 "Notice that the changeset is no longer present in the repository's history, " 1.8104 "and the working directory once again thinks that the file <filename>a</" 1.8105 @@ -8918,12 +8001,12 @@ 1.8106 msgstr "" 1.8107 1.8108 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8109 -#: ../en/ch09-undo.xml:85 1.8110 +#: ../en/ch08-undo.xml:85 1.8111 msgid "The erroneous pull" 1.8112 msgstr "错误的抓取" 1.8113 1.8114 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8115 -#: ../en/ch09-undo.xml:87 1.8116 +#: ../en/ch08-undo.xml:87 1.8117 msgid "" 1.8118 "It's common practice with Mercurial to maintain separate development branches " 1.8119 "of a project in different repositories. Your development team might have one " 1.8120 @@ -8932,7 +8015,7 @@ 1.8121 msgstr "" 1.8122 1.8123 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8124 -#: ../en/ch09-undo.xml:94 1.8125 +#: ../en/ch08-undo.xml:94 1.8126 msgid "" 1.8127 "Given this, you can imagine that the consequences could be messy if you had a " 1.8128 "local <quote>0.9</quote> repository, and accidentally pulled changes from the " 1.8129 @@ -8945,7 +8028,7 @@ 1.8130 msgstr "" 1.8131 1.8132 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8133 -#: ../en/ch09-undo.xml:106 1.8134 +#: ../en/ch08-undo.xml:106 1.8135 msgid "" 1.8136 "The <command role=\"hg-cmd\">hg rollback</command> command will work nicely " 1.8137 "to expunge all of the changesets that you just pulled. Mercurial groups all " 1.8138 @@ -8955,12 +8038,12 @@ 1.8139 msgstr "" 1.8140 1.8141 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8142 -#: ../en/ch09-undo.xml:115 1.8143 +#: ../en/ch08-undo.xml:115 1.8144 msgid "Rolling back is useless once you've pushed" 1.8145 msgstr "当完成推送后,回滚是无效的" 1.8146 1.8147 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8148 -#: ../en/ch09-undo.xml:117 1.8149 +#: ../en/ch08-undo.xml:117 1.8150 msgid "" 1.8151 "The value of the <command role=\"hg-cmd\">hg rollback</command> command drops " 1.8152 "to zero once you've pushed your changes to another repository. Rolling back " 1.8153 @@ -8971,7 +8054,7 @@ 1.8154 msgstr "" 1.8155 1.8156 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8157 -#: ../en/ch09-undo.xml:126 1.8158 +#: ../en/ch08-undo.xml:126 1.8159 msgid "" 1.8160 "If you've pushed a change to another repository&emdash;particularly if it's a " 1.8161 "shared repository&emdash;it has essentially <quote>escaped into the wild,</" 1.8162 @@ -8982,7 +8065,7 @@ 1.8163 msgstr "" 1.8164 1.8165 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8166 -#: ../en/ch09-undo.xml:135 1.8167 +#: ../en/ch08-undo.xml:135 1.8168 msgid "" 1.8169 "(If you absolutely know for sure that the change you want to roll back is the " 1.8170 "most recent change in the repository that you pushed to, <emphasis>and</" 1.8171 @@ -8994,12 +8077,12 @@ 1.8172 msgstr "" 1.8173 1.8174 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8175 -#: ../en/ch09-undo.xml:147 1.8176 +#: ../en/ch08-undo.xml:147 1.8177 msgid "You can only roll back once" 1.8178 msgstr "你只能回滚一次" 1.8179 1.8180 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8181 -#: ../en/ch09-undo.xml:149 1.8182 +#: ../en/ch08-undo.xml:149 1.8183 msgid "" 1.8184 "Mercurial stores exactly one transaction in its transaction log; that " 1.8185 "transaction is the most recent one that occurred in the repository. This " 1.8186 @@ -9009,19 +8092,19 @@ 1.8187 msgstr "" 1.8188 1.8189 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8190 -#: ../en/ch09-undo.xml:158 1.8191 +#: ../en/ch08-undo.xml:158 1.8192 msgid "" 1.8193 "Once you've rolled back one transaction in a repository, you can't roll back " 1.8194 "again in that repository until you perform another commit or pull." 1.8195 msgstr "" 1.8196 1.8197 #. type: Content of: <book><chapter><sect1><title> 1.8198 -#: ../en/ch09-undo.xml:165 1.8199 +#: ../en/ch08-undo.xml:165 1.8200 msgid "Reverting the mistaken change" 1.8201 msgstr "撤销错误的修改" 1.8202 1.8203 #. type: Content of: <book><chapter><sect1><para> 1.8204 -#: ../en/ch09-undo.xml:167 1.8205 +#: ../en/ch08-undo.xml:167 1.8206 msgid "" 1.8207 "If you make a modification to a file, and decide that you really didn't want " 1.8208 "to change the file at all, and you haven't yet committed your changes, the " 1.8209 @@ -9033,7 +8116,7 @@ 1.8210 msgstr "" 1.8211 1.8212 #. type: Content of: <book><chapter><sect1><para> 1.8213 -#: ../en/ch09-undo.xml:176 1.8214 +#: ../en/ch08-undo.xml:176 1.8215 msgid "" 1.8216 "Let's illustrate how the <command role=\"hg-cmd\">hg revert</command> command " 1.8217 "works with yet another small example. We'll begin by modifying a file that " 1.8218 @@ -9041,14 +8124,14 @@ 1.8219 msgstr "" 1.8220 1.8221 #. type: Content of: <book><chapter><sect1><para> 1.8222 -#: ../en/ch09-undo.xml:183 1.8223 +#: ../en/ch08-undo.xml:183 1.8224 msgid "" 1.8225 "If we don't want that change, we can simply <command role=\"hg-cmd\">hg " 1.8226 "revert</command> the file." 1.8227 msgstr "" 1.8228 1.8229 #. type: Content of: <book><chapter><sect1><para> 1.8230 -#: ../en/ch09-undo.xml:189 1.8231 +#: ../en/ch08-undo.xml:189 1.8232 msgid "" 1.8233 "The <command role=\"hg-cmd\">hg revert</command> command provides us with an " 1.8234 "extra degree of safety by saving our modified file with a <filename>.orig</" 1.8235 @@ -9056,7 +8139,7 @@ 1.8236 msgstr "" 1.8237 1.8238 #. type: Content of: <book><chapter><sect1><para> 1.8239 -#: ../en/ch09-undo.xml:196 1.8240 +#: ../en/ch08-undo.xml:196 1.8241 msgid "" 1.8242 "Here is a summary of the cases that the <command role=\"hg-cmd\">hg revert</" 1.8243 "command> command can deal with. We will describe each of these in more " 1.8244 @@ -9064,26 +8147,26 @@ 1.8245 msgstr "" 1.8246 1.8247 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8248 -#: ../en/ch09-undo.xml:201 1.8249 +#: ../en/ch08-undo.xml:201 1.8250 msgid "If you modify a file, it will restore the file to its unmodified state." 1.8251 msgstr "" 1.8252 1.8253 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8254 -#: ../en/ch09-undo.xml:204 1.8255 +#: ../en/ch08-undo.xml:204 1.8256 msgid "" 1.8257 "If you <command role=\"hg-cmd\">hg add</command> a file, it will undo the " 1.8258 "<quote>added</quote> state of the file, but leave the file itself untouched." 1.8259 msgstr "" 1.8260 1.8261 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8262 -#: ../en/ch09-undo.xml:208 1.8263 +#: ../en/ch08-undo.xml:208 1.8264 msgid "" 1.8265 "If you delete a file without telling Mercurial, it will restore the file to " 1.8266 "its unmodified contents." 1.8267 msgstr "" 1.8268 1.8269 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8270 -#: ../en/ch09-undo.xml:211 1.8271 +#: ../en/ch08-undo.xml:211 1.8272 msgid "" 1.8273 "If you use the <command role=\"hg-cmd\">hg remove</command> command to remove " 1.8274 "a file, it will undo the <quote>removed</quote> state of the file, and " 1.8275 @@ -9091,12 +8174,12 @@ 1.8276 msgstr "" 1.8277 1.8278 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8279 -#: ../en/ch09-undo.xml:218 1.8280 +#: ../en/ch08-undo.xml:218 1.8281 msgid "File management errors" 1.8282 msgstr "文件管理错误" 1.8283 1.8284 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8285 -#: ../en/ch09-undo.xml:220 1.8286 +#: ../en/ch08-undo.xml:220 1.8287 msgid "" 1.8288 "The <command role=\"hg-cmd\">hg revert</command> command is useful for more " 1.8289 "than just modified files. It lets you reverse the results of all of " 1.8290 @@ -9106,7 +8189,7 @@ 1.8291 1.8292 # 1.8293 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8294 -#: ../en/ch09-undo.xml:226 1.8295 +#: ../en/ch08-undo.xml:226 1.8296 msgid "" 1.8297 "If you <command role=\"hg-cmd\">hg add</command> a file, then decide that in " 1.8298 "fact you don't want Mercurial to track it, use <command role=\"hg-cmd\">hg " 1.8299 @@ -9115,7 +8198,7 @@ 1.8300 msgstr "" 1.8301 1.8302 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8303 -#: ../en/ch09-undo.xml:234 1.8304 +#: ../en/ch08-undo.xml:234 1.8305 msgid "" 1.8306 "Similarly, if you ask Mercurial to <command role=\"hg-cmd\">hg remove</" 1.8307 "command> a file, you can use <command role=\"hg-cmd\">hg revert</command> to " 1.8308 @@ -9127,7 +8210,7 @@ 1.8309 1.8310 # 1.8311 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8312 -#: ../en/ch09-undo.xml:245 1.8313 +#: ../en/ch08-undo.xml:245 1.8314 msgid "" 1.8315 "If you revert a <command role=\"hg-cmd\">hg copy</command>, the copied-to " 1.8316 "file remains in your working directory afterwards, untracked. Since a copy " 1.8317 @@ -9136,12 +8219,12 @@ 1.8318 msgstr "" 1.8319 1.8320 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.8321 -#: ../en/ch09-undo.xml:254 1.8322 +#: ../en/ch08-undo.xml:254 1.8323 msgid "A slightly special case: reverting a rename" 1.8324 msgstr "一个稍微特别的案例:撤销改名" 1.8325 1.8326 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8327 -#: ../en/ch09-undo.xml:256 1.8328 +#: ../en/ch08-undo.xml:256 1.8329 msgid "" 1.8330 "If you <command role=\"hg-cmd\">hg rename</command> a file, there is one " 1.8331 "small detail that you should remember. When you <command role=\"hg-cmd\">hg " 1.8332 @@ -9150,7 +8233,7 @@ 1.8333 msgstr "" 1.8334 1.8335 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8336 -#: ../en/ch09-undo.xml:264 1.8337 +#: ../en/ch08-undo.xml:264 1.8338 msgid "" 1.8339 "As you can see from the output of <command role=\"hg-cmd\">hg status</" 1.8340 "command>, the renamed-to file is no longer identified as added, but the " 1.8341 @@ -9159,19 +8242,19 @@ 1.8342 msgstr "" 1.8343 1.8344 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8345 -#: ../en/ch09-undo.xml:273 1.8346 +#: ../en/ch08-undo.xml:273 1.8347 msgid "" 1.8348 "So remember, to revert a <command role=\"hg-cmd\">hg rename</command>, you " 1.8349 "must provide <emphasis>both</emphasis> the source and destination names." 1.8350 msgstr "" 1.8351 1.8352 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8353 -#: ../en/ch09-undo.xml:278 1.8354 +#: ../en/ch08-undo.xml:278 1.8355 msgid "% TODO: the output doesn't look like it will be removed!" 1.8356 msgstr "" 1.8357 1.8358 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8359 -#: ../en/ch09-undo.xml:281 1.8360 +#: ../en/ch08-undo.xml:281 1.8361 msgid "" 1.8362 "(By the way, if you rename a file, then modify the renamed-to file, then " 1.8363 "revert both components of the rename, when Mercurial restores the file that " 1.8364 @@ -9181,19 +8264,19 @@ 1.8365 msgstr "" 1.8366 1.8367 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8368 -#: ../en/ch09-undo.xml:288 1.8369 +#: ../en/ch08-undo.xml:288 1.8370 msgid "" 1.8371 "These fiddly aspects of reverting a rename arguably constitute a small bug in " 1.8372 "Mercurial." 1.8373 msgstr "" 1.8374 1.8375 #. type: Content of: <book><chapter><sect1><title> 1.8376 -#: ../en/ch09-undo.xml:295 1.8377 +#: ../en/ch08-undo.xml:295 1.8378 msgid "Dealing with committed changes" 1.8379 msgstr "处理已经提交的修改" 1.8380 1.8381 #. type: Content of: <book><chapter><sect1><para> 1.8382 -#: ../en/ch09-undo.xml:297 1.8383 +#: ../en/ch08-undo.xml:297 1.8384 msgid "" 1.8385 "Consider a case where you have committed a change $a$, and another change $b$ " 1.8386 "on top of it; you then realise that change $a$ was incorrect. Mercurial lets " 1.8387 @@ -9202,7 +8285,7 @@ 1.8388 msgstr "" 1.8389 1.8390 #. type: Content of: <book><chapter><sect1><para> 1.8391 -#: ../en/ch09-undo.xml:303 1.8392 +#: ../en/ch08-undo.xml:303 1.8393 msgid "" 1.8394 "Before you read this section, here's something to keep in mind: the <command " 1.8395 "role=\"hg-cmd\">hg backout</command> command undoes changes by " 1.8396 @@ -9213,12 +8296,12 @@ 1.8397 msgstr "" 1.8398 1.8399 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8400 -#: ../en/ch09-undo.xml:312 1.8401 +#: ../en/ch08-undo.xml:312 1.8402 msgid "Backing out a changeset" 1.8403 msgstr "恢复一个修改集" 1.8404 1.8405 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8406 -#: ../en/ch09-undo.xml:314 1.8407 +#: ../en/ch08-undo.xml:314 1.8408 msgid "" 1.8409 "The <command role=\"hg-cmd\">hg backout</command> command lets you " 1.8410 "<quote>undo</quote> the effects of an entire changeset in an automated " 1.8411 @@ -9230,7 +8313,7 @@ 1.8412 1.8413 # 1.8414 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8415 -#: ../en/ch09-undo.xml:323 1.8416 +#: ../en/ch08-undo.xml:323 1.8417 msgid "" 1.8418 "The operation of the <command role=\"hg-cmd\">hg backout</command> command is " 1.8419 "a little intricate, so let's illustrate it with some examples. First, we'll " 1.8420 @@ -9238,7 +8321,7 @@ 1.8421 msgstr "" 1.8422 1.8423 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8424 -#: ../en/ch09-undo.xml:330 1.8425 +#: ../en/ch08-undo.xml:330 1.8426 msgid "" 1.8427 "The <command role=\"hg-cmd\">hg backout</command> command takes a single " 1.8428 "changeset ID as its argument; this is the changeset to back out. Normally, " 1.8429 @@ -9249,17 +8332,17 @@ 1.8430 msgstr "" 1.8431 1.8432 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8433 -#: ../en/ch09-undo.xml:341 1.8434 +#: ../en/ch08-undo.xml:341 1.8435 msgid "Backing out the tip changeset" 1.8436 msgstr "恢复顶点修改集" 1.8437 1.8438 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8439 -#: ../en/ch09-undo.xml:343 1.8440 +#: ../en/ch08-undo.xml:343 1.8441 msgid "We're going to start by backing out the last changeset we committed." 1.8442 msgstr "" 1.8443 1.8444 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8445 -#: ../en/ch09-undo.xml:348 1.8446 +#: ../en/ch08-undo.xml:348 1.8447 msgid "" 1.8448 "You can see that the second line from <filename>myfile</filename> is no " 1.8449 "longer present. Taking a look at the output of <command role=\"hg-cmd\">hg " 1.8450 @@ -9273,25 +8356,25 @@ 1.8451 msgstr "" 1.8452 1.8453 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.8454 -#: ../en/ch09-undo.xml:364 1.8455 +#: ../en/ch08-undo.xml:364 1.8456 msgid "" 1.8457 "<imageobject><imagedata fileref=\"images/undo-simple.png\"/> </imageobject>" 1.8458 msgstr "" 1.8459 1.8460 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.8461 -#: ../en/ch09-undo.xml:367 ../en/ch09-undo.xml:486 1.8462 +#: ../en/ch08-undo.xml:367 ../en/ch08-undo.xml:486 1.8463 msgid "" 1.8464 "Backing out a change using the <command role=\"hg-cmd\">hg backout</command> " 1.8465 "command" 1.8466 msgstr "" 1.8467 1.8468 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8469 -#: ../en/ch09-undo.xml:376 1.8470 +#: ../en/ch08-undo.xml:376 1.8471 msgid "Backing out a non-tip change" 1.8472 msgstr "恢复非顶点的修改" 1.8473 1.8474 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8475 -#: ../en/ch09-undo.xml:378 1.8476 +#: ../en/ch08-undo.xml:378 1.8477 msgid "" 1.8478 "If you want to back out a change other than the last one you committed, pass " 1.8479 "the <option role=\"hg-opt-backout\">--merge</option> option to the <command " 1.8480 @@ -9299,14 +8382,14 @@ 1.8481 msgstr "" 1.8482 1.8483 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8484 -#: ../en/ch09-undo.xml:385 1.8485 +#: ../en/ch08-undo.xml:385 1.8486 msgid "" 1.8487 "This makes backing out any changeset a <quote>one-shot</quote> operation " 1.8488 "that's usually simple and fast." 1.8489 msgstr "" 1.8490 1.8491 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8492 -#: ../en/ch09-undo.xml:391 1.8493 +#: ../en/ch08-undo.xml:391 1.8494 msgid "" 1.8495 "If you take a look at the contents of <filename>myfile</filename> after the " 1.8496 "backout finishes, you'll see that the first and third changes are present, " 1.8497 @@ -9314,7 +8397,7 @@ 1.8498 msgstr "" 1.8499 1.8500 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8501 -#: ../en/ch09-undo.xml:398 1.8502 +#: ../en/ch08-undo.xml:398 1.8503 msgid "" 1.8504 "As the graphical history in figure <xref endterm=\"fig.undo.backout-non-tip." 1.8505 "caption\" linkend=\"fig.undo.backout-non-tip\"/> illustrates, Mercurial " 1.8506 @@ -9327,27 +8410,27 @@ 1.8507 msgstr "" 1.8508 1.8509 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8510 -#: ../en/ch09-undo.xml:410 1.8511 +#: ../en/ch08-undo.xml:410 1.8512 msgid "" 1.8513 "% TODO: to me it looks like mercurial doesn't commit the second merge " 1.8514 "automatically!" 1.8515 msgstr "" 1.8516 1.8517 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.8518 -#: ../en/ch09-undo.xml:415 1.8519 +#: ../en/ch08-undo.xml:415 1.8520 msgid "" 1.8521 "<imageobject><imagedata fileref=\"images/undo-non-tip.png\"/> </imageobject>" 1.8522 msgstr "" 1.8523 1.8524 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.8525 -#: ../en/ch09-undo.xml:418 1.8526 +#: ../en/ch08-undo.xml:418 1.8527 msgid "" 1.8528 "Automated backout of a non-tip change using the <command role=\"hg-cmd\">hg " 1.8529 "backout</command> command" 1.8530 msgstr "" 1.8531 1.8532 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8533 -#: ../en/ch09-undo.xml:424 1.8534 +#: ../en/ch08-undo.xml:424 1.8535 msgid "" 1.8536 "The result is that you end up <quote>back where you were</quote>, only with " 1.8537 "some extra history that undoes the effect of the changeset you wanted to back " 1.8538 @@ -9355,12 +8438,12 @@ 1.8539 msgstr "" 1.8540 1.8541 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.8542 -#: ../en/ch09-undo.xml:429 1.8543 +#: ../en/ch08-undo.xml:429 1.8544 msgid "Always use the <option role=\"hg-opt-backout\">--merge</option> option" 1.8545 msgstr "始终使用选项 <option role=\"hg-opt-backout\">--merge</option>" 1.8546 1.8547 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.8548 -#: ../en/ch09-undo.xml:432 1.8549 +#: ../en/ch08-undo.xml:432 1.8550 msgid "" 1.8551 "In fact, since the <option role=\"hg-opt-backout\">--merge</option> option " 1.8552 "will do the <quote>right thing</quote> whether or not the changeset you're " 1.8553 @@ -9370,12 +8453,12 @@ 1.8554 msgstr "" 1.8555 1.8556 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8557 -#: ../en/ch09-undo.xml:443 1.8558 +#: ../en/ch08-undo.xml:443 1.8559 msgid "Gaining more control of the backout process" 1.8560 msgstr "在恢复处理中获得更多控制" 1.8561 1.8562 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8563 -#: ../en/ch09-undo.xml:445 1.8564 +#: ../en/ch08-undo.xml:445 1.8565 msgid "" 1.8566 "While I've recommended that you always use the <option role=\"hg-opt-backout" 1.8567 "\">--merge</option> option when backing out a change, the <command role=\"hg-" 1.8568 @@ -9388,14 +8471,14 @@ 1.8569 msgstr "" 1.8570 1.8571 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8572 -#: ../en/ch09-undo.xml:458 1.8573 +#: ../en/ch08-undo.xml:458 1.8574 msgid "" 1.8575 "As with our earlier example, We'll commit a third changeset, then back out " 1.8576 "its parent, and see what happens." 1.8577 msgstr "" 1.8578 1.8579 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8580 -#: ../en/ch09-undo.xml:464 1.8581 +#: ../en/ch08-undo.xml:464 1.8582 msgid "" 1.8583 "Our new changeset is again a descendant of the changeset we backout out; it's " 1.8584 "thus a new head, <emphasis>not</emphasis> a descendant of the changeset that " 1.8585 @@ -9404,7 +8487,7 @@ 1.8586 msgstr "" 1.8587 1.8588 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8589 -#: ../en/ch09-undo.xml:472 1.8590 +#: ../en/ch08-undo.xml:472 1.8591 msgid "" 1.8592 "Again, it's easier to see what has happened by looking at a graph of the " 1.8593 "revision history, in figure <xref endterm=\"fig.undo.backout-manual.caption\" " 1.8594 @@ -9415,13 +8498,13 @@ 1.8595 msgstr "" 1.8596 1.8597 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.8598 -#: ../en/ch09-undo.xml:483 1.8599 +#: ../en/ch08-undo.xml:483 1.8600 msgid "" 1.8601 "<imageobject><imagedata fileref=\"images/undo-manual.png\"/> </imageobject>" 1.8602 msgstr "" 1.8603 1.8604 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8605 -#: ../en/ch09-undo.xml:492 1.8606 +#: ../en/ch08-undo.xml:492 1.8607 msgid "" 1.8608 "After the <command role=\"hg-cmd\">hg backout</command> command has " 1.8609 "completed, it leaves the new <quote>backout</quote> changeset as the parent " 1.8610 @@ -9429,12 +8512,12 @@ 1.8611 msgstr "" 1.8612 1.8613 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8614 -#: ../en/ch09-undo.xml:499 1.8615 +#: ../en/ch08-undo.xml:499 1.8616 msgid "Now we have two isolated sets of changes." 1.8617 msgstr "" 1.8618 1.8619 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8620 -#: ../en/ch09-undo.xml:503 1.8621 +#: ../en/ch08-undo.xml:503 1.8622 msgid "" 1.8623 "Let's think about what we expect to see as the contents of <filename>myfile</" 1.8624 "filename> now. The first change should be present, because we've never " 1.8625 @@ -9445,14 +8528,14 @@ 1.8626 msgstr "" 1.8627 1.8628 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8629 -#: ../en/ch09-undo.xml:513 1.8630 +#: ../en/ch08-undo.xml:513 1.8631 msgid "" 1.8632 "To get the third change back into the file, we just do a normal merge of our " 1.8633 "two heads." 1.8634 msgstr "" 1.8635 1.8636 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8637 -#: ../en/ch09-undo.xml:518 1.8638 +#: ../en/ch08-undo.xml:518 1.8639 msgid "" 1.8640 "Afterwards, the graphical history of our repository looks like figure <xref " 1.8641 "endterm=\"fig.undo.backout-manual-merge.caption\" linkend=\"fig.undo.backout-" 1.8642 @@ -9460,45 +8543,45 @@ 1.8643 msgstr "" 1.8644 1.8645 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.8646 -#: ../en/ch09-undo.xml:525 1.8647 +#: ../en/ch08-undo.xml:525 1.8648 msgid "" 1.8649 "<imageobject><imagedata fileref=\"images/undo-manual-merge.png\"/> </" 1.8650 "imageobject>" 1.8651 msgstr "" 1.8652 1.8653 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.8654 -#: ../en/ch09-undo.xml:528 1.8655 +#: ../en/ch08-undo.xml:528 1.8656 msgid "Manually merging a backout change" 1.8657 msgstr "" 1.8658 1.8659 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8660 -#: ../en/ch09-undo.xml:535 1.8661 +#: ../en/ch08-undo.xml:535 1.8662 msgid "Why <command role=\"hg-cmd\">hg backout</command> works as it does" 1.8663 msgstr "<command role=\"hg-cmd\">hg backout</command> 的内幕" 1.8664 1.8665 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8666 -#: ../en/ch09-undo.xml:538 1.8667 +#: ../en/ch08-undo.xml:538 1.8668 msgid "" 1.8669 "Here's a brief description of how the <command role=\"hg-cmd\">hg backout</" 1.8670 "command> command works." 1.8671 msgstr "" 1.8672 1.8673 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8674 -#: ../en/ch09-undo.xml:541 1.8675 +#: ../en/ch08-undo.xml:541 1.8676 msgid "" 1.8677 "It ensures that the working directory is <quote>clean</quote>, i.e. that the " 1.8678 "output of <command role=\"hg-cmd\">hg status</command> would be empty." 1.8679 msgstr "" 1.8680 1.8681 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8682 -#: ../en/ch09-undo.xml:545 1.8683 +#: ../en/ch08-undo.xml:545 1.8684 msgid "" 1.8685 "It remembers the current parent of the working directory. Let's call this " 1.8686 "changeset <literal>orig</literal>" 1.8687 msgstr "" 1.8688 1.8689 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8690 -#: ../en/ch09-undo.xml:549 1.8691 +#: ../en/ch08-undo.xml:549 1.8692 msgid "" 1.8693 "It does the equivalent of a <command role=\"hg-cmd\">hg update</command> to " 1.8694 "sync the working directory to the changeset you want to back out. Let's call " 1.8695 @@ -9506,14 +8589,14 @@ 1.8696 msgstr "" 1.8697 1.8698 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8699 -#: ../en/ch09-undo.xml:554 1.8700 +#: ../en/ch08-undo.xml:554 1.8701 msgid "" 1.8702 "It finds the parent of that changeset. Let's call that changeset " 1.8703 "<literal>parent</literal>." 1.8704 msgstr "" 1.8705 1.8706 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8707 -#: ../en/ch09-undo.xml:557 1.8708 +#: ../en/ch08-undo.xml:557 1.8709 msgid "" 1.8710 "For each file that the <literal>backout</literal> changeset affected, it does " 1.8711 "the equivalent of a <command role=\"hg-cmd\">hg revert -r parent</command> on " 1.8712 @@ -9522,14 +8605,14 @@ 1.8713 msgstr "" 1.8714 1.8715 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8716 -#: ../en/ch09-undo.xml:564 1.8717 +#: ../en/ch08-undo.xml:564 1.8718 msgid "" 1.8719 "It commits the result as a new changeset. This changeset has " 1.8720 "<literal>backout</literal> as its parent." 1.8721 msgstr "" 1.8722 1.8723 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.8724 -#: ../en/ch09-undo.xml:568 1.8725 +#: ../en/ch08-undo.xml:568 1.8726 msgid "" 1.8727 "If you specify <option role=\"hg-opt-backout\">--merge</option> on the " 1.8728 "command line, it merges with <literal>orig</literal>, and commits the result " 1.8729 @@ -9537,7 +8620,7 @@ 1.8730 msgstr "" 1.8731 1.8732 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8733 -#: ../en/ch09-undo.xml:574 1.8734 +#: ../en/ch08-undo.xml:574 1.8735 msgid "" 1.8736 "An alternative way to implement the <command role=\"hg-cmd\">hg backout</" 1.8737 "command> command would be to <command role=\"hg-cmd\">hg export</command> the " 1.8738 @@ -9548,7 +8631,7 @@ 1.8739 msgstr "" 1.8740 1.8741 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8742 -#: ../en/ch09-undo.xml:584 1.8743 +#: ../en/ch08-undo.xml:584 1.8744 msgid "" 1.8745 "The reason that <command role=\"hg-cmd\">hg backout</command> does an update, " 1.8746 "a commit, a merge, and another commit is to give the merge machinery the best " 1.8747 @@ -9557,7 +8640,7 @@ 1.8748 msgstr "" 1.8749 1.8750 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8751 -#: ../en/ch09-undo.xml:591 1.8752 +#: ../en/ch08-undo.xml:591 1.8753 msgid "" 1.8754 "If you're backing out a changeset that's 100 revisions back in your project's " 1.8755 "history, the chances that the <command>patch</command> command will be able " 1.8756 @@ -9572,12 +8655,12 @@ 1.8757 msgstr "" 1.8758 1.8759 #. type: Content of: <book><chapter><sect1><title> 1.8760 -#: ../en/ch09-undo.xml:608 1.8761 +#: ../en/ch08-undo.xml:608 1.8762 msgid "Changes that should never have been" 1.8763 msgstr "不该发生的修改" 1.8764 1.8765 #. type: Content of: <book><chapter><sect1><para> 1.8766 -#: ../en/ch09-undo.xml:610 1.8767 +#: ../en/ch08-undo.xml:610 1.8768 msgid "" 1.8769 "Most of the time, the <command role=\"hg-cmd\">hg backout</command> command " 1.8770 "is exactly what you need if you want to undo the effects of a change. It " 1.8771 @@ -9586,7 +8669,7 @@ 1.8772 msgstr "" 1.8773 1.8774 #. type: Content of: <book><chapter><sect1><para> 1.8775 -#: ../en/ch09-undo.xml:616 1.8776 +#: ../en/ch08-undo.xml:616 1.8777 msgid "" 1.8778 "On rare occasions, though, you may find that you've committed a change that " 1.8779 "really should not be present in the repository at all. For example, it would " 1.8780 @@ -9598,7 +8681,7 @@ 1.8781 msgstr "" 1.8782 1.8783 #. type: Content of: <book><chapter><sect1><para> 1.8784 -#: ../en/ch09-undo.xml:625 1.8785 +#: ../en/ch08-undo.xml:625 1.8786 msgid "" 1.8787 "Before I discuss the options that you have if you commit a <quote>brown paper " 1.8788 "bag</quote> change (the kind that's so bad that you want to pull a brown " 1.8789 @@ -9607,7 +8690,7 @@ 1.8790 msgstr "" 1.8791 1.8792 #. type: Content of: <book><chapter><sect1><para> 1.8793 -#: ../en/ch09-undo.xml:630 1.8794 +#: ../en/ch08-undo.xml:630 1.8795 msgid "" 1.8796 "Since Mercurial treats history as accumulative&emdash;every change builds on " 1.8797 "top of all changes that preceded it&emdash;you generally can't just make " 1.8798 @@ -9619,7 +8702,7 @@ 1.8799 msgstr "" 1.8800 1.8801 #. type: Content of: <book><chapter><sect1><para> 1.8802 -#: ../en/ch09-undo.xml:639 1.8803 +#: ../en/ch08-undo.xml:639 1.8804 msgid "" 1.8805 "After you've pushed a bad change to another repository, you <emphasis>could</" 1.8806 "emphasis> still use <command role=\"hg-cmd\">hg rollback</command> to make " 1.8807 @@ -9629,7 +8712,7 @@ 1.8808 msgstr "" 1.8809 1.8810 #. type: Content of: <book><chapter><sect1><para> 1.8811 -#: ../en/ch09-undo.xml:647 1.8812 +#: ../en/ch08-undo.xml:647 1.8813 msgid "" 1.8814 "If a situation like this arises, and you know which repositories your bad " 1.8815 "change has propagated into, you can <emphasis>try</emphasis> to get rid of " 1.8816 @@ -9640,7 +8723,7 @@ 1.8817 msgstr "" 1.8818 1.8819 #. type: Content of: <book><chapter><sect1><para> 1.8820 -#: ../en/ch09-undo.xml:655 1.8821 +#: ../en/ch08-undo.xml:655 1.8822 msgid "" 1.8823 "If you've committed one or more changes <emphasis>after</emphasis> the change " 1.8824 "that you'd like to see disappear, your options are further reduced. Mercurial " 1.8825 @@ -9649,7 +8732,7 @@ 1.8826 msgstr "" 1.8827 1.8828 #. type: Content of: <book><chapter><sect1><para> 1.8829 -#: ../en/ch09-undo.xml:661 1.8830 +#: ../en/ch08-undo.xml:661 1.8831 msgid "" 1.8832 "XXX This needs filling out. The <literal>hg-replay</literal> script in the " 1.8833 "<literal>examples</literal> directory works, but doesn't handle merge " 1.8834 @@ -9657,12 +8740,12 @@ 1.8835 msgstr "" 1.8836 1.8837 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8838 -#: ../en/ch09-undo.xml:667 1.8839 +#: ../en/ch08-undo.xml:667 1.8840 msgid "Protect yourself from <quote>escaped</quote> changes" 1.8841 msgstr "使用<quote>校验</quote>修改来保护你自己" 1.8842 1.8843 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8844 -#: ../en/ch09-undo.xml:670 1.8845 +#: ../en/ch08-undo.xml:670 1.8846 msgid "" 1.8847 "If you've committed some changes to your local repository and they've been " 1.8848 "pushed or pulled somewhere else, this isn't necessarily a disaster. You can " 1.8849 @@ -9672,7 +8755,7 @@ 1.8850 msgstr "" 1.8851 1.8852 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8853 -#: ../en/ch09-undo.xml:677 1.8854 +#: ../en/ch08-undo.xml:677 1.8855 msgid "" 1.8856 "By configuring some hooks on that repository to validate incoming changesets " 1.8857 "(see chapter <xref linkend=\"chap.hook\"/>), you can automatically prevent " 1.8858 @@ -9684,7 +8767,7 @@ 1.8859 msgstr "" 1.8860 1.8861 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8862 -#: ../en/ch09-undo.xml:687 1.8863 +#: ../en/ch08-undo.xml:687 1.8864 msgid "" 1.8865 "For instance, an incoming change hook that verifies that a changeset will " 1.8866 "actually compile can prevent people from inadvertantly <quote>breaking the " 1.8867 @@ -9692,12 +8775,12 @@ 1.8868 msgstr "" 1.8869 1.8870 #. type: Content of: <book><chapter><sect1><title> 1.8871 -#: ../en/ch09-undo.xml:694 1.8872 +#: ../en/ch08-undo.xml:694 1.8873 msgid "Finding the source of a bug" 1.8874 msgstr "查找问题的根源" 1.8875 1.8876 #. type: Content of: <book><chapter><sect1><para> 1.8877 -#: ../en/ch09-undo.xml:696 1.8878 +#: ../en/ch08-undo.xml:696 1.8879 msgid "" 1.8880 "While it's all very well to be able to back out a changeset that introduced a " 1.8881 "bug, this requires that you know which changeset to back out. Mercurial " 1.8882 @@ -9707,7 +8790,7 @@ 1.8883 msgstr "" 1.8884 1.8885 #. type: Content of: <book><chapter><sect1><para> 1.8886 -#: ../en/ch09-undo.xml:703 1.8887 +#: ../en/ch08-undo.xml:703 1.8888 msgid "" 1.8889 "The idea behind the <command role=\"hg-cmd\">hg bisect</command> command is " 1.8890 "that a changeset has introduced some change of behaviour that you can " 1.8891 @@ -9719,14 +8802,14 @@ 1.8892 msgstr "" 1.8893 1.8894 #. type: Content of: <book><chapter><sect1><para> 1.8895 -#: ../en/ch09-undo.xml:712 1.8896 +#: ../en/ch08-undo.xml:712 1.8897 msgid "" 1.8898 "Here are a few scenarios to help you understand how you might apply this " 1.8899 "command." 1.8900 msgstr "" 1.8901 1.8902 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8903 -#: ../en/ch09-undo.xml:715 1.8904 +#: ../en/ch08-undo.xml:715 1.8905 msgid "" 1.8906 "The most recent version of your software has a bug that you remember wasn't " 1.8907 "present a few weeks ago, but you don't know when it was introduced. Here, " 1.8908 @@ -9734,7 +8817,7 @@ 1.8909 msgstr "" 1.8910 1.8911 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8912 -#: ../en/ch09-undo.xml:720 1.8913 +#: ../en/ch08-undo.xml:720 1.8914 msgid "" 1.8915 "You fixed a bug in a rush, and now it's time to close the entry in your " 1.8916 "team's bug database. The bug database requires a changeset ID when you close " 1.8917 @@ -9743,7 +8826,7 @@ 1.8918 msgstr "" 1.8919 1.8920 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8921 -#: ../en/ch09-undo.xml:727 1.8922 +#: ../en/ch08-undo.xml:727 1.8923 msgid "" 1.8924 "Your software works correctly, but runs 15% slower than the last time you " 1.8925 "measured it. You want to know which changeset introduced the performance " 1.8926 @@ -9752,14 +8835,14 @@ 1.8927 msgstr "" 1.8928 1.8929 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.8930 -#: ../en/ch09-undo.xml:734 1.8931 +#: ../en/ch08-undo.xml:734 1.8932 msgid "" 1.8933 "The sizes of the components of your project that you ship exploded recently, " 1.8934 "and you suspect that something changed in the way you build your project." 1.8935 msgstr "" 1.8936 1.8937 #. type: Content of: <book><chapter><sect1><para> 1.8938 -#: ../en/ch09-undo.xml:739 1.8939 +#: ../en/ch08-undo.xml:739 1.8940 msgid "" 1.8941 "From these examples, it should be clear that the <command role=\"hg-cmd\">hg " 1.8942 "bisect</command> command is not useful only for finding the sources of bugs. " 1.8943 @@ -9769,7 +8852,7 @@ 1.8944 msgstr "" 1.8945 1.8946 #. type: Content of: <book><chapter><sect1><para> 1.8947 -#: ../en/ch09-undo.xml:746 1.8948 +#: ../en/ch08-undo.xml:746 1.8949 msgid "" 1.8950 "We'll introduce a little bit of terminology here, just to make it clear which " 1.8951 "parts of the search process are your responsibility, and which are " 1.8952 @@ -9783,7 +8866,7 @@ 1.8953 msgstr "" 1.8954 1.8955 #. type: Content of: <book><chapter><sect1><para> 1.8956 -#: ../en/ch09-undo.xml:759 1.8957 +#: ../en/ch08-undo.xml:759 1.8958 msgid "" 1.8959 "One simple way to automate the searching process would be simply to probe " 1.8960 "every changeset. However, this scales poorly. If it took ten minutes to " 1.8961 @@ -9796,7 +8879,7 @@ 1.8962 msgstr "" 1.8963 1.8964 #. type: Content of: <book><chapter><sect1><para> 1.8965 -#: ../en/ch09-undo.xml:769 1.8966 +#: ../en/ch08-undo.xml:769 1.8967 msgid "" 1.8968 "What the <command role=\"hg-cmd\">hg bisect</command> command does is use its " 1.8969 "knowledge of the <quote>shape</quote> of your project's revision history to " 1.8970 @@ -9809,7 +8892,7 @@ 1.8971 msgstr "" 1.8972 1.8973 #. type: Content of: <book><chapter><sect1><para> 1.8974 -#: ../en/ch09-undo.xml:780 1.8975 +#: ../en/ch08-undo.xml:780 1.8976 msgid "" 1.8977 "The <command role=\"hg-cmd\">hg bisect</command> command is aware of the " 1.8978 "<quote>branchy</quote> nature of a Mercurial project's revision history, so " 1.8979 @@ -9819,18 +8902,18 @@ 1.8980 msgstr "" 1.8981 1.8982 #. type: Content of: <book><chapter><sect1><sect2><title> 1.8983 -#: ../en/ch09-undo.xml:788 1.8984 +#: ../en/ch08-undo.xml:788 1.8985 msgid "Using the <command role=\"hg-cmd\">hg bisect</command> command" 1.8986 msgstr "使用命令 <command role=\"hg-cmd\">hg bisect</command>" 1.8987 1.8988 #. type: Content of: <book><chapter><sect1><sect2><para> 1.8989 -#: ../en/ch09-undo.xml:791 1.8990 +#: ../en/ch08-undo.xml:791 1.8991 msgid "" 1.8992 "Here's an example of <command role=\"hg-cmd\">hg bisect</command> in action." 1.8993 msgstr "" 1.8994 1.8995 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.8996 -#: ../en/ch09-undo.xml:795 1.8997 +#: ../en/ch08-undo.xml:795 1.8998 msgid "" 1.8999 "In versions 0.9.5 and earlier of Mercurial, <command role=\"hg-cmd\">hg " 1.9000 "bisect</command> was not a core command: it was distributed with Mercurial as " 1.9001 @@ -9839,14 +8922,14 @@ 1.9002 msgstr "" 1.9003 1.9004 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9005 -#: ../en/ch09-undo.xml:802 1.9006 +#: ../en/ch08-undo.xml:802 1.9007 msgid "" 1.9008 "Now let's create a repository, so that we can try out the <command role=\"hg-" 1.9009 "cmd\">hg bisect</command> command in isolation." 1.9010 msgstr "" 1.9011 1.9012 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9013 -#: ../en/ch09-undo.xml:808 1.9014 +#: ../en/ch08-undo.xml:808 1.9015 msgid "" 1.9016 "We'll simulate a project that has a bug in it in a simple-minded way: create " 1.9017 "trivial changes in a loop, and nominate one specific change that will have " 1.9018 @@ -9856,7 +8939,7 @@ 1.9019 msgstr "" 1.9020 1.9021 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9022 -#: ../en/ch09-undo.xml:818 1.9023 +#: ../en/ch08-undo.xml:818 1.9024 msgid "" 1.9025 "The next thing that we'd like to do is figure out how to use the <command " 1.9026 "role=\"hg-cmd\">hg bisect</command> command. We can use Mercurial's normal " 1.9027 @@ -9864,46 +8947,46 @@ 1.9028 msgstr "" 1.9029 1.9030 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9031 -#: ../en/ch09-undo.xml:825 1.9032 +#: ../en/ch08-undo.xml:825 1.9033 msgid "" 1.9034 "The <command role=\"hg-cmd\">hg bisect</command> command works in steps. " 1.9035 "Each step proceeds as follows." 1.9036 msgstr "" 1.9037 1.9038 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.9039 -#: ../en/ch09-undo.xml:828 1.9040 +#: ../en/ch08-undo.xml:828 1.9041 msgid "You run your binary test." 1.9042 msgstr "" 1.9043 1.9044 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para> 1.9045 -#: ../en/ch09-undo.xml:830 1.9046 +#: ../en/ch08-undo.xml:830 1.9047 msgid "" 1.9048 "If the test succeeded, you tell <command role=\"hg-cmd\">hg bisect</command> " 1.9049 "by running the <command role=\"hg-cmd\">hg bisect good</command> command." 1.9050 msgstr "" 1.9051 1.9052 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><itemizedlist><listitem><para> 1.9053 -#: ../en/ch09-undo.xml:835 1.9054 +#: ../en/ch08-undo.xml:835 1.9055 msgid "" 1.9056 "If it failed, run the <command role=\"hg-cmd\">hg bisect bad</command> " 1.9057 "command." 1.9058 msgstr "" 1.9059 1.9060 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.9061 -#: ../en/ch09-undo.xml:839 1.9062 +#: ../en/ch08-undo.xml:839 1.9063 msgid "" 1.9064 "The command uses your information to decide which changeset to test next." 1.9065 msgstr "" 1.9066 1.9067 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.9068 -#: ../en/ch09-undo.xml:842 1.9069 +#: ../en/ch08-undo.xml:842 1.9070 msgid "" 1.9071 "It updates the working directory to that changeset, and the process begins " 1.9072 "again." 1.9073 msgstr "" 1.9074 1.9075 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9076 -#: ../en/ch09-undo.xml:845 1.9077 +#: ../en/ch08-undo.xml:845 1.9078 msgid "" 1.9079 "The process ends when <command role=\"hg-cmd\">hg bisect</command> identifies " 1.9080 "a unique changeset that marks the point where your test transitioned from " 1.9081 @@ -9912,14 +8995,14 @@ 1.9082 1.9083 # 1.9084 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9085 -#: ../en/ch09-undo.xml:850 1.9086 +#: ../en/ch08-undo.xml:850 1.9087 msgid "" 1.9088 "To start the search, we must run the <command role=\"hg-cmd\">hg bisect --" 1.9089 "reset</command> command." 1.9090 msgstr "" 1.9091 1.9092 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9093 -#: ../en/ch09-undo.xml:855 1.9094 +#: ../en/ch08-undo.xml:855 1.9095 msgid "" 1.9096 "In our case, the binary test we use is simple: we check to see if any file in " 1.9097 "the repository contains the string <quote>i have a gub</quote>. If it does, " 1.9098 @@ -9929,7 +9012,7 @@ 1.9099 msgstr "" 1.9100 1.9101 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9102 -#: ../en/ch09-undo.xml:863 1.9103 +#: ../en/ch08-undo.xml:863 1.9104 msgid "" 1.9105 "Most of the time, the revision to which the working directory is synced " 1.9106 "(usually the tip) already exhibits the problem introduced by the buggy " 1.9107 @@ -9938,7 +9021,7 @@ 1.9108 1.9109 # 1.9110 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9111 -#: ../en/ch09-undo.xml:870 1.9112 +#: ../en/ch08-undo.xml:870 1.9113 msgid "" 1.9114 "Our next task is to nominate a changeset that we know <emphasis>doesn't</" 1.9115 "emphasis> have the bug; the <command role=\"hg-cmd\">hg bisect</command> " 1.9116 @@ -9949,26 +9032,26 @@ 1.9117 msgstr "" 1.9118 1.9119 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9120 -#: ../en/ch09-undo.xml:880 1.9121 +#: ../en/ch08-undo.xml:880 1.9122 msgid "Notice that this command printed some output." 1.9123 msgstr "" 1.9124 1.9125 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9126 -#: ../en/ch09-undo.xml:882 1.9127 +#: ../en/ch08-undo.xml:882 1.9128 msgid "" 1.9129 "It told us how many changesets it must consider before it can identify the " 1.9130 "one that introduced the bug, and how many tests that will require." 1.9131 msgstr "" 1.9132 1.9133 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9134 -#: ../en/ch09-undo.xml:886 1.9135 +#: ../en/ch08-undo.xml:886 1.9136 msgid "" 1.9137 "It updated the working directory to the next changeset to test, and told us " 1.9138 "which changeset it's testing." 1.9139 msgstr "" 1.9140 1.9141 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9142 -#: ../en/ch09-undo.xml:891 1.9143 +#: ../en/ch08-undo.xml:891 1.9144 msgid "" 1.9145 "We now run our test in the working directory. We use the <command>grep</" 1.9146 "command> command to see if our <quote>bad</quote> file is present in the " 1.9147 @@ -9977,26 +9060,26 @@ 1.9148 msgstr "" 1.9149 1.9150 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9151 -#: ../en/ch09-undo.xml:897 1.9152 +#: ../en/ch08-undo.xml:897 1.9153 msgid "" 1.9154 "This test looks like a perfect candidate for automation, so let's turn it " 1.9155 "into a shell function." 1.9156 msgstr "" 1.9157 1.9158 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9159 -#: ../en/ch09-undo.xml:901 1.9160 +#: ../en/ch08-undo.xml:901 1.9161 msgid "" 1.9162 "We can now run an entire test step with a single command, <literal>mytest</" 1.9163 "literal>." 1.9164 msgstr "" 1.9165 1.9166 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9167 -#: ../en/ch09-undo.xml:906 1.9168 +#: ../en/ch08-undo.xml:906 1.9169 msgid "A few more invocations of our canned test step command, and we're done." 1.9170 msgstr "" 1.9171 1.9172 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9173 -#: ../en/ch09-undo.xml:911 1.9174 +#: ../en/ch08-undo.xml:911 1.9175 msgid "" 1.9176 "Even though we had 40 changesets to search through, the <command role=\"hg-cmd" 1.9177 "\">hg bisect</command> command let us find the changeset that introduced our " 1.9178 @@ -10008,13 +9091,13 @@ 1.9179 msgstr "" 1.9180 1.9181 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9182 -#: ../en/ch09-undo.xml:922 1.9183 +#: ../en/ch08-undo.xml:922 1.9184 msgid "Cleaning up after your search" 1.9185 msgstr "搜索后的清理" 1.9186 1.9187 # 1.9188 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9189 -#: ../en/ch09-undo.xml:924 1.9190 +#: ../en/ch08-undo.xml:924 1.9191 msgid "" 1.9192 "When you're finished using the <command role=\"hg-cmd\">hg bisect</command> " 1.9193 "command in a repository, you can use the <command role=\"hg-cmd\">hg bisect " 1.9194 @@ -10026,17 +9109,17 @@ 1.9195 msgstr "" 1.9196 1.9197 #. type: Content of: <book><chapter><sect1><title> 1.9198 -#: ../en/ch09-undo.xml:939 1.9199 +#: ../en/ch08-undo.xml:939 1.9200 msgid "Tips for finding bugs effectively" 1.9201 msgstr "有效查找问题的技巧" 1.9202 1.9203 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9204 -#: ../en/ch09-undo.xml:942 1.9205 +#: ../en/ch08-undo.xml:942 1.9206 msgid "Give consistent input" 1.9207 msgstr "给出一致的输入" 1.9208 1.9209 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9210 -#: ../en/ch09-undo.xml:944 1.9211 +#: ../en/ch08-undo.xml:944 1.9212 msgid "" 1.9213 "The <command role=\"hg-cmd\">hg bisect</command> command requires that you " 1.9214 "correctly report the result of every test you perform. If you tell it that a " 1.9215 @@ -10048,12 +9131,12 @@ 1.9216 msgstr "" 1.9217 1.9218 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9219 -#: ../en/ch09-undo.xml:956 1.9220 +#: ../en/ch08-undo.xml:956 1.9221 msgid "Automate as much as possible" 1.9222 msgstr "尽量自动" 1.9223 1.9224 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9225 -#: ../en/ch09-undo.xml:958 1.9226 +#: ../en/ch08-undo.xml:958 1.9227 msgid "" 1.9228 "When I started using the <command role=\"hg-cmd\">hg bisect</command> " 1.9229 "command, I tried a few times to run my tests by hand, on the command line. " 1.9230 @@ -10063,7 +9146,7 @@ 1.9231 msgstr "" 1.9232 1.9233 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9234 -#: ../en/ch09-undo.xml:966 1.9235 +#: ../en/ch08-undo.xml:966 1.9236 msgid "" 1.9237 "My initial problems with driving the <command role=\"hg-cmd\">hg bisect</" 1.9238 "command> command by hand occurred even with simple searches on small " 1.9239 @@ -10074,24 +9157,24 @@ 1.9240 msgstr "" 1.9241 1.9242 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9243 -#: ../en/ch09-undo.xml:975 1.9244 +#: ../en/ch08-undo.xml:975 1.9245 msgid "The key to automated testing is twofold:" 1.9246 msgstr "" 1.9247 1.9248 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9249 -#: ../en/ch09-undo.xml:977 1.9250 +#: ../en/ch08-undo.xml:977 1.9251 msgid "always test for the same symptom, and" 1.9252 msgstr "" 1.9253 1.9254 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9255 -#: ../en/ch09-undo.xml:979 1.9256 +#: ../en/ch08-undo.xml:979 1.9257 msgid "" 1.9258 "always feed consistent input to the <command role=\"hg-cmd\">hg bisect</" 1.9259 "command> command." 1.9260 msgstr "" 1.9261 1.9262 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9263 -#: ../en/ch09-undo.xml:982 1.9264 +#: ../en/ch08-undo.xml:982 1.9265 msgid "" 1.9266 "In my tutorial example above, the <command>grep</command> command tests for " 1.9267 "the symptom, and the <literal>if</literal> statement takes the result of this " 1.9268 @@ -10102,12 +9185,12 @@ 1.9269 msgstr "" 1.9270 1.9271 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9272 -#: ../en/ch09-undo.xml:992 1.9273 +#: ../en/ch08-undo.xml:992 1.9274 msgid "Check your results" 1.9275 msgstr "检查你的结果" 1.9276 1.9277 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9278 -#: ../en/ch09-undo.xml:994 1.9279 +#: ../en/ch08-undo.xml:994 1.9280 msgid "" 1.9281 "Because the output of a <command role=\"hg-cmd\">hg bisect</command> search " 1.9282 "is only as good as the input you give it, don't take the changeset it reports " 1.9283 @@ -10116,32 +9199,32 @@ 1.9284 msgstr "" 1.9285 1.9286 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9287 -#: ../en/ch09-undo.xml:1000 1.9288 +#: ../en/ch08-undo.xml:1000 1.9289 msgid "" 1.9290 "The changeset that it reports as the first bad revision. Your test should " 1.9291 "still report this as bad." 1.9292 msgstr "" 1.9293 1.9294 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9295 -#: ../en/ch09-undo.xml:1004 1.9296 +#: ../en/ch08-undo.xml:1004 1.9297 msgid "" 1.9298 "The parent of that changeset (either parent, if it's a merge). Your test " 1.9299 "should report this changeset as good." 1.9300 msgstr "" 1.9301 1.9302 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.9303 -#: ../en/ch09-undo.xml:1008 1.9304 +#: ../en/ch08-undo.xml:1008 1.9305 msgid "" 1.9306 "A child of that changeset. Your test should report this changeset as bad." 1.9307 msgstr "" 1.9308 1.9309 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9310 -#: ../en/ch09-undo.xml:1014 1.9311 +#: ../en/ch08-undo.xml:1014 1.9312 msgid "Beware interference between bugs" 1.9313 msgstr "谨防问题之间的冲突" 1.9314 1.9315 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9316 -#: ../en/ch09-undo.xml:1016 1.9317 +#: ../en/ch08-undo.xml:1016 1.9318 msgid "" 1.9319 "It's possible that your search for one bug could be disrupted by the presence " 1.9320 "of another. For example, let's say your software crashes at revision 100, " 1.9321 @@ -10151,7 +9234,7 @@ 1.9322 msgstr "" 1.9323 1.9324 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9325 -#: ../en/ch09-undo.xml:1024 1.9326 +#: ../en/ch08-undo.xml:1024 1.9327 msgid "" 1.9328 "It is possible that this other bug completely <quote>masks</quote> yours, " 1.9329 "which is to say that it occurs before your bug has a chance to manifest " 1.9330 @@ -10163,7 +9246,7 @@ 1.9331 msgstr "" 1.9332 1.9333 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9334 -#: ../en/ch09-undo.xml:1034 1.9335 +#: ../en/ch08-undo.xml:1034 1.9336 msgid "" 1.9337 "A different problem could arise if your test for a bug's presence is not " 1.9338 "specific enough. If you check for <quote>my program crashes</quote>, then " 1.9339 @@ -10172,7 +9255,7 @@ 1.9340 msgstr "" 1.9341 1.9342 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9343 -#: ../en/ch09-undo.xml:1041 1.9344 +#: ../en/ch08-undo.xml:1041 1.9345 msgid "" 1.9346 "Another useful situation in which to use <command role=\"hg-cmd\">hg bisect --" 1.9347 "skip</command> is if you can't test a revision because your project was in a " 1.9348 @@ -10181,12 +9264,12 @@ 1.9349 msgstr "" 1.9350 1.9351 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9352 -#: ../en/ch09-undo.xml:1050 1.9353 +#: ../en/ch08-undo.xml:1050 1.9354 msgid "Bracket your search lazily" 1.9355 msgstr "减少你的查找工作" 1.9356 1.9357 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9358 -#: ../en/ch09-undo.xml:1052 1.9359 +#: ../en/ch08-undo.xml:1052 1.9360 msgid "" 1.9361 "Choosing the first <quote>good</quote> and <quote>bad</quote> changesets that " 1.9362 "will mark the end points of your search is often easy, but it bears a little " 1.9363 @@ -10196,7 +9279,7 @@ 1.9364 msgstr "" 1.9365 1.9366 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9367 -#: ../en/ch09-undo.xml:1060 1.9368 +#: ../en/ch08-undo.xml:1060 1.9369 msgid "" 1.9370 "If you're having trouble remembering when a suitable <quote>good</quote> " 1.9371 "change was, so that you can tell <command role=\"hg-cmd\">hg bisect</" 1.9372 @@ -10207,7 +9290,7 @@ 1.9373 msgstr "" 1.9374 1.9375 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9376 -#: ../en/ch09-undo.xml:1069 1.9377 +#: ../en/ch08-undo.xml:1069 1.9378 msgid "" 1.9379 "Even if you end up <quote>early</quote> by thousands of changesets or months " 1.9380 "of history, you will only add a handful of tests to the total number that " 1.9381 @@ -10216,12 +9299,12 @@ 1.9382 msgstr "" 1.9383 1.9384 #. type: Content of: <book><chapter><title> 1.9385 -#: ../en/ch10-hook.xml:5 1.9386 +#: ../en/ch09-hook.xml:5 1.9387 msgid "Handling repository events with hooks" 1.9388 msgstr "使用钩子处理版本库事件" 1.9389 1.9390 #. type: Content of: <book><chapter><para> 1.9391 -#: ../en/ch10-hook.xml:7 1.9392 +#: ../en/ch09-hook.xml:7 1.9393 msgid "" 1.9394 "Mercurial offers a powerful mechanism to let you perform automated actions in " 1.9395 "response to events that occur in a repository. In some cases, you can even " 1.9396 @@ -10229,7 +9312,7 @@ 1.9397 msgstr "" 1.9398 1.9399 #. type: Content of: <book><chapter><para> 1.9400 -#: ../en/ch10-hook.xml:12 1.9401 +#: ../en/ch09-hook.xml:12 1.9402 msgid "" 1.9403 "The name Mercurial uses for one of these actions is a <emphasis>hook</" 1.9404 "emphasis>. Hooks are called <quote>triggers</quote> in some revision control " 1.9405 @@ -10237,12 +9320,12 @@ 1.9406 msgstr "" 1.9407 1.9408 #. type: Content of: <book><chapter><sect1><title> 1.9409 -#: ../en/ch10-hook.xml:18 1.9410 +#: ../en/ch09-hook.xml:18 1.9411 msgid "An overview of hooks in Mercurial" 1.9412 msgstr "Mercurial 钩子概述" 1.9413 1.9414 #. type: Content of: <book><chapter><sect1><para> 1.9415 -#: ../en/ch10-hook.xml:20 1.9416 +#: ../en/ch09-hook.xml:20 1.9417 msgid "" 1.9418 "Here is a brief list of the hooks that Mercurial supports. We will revisit " 1.9419 "each of these hooks in more detail later, in section <xref linkend=\"sec.hook." 1.9420 @@ -10250,21 +9333,21 @@ 1.9421 msgstr "" 1.9422 1.9423 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9424 -#: ../en/ch10-hook.xml:25 1.9425 +#: ../en/ch09-hook.xml:25 1.9426 msgid "" 1.9427 "<literal role=\"hook\">changegroup</literal>: This is run after a group of " 1.9428 "changesets has been brought into the repository from elsewhere." 1.9429 msgstr "" 1.9430 1.9431 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9432 -#: ../en/ch10-hook.xml:29 1.9433 +#: ../en/ch09-hook.xml:29 1.9434 msgid "" 1.9435 "<literal role=\"hook\">commit</literal>: This is run after a new changeset " 1.9436 "has been created in the local repository." 1.9437 msgstr "" 1.9438 1.9439 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9440 -#: ../en/ch10-hook.xml:33 1.9441 +#: ../en/ch09-hook.xml:33 1.9442 msgid "" 1.9443 "<literal role=\"hook\">incoming</literal>: This is run once for each new " 1.9444 "changeset that is brought into the repository from elsewhere. Notice the " 1.9445 @@ -10273,42 +9356,42 @@ 1.9446 msgstr "" 1.9447 1.9448 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9449 -#: ../en/ch10-hook.xml:40 1.9450 +#: ../en/ch09-hook.xml:40 1.9451 msgid "" 1.9452 "<literal role=\"hook\">outgoing</literal>: This is run after a group of " 1.9453 "changesets has been transmitted from this repository." 1.9454 msgstr "" 1.9455 1.9456 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9457 -#: ../en/ch10-hook.xml:44 1.9458 +#: ../en/ch09-hook.xml:44 1.9459 msgid "" 1.9460 "<literal role=\"hook\">prechangegroup</literal>: This is run before starting " 1.9461 "to bring a group of changesets into the repository." 1.9462 msgstr "" 1.9463 1.9464 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9465 -#: ../en/ch10-hook.xml:49 1.9466 +#: ../en/ch09-hook.xml:49 1.9467 msgid "" 1.9468 "<literal role=\"hook\">precommit</literal>: Controlling. This is run before " 1.9469 "starting a commit." 1.9470 msgstr "" 1.9471 1.9472 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9473 -#: ../en/ch10-hook.xml:53 1.9474 +#: ../en/ch09-hook.xml:53 1.9475 msgid "" 1.9476 "<literal role=\"hook\">preoutgoing</literal>: Controlling. This is run before " 1.9477 "starting to transmit a group of changesets from this repository." 1.9478 msgstr "" 1.9479 1.9480 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9481 -#: ../en/ch10-hook.xml:58 1.9482 +#: ../en/ch09-hook.xml:58 1.9483 msgid "" 1.9484 "<literal role=\"hook\">pretag</literal>: Controlling. This is run before " 1.9485 "creating a tag." 1.9486 msgstr "" 1.9487 1.9488 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9489 -#: ../en/ch10-hook.xml:62 1.9490 +#: ../en/ch09-hook.xml:62 1.9491 msgid "" 1.9492 "<literal role=\"hook\">pretxnchangegroup</literal>: Controlling. This is run " 1.9493 "after a group of changesets has been brought into the local repository from " 1.9494 @@ -10317,7 +9400,7 @@ 1.9495 msgstr "" 1.9496 1.9497 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9498 -#: ../en/ch10-hook.xml:70 1.9499 +#: ../en/ch09-hook.xml:70 1.9500 msgid "" 1.9501 "<literal role=\"hook\">pretxncommit</literal>: Controlling. This is run after " 1.9502 "a new changeset has been created in the local repository, but before the " 1.9503 @@ -10325,27 +9408,27 @@ 1.9504 msgstr "" 1.9505 1.9506 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9507 -#: ../en/ch10-hook.xml:76 1.9508 +#: ../en/ch09-hook.xml:76 1.9509 msgid "" 1.9510 "<literal role=\"hook\">preupdate</literal>: Controlling. This is run before " 1.9511 "starting an update or merge of the working directory." 1.9512 msgstr "" 1.9513 1.9514 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9515 -#: ../en/ch10-hook.xml:81 1.9516 +#: ../en/ch09-hook.xml:81 1.9517 msgid "" 1.9518 "<literal role=\"hook\">tag</literal>: This is run after a tag is created." 1.9519 msgstr "" 1.9520 1.9521 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.9522 -#: ../en/ch10-hook.xml:85 1.9523 +#: ../en/ch09-hook.xml:85 1.9524 msgid "" 1.9525 "<literal role=\"hook\">update</literal>: This is run after an update or merge " 1.9526 "of the working directory has finished." 1.9527 msgstr "" 1.9528 1.9529 #. type: Content of: <book><chapter><sect1><para> 1.9530 -#: ../en/ch10-hook.xml:90 1.9531 +#: ../en/ch09-hook.xml:90 1.9532 msgid "" 1.9533 "Each of the hooks whose description begins with the word <quote>Controlling</" 1.9534 "quote> has the ability to determine whether an activity can proceed. If the " 1.9535 @@ -10354,17 +9437,17 @@ 1.9536 msgstr "" 1.9537 1.9538 #. type: Content of: <book><chapter><sect1><title> 1.9539 -#: ../en/ch10-hook.xml:99 1.9540 +#: ../en/ch09-hook.xml:99 1.9541 msgid "Hooks and security" 1.9542 msgstr "钩子与安全性" 1.9543 1.9544 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9545 -#: ../en/ch10-hook.xml:102 1.9546 +#: ../en/ch09-hook.xml:102 1.9547 msgid "Hooks are run with your privileges" 1.9548 msgstr "钩子以你的特权执行" 1.9549 1.9550 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9551 -#: ../en/ch10-hook.xml:104 1.9552 +#: ../en/ch09-hook.xml:104 1.9553 msgid "" 1.9554 "When you run a Mercurial command in a repository, and the command causes a " 1.9555 "hook to run, that hook runs on <emphasis>your</emphasis> system, under " 1.9556 @@ -10375,16 +9458,16 @@ 1.9557 msgstr "" 1.9558 1.9559 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9560 -#: ../en/ch10-hook.xml:115 1.9561 +#: ../en/ch09-hook.xml:115 1.9562 msgid "" 1.9563 "In some cases, you may be exposed to hooks that you did not install " 1.9564 "yourself. If you work with Mercurial on an unfamiliar system, Mercurial will " 1.9565 -"run hooks defined in that system's global <filename role=\"special\"> /.hgrc</" 1.9566 -"filename>\\ file." 1.9567 -msgstr "" 1.9568 - 1.9569 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.9570 -#: ../en/ch10-hook.xml:122 1.9571 +"run hooks defined in that system's global <filename role=\"special\">~/.hgrc</" 1.9572 +"filename> file." 1.9573 +msgstr "" 1.9574 + 1.9575 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.9576 +#: ../en/ch09-hook.xml:122 1.9577 msgid "" 1.9578 "If you are working with a repository owned by another user, Mercurial can run " 1.9579 "hooks defined in that user's repository, but it will still run them as " 1.9580 @@ -10396,7 +9479,7 @@ 1.9581 msgstr "" 1.9582 1.9583 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.9584 -#: ../en/ch10-hook.xml:134 1.9585 +#: ../en/ch09-hook.xml:134 1.9586 msgid "" 1.9587 "This only applies if you are pulling from a repository on a local or network " 1.9588 "filesystem. If you're pulling over http or ssh, any <literal role=\"hook" 1.9589 @@ -10405,7 +9488,7 @@ 1.9590 msgstr "" 1.9591 1.9592 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9593 -#: ../en/ch10-hook.xml:142 1.9594 +#: ../en/ch09-hook.xml:142 1.9595 msgid "" 1.9596 "XXX To see what hooks are defined in a repository, use the <command role=\"hg-" 1.9597 "cmd\">hg config hooks</command> command. If you are working in one " 1.9598 @@ -10416,12 +9499,12 @@ 1.9599 msgstr "" 1.9600 1.9601 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9602 -#: ../en/ch10-hook.xml:153 1.9603 +#: ../en/ch09-hook.xml:153 1.9604 msgid "Hooks do not propagate" 1.9605 msgstr "钩子不会传播" 1.9606 1.9607 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9608 -#: ../en/ch10-hook.xml:155 1.9609 +#: ../en/ch09-hook.xml:155 1.9610 msgid "" 1.9611 "In Mercurial, hooks are not revision controlled, and do not propagate when " 1.9612 "you clone, or pull from, a repository. The reason for this is simple: a hook " 1.9613 @@ -10430,7 +9513,7 @@ 1.9614 msgstr "" 1.9615 1.9616 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9617 -#: ../en/ch10-hook.xml:162 1.9618 +#: ../en/ch09-hook.xml:162 1.9619 msgid "" 1.9620 "It would be extremely reckless for any distributed revision control system to " 1.9621 "implement revision-controlled hooks, as this would offer an easily " 1.9622 @@ -10439,7 +9522,7 @@ 1.9623 msgstr "" 1.9624 1.9625 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9626 -#: ../en/ch10-hook.xml:168 1.9627 +#: ../en/ch09-hook.xml:168 1.9628 msgid "" 1.9629 "Since Mercurial does not propagate hooks, if you are collaborating with other " 1.9630 "people on a common project, you should not assume that they are using the " 1.9631 @@ -10448,22 +9531,22 @@ 1.9632 msgstr "" 1.9633 1.9634 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9635 -#: ../en/ch10-hook.xml:175 1.9636 +#: ../en/ch09-hook.xml:175 1.9637 msgid "" 1.9638 "In a corporate intranet, this is somewhat easier to control, as you can for " 1.9639 "example provide a <quote>standard</quote> installation of Mercurial on an NFS " 1.9640 -"filesystem, and use a site-wide <filename role=\"special\"> /.hgrc</filename>" 1.9641 -"\\ file to define hooks that all users will see. However, this too has its " 1.9642 +"filesystem, and use a site-wide <filename role=\"special\">~/.hgrc</filename> " 1.9643 +"file to define hooks that all users will see. However, this too has its " 1.9644 "limits; see below." 1.9645 msgstr "" 1.9646 1.9647 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9648 -#: ../en/ch10-hook.xml:185 1.9649 +#: ../en/ch09-hook.xml:184 1.9650 msgid "Hooks can be overridden" 1.9651 msgstr "钩子可以被覆盖" 1.9652 1.9653 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9654 -#: ../en/ch10-hook.xml:187 1.9655 +#: ../en/ch09-hook.xml:186 1.9656 msgid "" 1.9657 "Mercurial allows you to override a hook definition by redefining the hook. " 1.9658 "You can disable it by setting its value to the empty string, or change its " 1.9659 @@ -10471,31 +9554,31 @@ 1.9660 msgstr "" 1.9661 1.9662 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9663 -#: ../en/ch10-hook.xml:192 1.9664 -msgid "" 1.9665 -"If you deploy a system- or site-wide <filename role=\"special\"> /.hgrc</" 1.9666 -"filename>\\ file that defines some hooks, you should thus understand that " 1.9667 -"your users can disable or override those hooks." 1.9668 -msgstr "" 1.9669 - 1.9670 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.9671 -#: ../en/ch10-hook.xml:200 1.9672 +#: ../en/ch09-hook.xml:191 1.9673 +msgid "" 1.9674 +"If you deploy a system- or site-wide <filename role=\"special\">~/.hgrc</" 1.9675 +"filename> file that defines some hooks, you should thus understand that your " 1.9676 +"users can disable or override those hooks." 1.9677 +msgstr "" 1.9678 + 1.9679 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.9680 +#: ../en/ch09-hook.xml:199 1.9681 msgid "Ensuring that critical hooks are run" 1.9682 msgstr "确保关键钩子的执行" 1.9683 1.9684 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9685 -#: ../en/ch10-hook.xml:202 1.9686 +#: ../en/ch09-hook.xml:201 1.9687 msgid "" 1.9688 "Sometimes you may want to enforce a policy that you do not want others to be " 1.9689 "able to work around. For example, you may have a requirement that every " 1.9690 "changeset must pass a rigorous set of tests. Defining this requirement via a " 1.9691 -"hook in a site-wide <filename role=\"special\"> /.hgrc</filename>\\ won't " 1.9692 -"work for remote users on laptops, and of course local users can subvert it at " 1.9693 -"will by overriding the hook." 1.9694 -msgstr "" 1.9695 - 1.9696 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.9697 -#: ../en/ch10-hook.xml:211 1.9698 +"hook in a site-wide <filename role=\"special\">~/.hgrc</filename> won't work " 1.9699 +"for remote users on laptops, and of course local users can subvert it at will " 1.9700 +"by overriding the hook." 1.9701 +msgstr "" 1.9702 + 1.9703 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.9704 +#: ../en/ch09-hook.xml:210 1.9705 msgid "" 1.9706 "Instead, you can set up your policies for use of Mercurial so that people are " 1.9707 "expected to propagate changes through a well-known <quote>canonical</quote> " 1.9708 @@ -10503,7 +9586,7 @@ 1.9709 msgstr "" 1.9710 1.9711 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9712 -#: ../en/ch10-hook.xml:217 1.9713 +#: ../en/ch09-hook.xml:216 1.9714 msgid "" 1.9715 "One way to do this is via a combination of social engineering and " 1.9716 "technology. Set up a restricted-access account; users can push changes over " 1.9717 @@ -10513,7 +9596,7 @@ 1.9718 msgstr "" 1.9719 1.9720 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9721 -#: ../en/ch10-hook.xml:226 1.9722 +#: ../en/ch09-hook.xml:225 1.9723 msgid "" 1.9724 "When someone pushes a changeset to the server that everyone pulls from, the " 1.9725 "server will test the changeset before it accepts it as permanent, and reject " 1.9726 @@ -10523,12 +9606,12 @@ 1.9727 msgstr "" 1.9728 1.9729 #. type: Content of: <book><chapter><sect1><title> 1.9730 -#: ../en/ch10-hook.xml:237 1.9731 +#: ../en/ch09-hook.xml:236 1.9732 msgid "Care with <literal>pretxn</literal> hooks in a shared-access repository" 1.9733 msgstr "在共享版本库中注意 <literal>pretxn</literal> 钩子" 1.9734 1.9735 #. type: Content of: <book><chapter><sect1><para> 1.9736 -#: ../en/ch10-hook.xml:240 1.9737 +#: ../en/ch09-hook.xml:239 1.9738 msgid "" 1.9739 "If you want to use hooks to do some automated work in a repository that a " 1.9740 "number of people have shared access to, you need to be careful in how you do " 1.9741 @@ -10536,7 +9619,7 @@ 1.9742 msgstr "" 1.9743 1.9744 #. type: Content of: <book><chapter><sect1><para> 1.9745 -#: ../en/ch10-hook.xml:245 1.9746 +#: ../en/ch09-hook.xml:244 1.9747 msgid "" 1.9748 "Mercurial only locks a repository when it is writing to the repository, and " 1.9749 "only the parts of Mercurial that write to the repository pay attention to " 1.9750 @@ -10545,7 +9628,7 @@ 1.9751 msgstr "" 1.9752 1.9753 #. type: Content of: <book><chapter><sect1><para> 1.9754 -#: ../en/ch10-hook.xml:252 1.9755 +#: ../en/ch09-hook.xml:251 1.9756 msgid "" 1.9757 "Because Mercurial is careful with the order in which it reads and writes " 1.9758 "data, it does not need to acquire a lock when it wants to read data from the " 1.9759 @@ -10555,7 +9638,7 @@ 1.9760 msgstr "" 1.9761 1.9762 #. type: Content of: <book><chapter><sect1><para> 1.9763 -#: ../en/ch10-hook.xml:260 1.9764 +#: ../en/ch09-hook.xml:259 1.9765 msgid "" 1.9766 "With great performance comes a trade-off, though, one which has the potential " 1.9767 "to cause you trouble unless you're aware of it. To describe this requires a " 1.9768 @@ -10564,7 +9647,7 @@ 1.9769 msgstr "" 1.9770 1.9771 #. type: Content of: <book><chapter><sect1><para> 1.9772 -#: ../en/ch10-hook.xml:267 1.9773 +#: ../en/ch09-hook.xml:266 1.9774 msgid "" 1.9775 "When Mercurial <emphasis>writes</emphasis> metadata, it writes it straight " 1.9776 "into the destination file. It writes file data first, then manifest data " 1.9777 @@ -10576,7 +9659,7 @@ 1.9778 msgstr "" 1.9779 1.9780 #. type: Content of: <book><chapter><sect1><para> 1.9781 -#: ../en/ch10-hook.xml:278 1.9782 +#: ../en/ch09-hook.xml:277 1.9783 msgid "" 1.9784 "When Mercurial <emphasis>reads</emphasis> metadata, it reads the changelog " 1.9785 "first, then everything else. Since a reader will only access parts of the " 1.9786 @@ -10585,7 +9668,7 @@ 1.9787 msgstr "" 1.9788 1.9789 #. type: Content of: <book><chapter><sect1><para> 1.9790 -#: ../en/ch10-hook.xml:284 1.9791 +#: ../en/ch09-hook.xml:283 1.9792 msgid "" 1.9793 "Some controlling hooks (<literal role=\"hook\">pretxncommit</literal> and " 1.9794 "<literal role=\"hook\">pretxnchangegroup</literal>) run when a transaction is " 1.9795 @@ -10594,7 +9677,7 @@ 1.9796 msgstr "" 1.9797 1.9798 #. type: Content of: <book><chapter><sect1><para> 1.9799 -#: ../en/ch10-hook.xml:292 1.9800 +#: ../en/ch09-hook.xml:291 1.9801 msgid "" 1.9802 "If one of these hooks runs for long, it opens a window of time during which a " 1.9803 "reader can see the metadata for changesets that are not yet permanent, and " 1.9804 @@ -10603,12 +9686,12 @@ 1.9805 msgstr "" 1.9806 1.9807 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9808 -#: ../en/ch10-hook.xml:300 1.9809 +#: ../en/ch09-hook.xml:299 1.9810 msgid "The problem illustrated" 1.9811 msgstr "问题的演示" 1.9812 1.9813 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9814 -#: ../en/ch10-hook.xml:302 1.9815 +#: ../en/ch09-hook.xml:301 1.9816 msgid "" 1.9817 "In principle, a good use for the <literal role=\"hook\">pretxnchangegroup</" 1.9818 "literal> hook would be to automatically build and test incoming changes " 1.9819 @@ -10620,7 +9703,7 @@ 1.9820 msgstr "" 1.9821 1.9822 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9823 -#: ../en/ch10-hook.xml:313 1.9824 +#: ../en/ch09-hook.xml:312 1.9825 msgid "" 1.9826 "The safest technological answer to this challenge is to set up such a " 1.9827 "<quote>gatekeeper</quote> repository as <emphasis>unidirectional</emphasis>. " 1.9828 @@ -10633,7 +9716,7 @@ 1.9829 msgstr "" 1.9830 1.9831 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9832 -#: ../en/ch10-hook.xml:325 1.9833 +#: ../en/ch09-hook.xml:324 1.9834 msgid "" 1.9835 "In practice, putting a centralised bottleneck like this in place is not often " 1.9836 "a good idea, and transaction visibility has nothing to do with the problem. " 1.9837 @@ -10645,7 +9728,7 @@ 1.9838 msgstr "" 1.9839 1.9840 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9841 -#: ../en/ch10-hook.xml:336 1.9842 +#: ../en/ch09-hook.xml:335 1.9843 msgid "" 1.9844 "An approach that scales better is to get people to build and test before they " 1.9845 "push, then run automated builds and tests centrally <emphasis>after</" 1.9846 @@ -10655,12 +9738,12 @@ 1.9847 msgstr "" 1.9848 1.9849 #. type: Content of: <book><chapter><sect1><title> 1.9850 -#: ../en/ch10-hook.xml:347 1.9851 +#: ../en/ch09-hook.xml:346 1.9852 msgid "A short tutorial on using hooks" 1.9853 msgstr "使用钩子的简短指南" 1.9854 1.9855 #. type: Content of: <book><chapter><sect1><para> 1.9856 -#: ../en/ch10-hook.xml:349 1.9857 +#: ../en/ch09-hook.xml:348 1.9858 msgid "" 1.9859 "It is easy to write a Mercurial hook. Let's start with a hook that runs when " 1.9860 "you finish a <command role=\"hg-cmd\">hg commit</command>, and simply prints " 1.9861 @@ -10669,15 +9752,15 @@ 1.9862 msgstr "" 1.9863 1.9864 #. type: Content of: <book><chapter><sect1><para> 1.9865 -#: ../en/ch10-hook.xml:356 1.9866 +#: ../en/ch09-hook.xml:355 1.9867 msgid "All hooks follow the pattern in this example." 1.9868 msgstr "" 1.9869 1.9870 #. type: Content of: <book><chapter><sect1><para> 1.9871 -#: ../en/ch10-hook.xml:360 1.9872 +#: ../en/ch09-hook.xml:359 1.9873 msgid "" 1.9874 "You add an entry to the <literal role=\"rc-hooks\">hooks</literal> section of " 1.9875 -"your <filename role=\"special\"> /.hgrc</filename>. On the left is the name " 1.9876 +"your <filename role=\"special\">~/.hgrc</filename>. On the left is the name " 1.9877 "of the event to trigger on; on the right is the action to take. As you can " 1.9878 "see, you can run an arbitrary shell command in a hook. Mercurial passes " 1.9879 "extra information to the hook using environment variables (look for " 1.9880 @@ -10685,19 +9768,19 @@ 1.9881 msgstr "" 1.9882 1.9883 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9884 -#: ../en/ch10-hook.xml:370 1.9885 +#: ../en/ch09-hook.xml:369 1.9886 msgid "Performing multiple actions per event" 1.9887 msgstr "每个事件执行多个操作" 1.9888 1.9889 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9890 -#: ../en/ch10-hook.xml:372 1.9891 +#: ../en/ch09-hook.xml:371 1.9892 msgid "" 1.9893 "Quite often, you will want to define more than one hook for a particular kind " 1.9894 "of event, as shown below." 1.9895 msgstr "" 1.9896 1.9897 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9898 -#: ../en/ch10-hook.xml:377 1.9899 +#: ../en/ch09-hook.xml:376 1.9900 msgid "" 1.9901 "Mercurial lets you do this by adding an <emphasis>extension</emphasis> to the " 1.9902 "end of a hook's name. You extend a hook's name by giving the name of the " 1.9903 @@ -10708,7 +9791,7 @@ 1.9904 msgstr "" 1.9905 1.9906 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9907 -#: ../en/ch10-hook.xml:388 1.9908 +#: ../en/ch09-hook.xml:387 1.9909 msgid "" 1.9910 "To give a well-defined order of execution when there are multiple hooks " 1.9911 "defined for an event, Mercurial sorts hooks by extension, and executes the " 1.9912 @@ -10718,7 +9801,7 @@ 1.9913 msgstr "" 1.9914 1.9915 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9916 -#: ../en/ch10-hook.xml:397 1.9917 +#: ../en/ch09-hook.xml:396 1.9918 msgid "" 1.9919 "It is a good idea to use a somewhat descriptive extension when you define a " 1.9920 "new hook. This will help you to remember what the hook was for. If the hook " 1.9921 @@ -10729,12 +9812,12 @@ 1.9922 msgstr "" 1.9923 1.9924 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9925 -#: ../en/ch10-hook.xml:408 1.9926 +#: ../en/ch09-hook.xml:407 1.9927 msgid "Controlling whether an activity can proceed" 1.9928 msgstr "控制处理的活动" 1.9929 1.9930 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9931 -#: ../en/ch10-hook.xml:410 1.9932 +#: ../en/ch09-hook.xml:409 1.9933 msgid "" 1.9934 "In our earlier examples, we used the <literal role=\"hook\">commit</literal> " 1.9935 "hook, which is run after a commit has completed. This is one of several " 1.9936 @@ -10743,7 +9826,7 @@ 1.9937 msgstr "" 1.9938 1.9939 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9940 -#: ../en/ch10-hook.xml:417 1.9941 +#: ../en/ch09-hook.xml:416 1.9942 msgid "" 1.9943 "Mercurial defines a number of events that occur before an activity starts; or " 1.9944 "after it starts, but before it finishes. Hooks that trigger on these events " 1.9945 @@ -10752,7 +9835,7 @@ 1.9946 msgstr "" 1.9947 1.9948 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9949 -#: ../en/ch10-hook.xml:423 1.9950 +#: ../en/ch09-hook.xml:422 1.9951 msgid "" 1.9952 "The <literal role=\"hook\">pretxncommit</literal> hook runs after a commit " 1.9953 "has all but completed. In other words, the metadata representing the " 1.9954 @@ -10763,7 +9846,7 @@ 1.9955 msgstr "" 1.9956 1.9957 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9958 -#: ../en/ch10-hook.xml:432 1.9959 +#: ../en/ch09-hook.xml:431 1.9960 msgid "" 1.9961 "If the <literal role=\"hook\">pretxncommit</literal> hook exits with a status " 1.9962 "code of zero, the transaction is allowed to complete; the commit finishes; " 1.9963 @@ -10774,19 +9857,19 @@ 1.9964 msgstr "" 1.9965 1.9966 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9967 -#: ../en/ch10-hook.xml:444 1.9968 +#: ../en/ch09-hook.xml:443 1.9969 msgid "" 1.9970 "The hook in the example above checks that a commit comment contains a bug " 1.9971 "ID. If it does, the commit can complete. If not, the commit is rolled back." 1.9972 msgstr "" 1.9973 1.9974 #. type: Content of: <book><chapter><sect1><title> 1.9975 -#: ../en/ch10-hook.xml:452 1.9976 +#: ../en/ch09-hook.xml:451 1.9977 msgid "Writing your own hooks" 1.9978 msgstr "编写钩子" 1.9979 1.9980 #. type: Content of: <book><chapter><sect1><para> 1.9981 -#: ../en/ch10-hook.xml:454 1.9982 +#: ../en/ch09-hook.xml:453 1.9983 msgid "" 1.9984 "When you are writing a hook, you might find it useful to run Mercurial either " 1.9985 "with the <option role=\"hg-opt-global\">-v</option> option, or the <envar " 1.9986 @@ -10795,12 +9878,12 @@ 1.9987 msgstr "" 1.9988 1.9989 #. type: Content of: <book><chapter><sect1><sect2><title> 1.9990 -#: ../en/ch10-hook.xml:463 1.9991 +#: ../en/ch09-hook.xml:462 1.9992 msgid "Choosing how your hook should run" 1.9993 msgstr "选择钩子的执行方式" 1.9994 1.9995 #. type: Content of: <book><chapter><sect1><sect2><para> 1.9996 -#: ../en/ch10-hook.xml:465 1.9997 +#: ../en/ch09-hook.xml:464 1.9998 msgid "" 1.9999 "You can write a hook either as a normal program&emdash;typically a shell " 1.10000 "script&emdash;or as a Python function that is executed within the Mercurial " 1.10001 @@ -10808,7 +9891,7 @@ 1.10002 msgstr "" 1.10003 1.10004 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10005 -#: ../en/ch10-hook.xml:470 1.10006 +#: ../en/ch09-hook.xml:469 1.10007 msgid "" 1.10008 "Writing a hook as an external program has the advantage that it requires no " 1.10009 "knowledge of Mercurial's internals. You can call normal Mercurial commands " 1.10010 @@ -10817,7 +9900,7 @@ 1.10011 msgstr "" 1.10012 1.10013 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10014 -#: ../en/ch10-hook.xml:477 1.10015 +#: ../en/ch09-hook.xml:476 1.10016 msgid "" 1.10017 "An in-process Python hook has complete access to the Mercurial API, and does " 1.10018 "not <quote>shell out</quote> to another process, so it is inherently faster " 1.10019 @@ -10827,7 +9910,7 @@ 1.10020 msgstr "" 1.10021 1.10022 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10023 -#: ../en/ch10-hook.xml:485 1.10024 +#: ../en/ch09-hook.xml:484 1.10025 msgid "" 1.10026 "If you are comfortable with Python, or require high performance, writing your " 1.10027 "hooks in Python may be a good choice. However, when you have a " 1.10028 @@ -10836,12 +9919,12 @@ 1.10029 msgstr "" 1.10030 1.10031 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10032 -#: ../en/ch10-hook.xml:494 1.10033 +#: ../en/ch09-hook.xml:493 1.10034 msgid "Hook parameters" 1.10035 msgstr "钩子的参数" 1.10036 1.10037 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10038 -#: ../en/ch10-hook.xml:496 1.10039 +#: ../en/ch09-hook.xml:495 1.10040 msgid "" 1.10041 "Mercurial calls each hook with a set of well-defined parameters. In Python, " 1.10042 "a parameter is passed as a keyword argument to your hook function. For an " 1.10043 @@ -10849,7 +9932,7 @@ 1.10044 msgstr "" 1.10045 1.10046 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10047 -#: ../en/ch10-hook.xml:502 1.10048 +#: ../en/ch09-hook.xml:501 1.10049 msgid "" 1.10050 "Whether your hook is written in Python or as a shell script, the hook-" 1.10051 "specific parameter names and values will be the same. A boolean parameter " 1.10052 @@ -10862,12 +9945,12 @@ 1.10053 msgstr "" 1.10054 1.10055 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10056 -#: ../en/ch10-hook.xml:516 1.10057 +#: ../en/ch09-hook.xml:515 1.10058 msgid "Hook return values and activity control" 1.10059 msgstr "钩子的返回值与活动控制" 1.10060 1.10061 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10062 -#: ../en/ch10-hook.xml:518 1.10063 +#: ../en/ch09-hook.xml:517 1.10064 msgid "" 1.10065 "A hook that executes successfully must exit with a status of zero if " 1.10066 "external, or return boolean <quote>false</quote> if in-process. Failure is " 1.10067 @@ -10877,35 +9960,35 @@ 1.10068 msgstr "" 1.10069 1.10070 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10071 -#: ../en/ch10-hook.xml:526 1.10072 +#: ../en/ch09-hook.xml:525 1.10073 msgid "" 1.10074 "For a hook that controls whether an activity can proceed, zero/false means " 1.10075 "<quote>allow</quote>, while non-zero/true/exception means <quote>deny</quote>." 1.10076 msgstr "" 1.10077 1.10078 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10079 -#: ../en/ch10-hook.xml:533 1.10080 +#: ../en/ch09-hook.xml:532 1.10081 msgid "Writing an external hook" 1.10082 msgstr "编写外部钩子" 1.10083 1.10084 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10085 -#: ../en/ch10-hook.xml:535 1.10086 -msgid "" 1.10087 -"When you define an external hook in your <filename role=\"special\"> /.hgrc</" 1.10088 -"filename>\\ and the hook is run, its value is passed to your shell, which " 1.10089 +#: ../en/ch09-hook.xml:534 1.10090 +msgid "" 1.10091 +"When you define an external hook in your <filename role=\"special\">~/.hgrc</" 1.10092 +"filename> and the hook is run, its value is passed to your shell, which " 1.10093 "interprets it. This means that you can use normal shell constructs in the " 1.10094 "body of the hook." 1.10095 msgstr "" 1.10096 1.10097 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10098 -#: ../en/ch10-hook.xml:542 1.10099 +#: ../en/ch09-hook.xml:541 1.10100 msgid "" 1.10101 "An executable hook is always run with its current directory set to a " 1.10102 "repository's root directory." 1.10103 msgstr "" 1.10104 1.10105 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10106 -#: ../en/ch10-hook.xml:546 1.10107 +#: ../en/ch09-hook.xml:545 1.10108 msgid "" 1.10109 "Each hook parameter is passed in as an environment variable; the name is " 1.10110 "upper-cased, and prefixed with the string <quote><literal>HG_</literal></" 1.10111 @@ -10913,7 +9996,7 @@ 1.10112 msgstr "" 1.10113 1.10114 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10115 -#: ../en/ch10-hook.xml:551 1.10116 +#: ../en/ch09-hook.xml:550 1.10117 msgid "" 1.10118 "With the exception of hook parameters, Mercurial does not set or modify any " 1.10119 "environment variables when running a hook. This is useful to remember if you " 1.10120 @@ -10924,14 +10007,14 @@ 1.10121 msgstr "" 1.10122 1.10123 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10124 -#: ../en/ch10-hook.xml:562 1.10125 +#: ../en/ch09-hook.xml:561 1.10126 msgid "Telling Mercurial to use an in-process hook" 1.10127 msgstr "让 Mercurial 使用进程内钩子" 1.10128 1.10129 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10130 -#: ../en/ch10-hook.xml:564 1.10131 -msgid "" 1.10132 -"The <filename role=\"special\"> /.hgrc</filename>\\ syntax for defining an in-" 1.10133 +#: ../en/ch09-hook.xml:563 1.10134 +msgid "" 1.10135 +"The <filename role=\"special\">~/.hgrc</filename> syntax for defining an in-" 1.10136 "process hook is slightly different than for an executable hook. The value of " 1.10137 "the hook must start with the text <quote><literal>python:</literal></quote>, " 1.10138 "and continue with the fully-qualified name of a callable object to use as the " 1.10139 @@ -10939,7 +10022,7 @@ 1.10140 msgstr "" 1.10141 1.10142 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10143 -#: ../en/ch10-hook.xml:572 1.10144 +#: ../en/ch09-hook.xml:571 1.10145 msgid "" 1.10146 "The module in which a hook lives is automatically imported when a hook is " 1.10147 "run. So long as you have the module name and <envar>PYTHONPATH</envar> " 1.10148 @@ -10947,14 +10030,14 @@ 1.10149 msgstr "" 1.10150 1.10151 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10152 -#: ../en/ch10-hook.xml:578 1.10153 -msgid "" 1.10154 -"The following <filename role=\"special\"> /.hgrc</filename>\\ example snippet " 1.10155 +#: ../en/ch09-hook.xml:577 1.10156 +msgid "" 1.10157 +"The following <filename role=\"special\">~/.hgrc</filename> example snippet " 1.10158 "illustrates the syntax and meaning of the notions we just described." 1.10159 msgstr "" 1.10160 1.10161 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10162 -#: ../en/ch10-hook.xml:584 1.10163 +#: ../en/ch09-hook.xml:583 1.10164 msgid "" 1.10165 "When Mercurial runs the <literal>commit.example</literal> hook, it imports " 1.10166 "<literal>mymodule.submodule</literal>, looks for the callable object named " 1.10167 @@ -10962,19 +10045,19 @@ 1.10168 msgstr "" 1.10169 1.10170 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10171 -#: ../en/ch10-hook.xml:592 1.10172 +#: ../en/ch09-hook.xml:591 1.10173 msgid "Writing an in-process hook" 1.10174 msgstr "编写进程内钩子" 1.10175 1.10176 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10177 -#: ../en/ch10-hook.xml:594 1.10178 +#: ../en/ch09-hook.xml:593 1.10179 msgid "" 1.10180 "The simplest in-process hook does nothing, but illustrates the basic shape of " 1.10181 "the hook API:" 1.10182 msgstr "" 1.10183 1.10184 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10185 -#: ../en/ch10-hook.xml:599 1.10186 +#: ../en/ch09-hook.xml:598 1.10187 msgid "" 1.10188 "The first argument to a Python hook is always a <literal role=\"py-mod-" 1.10189 "mercurial.ui\">ui</literal> object. The second is a repository object; at " 1.10190 @@ -10986,17 +10069,17 @@ 1.10191 msgstr "" 1.10192 1.10193 #. type: Content of: <book><chapter><sect1><title> 1.10194 -#: ../en/ch10-hook.xml:614 1.10195 +#: ../en/ch09-hook.xml:613 1.10196 msgid "Some hook examples" 1.10197 msgstr "钩子样例" 1.10198 1.10199 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10200 -#: ../en/ch10-hook.xml:617 1.10201 +#: ../en/ch09-hook.xml:616 1.10202 msgid "Writing meaningful commit messages" 1.10203 msgstr "编写有意义的提交日志" 1.10204 1.10205 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10206 -#: ../en/ch10-hook.xml:619 1.10207 +#: ../en/ch09-hook.xml:618 1.10208 msgid "" 1.10209 "It's hard to imagine a useful commit message being very short. The simple " 1.10210 "<literal role=\"hook\">pretxncommit</literal> hook of the example below will " 1.10211 @@ -11005,12 +10088,12 @@ 1.10212 msgstr "" 1.10213 1.10214 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10215 -#: ../en/ch10-hook.xml:629 1.10216 +#: ../en/ch09-hook.xml:628 1.10217 msgid "Checking for trailing whitespace" 1.10218 msgstr "检查行尾空格" 1.10219 1.10220 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10221 -#: ../en/ch10-hook.xml:631 1.10222 +#: ../en/ch09-hook.xml:630 1.10223 msgid "" 1.10224 "An interesting use of a commit-related hook is to help you to write cleaner " 1.10225 "code. A simple example of <quote>cleaner code</quote> is the dictum that a " 1.10226 @@ -11022,7 +10105,7 @@ 1.10227 msgstr "" 1.10228 1.10229 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10230 -#: ../en/ch10-hook.xml:642 1.10231 +#: ../en/ch09-hook.xml:641 1.10232 msgid "" 1.10233 "You can use either the <literal role=\"hook\">precommit</literal> or <literal " 1.10234 "role=\"hook\">pretxncommit</literal> hook to tell whether you have a trailing " 1.10235 @@ -11037,7 +10120,7 @@ 1.10236 msgstr "" 1.10237 1.10238 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10239 -#: ../en/ch10-hook.xml:658 1.10240 +#: ../en/ch09-hook.xml:657 1.10241 msgid "" 1.10242 "Should you choose the <literal role=\"hook\">pretxncommit</literal> hook, the " 1.10243 "check won't occur until just before the transaction for the commit " 1.10244 @@ -11049,7 +10132,7 @@ 1.10245 msgstr "" 1.10246 1.10247 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10248 -#: ../en/ch10-hook.xml:671 1.10249 +#: ../en/ch09-hook.xml:670 1.10250 msgid "" 1.10251 "In this example, we introduce a simple <literal role=\"hook\">pretxncommit</" 1.10252 "literal> hook that checks for trailing whitespace. This hook is short, but " 1.10253 @@ -11061,7 +10144,7 @@ 1.10254 msgstr "" 1.10255 1.10256 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10257 -#: ../en/ch10-hook.xml:682 1.10258 +#: ../en/ch09-hook.xml:681 1.10259 msgid "" 1.10260 "The above version is much more complex, but also more useful. It parses a " 1.10261 "unified diff to see if any lines add trailing whitespace, and prints the name " 1.10262 @@ -11074,7 +10157,7 @@ 1.10263 msgstr "" 1.10264 1.10265 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10266 -#: ../en/ch10-hook.xml:696 1.10267 +#: ../en/ch09-hook.xml:695 1.10268 msgid "" 1.10269 "As a final aside, note in the example above the use of <command>perl</" 1.10270 "command>'s in-place editing feature to get rid of trailing whitespace from a " 1.10271 @@ -11082,12 +10165,12 @@ 1.10272 msgstr "" 1.10273 1.10274 #. type: Content of: <book><chapter><sect1><title> 1.10275 -#: ../en/ch10-hook.xml:706 1.10276 +#: ../en/ch09-hook.xml:705 1.10277 msgid "Bundled hooks" 1.10278 msgstr "内置的钩子" 1.10279 1.10280 #. type: Content of: <book><chapter><sect1><para> 1.10281 -#: ../en/ch10-hook.xml:708 1.10282 +#: ../en/ch09-hook.xml:707 1.10283 msgid "" 1.10284 "Mercurial ships with several bundled hooks. You can find them in the " 1.10285 "<filename class=\"directory\">hgext</filename> directory of a Mercurial " 1.10286 @@ -11097,14 +10180,14 @@ 1.10287 msgstr "" 1.10288 1.10289 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10290 -#: ../en/ch10-hook.xml:717 1.10291 +#: ../en/ch09-hook.xml:716 1.10292 msgid "" 1.10293 "<literal role=\"hg-ext\">acl</literal>&emdash;access control for parts of a " 1.10294 "repository" 1.10295 msgstr "<literal role=\"hg-ext\">acl</literal>&emdash;版本库的访问控制" 1.10296 1.10297 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10298 -#: ../en/ch10-hook.xml:720 1.10299 +#: ../en/ch09-hook.xml:719 1.10300 msgid "" 1.10301 "The <literal role=\"hg-ext\">acl</literal> extension lets you control which " 1.10302 "remote users are allowed to push changesets to a networked server. You can " 1.10303 @@ -11114,7 +10197,7 @@ 1.10304 msgstr "" 1.10305 1.10306 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10307 -#: ../en/ch10-hook.xml:728 1.10308 +#: ../en/ch09-hook.xml:727 1.10309 msgid "" 1.10310 "This extension implements access control based on the identity of the user " 1.10311 "performing a push, <emphasis>not</emphasis> on who committed the changesets " 1.10312 @@ -11124,12 +10207,12 @@ 1.10313 msgstr "" 1.10314 1.10315 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10316 -#: ../en/ch10-hook.xml:738 1.10317 +#: ../en/ch09-hook.xml:737 1.10318 msgid "Configuring the <literal role=\"hook\">acl</literal> hook" 1.10319 msgstr "配置 <literal role=\"hook\">acl</literal> 钩子" 1.10320 1.10321 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10322 -#: ../en/ch10-hook.xml:741 1.10323 +#: ../en/ch09-hook.xml:740 1.10324 msgid "" 1.10325 "In order to manage incoming changesets, the <literal role=\"hg-ext\">acl</" 1.10326 "literal> hook must be used as a <literal role=\"hook\">pretxnchangegroup</" 1.10327 @@ -11139,14 +10222,14 @@ 1.10328 msgstr "" 1.10329 1.10330 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10331 -#: ../en/ch10-hook.xml:751 1.10332 +#: ../en/ch09-hook.xml:750 1.10333 msgid "" 1.10334 "The <literal role=\"hg-ext\">acl</literal> extension is configured using " 1.10335 "three sections." 1.10336 msgstr "" 1.10337 1.10338 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10339 -#: ../en/ch10-hook.xml:755 1.10340 +#: ../en/ch09-hook.xml:754 1.10341 msgid "" 1.10342 "The <literal role=\"rc-acl\">acl</literal> section has only one entry, <envar " 1.10343 "role=\"rc-item-acl\">sources</envar>, which lists the sources of incoming " 1.10344 @@ -11155,7 +10238,7 @@ 1.10345 msgstr "" 1.10346 1.10347 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10348 -#: ../en/ch10-hook.xml:762 1.10349 +#: ../en/ch09-hook.xml:761 1.10350 msgid "" 1.10351 "<envar role=\"rc-item-acl\">serve</envar>: Control incoming changesets that " 1.10352 "are arriving from a remote repository over http or ssh. This is the default " 1.10353 @@ -11164,28 +10247,28 @@ 1.10354 msgstr "" 1.10355 1.10356 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10357 -#: ../en/ch10-hook.xml:770 1.10358 +#: ../en/ch09-hook.xml:769 1.10359 msgid "" 1.10360 "<envar role=\"rc-item-acl\">pull</envar>: Control incoming changesets that " 1.10361 "are arriving via a pull from a local repository." 1.10362 msgstr "" 1.10363 1.10364 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10365 -#: ../en/ch10-hook.xml:775 1.10366 +#: ../en/ch09-hook.xml:774 1.10367 msgid "" 1.10368 "<envar role=\"rc-item-acl\">push</envar>: Control incoming changesets that " 1.10369 "are arriving via a push from a local repository." 1.10370 msgstr "" 1.10371 1.10372 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10373 -#: ../en/ch10-hook.xml:780 1.10374 +#: ../en/ch09-hook.xml:779 1.10375 msgid "" 1.10376 "<envar role=\"rc-item-acl\">bundle</envar>: Control incoming changesets that " 1.10377 "are arriving from another repository via a bundle." 1.10378 msgstr "" 1.10379 1.10380 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10381 -#: ../en/ch10-hook.xml:786 1.10382 +#: ../en/ch09-hook.xml:785 1.10383 msgid "" 1.10384 "The <literal role=\"rc-acl.allow\">acl.allow</literal> section controls the " 1.10385 "users that are allowed to add changesets to the repository. If this section " 1.10386 @@ -11195,7 +10278,7 @@ 1.10387 msgstr "" 1.10388 1.10389 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10390 -#: ../en/ch10-hook.xml:795 1.10391 +#: ../en/ch09-hook.xml:794 1.10392 msgid "" 1.10393 "The <literal role=\"rc-acl.deny\">acl.deny</literal> section determines which " 1.10394 "users are denied from adding changesets to the repository. If this section " 1.10395 @@ -11203,7 +10286,7 @@ 1.10396 msgstr "" 1.10397 1.10398 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10399 -#: ../en/ch10-hook.xml:801 1.10400 +#: ../en/ch09-hook.xml:800 1.10401 msgid "" 1.10402 "The syntaxes for the <literal role=\"rc-acl.allow\">acl.allow</literal> and " 1.10403 "<literal role=\"rc-acl.deny\">acl.deny</literal> sections are identical. On " 1.10404 @@ -11212,7 +10295,7 @@ 1.10405 msgstr "" 1.10406 1.10407 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10408 -#: ../en/ch10-hook.xml:809 1.10409 +#: ../en/ch09-hook.xml:808 1.10410 msgid "" 1.10411 "In the following example, the user <literal>docwriter</literal> can only push " 1.10412 "changes to the <filename class=\"directory\">docs</filename> subtree of the " 1.10413 @@ -11221,23 +10304,23 @@ 1.10414 msgstr "" 1.10415 1.10416 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10417 -#: ../en/ch10-hook.xml:821 ../en/ch10-hook.xml:1095 ../en/ch10-hook.xml:1308 1.10418 +#: ../en/ch09-hook.xml:822 ../en/ch09-hook.xml:1089 ../en/ch09-hook.xml:1280 1.10419 msgid "Testing and troubleshooting" 1.10420 msgstr "测试与问题处理" 1.10421 1.10422 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10423 -#: ../en/ch10-hook.xml:823 1.10424 +#: ../en/ch09-hook.xml:824 1.10425 msgid "" 1.10426 "If you want to test the <literal role=\"hg-ext\">acl</literal> hook, run it " 1.10427 "with Mercurial's debugging output enabled. Since you'll probably be running " 1.10428 "it on a server where it's not convenient (or sometimes possible) to pass in " 1.10429 "the <option role=\"hg-opt-global\">--debug</option> option, don't forget that " 1.10430 -"you can enable debugging output in your <filename role=\"special\"> /.hgrc</" 1.10431 +"you can enable debugging output in your <filename role=\"special\">~/.hgrc</" 1.10432 "filename>:" 1.10433 msgstr "" 1.10434 1.10435 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10436 -#: ../en/ch10-hook.xml:833 1.10437 +#: ../en/ch09-hook.xml:835 1.10438 msgid "" 1.10439 "With this enabled, the <literal role=\"hg-ext\">acl</literal> hook will print " 1.10440 "enough information to let you figure out why it is allowing or forbidding " 1.10441 @@ -11245,13 +10328,13 @@ 1.10442 msgstr "" 1.10443 1.10444 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10445 -#: ../en/ch10-hook.xml:842 1.10446 +#: ../en/ch09-hook.xml:844 1.10447 msgid "" 1.10448 "<literal role=\"hg-ext\">bugzilla</literal>&emdash;integration with Bugzilla" 1.10449 msgstr "<literal role=\"hg-ext\">bugzilla</literal>&emdash;与 Bugzilla 的集成" 1.10450 1.10451 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10452 -#: ../en/ch10-hook.xml:846 1.10453 +#: ../en/ch09-hook.xml:848 1.10454 msgid "" 1.10455 "The <literal role=\"hg-ext\">bugzilla</literal> extension adds a comment to a " 1.10456 "Bugzilla bug whenever it finds a reference to that bug ID in a commit " 1.10457 @@ -11260,14 +10343,14 @@ 1.10458 msgstr "" 1.10459 1.10460 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10461 -#: ../en/ch10-hook.xml:853 1.10462 +#: ../en/ch09-hook.xml:855 1.10463 msgid "" 1.10464 "It adds a comment to the bug that looks like this (you can configure the " 1.10465 "contents of the comment&emdash;see below):" 1.10466 msgstr "" 1.10467 1.10468 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10469 -#: ../en/ch10-hook.xml:862 1.10470 +#: ../en/ch09-hook.xml:864 1.10471 msgid "" 1.10472 "The value of this hook is that it automates the process of updating a bug any " 1.10473 "time a changeset refers to it. If you configure the hook properly, it makes " 1.10474 @@ -11276,14 +10359,14 @@ 1.10475 msgstr "" 1.10476 1.10477 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10478 -#: ../en/ch10-hook.xml:869 1.10479 +#: ../en/ch09-hook.xml:871 1.10480 msgid "" 1.10481 "You can use the code in this hook as a starting point for some more exotic " 1.10482 "Bugzilla integration recipes. Here are a few possibilities:" 1.10483 msgstr "" 1.10484 1.10485 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.10486 -#: ../en/ch10-hook.xml:874 1.10487 +#: ../en/ch09-hook.xml:876 1.10488 msgid "" 1.10489 "Require that every changeset pushed to the server have a valid bug ID in its " 1.10490 "commit comment. In this case, you'd want to configure the hook as a <literal " 1.10491 @@ -11292,7 +10375,7 @@ 1.10492 msgstr "" 1.10493 1.10494 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.10495 -#: ../en/ch10-hook.xml:882 1.10496 +#: ../en/ch09-hook.xml:884 1.10497 msgid "" 1.10498 "Allow incoming changesets to automatically modify the <emphasis>state</" 1.10499 "emphasis> of a bug, as well as simply adding a comment. For example, the " 1.10500 @@ -11302,20 +10385,23 @@ 1.10501 msgstr "" 1.10502 1.10503 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10504 -#: ../en/ch10-hook.xml:892 1.10505 +#: ../en/ch09-hook.xml:894 1.10506 msgid "Configuring the <literal role=\"hook\">bugzilla</literal> hook" 1.10507 msgstr "配置 <literal role=\"hook\">bugzilla</literal> 钩子" 1.10508 1.10509 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10510 -#: ../en/ch10-hook.xml:895 1.10511 -msgid "" 1.10512 -"You should configure this hook in your server's <filename role=\"special\"> /." 1.10513 -"hgrc</filename>\\ as an <literal role=\"hook\">incoming</literal> hook, for " 1.10514 +#: ../en/ch09-hook.xml:897 1.10515 +#, fuzzy 1.10516 +msgid "" 1.10517 +"You should configure this hook in your server's <filename role=\"special\">~/." 1.10518 +"hgrc</filename> as an <literal role=\"hook\">incoming</literal> hook, for " 1.10519 "example as follows:" 1.10520 msgstr "" 1.10521 +"选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal " 1.10522 +"role=\"rc-web\">web</literal> 条目" 1.10523 1.10524 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10525 -#: ../en/ch10-hook.xml:903 1.10526 +#: ../en/ch09-hook.xml:905 1.10527 msgid "" 1.10528 "Because of the specialised nature of this hook, and because Bugzilla was not " 1.10529 "written with this kind of integration in mind, configuring this hook is a " 1.10530 @@ -11323,7 +10409,7 @@ 1.10531 msgstr "" 1.10532 1.10533 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10534 -#: ../en/ch10-hook.xml:909 1.10535 +#: ../en/ch09-hook.xml:911 1.10536 msgid "" 1.10537 "Before you begin, you must install the MySQL bindings for Python on the host" 1.10538 "(s) where you'll be running the hook. If this is not available as a binary " 1.10539 @@ -11332,15 +10418,15 @@ 1.10540 msgstr "" 1.10541 1.10542 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10543 -#: ../en/ch10-hook.xml:916 1.10544 +#: ../en/ch09-hook.xml:918 1.10545 msgid "" 1.10546 "Configuration information for this hook lives in the <literal role=\"rc-" 1.10547 -"bugzilla\">bugzilla</literal> section of your <filename role=\"special\"> /." 1.10548 +"bugzilla\">bugzilla</literal> section of your <filename role=\"special\">~/." 1.10549 "hgrc</filename>." 1.10550 msgstr "" 1.10551 1.10552 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10553 -#: ../en/ch10-hook.xml:921 1.10554 +#: ../en/ch09-hook.xml:923 1.10555 msgid "" 1.10556 "<envar role=\"rc-item-bugzilla\">version</envar>: The version of Bugzilla " 1.10557 "installed on the server. The database schema that Bugzilla uses changes " 1.10558 @@ -11349,7 +10435,7 @@ 1.10559 msgstr "" 1.10560 1.10561 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10562 -#: ../en/ch10-hook.xml:930 1.10563 +#: ../en/ch09-hook.xml:932 1.10564 msgid "" 1.10565 "<envar role=\"rc-item-bugzilla\">host</envar>: The hostname of the MySQL " 1.10566 "server that stores your Bugzilla data. The database must be configured to " 1.10567 @@ -11358,7 +10444,7 @@ 1.10568 msgstr "" 1.10569 1.10570 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10571 -#: ../en/ch10-hook.xml:937 1.10572 +#: ../en/ch09-hook.xml:939 1.10573 msgid "" 1.10574 "<envar role=\"rc-item-bugzilla\">user</envar>: The username with which to " 1.10575 "connect to the MySQL server. The database must be configured to allow this " 1.10576 @@ -11369,16 +10455,16 @@ 1.10577 msgstr "" 1.10578 1.10579 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10580 -#: ../en/ch10-hook.xml:948 1.10581 +#: ../en/ch09-hook.xml:950 1.10582 msgid "" 1.10583 "<envar role=\"rc-item-bugzilla\">password</envar>: The MySQL password for the " 1.10584 "user you configured above. This is stored as plain text, so you should make " 1.10585 -"sure that unauthorised users cannot read the <filename role=\"special\"> /." 1.10586 -"hgrc</filename>\\ file where you store this information." 1.10587 +"sure that unauthorised users cannot read the <filename role=\"special\">~/." 1.10588 +"hgrc</filename> file where you store this information." 1.10589 msgstr "" 1.10590 1.10591 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10592 -#: ../en/ch10-hook.xml:957 1.10593 +#: ../en/ch09-hook.xml:959 1.10594 msgid "" 1.10595 "<envar role=\"rc-item-bugzilla\">db</envar>: The name of the Bugzilla " 1.10596 "database on the MySQL server. The default value of this item is " 1.10597 @@ -11387,7 +10473,7 @@ 1.10598 msgstr "" 1.10599 1.10600 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10601 -#: ../en/ch10-hook.xml:964 1.10602 +#: ../en/ch09-hook.xml:966 1.10603 msgid "" 1.10604 "<envar role=\"rc-item-bugzilla\">notify</envar>: If you want Bugzilla to send " 1.10605 "out a notification email to subscribers after this hook has added a comment " 1.10606 @@ -11398,7 +10484,7 @@ 1.10607 msgstr "" 1.10608 1.10609 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10610 -#: ../en/ch10-hook.xml:977 1.10611 +#: ../en/ch09-hook.xml:979 1.10612 msgid "" 1.10613 "The Bugzilla <literal>processmail</literal> program expects to be given a bug " 1.10614 "ID (the hook replaces <quote><literal>%s</literal></quote> with the bug ID) " 1.10615 @@ -11409,12 +10495,12 @@ 1.10616 msgstr "" 1.10617 1.10618 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10619 -#: ../en/ch10-hook.xml:992 1.10620 +#: ../en/ch09-hook.xml:994 1.10621 msgid "Mapping committer names to Bugzilla user names" 1.10622 msgstr "提交者的名称与 Bugzilla 用户名称的映射" 1.10623 1.10624 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10625 -#: ../en/ch10-hook.xml:994 1.10626 +#: ../en/ch09-hook.xml:996 1.10627 msgid "" 1.10628 "By default, the <literal role=\"hg-ext\">bugzilla</literal> hook tries to use " 1.10629 "the email address of a changeset's committer as the Bugzilla user name with " 1.10630 @@ -11424,14 +10510,14 @@ 1.10631 msgstr "" 1.10632 1.10633 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10634 -#: ../en/ch10-hook.xml:1003 1.10635 +#: ../en/ch09-hook.xml:1005 1.10636 msgid "" 1.10637 "Each item in the <literal role=\"rc-usermap\">usermap</literal> section " 1.10638 "contains an email address on the left, and a Bugzilla user name on the right." 1.10639 msgstr "" 1.10640 1.10641 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10642 -#: ../en/ch10-hook.xml:1010 1.10643 +#: ../en/ch09-hook.xml:1012 1.10644 msgid "" 1.10645 "You can either keep the <literal role=\"rc-usermap\">usermap</literal> data " 1.10646 "in a normal <filename role=\"special\">~/.hgrc</filename>, or tell the " 1.10647 @@ -11440,32 +10526,32 @@ 1.10648 "store <filename>usermap</filename> data by itself in (for example) a user-" 1.10649 "modifiable repository. This makes it possible to let your users maintain " 1.10650 "their own <envar role=\"rc-item-bugzilla\">usermap</envar> entries. The main " 1.10651 -"<filename role=\"special\"> /.hgrc</filename>\\ file might look like this:" 1.10652 +"<filename role=\"special\">~/.hgrc</filename> file might look like this:" 1.10653 msgstr "" 1.10654 1.10655 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10656 -#: ../en/ch10-hook.xml:1026 1.10657 +#: ../en/ch09-hook.xml:1028 1.10658 msgid "" 1.10659 "While the <filename>usermap</filename> file that it refers to might look like " 1.10660 "this:" 1.10661 msgstr "" 1.10662 1.10663 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10664 -#: ../en/ch10-hook.xml:1035 1.10665 +#: ../en/ch09-hook.xml:1036 1.10666 msgid "Configuring the text that gets added to a bug" 1.10667 msgstr "配置增加到问题中的正文" 1.10668 1.10669 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10670 -#: ../en/ch10-hook.xml:1037 1.10671 +#: ../en/ch09-hook.xml:1038 1.10672 msgid "" 1.10673 "You can configure the text that this hook adds as a comment; you specify it " 1.10674 -"in the form of a Mercurial template. Several <filename role=\"special\"> /." 1.10675 -"hgrc</filename>\\ entries (still in the <literal role=\"rc-bugzilla" 1.10676 -"\">bugzilla</literal> section) control this behaviour." 1.10677 +"in the form of a Mercurial template. Several <filename role=\"special\">~/." 1.10678 +"hgrc</filename> entries (still in the <literal role=\"rc-bugzilla\">bugzilla</" 1.10679 +"literal> section) control this behaviour." 1.10680 msgstr "" 1.10681 1.10682 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10683 -#: ../en/ch10-hook.xml:1044 1.10684 +#: ../en/ch09-hook.xml:1045 1.10685 msgid "" 1.10686 "<literal>strip</literal>: The number of leading path elements to strip from a " 1.10687 "repository's path name to construct a partial path for a URL. For example, if " 1.10688 @@ -11479,7 +10565,7 @@ 1.10689 msgstr "" 1.10690 1.10691 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10692 -#: ../en/ch10-hook.xml:1058 1.10693 +#: ../en/ch09-hook.xml:1059 1.10694 msgid "" 1.10695 "<literal>template</literal>: The text of the template to use. In addition to " 1.10696 "the usual changeset-related variables, this template can use <literal>hgweb</" 1.10697 @@ -11489,25 +10575,25 @@ 1.10698 msgstr "" 1.10699 1.10700 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10701 -#: ../en/ch10-hook.xml:1068 1.10702 +#: ../en/ch09-hook.xml:1069 1.10703 msgid "" 1.10704 "In addition, you can add a <envar role=\"rc-item-web\">baseurl</envar> item " 1.10705 "to the <literal role=\"rc-web\">web</literal> section of your <filename role=" 1.10706 -"\"special\"> /.hgrc</filename>. The <literal role=\"hg-ext\">bugzilla</" 1.10707 +"\"special\">~/.hgrc</filename>. The <literal role=\"hg-ext\">bugzilla</" 1.10708 "literal> hook will make this available when expanding a template, as the base " 1.10709 "string to use when constructing a URL that will let users browse from a " 1.10710 "Bugzilla comment to view a changeset. Example:" 1.10711 msgstr "" 1.10712 1.10713 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10714 -#: ../en/ch10-hook.xml:1080 1.10715 +#: ../en/ch09-hook.xml:1081 1.10716 msgid "" 1.10717 "Here is an example set of <literal role=\"hg-ext\">bugzilla</literal> hook " 1.10718 "config information." 1.10719 msgstr "" 1.10720 1.10721 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10722 -#: ../en/ch10-hook.xml:1097 1.10723 +#: ../en/ch09-hook.xml:1091 1.10724 msgid "" 1.10725 "The most common problems with configuring the <literal role=\"hg-ext" 1.10726 "\">bugzilla</literal> hook relate to running Bugzilla's " 1.10727 @@ -11516,7 +10602,7 @@ 1.10728 msgstr "" 1.10729 1.10730 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10731 -#: ../en/ch10-hook.xml:1103 1.10732 +#: ../en/ch09-hook.xml:1097 1.10733 msgid "" 1.10734 "Recall from section <xref linkend=\"sec.hook.bugzilla.config\"/> above that " 1.10735 "the user that runs the Mercurial process on the server is also the one that " 1.10736 @@ -11527,7 +10613,7 @@ 1.10737 msgstr "" 1.10738 1.10739 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10740 -#: ../en/ch10-hook.xml:1114 1.10741 +#: ../en/ch09-hook.xml:1108 1.10742 msgid "" 1.10743 "You can cause <filename>processmail</filename> to be run with the suitable " 1.10744 "user's identity using the <command>sudo</command> command. Here is an " 1.10745 @@ -11535,7 +10621,7 @@ 1.10746 msgstr "" 1.10747 1.10748 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10749 -#: ../en/ch10-hook.xml:1122 1.10750 +#: ../en/ch09-hook.xml:1115 1.10751 msgid "" 1.10752 "This allows the <literal>hg_user</literal> user to run a " 1.10753 "<filename>processmail-wrapper</filename> program under the identity of " 1.10754 @@ -11543,7 +10629,7 @@ 1.10755 msgstr "" 1.10756 1.10757 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10758 -#: ../en/ch10-hook.xml:1127 1.10759 +#: ../en/ch09-hook.xml:1120 1.10760 msgid "" 1.10761 "This indirection through a wrapper script is necessary, because " 1.10762 "<filename>processmail</filename> expects to be run with its current directory " 1.10763 @@ -11553,14 +10639,14 @@ 1.10764 msgstr "" 1.10765 1.10766 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10767 -#: ../en/ch10-hook.xml:1136 1.10768 +#: ../en/ch09-hook.xml:1129 1.10769 msgid "" 1.10770 "It doesn't seem to matter what email address you pass to " 1.10771 "<filename>processmail</filename>." 1.10772 msgstr "" 1.10773 1.10774 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10775 -#: ../en/ch10-hook.xml:1140 1.10776 +#: ../en/ch09-hook.xml:1133 1.10777 msgid "" 1.10778 "If your <literal role=\"rc-usermap\">usermap</literal> is not set up " 1.10779 "correctly, users will see an error message from the <literal role=\"hg-ext" 1.10780 @@ -11569,7 +10655,7 @@ 1.10781 msgstr "" 1.10782 1.10783 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10784 -#: ../en/ch10-hook.xml:1148 1.10785 +#: ../en/ch09-hook.xml:1140 1.10786 msgid "" 1.10787 "What this means is that the committer's address, <literal>john.q." 1.10788 "public@example.com</literal>, is not a valid Bugzilla user name, nor does it " 1.10789 @@ -11578,13 +10664,13 @@ 1.10790 msgstr "" 1.10791 1.10792 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10793 -#: ../en/ch10-hook.xml:1158 1.10794 +#: ../en/ch09-hook.xml:1150 1.10795 msgid "" 1.10796 "<literal role=\"hg-ext\">notify</literal>&emdash;send email notifications" 1.10797 msgstr "<literal role=\"hg-ext\">notify</literal>&emdash;邮件通知" 1.10798 1.10799 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10800 -#: ../en/ch10-hook.xml:1161 1.10801 +#: ../en/ch09-hook.xml:1153 1.10802 msgid "" 1.10803 "Although Mercurial's built-in web server provides RSS feeds of changes in " 1.10804 "every repository, many people prefer to receive change notifications via " 1.10805 @@ -11594,7 +10680,7 @@ 1.10806 msgstr "" 1.10807 1.10808 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10809 -#: ../en/ch10-hook.xml:1169 1.10810 +#: ../en/ch09-hook.xml:1161 1.10811 msgid "" 1.10812 "As with the <literal role=\"hg-ext\">bugzilla</literal> hook, the <literal " 1.10813 "role=\"hg-ext\">notify</literal> hook is template-driven, so you can " 1.10814 @@ -11602,7 +10688,7 @@ 1.10815 msgstr "" 1.10816 1.10817 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10818 -#: ../en/ch10-hook.xml:1175 1.10819 +#: ../en/ch09-hook.xml:1167 1.10820 msgid "" 1.10821 "By default, the <literal role=\"hg-ext\">notify</literal> hook includes a " 1.10822 "diff of every changeset that it sends out; you can limit the size of the " 1.10823 @@ -11611,12 +10697,12 @@ 1.10824 msgstr "" 1.10825 1.10826 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.10827 -#: ../en/ch10-hook.xml:1183 1.10828 +#: ../en/ch09-hook.xml:1175 1.10829 msgid "Configuring the <literal role=\"hg-ext\">notify</literal> hook" 1.10830 msgstr "配置 <literal role=\"hg-ext\">notify</literal> 钩子" 1.10831 1.10832 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10833 -#: ../en/ch10-hook.xml:1186 1.10834 +#: ../en/ch09-hook.xml:1178 1.10835 msgid "" 1.10836 "You can set up the <literal role=\"hg-ext\">notify</literal> hook to send one " 1.10837 "email message per incoming changeset, or one per incoming group of changesets " 1.10838 @@ -11624,15 +10710,15 @@ 1.10839 msgstr "" 1.10840 1.10841 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10842 -#: ../en/ch10-hook.xml:1197 1.10843 +#: ../en/ch09-hook.xml:1190 1.10844 msgid "" 1.10845 "Configuration information for this hook lives in the <literal role=\"rc-notify" 1.10846 -"\">notify</literal> section of a <filename role=\"special\"> /.hgrc</filename>" 1.10847 -"\\ file." 1.10848 +"\">notify</literal> section of a <filename role=\"special\">~/.hgrc</" 1.10849 +"filename> file." 1.10850 msgstr "" 1.10851 1.10852 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10853 -#: ../en/ch10-hook.xml:1202 1.10854 +#: ../en/ch09-hook.xml:1195 1.10855 msgid "" 1.10856 "<envar role=\"rc-item-notify\">test</envar>: By default, this hook does not " 1.10857 "send out email at all; instead, it prints the message that it " 1.10858 @@ -11644,17 +10730,17 @@ 1.10859 msgstr "" 1.10860 1.10861 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10862 -#: ../en/ch10-hook.xml:1214 1.10863 +#: ../en/ch09-hook.xml:1207 1.10864 msgid "" 1.10865 "<envar role=\"rc-item-notify\">config</envar>: The path to a configuration " 1.10866 "file that contains subscription information. This is kept separate from the " 1.10867 -"main <filename role=\"special\"> /.hgrc</filename>\\ so that you can maintain " 1.10868 +"main <filename role=\"special\">~/.hgrc</filename> so that you can maintain " 1.10869 "it in a repository of its own. People can then clone that repository, update " 1.10870 "their subscriptions, and push the changes back to your server." 1.10871 msgstr "" 1.10872 1.10873 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10874 -#: ../en/ch10-hook.xml:1223 1.10875 +#: ../en/ch09-hook.xml:1216 1.10876 msgid "" 1.10877 "<envar role=\"rc-item-notify\">strip</envar>: The number of leading path " 1.10878 "separator characters to strip from a repository's path, when deciding whether " 1.10879 @@ -11669,7 +10755,7 @@ 1.10880 msgstr "" 1.10881 1.10882 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10883 -#: ../en/ch10-hook.xml:1240 1.10884 +#: ../en/ch09-hook.xml:1233 1.10885 msgid "" 1.10886 "<envar role=\"rc-item-notify\">template</envar>: The template text to use " 1.10887 "when sending messages. This specifies both the contents of the message " 1.10888 @@ -11677,7 +10763,7 @@ 1.10889 msgstr "" 1.10890 1.10891 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10892 -#: ../en/ch10-hook.xml:1246 1.10893 +#: ../en/ch09-hook.xml:1239 1.10894 msgid "" 1.10895 "<envar role=\"rc-item-notify\">maxdiff</envar>: The maximum number of lines " 1.10896 "of diff data to append to the end of a message. If a diff is longer than " 1.10897 @@ -11686,7 +10772,7 @@ 1.10898 msgstr "" 1.10899 1.10900 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.10901 -#: ../en/ch10-hook.xml:1255 1.10902 +#: ../en/ch09-hook.xml:1248 1.10903 msgid "" 1.10904 "<envar role=\"rc-item-notify\">sources</envar>: A list of sources of " 1.10905 "changesets to consider. This lets you limit <literal role=\"hg-ext\">notify</" 1.10906 @@ -11696,7 +10782,7 @@ 1.10907 msgstr "" 1.10908 1.10909 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10910 -#: ../en/ch10-hook.xml:1267 1.10911 +#: ../en/ch09-hook.xml:1260 1.10912 msgid "" 1.10913 "If you set the <envar role=\"rc-item-web\">baseurl</envar> item in the " 1.10914 "<literal role=\"rc-web\">web</literal> section, you can use it in a template; " 1.10915 @@ -11704,19 +10790,19 @@ 1.10916 msgstr "" 1.10917 1.10918 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10919 -#: ../en/ch10-hook.xml:1273 1.10920 +#: ../en/ch09-hook.xml:1266 1.10921 msgid "" 1.10922 "Here is an example set of <literal role=\"hg-ext\">notify</literal> " 1.10923 "configuration information." 1.10924 msgstr "" 1.10925 1.10926 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10927 -#: ../en/ch10-hook.xml:1289 1.10928 +#: ../en/ch09-hook.xml:1272 1.10929 msgid "This will produce a message that looks like the following:" 1.10930 msgstr "" 1.10931 1.10932 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.10933 -#: ../en/ch10-hook.xml:1310 1.10934 +#: ../en/ch09-hook.xml:1282 1.10935 msgid "" 1.10936 "Do not forget that by default, the <literal role=\"hg-ext\">notify</literal> " 1.10937 "extension <emphasis>will not send any mail</emphasis> until you explicitly " 1.10938 @@ -11726,22 +10812,22 @@ 1.10939 msgstr "" 1.10940 1.10941 #. type: Content of: <book><chapter><sect1><title> 1.10942 -#: ../en/ch10-hook.xml:1322 1.10943 +#: ../en/ch09-hook.xml:1294 1.10944 msgid "Information for writers of hooks" 1.10945 msgstr "编写钩子的信息" 1.10946 1.10947 #. type: Content of: <book><chapter><sect1><sect2><title> 1.10948 -#: ../en/ch10-hook.xml:1325 1.10949 +#: ../en/ch09-hook.xml:1297 1.10950 msgid "In-process hook execution" 1.10951 msgstr "进程内钩子的执行" 1.10952 1.10953 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10954 -#: ../en/ch10-hook.xml:1327 1.10955 +#: ../en/ch09-hook.xml:1299 1.10956 msgid "An in-process hook is called with arguments of the following form:" 1.10957 msgstr "" 1.10958 1.10959 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10960 -#: ../en/ch10-hook.xml:1333 1.10961 +#: ../en/ch09-hook.xml:1303 1.10962 msgid "" 1.10963 "The <literal>ui</literal> parameter is a <literal role=\"py-mod-mercurial.ui" 1.10964 "\">ui</literal> object. The <literal>repo</literal> parameter is a <literal " 1.10965 @@ -11751,7 +10837,7 @@ 1.10966 msgstr "" 1.10967 1.10968 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.10969 -#: ../en/ch10-hook.xml:1342 1.10970 +#: ../en/ch09-hook.xml:1312 1.10971 msgid "" 1.10972 "If a parameter is named <literal>node</literal> or <literal>parentN</" 1.10973 "literal>, it will contain a hexadecimal changeset ID. The empty string is " 1.10974 @@ -11760,21 +10846,21 @@ 1.10975 msgstr "" 1.10976 1.10977 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.10978 -#: ../en/ch10-hook.xml:1349 1.10979 +#: ../en/ch09-hook.xml:1319 1.10980 msgid "" 1.10981 "If a parameter is named <literal>url</literal>, it will contain the URL of a " 1.10982 "remote repository, if that can be determined." 1.10983 msgstr "" 1.10984 1.10985 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.10986 -#: ../en/ch10-hook.xml:1354 1.10987 +#: ../en/ch09-hook.xml:1324 1.10988 msgid "" 1.10989 "Boolean-valued parameters are represented as Python <literal>bool</literal> " 1.10990 "objects." 1.10991 msgstr "" 1.10992 1.10993 #. type: Content of: <book><chapter><sect1><sect2><para> 1.10994 -#: ../en/ch10-hook.xml:1359 1.10995 +#: ../en/ch09-hook.xml:1329 1.10996 msgid "" 1.10997 "An in-process hook is called without a change to the process's working " 1.10998 "directory (unlike external hooks, which are run in the root of the " 1.10999 @@ -11783,7 +10869,7 @@ 1.11000 msgstr "" 1.11001 1.11002 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11003 -#: ../en/ch10-hook.xml:1366 1.11004 +#: ../en/ch09-hook.xml:1336 1.11005 msgid "" 1.11006 "If a hook returns a boolean <quote>false</quote> value, it is considered to " 1.11007 "have succeeded. If it returns a boolean <quote>true</quote> value or raises " 1.11008 @@ -11792,20 +10878,20 @@ 1.11009 msgstr "" 1.11010 1.11011 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11012 -#: ../en/ch10-hook.xml:1373 1.11013 +#: ../en/ch09-hook.xml:1343 1.11014 msgid "" 1.11015 "Note that changeset IDs are passed into Python hooks as hexadecimal strings, " 1.11016 "not the binary hashes that Mercurial's APIs normally use. To convert a hash " 1.11017 -"from hex to binary, use the \\pymodfunc{mercurial.node}{bin} function." 1.11018 -msgstr "" 1.11019 - 1.11020 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.11021 -#: ../en/ch10-hook.xml:1381 1.11022 +"from hex to binary, use the <literal>bin</literal> function." 1.11023 +msgstr "" 1.11024 + 1.11025 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.11026 +#: ../en/ch09-hook.xml:1351 1.11027 msgid "External hook execution" 1.11028 msgstr "外部钩子的执行" 1.11029 1.11030 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11031 -#: ../en/ch10-hook.xml:1383 1.11032 +#: ../en/ch09-hook.xml:1353 1.11033 msgid "" 1.11034 "An external hook is passed to the shell of the user running Mercurial. " 1.11035 "Features of that shell, such as variable substitution and command " 1.11036 @@ -11815,7 +10901,7 @@ 1.11037 msgstr "" 1.11038 1.11039 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11040 -#: ../en/ch10-hook.xml:1391 1.11041 +#: ../en/ch09-hook.xml:1361 1.11042 msgid "" 1.11043 "Hook parameters are passed to the hook as environment variables. Each " 1.11044 "environment variable's name is converted in upper case and prefixed with the " 1.11045 @@ -11826,7 +10912,7 @@ 1.11046 msgstr "" 1.11047 1.11048 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11049 -#: ../en/ch10-hook.xml:1400 1.11050 +#: ../en/ch09-hook.xml:1370 1.11051 msgid "" 1.11052 "A boolean parameter is represented as the string <quote><literal>1</literal></" 1.11053 "quote> for <quote>true</quote>, <quote><literal>0</literal></quote> for " 1.11054 @@ -11839,19 +10925,19 @@ 1.11055 msgstr "" 1.11056 1.11057 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11058 -#: ../en/ch10-hook.xml:1412 1.11059 +#: ../en/ch09-hook.xml:1382 1.11060 msgid "" 1.11061 "If a hook exits with a status of zero, it is considered to have succeeded. " 1.11062 "If it exits with a non-zero status, it is considered to have failed." 1.11063 msgstr "" 1.11064 1.11065 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11066 -#: ../en/ch10-hook.xml:1419 1.11067 +#: ../en/ch09-hook.xml:1389 1.11068 msgid "Finding out where changesets come from" 1.11069 msgstr "检查修改集来自何处" 1.11070 1.11071 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11072 -#: ../en/ch10-hook.xml:1421 1.11073 +#: ../en/ch09-hook.xml:1391 1.11074 msgid "" 1.11075 "A hook that involves the transfer of changesets between a local repository " 1.11076 "and another may be able to find out information about the <quote>far side</" 1.11077 @@ -11861,12 +10947,12 @@ 1.11078 msgstr "" 1.11079 1.11080 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.11081 -#: ../en/ch10-hook.xml:1430 1.11082 +#: ../en/ch09-hook.xml:1400 1.11083 msgid "Sources of changesets" 1.11084 msgstr "修改集的来源" 1.11085 1.11086 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.11087 -#: ../en/ch10-hook.xml:1432 1.11088 +#: ../en/ch09-hook.xml:1402 1.11089 msgid "" 1.11090 "Mercurial will tell a hook what means are, or were, used to transfer " 1.11091 "changesets between repositories. This is provided by Mercurial in a Python " 1.11092 @@ -11875,40 +10961,40 @@ 1.11093 msgstr "" 1.11094 1.11095 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11096 -#: ../en/ch10-hook.xml:1440 1.11097 +#: ../en/ch09-hook.xml:1410 1.11098 msgid "" 1.11099 "<literal>serve</literal>: Changesets are transferred to or from a remote " 1.11100 "repository over http or ssh." 1.11101 msgstr "" 1.11102 1.11103 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11104 -#: ../en/ch10-hook.xml:1445 1.11105 +#: ../en/ch09-hook.xml:1415 1.11106 msgid "" 1.11107 "<literal>pull</literal>: Changesets are being transferred via a pull from one " 1.11108 "repository into another." 1.11109 msgstr "" 1.11110 1.11111 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11112 -#: ../en/ch10-hook.xml:1450 1.11113 +#: ../en/ch09-hook.xml:1420 1.11114 msgid "" 1.11115 "<literal>push</literal>: Changesets are being transferred via a push from one " 1.11116 "repository into another." 1.11117 msgstr "" 1.11118 1.11119 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11120 -#: ../en/ch10-hook.xml:1455 1.11121 +#: ../en/ch09-hook.xml:1425 1.11122 msgid "" 1.11123 "<literal>bundle</literal>: Changesets are being transferred to or from a " 1.11124 "bundle." 1.11125 msgstr "" 1.11126 1.11127 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.11128 -#: ../en/ch10-hook.xml:1462 1.11129 +#: ../en/ch09-hook.xml:1432 1.11130 msgid "Where changes are going&emdash;remote repository URLs" 1.11131 msgstr "修改集要到哪里&emdash;远程版本库的地址" 1.11132 1.11133 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.11134 -#: ../en/ch10-hook.xml:1465 1.11135 +#: ../en/ch09-hook.xml:1435 1.11136 msgid "" 1.11137 "When possible, Mercurial will tell a hook the location of the <quote>far " 1.11138 "side</quote> of an activity that transfers changeset data between " 1.11139 @@ -11918,7 +11004,7 @@ 1.11140 msgstr "" 1.11141 1.11142 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.11143 -#: ../en/ch10-hook.xml:1473 1.11144 +#: ../en/ch09-hook.xml:1443 1.11145 msgid "" 1.11146 "This information is not always known. If a hook is invoked in a repository " 1.11147 "that is being served via http or ssh, Mercurial cannot tell where the remote " 1.11148 @@ -11927,14 +11013,14 @@ 1.11149 msgstr "" 1.11150 1.11151 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11152 -#: ../en/ch10-hook.xml:1480 1.11153 +#: ../en/ch09-hook.xml:1450 1.11154 msgid "" 1.11155 "<literal>remote:ssh:1.2.3.4</literal>&emdash;remote ssh client, at the IP " 1.11156 "address <literal>1.2.3.4</literal>." 1.11157 msgstr "" 1.11158 1.11159 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11160 -#: ../en/ch10-hook.xml:1485 1.11161 +#: ../en/ch09-hook.xml:1455 1.11162 msgid "" 1.11163 "<literal>remote:http:1.2.3.4</literal>&emdash;remote http client, at the IP " 1.11164 "address <literal>1.2.3.4</literal>. If the client is using SSL, this will be " 1.11165 @@ -11942,24 +11028,24 @@ 1.11166 msgstr "" 1.11167 1.11168 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.11169 -#: ../en/ch10-hook.xml:1492 1.11170 +#: ../en/ch09-hook.xml:1462 1.11171 msgid "Empty&emdash;no information could be discovered about the remote client." 1.11172 msgstr "" 1.11173 1.11174 #. type: Content of: <book><chapter><sect1><title> 1.11175 -#: ../en/ch10-hook.xml:1501 1.11176 +#: ../en/ch09-hook.xml:1471 1.11177 msgid "Hook reference" 1.11178 msgstr "钩子参考" 1.11179 1.11180 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11181 -#: ../en/ch10-hook.xml:1504 1.11182 +#: ../en/ch09-hook.xml:1474 1.11183 msgid "" 1.11184 "<literal role=\"hook\">changegroup</literal>&emdash;after remote changesets " 1.11185 "added" 1.11186 msgstr "<literal role=\"hook\">changegroup</literal>&emdash;增加远程修改集之后" 1.11187 1.11188 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11189 -#: ../en/ch10-hook.xml:1507 1.11190 +#: ../en/ch09-hook.xml:1477 1.11191 msgid "" 1.11192 "This hook is run after a group of pre-existing changesets has been added to " 1.11193 "the repository, for example via a <command role=\"hg-cmd\">hg pull</command> " 1.11194 @@ -11970,7 +11056,7 @@ 1.11195 msgstr "" 1.11196 1.11197 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11198 -#: ../en/ch10-hook.xml:1517 1.11199 +#: ../en/ch09-hook.xml:1487 1.11200 msgid "" 1.11201 "Some possible uses for this hook include kicking off an automated build or " 1.11202 "test of the added changesets, updating a bug database, or notifying " 1.11203 @@ -11978,42 +11064,41 @@ 1.11204 msgstr "" 1.11205 1.11206 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11207 -#: ../en/ch10-hook.xml:1523 ../en/ch10-hook.xml:1564 ../en/ch10-hook.xml:1607 1.11208 -#: ../en/ch10-hook.xml:1649 ../en/ch10-hook.xml:1704 ../en/ch10-hook.xml:1744 1.11209 -#: ../en/ch10-hook.xml:1780 ../en/ch10-hook.xml:1815 ../en/ch10-hook.xml:1877 1.11210 -#: ../en/ch10-hook.xml:1935 ../en/ch10-hook.xml:1969 ../en/ch10-hook.xml:1997 1.11211 +#: ../en/ch09-hook.xml:1493 ../en/ch09-hook.xml:1533 ../en/ch09-hook.xml:1576 1.11212 +#: ../en/ch09-hook.xml:1618 ../en/ch09-hook.xml:1673 ../en/ch09-hook.xml:1713 1.11213 +#: ../en/ch09-hook.xml:1749 ../en/ch09-hook.xml:1784 ../en/ch09-hook.xml:1846 1.11214 +#: ../en/ch09-hook.xml:1904 ../en/ch09-hook.xml:1938 ../en/ch09-hook.xml:1966 1.11215 msgid "Parameters to this hook:" 1.11216 msgstr "" 1.11217 1.11218 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11219 -#: ../en/ch10-hook.xml:1526 ../en/ch10-hook.xml:1880 1.11220 +#: ../en/ch09-hook.xml:1496 ../en/ch09-hook.xml:1849 1.11221 msgid "" 1.11222 "<literal>node</literal>: A changeset ID. The changeset ID of the first " 1.11223 "changeset in the group that was added. All changesets between this and " 1.11224 -"\\index{tags!<literal>tip</literal>}<literal>tip</literal>, inclusive, were " 1.11225 -"added by a single <command role=\"hg-cmd\">hg pull</command>, <command role=" 1.11226 -"\"hg-cmd\">hg push</command> or <command role=\"hg-cmd\">hg unbundle</" 1.11227 -"command>." 1.11228 +"<literal role=\"tag\">tip</literal>, inclusive, were added by a single " 1.11229 +"<command role=\"hg-cmd\">hg pull</command>, <command role=\"hg-cmd\">hg push</" 1.11230 +"command> or <command role=\"hg-cmd\">hg unbundle</command>." 1.11231 msgstr "" 1.11232 1.11233 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11234 -#: ../en/ch10-hook.xml:1536 ../en/ch10-hook.xml:1614 ../en/ch10-hook.xml:1707 1.11235 -#: ../en/ch10-hook.xml:1890 1.11236 +#: ../en/ch09-hook.xml:1505 ../en/ch09-hook.xml:1583 ../en/ch09-hook.xml:1676 1.11237 +#: ../en/ch09-hook.xml:1859 1.11238 msgid "" 1.11239 "<literal>source</literal>: A string. The source of these changes. See " 1.11240 "section <xref linkend=\"sec.hook.sources\"/> for details." 1.11241 msgstr "" 1.11242 1.11243 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11244 -#: ../en/ch10-hook.xml:1541 ../en/ch10-hook.xml:1619 ../en/ch10-hook.xml:1670 1.11245 -#: ../en/ch10-hook.xml:1712 ../en/ch10-hook.xml:1794 ../en/ch10-hook.xml:1895 1.11246 +#: ../en/ch09-hook.xml:1510 ../en/ch09-hook.xml:1588 ../en/ch09-hook.xml:1639 1.11247 +#: ../en/ch09-hook.xml:1681 ../en/ch09-hook.xml:1763 ../en/ch09-hook.xml:1864 1.11248 msgid "" 1.11249 "<literal>url</literal>: A URL. The location of the remote repository, if " 1.11250 "known. See section <xref linkend=\"sec.hook.url\"/> for more information." 1.11251 msgstr "" 1.11252 1.11253 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11254 -#: ../en/ch10-hook.xml:1548 1.11255 +#: ../en/ch09-hook.xml:1517 1.11256 msgid "" 1.11257 "See also: <literal role=\"hook\">incoming</literal> (section <xref linkend=" 1.11258 "\"sec.hook.incoming\"/>), <literal role=\"hook\">prechangegroup</literal> " 1.11259 @@ -12023,40 +11108,40 @@ 1.11260 msgstr "" 1.11261 1.11262 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11263 -#: ../en/ch10-hook.xml:1558 1.11264 +#: ../en/ch09-hook.xml:1527 1.11265 msgid "" 1.11266 "<literal role=\"hook\">commit</literal>&emdash;after a new changeset is " 1.11267 "created" 1.11268 msgstr "<literal role=\"hook\">commit</literal>&emdash;创建新修改集之后" 1.11269 1.11270 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11271 -#: ../en/ch10-hook.xml:1561 1.11272 +#: ../en/ch09-hook.xml:1530 1.11273 msgid "This hook is run after a new changeset has been created." 1.11274 msgstr "" 1.11275 1.11276 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11277 -#: ../en/ch10-hook.xml:1567 ../en/ch10-hook.xml:1938 1.11278 +#: ../en/ch09-hook.xml:1536 ../en/ch09-hook.xml:1907 1.11279 msgid "" 1.11280 "<literal>node</literal>: A changeset ID. The changeset ID of the newly " 1.11281 "committed changeset." 1.11282 msgstr "" 1.11283 1.11284 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11285 -#: ../en/ch10-hook.xml:1571 ../en/ch10-hook.xml:1942 1.11286 +#: ../en/ch09-hook.xml:1540 ../en/ch09-hook.xml:1911 1.11287 msgid "" 1.11288 "<literal>parent1</literal>: A changeset ID. The changeset ID of the first " 1.11289 "parent of the newly committed changeset." 1.11290 msgstr "" 1.11291 1.11292 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11293 -#: ../en/ch10-hook.xml:1576 ../en/ch10-hook.xml:1947 1.11294 +#: ../en/ch09-hook.xml:1545 ../en/ch09-hook.xml:1916 1.11295 msgid "" 1.11296 "<literal>parent2</literal>: A changeset ID. The changeset ID of the second " 1.11297 "parent of the newly committed changeset." 1.11298 msgstr "" 1.11299 1.11300 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11301 -#: ../en/ch10-hook.xml:1582 1.11302 +#: ../en/ch09-hook.xml:1551 1.11303 msgid "" 1.11304 "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend=" 1.11305 "\"sec.hook.precommit\"/>), <literal role=\"hook\">pretxncommit</literal> " 1.11306 @@ -12064,14 +11149,14 @@ 1.11307 msgstr "" 1.11308 1.11309 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11310 -#: ../en/ch10-hook.xml:1590 1.11311 +#: ../en/ch09-hook.xml:1559 1.11312 msgid "" 1.11313 "<literal role=\"hook\">incoming</literal>&emdash;after one remote changeset " 1.11314 "is added" 1.11315 msgstr "<literal role=\"hook\">incoming</literal>&emdash;增加远程修改集之后" 1.11316 1.11317 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11318 -#: ../en/ch10-hook.xml:1593 1.11319 +#: ../en/ch09-hook.xml:1562 1.11320 msgid "" 1.11321 "This hook is run after a pre-existing changeset has been added to the " 1.11322 "repository, for example via a <command role=\"hg-cmd\">hg push</command>. If " 1.11323 @@ -12080,7 +11165,7 @@ 1.11324 msgstr "" 1.11325 1.11326 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11327 -#: ../en/ch10-hook.xml:1600 1.11328 +#: ../en/ch09-hook.xml:1569 1.11329 msgid "" 1.11330 "You can use this hook for the same purposes as the <literal role=\"hook" 1.11331 "\">changegroup</literal> hook (section <xref linkend=\"sec.hook.changegroup\"/" 1.11332 @@ -12089,13 +11174,13 @@ 1.11333 msgstr "" 1.11334 1.11335 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11336 -#: ../en/ch10-hook.xml:1610 1.11337 +#: ../en/ch09-hook.xml:1579 1.11338 msgid "" 1.11339 "<literal>node</literal>: A changeset ID. The ID of the newly added changeset." 1.11340 msgstr "" 1.11341 1.11342 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11343 -#: ../en/ch10-hook.xml:1626 1.11344 +#: ../en/ch09-hook.xml:1595 1.11345 msgid "" 1.11346 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" 1.11347 "\"sec.hook.changegroup\"/>) <literal role=\"hook\">prechangegroup</literal> " 1.11348 @@ -12105,14 +11190,14 @@ 1.11349 msgstr "" 1.11350 1.11351 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11352 -#: ../en/ch10-hook.xml:1636 1.11353 +#: ../en/ch09-hook.xml:1605 1.11354 msgid "" 1.11355 "<literal role=\"hook\">outgoing</literal>&emdash;after changesets are " 1.11356 "propagated" 1.11357 msgstr "<literal role=\"hook\">outgoing</literal>&emdash;传播修改集之后" 1.11358 1.11359 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11360 -#: ../en/ch10-hook.xml:1639 1.11361 +#: ../en/ch09-hook.xml:1608 1.11362 msgid "" 1.11363 "This hook is run after a group of changesets has been propagated out of this " 1.11364 "repository, for example by a <command role=\"hg-cmd\">hg push</command> or " 1.11365 @@ -12120,21 +11205,21 @@ 1.11366 msgstr "" 1.11367 1.11368 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11369 -#: ../en/ch10-hook.xml:1645 1.11370 +#: ../en/ch09-hook.xml:1614 1.11371 msgid "" 1.11372 "One possible use for this hook is to notify administrators that changes have " 1.11373 "been pulled." 1.11374 msgstr "" 1.11375 1.11376 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11377 -#: ../en/ch10-hook.xml:1652 1.11378 +#: ../en/ch09-hook.xml:1621 1.11379 msgid "" 1.11380 "<literal>node</literal>: A changeset ID. The changeset ID of the first " 1.11381 "changeset of the group that was sent." 1.11382 msgstr "" 1.11383 1.11384 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11385 -#: ../en/ch10-hook.xml:1657 1.11386 +#: ../en/ch09-hook.xml:1626 1.11387 msgid "" 1.11388 "<literal>source</literal>: A string. The source of the of the operation (see " 1.11389 "section <xref linkend=\"sec.hook.sources\"/>). If a remote client pulled " 1.11390 @@ -12146,14 +11231,14 @@ 1.11391 msgstr "" 1.11392 1.11393 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11394 -#: ../en/ch10-hook.xml:1677 1.11395 +#: ../en/ch09-hook.xml:1646 1.11396 msgid "" 1.11397 "See also: <literal role=\"hook\">preoutgoing</literal> (section <xref linkend=" 1.11398 "\"sec.hook.preoutgoing\"/>)" 1.11399 msgstr "" 1.11400 1.11401 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11402 -#: ../en/ch10-hook.xml:1683 1.11403 +#: ../en/ch09-hook.xml:1652 1.11404 msgid "" 1.11405 "<literal role=\"hook\">prechangegroup</literal>&emdash;before starting to add " 1.11406 "remote changesets" 1.11407 @@ -12161,14 +11246,14 @@ 1.11408 "<literal role=\"hook\">prechangegroup</literal>&emdash;增加远程修改集之前" 1.11409 1.11410 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11411 -#: ../en/ch10-hook.xml:1687 1.11412 +#: ../en/ch09-hook.xml:1656 1.11413 msgid "" 1.11414 "This controlling hook is run before Mercurial begins to add a group of " 1.11415 "changesets from another repository." 1.11416 msgstr "" 1.11417 1.11418 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11419 -#: ../en/ch10-hook.xml:1691 1.11420 +#: ../en/ch09-hook.xml:1660 1.11421 msgid "" 1.11422 "This hook does not have any information about the changesets to be added, " 1.11423 "because it is run before transmission of those changesets is allowed to " 1.11424 @@ -12176,7 +11261,7 @@ 1.11425 msgstr "" 1.11426 1.11427 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11428 -#: ../en/ch10-hook.xml:1697 1.11429 +#: ../en/ch09-hook.xml:1666 1.11430 msgid "" 1.11431 "One use for this hook is to prevent external changes from being added to a " 1.11432 "repository. For example, you could use this to <quote>freeze</quote> a " 1.11433 @@ -12185,7 +11270,7 @@ 1.11434 msgstr "" 1.11435 1.11436 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11437 -#: ../en/ch10-hook.xml:1719 1.11438 +#: ../en/ch09-hook.xml:1688 1.11439 msgid "" 1.11440 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" 1.11441 "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> " 1.11442 @@ -12195,14 +11280,14 @@ 1.11443 msgstr "" 1.11444 1.11445 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11446 -#: ../en/ch10-hook.xml:1729 1.11447 +#: ../en/ch09-hook.xml:1698 1.11448 msgid "" 1.11449 "<literal role=\"hook\">precommit</literal>&emdash;before starting to commit a " 1.11450 "changeset" 1.11451 msgstr "<literal role=\"hook\">precommit</literal>&emdash;提交修改集之前" 1.11452 1.11453 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11454 -#: ../en/ch10-hook.xml:1732 1.11455 +#: ../en/ch09-hook.xml:1701 1.11456 msgid "" 1.11457 "This hook is run before Mercurial begins to commit a new changeset. It is run " 1.11458 "before Mercurial has any of the metadata for the commit, such as the files to " 1.11459 @@ -12210,7 +11295,7 @@ 1.11460 msgstr "" 1.11461 1.11462 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11463 -#: ../en/ch10-hook.xml:1738 1.11464 +#: ../en/ch09-hook.xml:1707 1.11465 msgid "" 1.11466 "One use for this hook is to disable the ability to commit new changesets, " 1.11467 "while still allowing incoming changesets. Another is to run a build or test, " 1.11468 @@ -12218,28 +11303,28 @@ 1.11469 msgstr "" 1.11470 1.11471 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11472 -#: ../en/ch10-hook.xml:1747 1.11473 +#: ../en/ch09-hook.xml:1716 1.11474 msgid "" 1.11475 "<literal>parent1</literal>: A changeset ID. The changeset ID of the first " 1.11476 "parent of the working directory." 1.11477 msgstr "" 1.11478 1.11479 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11480 -#: ../en/ch10-hook.xml:1752 1.11481 +#: ../en/ch09-hook.xml:1721 1.11482 msgid "" 1.11483 "<literal>parent2</literal>: A changeset ID. The changeset ID of the second " 1.11484 "parent of the working directory." 1.11485 msgstr "" 1.11486 1.11487 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11488 -#: ../en/ch10-hook.xml:1757 1.11489 +#: ../en/ch09-hook.xml:1726 1.11490 msgid "" 1.11491 "If the commit proceeds, the parents of the working directory will become the " 1.11492 "parents of the new changeset." 1.11493 msgstr "" 1.11494 1.11495 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11496 -#: ../en/ch10-hook.xml:1761 1.11497 +#: ../en/ch09-hook.xml:1730 1.11498 msgid "" 1.11499 "See also: <literal role=\"hook\">commit</literal> (section <xref linkend=" 1.11500 "\"sec.hook.commit\"/>), <literal role=\"hook\">pretxncommit</literal> " 1.11501 @@ -12247,28 +11332,28 @@ 1.11502 msgstr "" 1.11503 1.11504 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11505 -#: ../en/ch10-hook.xml:1769 1.11506 +#: ../en/ch09-hook.xml:1738 1.11507 msgid "" 1.11508 "<literal role=\"hook\">preoutgoing</literal>&emdash;before starting to " 1.11509 "propagate changesets" 1.11510 msgstr "<literal role=\"hook\">preoutgoing</literal>&emdash;传播修改集之前" 1.11511 1.11512 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11513 -#: ../en/ch10-hook.xml:1772 1.11514 +#: ../en/ch09-hook.xml:1741 1.11515 msgid "" 1.11516 "This hook is invoked before Mercurial knows the identities of the changesets " 1.11517 "to be transmitted." 1.11518 msgstr "" 1.11519 1.11520 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11521 -#: ../en/ch10-hook.xml:1776 1.11522 +#: ../en/ch09-hook.xml:1745 1.11523 msgid "" 1.11524 "One use for this hook is to prevent changes from being transmitted to another " 1.11525 "repository." 1.11526 msgstr "" 1.11527 1.11528 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11529 -#: ../en/ch10-hook.xml:1783 1.11530 +#: ../en/ch09-hook.xml:1752 1.11531 msgid "" 1.11532 "<literal>source</literal>: A string. The source of the operation that is " 1.11533 "attempting to obtain changes from this repository (see section <xref linkend=" 1.11534 @@ -12279,27 +11364,27 @@ 1.11535 msgstr "" 1.11536 1.11537 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11538 -#: ../en/ch10-hook.xml:1801 1.11539 +#: ../en/ch09-hook.xml:1770 1.11540 msgid "" 1.11541 "See also: <literal role=\"hook\">outgoing</literal> (section <xref linkend=" 1.11542 "\"sec.hook.outgoing\"/>)" 1.11543 msgstr "" 1.11544 1.11545 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11546 -#: ../en/ch10-hook.xml:1807 1.11547 +#: ../en/ch09-hook.xml:1776 1.11548 msgid "" 1.11549 "<literal role=\"hook\">pretag</literal>&emdash;before tagging a changeset" 1.11550 msgstr "<literal role=\"hook\">pretag</literal>&emdash;创建标签之前" 1.11551 1.11552 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11553 -#: ../en/ch10-hook.xml:1810 1.11554 +#: ../en/ch09-hook.xml:1779 1.11555 msgid "" 1.11556 "This controlling hook is run before a tag is created. If the hook succeeds, " 1.11557 "creation of the tag proceeds. If the hook fails, the tag is not created." 1.11558 msgstr "" 1.11559 1.11560 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11561 -#: ../en/ch10-hook.xml:1818 1.11562 +#: ../en/ch09-hook.xml:1787 1.11563 msgid "" 1.11564 "<literal>local</literal>: A boolean. Whether the tag is local to this " 1.11565 "repository instance (i.e. stored in <filename role=\"special\">.hg/localtags</" 1.11566 @@ -12308,19 +11393,19 @@ 1.11567 msgstr "" 1.11568 1.11569 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11570 -#: ../en/ch10-hook.xml:1825 1.11571 +#: ../en/ch09-hook.xml:1794 1.11572 msgid "" 1.11573 "<literal>node</literal>: A changeset ID. The ID of the changeset to be " 1.11574 "tagged." 1.11575 msgstr "" 1.11576 1.11577 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11578 -#: ../en/ch10-hook.xml:1829 1.11579 +#: ../en/ch09-hook.xml:1798 1.11580 msgid "<literal>tag</literal>: A string. The name of the tag to be created." 1.11581 msgstr "" 1.11582 1.11583 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11584 -#: ../en/ch10-hook.xml:1834 1.11585 +#: ../en/ch09-hook.xml:1803 1.11586 msgid "" 1.11587 "If the tag to be created is revision-controlled, the <literal role=\"hook" 1.11588 "\">precommit</literal> and <literal role=\"hook\">pretxncommit</literal> " 1.11589 @@ -12329,14 +11414,14 @@ 1.11590 msgstr "" 1.11591 1.11592 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11593 -#: ../en/ch10-hook.xml:1841 1.11594 +#: ../en/ch09-hook.xml:1810 1.11595 msgid "" 1.11596 "See also: <literal role=\"hook\">tag</literal> (section <xref linkend=\"sec." 1.11597 "hook.tag\"/>)" 1.11598 msgstr "" 1.11599 1.11600 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11601 -#: ../en/ch10-hook.xml:1846 1.11602 +#: ../en/ch09-hook.xml:1815 1.11603 msgid "" 1.11604 "<literal role=\"hook\">pretxnchangegroup</literal>&emdash;before completing " 1.11605 "addition of remote changesets" 1.11606 @@ -12345,7 +11430,7 @@ 1.11607 "前" 1.11608 1.11609 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11610 -#: ../en/ch10-hook.xml:1850 1.11611 +#: ../en/ch09-hook.xml:1819 1.11612 msgid "" 1.11613 "This controlling hook is run before a transaction&emdash;that manages the " 1.11614 "addition of a group of new changesets from outside the repository&emdash;" 1.11615 @@ -12355,7 +11440,7 @@ 1.11616 msgstr "" 1.11617 1.11618 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11619 -#: ../en/ch10-hook.xml:1859 1.11620 +#: ../en/ch09-hook.xml:1828 1.11621 msgid "" 1.11622 "This hook can access the metadata associated with the almost-added " 1.11623 "changesets, but it should not do anything permanent with this data. It must " 1.11624 @@ -12363,7 +11448,7 @@ 1.11625 msgstr "" 1.11626 1.11627 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11628 -#: ../en/ch10-hook.xml:1865 1.11629 +#: ../en/ch09-hook.xml:1834 1.11630 msgid "" 1.11631 "While this hook is running, if other Mercurial processes access this " 1.11632 "repository, they will be able to see the almost-added changesets as if they " 1.11633 @@ -12372,7 +11457,7 @@ 1.11634 msgstr "" 1.11635 1.11636 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11637 -#: ../en/ch10-hook.xml:1872 1.11638 +#: ../en/ch09-hook.xml:1841 1.11639 msgid "" 1.11640 "This hook can be used to automatically vet a group of changesets. If the " 1.11641 "hook fails, all of the changesets are <quote>rejected</quote> when the " 1.11642 @@ -12380,7 +11465,7 @@ 1.11643 msgstr "" 1.11644 1.11645 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11646 -#: ../en/ch10-hook.xml:1902 1.11647 +#: ../en/ch09-hook.xml:1871 1.11648 msgid "" 1.11649 "See also: <literal role=\"hook\">changegroup</literal> (section <xref linkend=" 1.11650 "\"sec.hook.changegroup\"/>), <literal role=\"hook\">incoming</literal> " 1.11651 @@ -12390,14 +11475,14 @@ 1.11652 msgstr "" 1.11653 1.11654 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11655 -#: ../en/ch10-hook.xml:1912 1.11656 +#: ../en/ch09-hook.xml:1881 1.11657 msgid "" 1.11658 "<literal role=\"hook\">pretxncommit</literal>&emdash;before completing commit " 1.11659 "of new changeset" 1.11660 msgstr "<literal role=\"hook\">pretxncommit</literal>&emdash;完成提交之前" 1.11661 1.11662 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11663 -#: ../en/ch10-hook.xml:1915 1.11664 +#: ../en/ch09-hook.xml:1884 1.11665 msgid "" 1.11666 "This controlling hook is run before a transaction&emdash;that manages a new " 1.11667 "commit&emdash;completes. If the hook succeeds, the transaction completes and " 1.11668 @@ -12406,7 +11491,7 @@ 1.11669 msgstr "" 1.11670 1.11671 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11672 -#: ../en/ch10-hook.xml:1923 1.11673 +#: ../en/ch09-hook.xml:1892 1.11674 msgid "" 1.11675 "This hook can access the metadata associated with the almost-new changeset, " 1.11676 "but it should not do anything permanent with this data. It must also not " 1.11677 @@ -12414,7 +11499,7 @@ 1.11678 msgstr "" 1.11679 1.11680 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11681 -#: ../en/ch10-hook.xml:1929 1.11682 +#: ../en/ch09-hook.xml:1898 1.11683 msgid "" 1.11684 "While this hook is running, if other Mercurial processes access this " 1.11685 "repository, they will be able to see the almost-new changeset as if it is " 1.11686 @@ -12423,14 +11508,14 @@ 1.11687 msgstr "" 1.11688 1.11689 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11690 -#: ../en/ch10-hook.xml:1953 1.11691 +#: ../en/ch09-hook.xml:1922 1.11692 msgid "" 1.11693 "See also: <literal role=\"hook\">precommit</literal> (section <xref linkend=" 1.11694 "\"sec.hook.precommit\"/>)" 1.11695 msgstr "" 1.11696 1.11697 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11698 -#: ../en/ch10-hook.xml:1959 1.11699 +#: ../en/ch09-hook.xml:1928 1.11700 msgid "" 1.11701 "<literal role=\"hook\">preupdate</literal>&emdash;before updating or merging " 1.11702 "working directory" 1.11703 @@ -12438,7 +11523,7 @@ 1.11704 "<literal role=\"hook\">preupdate</literal>&emdash;更新或合并工作目录之前" 1.11705 1.11706 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11707 -#: ../en/ch10-hook.xml:1962 1.11708 +#: ../en/ch09-hook.xml:1931 1.11709 msgid "" 1.11710 "This controlling hook is run before an update or merge of the working " 1.11711 "directory begins. It is run only if Mercurial's normal pre-update checks " 1.11712 @@ -12447,7 +11532,7 @@ 1.11713 msgstr "" 1.11714 1.11715 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11716 -#: ../en/ch10-hook.xml:1972 1.11717 +#: ../en/ch09-hook.xml:1941 1.11718 msgid "" 1.11719 "<literal>parent1</literal>: A changeset ID. The ID of the parent that the " 1.11720 "working directory is to be updated to. If the working directory is being " 1.11721 @@ -12455,7 +11540,7 @@ 1.11722 msgstr "" 1.11723 1.11724 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11725 -#: ../en/ch10-hook.xml:1978 1.11726 +#: ../en/ch09-hook.xml:1947 1.11727 msgid "" 1.11728 "<literal>parent2</literal>: A changeset ID. Only set if the working " 1.11729 "directory is being merged. The ID of the revision that the working directory " 1.11730 @@ -12463,24 +11548,24 @@ 1.11731 msgstr "" 1.11732 1.11733 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11734 -#: ../en/ch10-hook.xml:1985 1.11735 +#: ../en/ch09-hook.xml:1954 1.11736 msgid "" 1.11737 "See also: <literal role=\"hook\">update</literal> (section <xref linkend=" 1.11738 "\"sec.hook.update\"/>)" 1.11739 msgstr "" 1.11740 1.11741 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11742 -#: ../en/ch10-hook.xml:1991 1.11743 +#: ../en/ch09-hook.xml:1960 1.11744 msgid "<literal role=\"hook\">tag</literal>&emdash;after tagging a changeset" 1.11745 msgstr "<literal role=\"hook\">tag</literal>&emdash;创建标签之后" 1.11746 1.11747 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11748 -#: ../en/ch10-hook.xml:1994 1.11749 +#: ../en/ch09-hook.xml:1963 1.11750 msgid "This hook is run after a tag has been created." 1.11751 msgstr "" 1.11752 1.11753 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11754 -#: ../en/ch10-hook.xml:2000 1.11755 +#: ../en/ch09-hook.xml:1969 1.11756 msgid "" 1.11757 "<literal>local</literal>: A boolean. Whether the new tag is local to this " 1.11758 "repository instance (i.e. stored in <filename role=\"special\">.hg/" 1.11759 @@ -12489,19 +11574,19 @@ 1.11760 msgstr "" 1.11761 1.11762 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11763 -#: ../en/ch10-hook.xml:2008 1.11764 +#: ../en/ch09-hook.xml:1977 1.11765 msgid "" 1.11766 "<literal>node</literal>: A changeset ID. The ID of the changeset that was " 1.11767 "tagged." 1.11768 msgstr "" 1.11769 1.11770 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11771 -#: ../en/ch10-hook.xml:2012 1.11772 +#: ../en/ch09-hook.xml:1981 1.11773 msgid "<literal>tag</literal>: A string. The name of the tag that was created." 1.11774 msgstr "" 1.11775 1.11776 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11777 -#: ../en/ch10-hook.xml:2017 1.11778 +#: ../en/ch09-hook.xml:1986 1.11779 msgid "" 1.11780 "If the created tag is revision-controlled, the <literal role=\"hook\">commit</" 1.11781 "literal> hook (section <xref linkend=\"sec.hook.commit\"/>) is run before " 1.11782 @@ -12509,21 +11594,21 @@ 1.11783 msgstr "" 1.11784 1.11785 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11786 -#: ../en/ch10-hook.xml:2022 1.11787 +#: ../en/ch09-hook.xml:1991 1.11788 msgid "" 1.11789 "See also: <literal role=\"hook\">pretag</literal> (section <xref linkend=" 1.11790 "\"sec.hook.pretag\"/>)" 1.11791 msgstr "" 1.11792 1.11793 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11794 -#: ../en/ch10-hook.xml:2028 1.11795 +#: ../en/ch09-hook.xml:1997 1.11796 msgid "" 1.11797 "<literal role=\"hook\">update</literal>&emdash;after updating or merging " 1.11798 "working directory" 1.11799 msgstr "<literal role=\"hook\">update</literal>&emdash;更新或合并工作目录之后" 1.11800 1.11801 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11802 -#: ../en/ch10-hook.xml:2031 1.11803 +#: ../en/ch09-hook.xml:2000 1.11804 msgid "" 1.11805 "This hook is run after an update or merge of the working directory " 1.11806 "completes. Since a merge can fail (if the external <command>hgmerge</" 1.11807 @@ -12532,14 +11617,14 @@ 1.11808 msgstr "" 1.11809 1.11810 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11811 -#: ../en/ch10-hook.xml:2039 1.11812 +#: ../en/ch09-hook.xml:2008 1.11813 msgid "" 1.11814 "<literal>error</literal>: A boolean. Indicates whether the update or merge " 1.11815 "completed successfully." 1.11816 msgstr "" 1.11817 1.11818 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11819 -#: ../en/ch10-hook.xml:2044 1.11820 +#: ../en/ch09-hook.xml:2013 1.11821 msgid "" 1.11822 "<literal>parent1</literal>: A changeset ID. The ID of the parent that the " 1.11823 "working directory was updated to. If the working directory was merged, it " 1.11824 @@ -12547,7 +11632,7 @@ 1.11825 msgstr "" 1.11826 1.11827 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.11828 -#: ../en/ch10-hook.xml:2050 1.11829 +#: ../en/ch09-hook.xml:2019 1.11830 msgid "" 1.11831 "<literal>parent2</literal>: A changeset ID. Only set if the working " 1.11832 "directory was merged. The ID of the revision that the working directory was " 1.11833 @@ -12555,19 +11640,19 @@ 1.11834 msgstr "" 1.11835 1.11836 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11837 -#: ../en/ch10-hook.xml:2056 1.11838 +#: ../en/ch09-hook.xml:2025 1.11839 msgid "" 1.11840 "See also: <literal role=\"hook\">preupdate</literal> (section <xref linkend=" 1.11841 "\"sec.hook.preupdate\"/>)" 1.11842 msgstr "" 1.11843 1.11844 #. type: Content of: <book><chapter><title> 1.11845 -#: ../en/ch11-template.xml:5 1.11846 +#: ../en/ch10-template.xml:5 1.11847 msgid "Customising the output of Mercurial" 1.11848 msgstr "定制 Mercurial 的输出" 1.11849 1.11850 #. type: Content of: <book><chapter><para> 1.11851 -#: ../en/ch11-template.xml:7 1.11852 +#: ../en/ch10-template.xml:7 1.11853 msgid "" 1.11854 "Mercurial provides a powerful mechanism to let you control how it displays " 1.11855 "information. The mechanism is based on templates. You can use templates to " 1.11856 @@ -12576,12 +11661,12 @@ 1.11857 msgstr "" 1.11858 1.11859 #. type: Content of: <book><chapter><sect1><title> 1.11860 -#: ../en/ch11-template.xml:14 1.11861 +#: ../en/ch10-template.xml:14 1.11862 msgid "Using precanned output styles" 1.11863 msgstr "使用预定义的输出样式" 1.11864 1.11865 #. type: Content of: <book><chapter><sect1><para> 1.11866 -#: ../en/ch11-template.xml:16 1.11867 +#: ../en/ch10-template.xml:16 1.11868 msgid "" 1.11869 "Packaged with Mercurial are some output styles that you can use immediately. " 1.11870 "A style is simply a precanned template that someone wrote and installed " 1.11871 @@ -12589,14 +11674,14 @@ 1.11872 msgstr "" 1.11873 1.11874 #. type: Content of: <book><chapter><sect1><para> 1.11875 -#: ../en/ch11-template.xml:21 1.11876 +#: ../en/ch10-template.xml:21 1.11877 msgid "" 1.11878 "Before we take a look at Mercurial's bundled styles, let's review its normal " 1.11879 "output." 1.11880 msgstr "" 1.11881 1.11882 #. type: Content of: <book><chapter><sect1><para> 1.11883 -#: ../en/ch11-template.xml:26 1.11884 +#: ../en/ch10-template.xml:26 1.11885 msgid "" 1.11886 "This is somewhat informative, but it takes up a lot of space&emdash;five " 1.11887 "lines of output per changeset. The <literal>compact</literal> style reduces " 1.11888 @@ -12604,7 +11689,7 @@ 1.11889 msgstr "" 1.11890 1.11891 #. type: Content of: <book><chapter><sect1><para> 1.11892 -#: ../en/ch11-template.xml:33 1.11893 +#: ../en/ch10-template.xml:33 1.11894 msgid "" 1.11895 "The <literal>changelog</literal> style hints at the expressive power of " 1.11896 "Mercurial's templating engine. This style attempts to follow the GNU " 1.11897 @@ -12612,27 +11697,27 @@ 1.11898 msgstr "" 1.11899 1.11900 #. type: Content of: <book><chapter><sect1><para> 1.11901 -#: ../en/ch11-template.xml:40 1.11902 +#: ../en/ch10-template.xml:40 1.11903 msgid "" 1.11904 "You will not be shocked to learn that Mercurial's default output style is " 1.11905 "named <literal>default</literal>." 1.11906 msgstr "" 1.11907 1.11908 #. type: Content of: <book><chapter><sect1><sect2><title> 1.11909 -#: ../en/ch11-template.xml:44 1.11910 +#: ../en/ch10-template.xml:44 1.11911 msgid "Setting a default style" 1.11912 msgstr "设置默认样式" 1.11913 1.11914 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11915 -#: ../en/ch11-template.xml:46 1.11916 +#: ../en/ch10-template.xml:46 1.11917 msgid "" 1.11918 "You can modify the output style that Mercurial will use for every command by " 1.11919 -"editing your <filename role=\"special\"> /.hgrc</filename>\\ file, naming the " 1.11920 +"editing your <filename role=\"special\">~/.hgrc</filename> file, naming the " 1.11921 "style you would prefer to use." 1.11922 msgstr "" 1.11923 1.11924 #. type: Content of: <book><chapter><sect1><sect2><para> 1.11925 -#: ../en/ch11-template.xml:53 1.11926 +#: ../en/ch10-template.xml:54 1.11927 msgid "" 1.11928 "If you write a style of your own, you can use it by either providing the path " 1.11929 "to your style file, or copying your style file into a location where " 1.11930 @@ -12641,12 +11726,12 @@ 1.11931 msgstr "" 1.11932 1.11933 #. type: Content of: <book><chapter><sect1><title> 1.11934 -#: ../en/ch11-template.xml:62 1.11935 +#: ../en/ch10-template.xml:63 1.11936 msgid "Commands that support styles and templates" 1.11937 msgstr "支持样式和模版的命令" 1.11938 1.11939 #. type: Content of: <book><chapter><sect1><para> 1.11940 -#: ../en/ch11-template.xml:64 1.11941 +#: ../en/ch10-template.xml:65 1.11942 msgid "" 1.11943 "All of Mercurial's <quote><literal>log</literal>-like</quote> commands let " 1.11944 "you use styles and templates: <command role=\"hg-cmd\">hg incoming</command>, " 1.11945 @@ -12655,7 +11740,7 @@ 1.11946 msgstr "" 1.11947 1.11948 #. type: Content of: <book><chapter><sect1><para> 1.11949 -#: ../en/ch11-template.xml:71 1.11950 +#: ../en/ch10-template.xml:72 1.11951 msgid "" 1.11952 "As I write this manual, these are so far the only commands that support " 1.11953 "styles and templates. Since these are the most important commands that need " 1.11954 @@ -12664,12 +11749,12 @@ 1.11955 msgstr "" 1.11956 1.11957 #. type: Content of: <book><chapter><sect1><title> 1.11958 -#: ../en/ch11-template.xml:79 1.11959 +#: ../en/ch10-template.xml:80 1.11960 msgid "The basics of templating" 1.11961 msgstr "模版基础" 1.11962 1.11963 #. type: Content of: <book><chapter><sect1><para> 1.11964 -#: ../en/ch11-template.xml:81 1.11965 +#: ../en/ch10-template.xml:82 1.11966 msgid "" 1.11967 "At its simplest, a Mercurial template is a piece of text. Some of the text " 1.11968 "never changes, while other parts are <emphasis>expanded</emphasis>, or " 1.11969 @@ -12677,20 +11762,20 @@ 1.11970 msgstr "" 1.11971 1.11972 #. type: Content of: <book><chapter><sect1><para> 1.11973 -#: ../en/ch11-template.xml:86 1.11974 +#: ../en/ch10-template.xml:87 1.11975 msgid "" 1.11976 "Before we continue, let's look again at a simple example of Mercurial's " 1.11977 "normal output." 1.11978 msgstr "" 1.11979 1.11980 #. type: Content of: <book><chapter><sect1><para> 1.11981 -#: ../en/ch11-template.xml:91 1.11982 +#: ../en/ch10-template.xml:92 1.11983 msgid "" 1.11984 "Now, let's run the same command, but using a template to change its output." 1.11985 msgstr "" 1.11986 1.11987 #. type: Content of: <book><chapter><sect1><para> 1.11988 -#: ../en/ch11-template.xml:96 1.11989 +#: ../en/ch10-template.xml:97 1.11990 msgid "" 1.11991 "The example above illustrates the simplest possible template; it's just a " 1.11992 "piece of static text, printed once for each changeset. The <option role=\"hg-" 1.11993 @@ -12700,7 +11785,7 @@ 1.11994 msgstr "" 1.11995 1.11996 #. type: Content of: <book><chapter><sect1><para> 1.11997 -#: ../en/ch11-template.xml:104 1.11998 +#: ../en/ch10-template.xml:105 1.11999 msgid "" 1.12000 "Notice that the template string above ends with the text <quote><literal>\\n</" 1.12001 "literal></quote>. This is an <emphasis>escape sequence</emphasis>, telling " 1.12002 @@ -12710,14 +11795,14 @@ 1.12003 msgstr "" 1.12004 1.12005 #. type: Content of: <book><chapter><sect1><para> 1.12006 -#: ../en/ch11-template.xml:112 1.12007 +#: ../en/ch10-template.xml:113 1.12008 msgid "" 1.12009 "A template that prints a fixed string of text all the time isn't very useful; " 1.12010 "let's try something a bit more complex." 1.12011 msgstr "" 1.12012 1.12013 #. type: Content of: <book><chapter><sect1><para> 1.12014 -#: ../en/ch11-template.xml:118 1.12015 +#: ../en/ch10-template.xml:119 1.12016 msgid "" 1.12017 "As you can see, the string <quote><literal>{desc}</literal></quote> in the " 1.12018 "template has been replaced in the output with the description of each " 1.12019 @@ -12729,25 +11814,25 @@ 1.12020 msgstr "" 1.12021 1.12022 #. type: Content of: <book><chapter><sect1><title> 1.12023 -#: ../en/ch11-template.xml:131 1.12024 +#: ../en/ch10-template.xml:132 1.12025 msgid "Common template keywords" 1.12026 msgstr "模版关键字" 1.12027 1.12028 #. type: Content of: <book><chapter><sect1><para> 1.12029 -#: ../en/ch11-template.xml:133 1.12030 +#: ../en/ch10-template.xml:134 1.12031 msgid "" 1.12032 "You can start writing simple templates immediately using the keywords below." 1.12033 msgstr "" 1.12034 1.12035 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12036 -#: ../en/ch11-template.xml:137 1.12037 +#: ../en/ch10-template.xml:138 1.12038 msgid "" 1.12039 "<literal role=\"template-keyword\">author</literal>: String. The unmodified " 1.12040 "author of the changeset." 1.12041 msgstr "" 1.12042 1.12043 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12044 -#: ../en/ch11-template.xml:141 1.12045 +#: ../en/ch10-template.xml:142 1.12046 msgid "" 1.12047 "<literal role=\"template-keyword\">branches</literal>: String. The name of " 1.12048 "the branch on which the changeset was committed. Will be empty if the branch " 1.12049 @@ -12755,7 +11840,7 @@ 1.12050 msgstr "" 1.12051 1.12052 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12053 -#: ../en/ch11-template.xml:147 1.12054 +#: ../en/ch10-template.xml:148 1.12055 msgid "" 1.12056 "<literal role=\"template-keyword\">date</literal>: Date information. The " 1.12057 "date when the changeset was committed. This is <emphasis>not</emphasis> " 1.12058 @@ -12767,70 +11852,70 @@ 1.12059 msgstr "" 1.12060 1.12061 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12062 -#: ../en/ch11-template.xml:158 1.12063 +#: ../en/ch10-template.xml:159 1.12064 msgid "" 1.12065 "<literal role=\"template-keyword\">desc</literal>: String. The text of the " 1.12066 "changeset description." 1.12067 msgstr "" 1.12068 1.12069 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12070 -#: ../en/ch11-template.xml:161 1.12071 +#: ../en/ch10-template.xml:162 1.12072 msgid "" 1.12073 "<literal role=\"template-keyword\">files</literal>: List of strings. All " 1.12074 "files modified, added, or removed by this changeset." 1.12075 msgstr "" 1.12076 1.12077 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12078 -#: ../en/ch11-template.xml:166 1.12079 +#: ../en/ch10-template.xml:167 1.12080 msgid "" 1.12081 "<literal role=\"template-keyword\">file_adds</literal>: List of strings. " 1.12082 "Files added by this changeset." 1.12083 msgstr "" 1.12084 1.12085 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12086 -#: ../en/ch11-template.xml:170 1.12087 +#: ../en/ch10-template.xml:171 1.12088 msgid "" 1.12089 "<literal role=\"template-keyword\">file_dels</literal>: List of strings. " 1.12090 "Files removed by this changeset." 1.12091 msgstr "" 1.12092 1.12093 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12094 -#: ../en/ch11-template.xml:174 1.12095 +#: ../en/ch10-template.xml:175 1.12096 msgid "" 1.12097 "<literal role=\"template-keyword\">node</literal>: String. The changeset " 1.12098 "identification hash, as a 40-character hexadecimal string." 1.12099 msgstr "" 1.12100 1.12101 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12102 -#: ../en/ch11-template.xml:178 1.12103 +#: ../en/ch10-template.xml:179 1.12104 msgid "" 1.12105 "<literal role=\"template-keyword\">parents</literal>: List of strings. The " 1.12106 "parents of the changeset." 1.12107 msgstr "" 1.12108 1.12109 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12110 -#: ../en/ch11-template.xml:182 1.12111 +#: ../en/ch10-template.xml:183 1.12112 msgid "" 1.12113 "<literal role=\"template-keyword\">rev</literal>: Integer. The repository-" 1.12114 "local changeset revision number." 1.12115 msgstr "" 1.12116 1.12117 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12118 -#: ../en/ch11-template.xml:186 1.12119 +#: ../en/ch10-template.xml:187 1.12120 msgid "" 1.12121 "<literal role=\"template-keyword\">tags</literal>: List of strings. Any tags " 1.12122 "associated with the changeset." 1.12123 msgstr "" 1.12124 1.12125 #. type: Content of: <book><chapter><sect1><para> 1.12126 -#: ../en/ch11-template.xml:191 1.12127 +#: ../en/ch10-template.xml:192 1.12128 msgid "" 1.12129 "A few simple experiments will show us what to expect when we use these " 1.12130 "keywords; you can see the results below." 1.12131 msgstr "" 1.12132 1.12133 #. type: Content of: <book><chapter><sect1><para> 1.12134 -#: ../en/ch11-template.xml:196 1.12135 +#: ../en/ch10-template.xml:197 1.12136 msgid "" 1.12137 "As we noted above, the date keyword does not produce human-readable output, " 1.12138 "so we must treat it specially. This involves using a <emphasis>filter</" 1.12139 @@ -12839,12 +11924,12 @@ 1.12140 msgstr "" 1.12141 1.12142 #. type: Content of: <book><chapter><sect1><title> 1.12143 -#: ../en/ch11-template.xml:206 1.12144 +#: ../en/ch10-template.xml:207 1.12145 msgid "Escape sequences" 1.12146 msgstr "转义序列" 1.12147 1.12148 #. type: Content of: <book><chapter><sect1><para> 1.12149 -#: ../en/ch11-template.xml:208 1.12150 +#: ../en/ch10-template.xml:209 1.12151 msgid "" 1.12152 "Mercurial's templating engine recognises the most commonly used escape " 1.12153 "sequences in strings. When it sees a backslash (<quote><literal>\\</" 1.12154 @@ -12853,48 +11938,48 @@ 1.12155 msgstr "" 1.12156 1.12157 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12158 -#: ../en/ch11-template.xml:215 1.12159 -msgid "" 1.12160 -"<literal>\\textbackslash\\textbackslash</literal>: Backslash, <quote><literal>" 1.12161 -"\\</literal></quote>, ASCII 134." 1.12162 +#: ../en/ch10-template.xml:216 1.12163 +msgid "" 1.12164 +"<literal>\\</literal>: Backslash, <quote><literal>\\</literal></quote>, ASCII " 1.12165 +"134." 1.12166 msgstr "" 1.12167 1.12168 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12169 -#: ../en/ch11-template.xml:219 1.12170 -msgid "<literal>\\textbackslash n</literal>: Newline, ASCII 12." 1.12171 +#: ../en/ch10-template.xml:220 1.12172 +msgid "<literal>\\n</literal>: Newline, ASCII 12." 1.12173 msgstr "" 1.12174 1.12175 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12176 -#: ../en/ch11-template.xml:222 1.12177 -msgid "<literal>\\textbackslash r</literal>: Carriage return, ASCII 15." 1.12178 +#: ../en/ch10-template.xml:223 1.12179 +msgid "<literal>\\r</literal>: Carriage return, ASCII 15." 1.12180 msgstr "" 1.12181 1.12182 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12183 -#: ../en/ch11-template.xml:225 1.12184 -msgid "<literal>\\textbackslash t</literal>: Tab, ASCII 11." 1.12185 +#: ../en/ch10-template.xml:226 1.12186 +msgid "<literal>\\t</literal>: Tab, ASCII 11." 1.12187 msgstr "" 1.12188 1.12189 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12190 -#: ../en/ch11-template.xml:228 1.12191 -msgid "<literal>\\textbackslash v</literal>: Vertical tab, ASCII 13." 1.12192 +#: ../en/ch10-template.xml:229 1.12193 +msgid "<literal>\\v</literal>: Vertical tab, ASCII 13." 1.12194 msgstr "" 1.12195 1.12196 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12197 -#: ../en/ch11-template.xml:231 1.12198 -msgid "" 1.12199 -"<literal>\\textbackslash {</literal>: Open curly brace, <quote><literal>{</" 1.12200 -"literal></quote>, ASCII 173." 1.12201 +#: ../en/ch10-template.xml:232 1.12202 +msgid "" 1.12203 +"<literal>{</literal>: Open curly brace, <quote><literal>{</literal></quote>, " 1.12204 +"ASCII 173." 1.12205 msgstr "" 1.12206 1.12207 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12208 -#: ../en/ch11-template.xml:235 1.12209 -msgid "" 1.12210 -"<literal>\\textbackslash }</literal>: Close curly brace, <quote><literal>}</" 1.12211 -"literal></quote>, ASCII 175." 1.12212 -msgstr "" 1.12213 - 1.12214 -#. type: Content of: <book><chapter><sect1><para> 1.12215 -#: ../en/ch11-template.xml:240 1.12216 +#: ../en/ch10-template.xml:236 1.12217 +msgid "" 1.12218 +"<literal>}</literal>: Close curly brace, <quote><literal>}</literal></quote>, " 1.12219 +"ASCII 175." 1.12220 +msgstr "" 1.12221 + 1.12222 +#. type: Content of: <book><chapter><sect1><para> 1.12223 +#: ../en/ch10-template.xml:241 1.12224 msgid "" 1.12225 "As indicated above, if you want the expansion of a template to contain a " 1.12226 "literal <quote><literal>\\</literal></quote>, <quote><literal>{</literal></" 1.12227 @@ -12902,12 +11987,12 @@ 1.12228 msgstr "" 1.12229 1.12230 #. type: Content of: <book><chapter><sect1><title> 1.12231 -#: ../en/ch11-template.xml:248 1.12232 +#: ../en/ch10-template.xml:249 1.12233 msgid "Filtering keywords to change their results" 1.12234 msgstr "通过过滤关键字来修改输出结果" 1.12235 1.12236 #. type: Content of: <book><chapter><sect1><para> 1.12237 -#: ../en/ch11-template.xml:250 1.12238 +#: ../en/ch10-template.xml:251 1.12239 msgid "" 1.12240 "Some of the results of template expansion are not immediately easy to use. " 1.12241 "Mercurial lets you specify an optional chain of <emphasis>filters</emphasis> " 1.12242 @@ -12917,7 +12002,7 @@ 1.12243 msgstr "" 1.12244 1.12245 #. type: Content of: <book><chapter><sect1><para> 1.12246 -#: ../en/ch11-template.xml:257 1.12247 +#: ../en/ch10-template.xml:258 1.12248 msgid "" 1.12249 "Below is a list of the most commonly used filters that Mercurial supports. " 1.12250 "While some filters can be applied to any text, others can only be used in " 1.12251 @@ -12926,7 +12011,7 @@ 1.12252 msgstr "" 1.12253 1.12254 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12255 -#: ../en/ch11-template.xml:264 1.12256 +#: ../en/ch10-template.xml:265 1.12257 msgid "" 1.12258 "<literal role=\"template-filter\">addbreaks</literal>: Any text. Add an XHTML " 1.12259 "<quote><literal><br/></literal></quote> tag before the end of every " 1.12260 @@ -12935,7 +12020,7 @@ 1.12261 msgstr "" 1.12262 1.12263 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12264 -#: ../en/ch11-template.xml:271 1.12265 +#: ../en/ch10-template.xml:272 1.12266 msgid "" 1.12267 "<literal role=\"template-kw-filt-date\">age</literal>: <literal role=" 1.12268 "\"template-keyword\">date</literal> keyword. Render the age of the date, " 1.12269 @@ -12944,7 +12029,7 @@ 1.12270 msgstr "" 1.12271 1.12272 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12273 -#: ../en/ch11-template.xml:278 1.12274 +#: ../en/ch10-template.xml:279 1.12275 msgid "" 1.12276 "<literal role=\"template-filter\">basename</literal>: Any text, but most " 1.12277 "useful for the <literal role=\"template-keyword\">files</literal> keyword and " 1.12278 @@ -12954,7 +12039,7 @@ 1.12279 msgstr "" 1.12280 1.12281 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12282 -#: ../en/ch11-template.xml:287 1.12283 +#: ../en/ch10-template.xml:288 1.12284 msgid "" 1.12285 "<literal role=\"template-kw-filt-date\">date</literal>: <literal role=" 1.12286 "\"template-keyword\">date</literal> keyword. Render a date in a similar " 1.12287 @@ -12964,7 +12049,7 @@ 1.12288 msgstr "" 1.12289 1.12290 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12291 -#: ../en/ch11-template.xml:295 1.12292 +#: ../en/ch10-template.xml:296 1.12293 msgid "" 1.12294 "<literal role=\"template-kw-filt-author\">domain</literal>: Any text, but " 1.12295 "most useful for the <literal role=\"template-keyword\">author</literal> " 1.12296 @@ -12975,7 +12060,7 @@ 1.12297 msgstr "" 1.12298 1.12299 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12300 -#: ../en/ch11-template.xml:305 1.12301 +#: ../en/ch10-template.xml:306 1.12302 msgid "" 1.12303 "<literal role=\"template-kw-filt-author\">email</literal>: Any text, but most " 1.12304 "useful for the <literal role=\"template-keyword\">author</literal> keyword. " 1.12305 @@ -12985,7 +12070,7 @@ 1.12306 msgstr "" 1.12307 1.12308 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12309 -#: ../en/ch11-template.xml:314 1.12310 +#: ../en/ch10-template.xml:315 1.12311 msgid "" 1.12312 "<literal role=\"template-filter\">escape</literal>: Any text. Replace the " 1.12313 "special XML/XHTML characters <quote><literal>&</literal></quote>, " 1.12314 @@ -12994,7 +12079,7 @@ 1.12315 msgstr "" 1.12316 1.12317 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12318 -#: ../en/ch11-template.xml:322 1.12319 +#: ../en/ch10-template.xml:323 1.12320 msgid "" 1.12321 "<literal role=\"template-filter\">fill68</literal>: Any text. Wrap the text " 1.12322 "to fit in 68 columns. This is useful before you pass text through the " 1.12323 @@ -13003,21 +12088,21 @@ 1.12324 msgstr "" 1.12325 1.12326 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12327 -#: ../en/ch11-template.xml:330 1.12328 +#: ../en/ch10-template.xml:331 1.12329 msgid "" 1.12330 "<literal role=\"template-filter\">fill76</literal>: Any text. Wrap the text " 1.12331 "to fit in 76 columns." 1.12332 msgstr "" 1.12333 1.12334 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12335 -#: ../en/ch11-template.xml:334 1.12336 +#: ../en/ch10-template.xml:335 1.12337 msgid "" 1.12338 "<literal role=\"template-filter\">firstline</literal>: Any text. Yield the " 1.12339 "first line of text, without any trailing newlines." 1.12340 msgstr "" 1.12341 1.12342 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12343 -#: ../en/ch11-template.xml:339 1.12344 +#: ../en/ch10-template.xml:340 1.12345 msgid "" 1.12346 "<literal role=\"template-kw-filt-date\">hgdate</literal>: <literal role=" 1.12347 "\"template-keyword\">date</literal> keyword. Render the date as a pair of " 1.12348 @@ -13026,7 +12111,7 @@ 1.12349 msgstr "" 1.12350 1.12351 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12352 -#: ../en/ch11-template.xml:346 1.12353 +#: ../en/ch10-template.xml:347 1.12354 msgid "" 1.12355 "<literal role=\"template-kw-filt-date\">isodate</literal>: <literal role=" 1.12356 "\"template-keyword\">date</literal> keyword. Render the date as a text " 1.12357 @@ -13035,7 +12120,7 @@ 1.12358 msgstr "" 1.12359 1.12360 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12361 -#: ../en/ch11-template.xml:353 1.12362 +#: ../en/ch10-template.xml:354 1.12363 msgid "" 1.12364 "<literal role=\"template-filter\">obfuscate</literal>: Any text, but most " 1.12365 "useful for the <literal role=\"template-keyword\">author</literal> keyword. " 1.12366 @@ -13044,7 +12129,7 @@ 1.12367 msgstr "" 1.12368 1.12369 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12370 -#: ../en/ch11-template.xml:361 1.12371 +#: ../en/ch10-template.xml:362 1.12372 msgid "" 1.12373 "<literal role=\"template-kw-filt-author\">person</literal>: Any text, but " 1.12374 "most useful for the <literal role=\"template-keyword\">author</literal> " 1.12375 @@ -13054,7 +12139,7 @@ 1.12376 msgstr "" 1.12377 1.12378 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12379 -#: ../en/ch11-template.xml:370 1.12380 +#: ../en/ch10-template.xml:371 1.12381 msgid "" 1.12382 "<literal role=\"template-kw-filt-date\">rfc822date</literal>: <literal role=" 1.12383 "\"template-keyword\">date</literal> keyword. Render a date using the same " 1.12384 @@ -13063,7 +12148,7 @@ 1.12385 msgstr "" 1.12386 1.12387 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12388 -#: ../en/ch11-template.xml:377 1.12389 +#: ../en/ch10-template.xml:378 1.12390 msgid "" 1.12391 "<literal role=\"template-kw-filt-node\">short</literal>: Changeset hash. " 1.12392 "Yield the short form of a changeset hash, i.e. a 12-character hexadecimal " 1.12393 @@ -13071,7 +12156,7 @@ 1.12394 msgstr "" 1.12395 1.12396 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12397 -#: ../en/ch11-template.xml:382 1.12398 +#: ../en/ch10-template.xml:383 1.12399 msgid "" 1.12400 "<literal role=\"template-kw-filt-date\">shortdate</literal>: <literal role=" 1.12401 "\"template-keyword\">date</literal> keyword. Render the year, month, and day " 1.12402 @@ -13080,21 +12165,21 @@ 1.12403 msgstr "" 1.12404 1.12405 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12406 -#: ../en/ch11-template.xml:388 1.12407 +#: ../en/ch10-template.xml:389 1.12408 msgid "" 1.12409 "<literal role=\"template-filter\">strip</literal>: Any text. Strip all " 1.12410 "leading and trailing whitespace from the string." 1.12411 msgstr "" 1.12412 1.12413 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12414 -#: ../en/ch11-template.xml:392 1.12415 +#: ../en/ch10-template.xml:393 1.12416 msgid "" 1.12417 "<literal role=\"template-filter\">tabindent</literal>: Any text. Yield the " 1.12418 "text, with every line except the first starting with a tab character." 1.12419 msgstr "" 1.12420 1.12421 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12422 -#: ../en/ch11-template.xml:397 1.12423 +#: ../en/ch10-template.xml:398 1.12424 msgid "" 1.12425 "<literal role=\"template-filter\">urlescape</literal>: Any text. Escape all " 1.12426 "characters that are considered <quote>special</quote> by URL parsers. For " 1.12427 @@ -13102,7 +12187,7 @@ 1.12428 msgstr "" 1.12429 1.12430 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.12431 -#: ../en/ch11-template.xml:404 1.12432 +#: ../en/ch10-template.xml:405 1.12433 msgid "" 1.12434 "<literal role=\"template-kw-filt-author\">user</literal>: Any text, but most " 1.12435 "useful for the <literal role=\"template-keyword\">author</literal> keyword. " 1.12436 @@ -13112,7 +12197,7 @@ 1.12437 msgstr "" 1.12438 1.12439 #. type: Content of: <book><chapter><sect1><note><para> 1.12440 -#: ../en/ch11-template.xml:417 1.12441 +#: ../en/ch10-template.xml:418 1.12442 msgid "" 1.12443 "If you try to apply a filter to a piece of data that it cannot process, " 1.12444 "Mercurial will fail and print a Python exception. For example, trying to run " 1.12445 @@ -13122,12 +12207,12 @@ 1.12446 msgstr "" 1.12447 1.12448 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12449 -#: ../en/ch11-template.xml:426 1.12450 +#: ../en/ch10-template.xml:427 1.12451 msgid "Combining filters" 1.12452 msgstr "组合过滤器" 1.12453 1.12454 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12455 -#: ../en/ch11-template.xml:428 1.12456 +#: ../en/ch10-template.xml:429 1.12457 msgid "" 1.12458 "It is easy to combine filters to yield output in the form you would like. " 1.12459 "The following chain of filters tidies up a description, then makes sure that " 1.12460 @@ -13137,7 +12222,7 @@ 1.12461 msgstr "" 1.12462 1.12463 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12464 -#: ../en/ch11-template.xml:437 1.12465 +#: ../en/ch10-template.xml:438 1.12466 msgid "" 1.12467 "Note the use of <quote><literal>\\t</literal></quote> (a tab character) in " 1.12468 "the template to force the first line to be indented; this is necessary since " 1.12469 @@ -13146,7 +12231,7 @@ 1.12470 msgstr "" 1.12471 1.12472 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12473 -#: ../en/ch11-template.xml:443 1.12474 +#: ../en/ch10-template.xml:444 1.12475 msgid "" 1.12476 "Keep in mind that the order of filters in a chain is significant. The first " 1.12477 "filter is applied to the result of the keyword; the second to the result of " 1.12478 @@ -13156,12 +12241,12 @@ 1.12479 msgstr "" 1.12480 1.12481 #. type: Content of: <book><chapter><sect1><title> 1.12482 -#: ../en/ch11-template.xml:454 1.12483 +#: ../en/ch10-template.xml:455 1.12484 msgid "From templates to styles" 1.12485 msgstr "从模版到样式" 1.12486 1.12487 #. type: Content of: <book><chapter><sect1><para> 1.12488 -#: ../en/ch11-template.xml:456 1.12489 +#: ../en/ch10-template.xml:457 1.12490 msgid "" 1.12491 "A command line template provides a quick and simple way to format some " 1.12492 "output. Templates can become verbose, though, and it's useful to be able to " 1.12493 @@ -13170,7 +12255,7 @@ 1.12494 msgstr "" 1.12495 1.12496 #. type: Content of: <book><chapter><sect1><para> 1.12497 -#: ../en/ch11-template.xml:461 1.12498 +#: ../en/ch10-template.xml:462 1.12499 msgid "" 1.12500 "More than that, using a style file unlocks the power of Mercurial's " 1.12501 "templating engine in ways that are not possible using the command line " 1.12502 @@ -13178,49 +12263,49 @@ 1.12503 msgstr "" 1.12504 1.12505 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12506 -#: ../en/ch11-template.xml:467 1.12507 +#: ../en/ch10-template.xml:468 1.12508 msgid "The simplest of style files" 1.12509 msgstr "最简单的样式文件" 1.12510 1.12511 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12512 -#: ../en/ch11-template.xml:469 1.12513 +#: ../en/ch10-template.xml:470 1.12514 msgid "Our simple style file contains just one line:" 1.12515 msgstr "" 1.12516 1.12517 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12518 -#: ../en/ch11-template.xml:473 1.12519 +#: ../en/ch10-template.xml:474 1.12520 msgid "" 1.12521 "This tells Mercurial, <quote>if you're printing a changeset, use the text on " 1.12522 "the right as the template</quote>." 1.12523 msgstr "" 1.12524 1.12525 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12526 -#: ../en/ch11-template.xml:479 1.12527 +#: ../en/ch10-template.xml:480 1.12528 msgid "Style file syntax" 1.12529 msgstr "样式文件语法" 1.12530 1.12531 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12532 -#: ../en/ch11-template.xml:481 1.12533 +#: ../en/ch10-template.xml:482 1.12534 msgid "The syntax rules for a style file are simple." 1.12535 msgstr "" 1.12536 1.12537 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12538 -#: ../en/ch11-template.xml:484 1.12539 +#: ../en/ch10-template.xml:485 1.12540 msgid "The file is processed one line at a time." 1.12541 msgstr "" 1.12542 1.12543 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12544 -#: ../en/ch11-template.xml:487 1.12545 +#: ../en/ch10-template.xml:488 1.12546 msgid "Leading and trailing white space are ignored." 1.12547 msgstr "" 1.12548 1.12549 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12550 -#: ../en/ch11-template.xml:490 1.12551 +#: ../en/ch10-template.xml:491 1.12552 msgid "Empty lines are skipped." 1.12553 msgstr "" 1.12554 1.12555 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12556 -#: ../en/ch11-template.xml:492 1.12557 +#: ../en/ch10-template.xml:493 1.12558 msgid "" 1.12559 "If a line starts with either of the characters <quote><literal>#</literal></" 1.12560 "quote> or <quote><literal>;</literal></quote>, the entire line is treated as " 1.12561 @@ -13228,7 +12313,7 @@ 1.12562 msgstr "" 1.12563 1.12564 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12565 -#: ../en/ch11-template.xml:497 1.12566 +#: ../en/ch10-template.xml:498 1.12567 msgid "" 1.12568 "A line starts with a keyword. This must start with an alphabetic character " 1.12569 "or underscore, and can subsequently contain any alphanumeric character or " 1.12570 @@ -13237,21 +12322,21 @@ 1.12571 msgstr "" 1.12572 1.12573 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12574 -#: ../en/ch11-template.xml:503 1.12575 +#: ../en/ch10-template.xml:504 1.12576 msgid "" 1.12577 "The next element must be an <quote><literal>=</literal></quote> character, " 1.12578 "which can be preceded or followed by an arbitrary amount of white space." 1.12579 msgstr "" 1.12580 1.12581 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12582 -#: ../en/ch11-template.xml:508 1.12583 +#: ../en/ch10-template.xml:509 1.12584 msgid "" 1.12585 "If the rest of the line starts and ends with matching quote characters " 1.12586 "(either single or double quote), it is treated as a template body." 1.12587 msgstr "" 1.12588 1.12589 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12590 -#: ../en/ch11-template.xml:512 1.12591 +#: ../en/ch10-template.xml:513 1.12592 msgid "" 1.12593 "If the rest of the line <emphasis>does not</emphasis> start with a quote " 1.12594 "character, it is treated as the name of a file; the contents of this file " 1.12595 @@ -13259,12 +12344,12 @@ 1.12596 msgstr "" 1.12597 1.12598 #. type: Content of: <book><chapter><sect1><title> 1.12599 -#: ../en/ch11-template.xml:521 1.12600 +#: ../en/ch10-template.xml:522 1.12601 msgid "Style files by example" 1.12602 msgstr "样式文件例子" 1.12603 1.12604 #. type: Content of: <book><chapter><sect1><para> 1.12605 -#: ../en/ch11-template.xml:523 1.12606 +#: ../en/ch10-template.xml:524 1.12607 msgid "" 1.12608 "To illustrate how to write a style file, we will construct a few by example. " 1.12609 "Rather than provide a complete style file and walk through it, we'll mirror " 1.12610 @@ -13273,12 +12358,12 @@ 1.12611 msgstr "" 1.12612 1.12613 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12614 -#: ../en/ch11-template.xml:530 1.12615 +#: ../en/ch10-template.xml:531 1.12616 msgid "Identifying mistakes in style files" 1.12617 msgstr "在样式文件中定位错误" 1.12618 1.12619 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12620 -#: ../en/ch11-template.xml:532 1.12621 +#: ../en/ch10-template.xml:533 1.12622 msgid "" 1.12623 "If Mercurial encounters a problem in a style file you are working on, it " 1.12624 "prints a terse error message that, once you figure out what it means, is " 1.12625 @@ -13286,7 +12371,7 @@ 1.12626 msgstr "" 1.12627 1.12628 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12629 -#: ../en/ch11-template.xml:538 1.12630 +#: ../en/ch10-template.xml:539 1.12631 msgid "" 1.12632 "Notice that <filename>broken.style</filename> attempts to define a " 1.12633 "<literal>changeset</literal> keyword, but forgets to give any content for it. " 1.12634 @@ -13294,35 +12379,35 @@ 1.12635 msgstr "" 1.12636 1.12637 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12638 -#: ../en/ch11-template.xml:545 1.12639 +#: ../en/ch10-template.xml:546 1.12640 msgid "This error message looks intimidating, but it is not too hard to follow." 1.12641 msgstr "" 1.12642 1.12643 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12644 -#: ../en/ch11-template.xml:549 1.12645 +#: ../en/ch10-template.xml:550 1.12646 msgid "" 1.12647 "The first component is simply Mercurial's way of saying <quote>I am giving " 1.12648 "up</quote>." 1.12649 msgstr "" 1.12650 1.12651 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12652 -#: ../en/ch11-template.xml:554 1.12653 +#: ../en/ch10-template.xml:554 1.12654 msgid "Next comes the name of the style file that contains the error." 1.12655 msgstr "" 1.12656 1.12657 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12658 -#: ../en/ch11-template.xml:560 1.12659 +#: ../en/ch10-template.xml:558 1.12660 msgid "" 1.12661 "Following the file name is the line number where the error was encountered." 1.12662 msgstr "" 1.12663 1.12664 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12665 -#: ../en/ch11-template.xml:565 1.12666 +#: ../en/ch10-template.xml:562 1.12667 msgid "Finally, a description of what went wrong." 1.12668 msgstr "" 1.12669 1.12670 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12671 -#: ../en/ch11-template.xml:570 1.12672 +#: ../en/ch10-template.xml:566 1.12673 msgid "" 1.12674 "The description of the problem is not always clear (as in this case), but " 1.12675 "even when it is cryptic, it is almost always trivial to visually inspect the " 1.12676 @@ -13330,12 +12415,12 @@ 1.12677 msgstr "" 1.12678 1.12679 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12680 -#: ../en/ch11-template.xml:578 1.12681 +#: ../en/ch10-template.xml:574 1.12682 msgid "Uniquely identifying a repository" 1.12683 msgstr "版本库的唯一标识" 1.12684 1.12685 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12686 -#: ../en/ch11-template.xml:580 1.12687 +#: ../en/ch10-template.xml:576 1.12688 msgid "" 1.12689 "If you would like to be able to identify a Mercurial repository <quote>fairly " 1.12690 "uniquely</quote> using a short string as an identifier, you can use the first " 1.12691 @@ -13343,21 +12428,21 @@ 1.12692 msgstr "" 1.12693 1.12694 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12695 -#: ../en/ch11-template.xml:587 1.12696 +#: ../en/ch10-template.xml:583 1.12697 msgid "" 1.12698 "This is not guaranteed to be unique, but it is nevertheless useful in many " 1.12699 "cases." 1.12700 msgstr "" 1.12701 1.12702 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12703 -#: ../en/ch11-template.xml:590 1.12704 +#: ../en/ch10-template.xml:586 1.12705 msgid "" 1.12706 "It will not work in a completely empty repository, because such a repository " 1.12707 "does not have a revision zero." 1.12708 msgstr "" 1.12709 1.12710 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12711 -#: ../en/ch11-template.xml:594 1.12712 +#: ../en/ch10-template.xml:590 1.12713 msgid "" 1.12714 "Neither will it work in the (extremely rare) case where a repository is a " 1.12715 "merge of two or more formerly independent repositories, and you still have " 1.12716 @@ -13365,18 +12450,18 @@ 1.12717 msgstr "" 1.12718 1.12719 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12720 -#: ../en/ch11-template.xml:599 1.12721 +#: ../en/ch10-template.xml:595 1.12722 msgid "Here are some uses to which you could put this identifier:" 1.12723 msgstr "" 1.12724 1.12725 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12726 -#: ../en/ch11-template.xml:602 1.12727 +#: ../en/ch10-template.xml:598 1.12728 msgid "" 1.12729 "As a key into a table for a database that manages repositories on a server." 1.12730 msgstr "" 1.12731 1.12732 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12733 -#: ../en/ch11-template.xml:605 1.12734 +#: ../en/ch10-template.xml:601 1.12735 msgid "" 1.12736 "As half of a {<emphasis>repository ID</emphasis>, <emphasis>revision ID</" 1.12737 "emphasis>} tuple. Save this information away when you run an automated build " 1.12738 @@ -13385,13 +12470,13 @@ 1.12739 msgstr "" 1.12740 1.12741 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12742 -#: ../en/ch11-template.xml:614 1.12743 +#: ../en/ch10-template.xml:610 1.12744 msgid "Mimicking Subversion's output" 1.12745 msgstr "模仿 Subversion 的输出" 1.12746 1.12747 # 1.12748 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12749 -#: ../en/ch11-template.xml:616 1.12750 +#: ../en/ch10-template.xml:612 1.12751 msgid "" 1.12752 "Let's try to emulate the default output format used by another revision " 1.12753 "control tool, Subversion." 1.12754 @@ -13399,7 +12484,7 @@ 1.12755 1.12756 # 1.12757 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12758 -#: ../en/ch11-template.xml:621 1.12759 +#: ../en/ch10-template.xml:617 1.12760 msgid "" 1.12761 "Since Subversion's output style is fairly simple, it is easy to copy-and-" 1.12762 "paste a hunk of its output into a file, and replace the text produced above " 1.12763 @@ -13407,14 +12492,14 @@ 1.12764 msgstr "" 1.12765 1.12766 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12767 -#: ../en/ch11-template.xml:628 1.12768 +#: ../en/ch10-template.xml:624 1.12769 msgid "" 1.12770 "There are a few small ways in which this template deviates from the output " 1.12771 "produced by Subversion." 1.12772 msgstr "" 1.12773 1.12774 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12775 -#: ../en/ch11-template.xml:631 1.12776 +#: ../en/ch10-template.xml:627 1.12777 msgid "" 1.12778 "Subversion prints a <quote>readable</quote> date (the <quote><literal>Wed, 27 " 1.12779 "Sep 2006</literal></quote> in the example output above) in parentheses. " 1.12780 @@ -13423,7 +12508,7 @@ 1.12781 msgstr "" 1.12782 1.12783 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12784 -#: ../en/ch11-template.xml:638 1.12785 +#: ../en/ch10-template.xml:634 1.12786 msgid "" 1.12787 "We emulate Subversion's printing of <quote>separator</quote> lines full of " 1.12788 "<quote><literal>-</literal></quote> characters by ending the template with " 1.12789 @@ -13433,7 +12518,7 @@ 1.12790 msgstr "" 1.12791 1.12792 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.12793 -#: ../en/ch11-template.xml:647 1.12794 +#: ../en/ch10-template.xml:643 1.12795 msgid "" 1.12796 "Subversion's output includes a count in the header of the number of lines in " 1.12797 "the commit message. We cannot replicate this in Mercurial; the templating " 1.12798 @@ -13443,7 +12528,7 @@ 1.12799 1.12800 # 1.12801 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12802 -#: ../en/ch11-template.xml:653 1.12803 +#: ../en/ch10-template.xml:649 1.12804 msgid "" 1.12805 "It took me no more than a minute or two of work to replace literal text from " 1.12806 "an example of Subversion's output with some keywords and filters to give the " 1.12807 @@ -13451,7 +12536,7 @@ 1.12808 msgstr "" 1.12809 1.12810 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12811 -#: ../en/ch11-template.xml:660 1.12812 +#: ../en/ch10-template.xml:656 1.12813 msgid "" 1.12814 "We could have included the text of the template file directly in the style " 1.12815 "file by enclosing it in quotes and replacing the newlines with " 1.12816 @@ -13464,17 +12549,17 @@ 1.12817 msgstr "" 1.12818 1.12819 #. type: Content of: <book><chapter><title> 1.12820 -#: ../en/ch12-mq.xml:5 1.12821 +#: ../en/ch11-mq.xml:5 1.12822 msgid "Managing change with Mercurial Queues" 1.12823 msgstr "使用 MQ 管理修改" 1.12824 1.12825 #. type: Content of: <book><chapter><sect1><title> 1.12826 -#: ../en/ch12-mq.xml:8 1.12827 +#: ../en/ch11-mq.xml:8 1.12828 msgid "The patch management problem" 1.12829 msgstr "补丁的管理问题" 1.12830 1.12831 #. type: Content of: <book><chapter><sect1><para> 1.12832 -#: ../en/ch12-mq.xml:10 1.12833 +#: ../en/ch11-mq.xml:10 1.12834 msgid "" 1.12835 "Here is a common scenario: you need to install a software package from " 1.12836 "source, but you find a bug that you must fix in the source before you can " 1.12837 @@ -13486,7 +12571,7 @@ 1.12838 msgstr "" 1.12839 1.12840 #. type: Content of: <book><chapter><sect1><para> 1.12841 -#: ../en/ch12-mq.xml:20 1.12842 +#: ../en/ch11-mq.xml:20 1.12843 msgid "" 1.12844 "This is a simple case of the <quote>patch management</quote> problem. You " 1.12845 "have an <quote>upstream</quote> source tree that you can't change; you need " 1.12846 @@ -13496,7 +12581,7 @@ 1.12847 msgstr "" 1.12848 1.12849 #. type: Content of: <book><chapter><sect1><para> 1.12850 -#: ../en/ch12-mq.xml:27 1.12851 +#: ../en/ch11-mq.xml:27 1.12852 msgid "" 1.12853 "The patch management problem arises in many situations. Probably the most " 1.12854 "visible is that a user of an open source software project will contribute a " 1.12855 @@ -13504,7 +12589,7 @@ 1.12856 msgstr "" 1.12857 1.12858 #. type: Content of: <book><chapter><sect1><para> 1.12859 -#: ../en/ch12-mq.xml:32 1.12860 +#: ../en/ch11-mq.xml:32 1.12861 msgid "" 1.12862 "Distributors of operating systems that include open source software often " 1.12863 "need to make changes to the packages they distribute so that they will build " 1.12864 @@ -13512,7 +12597,7 @@ 1.12865 msgstr "" 1.12866 1.12867 #. type: Content of: <book><chapter><sect1><para> 1.12868 -#: ../en/ch12-mq.xml:37 1.12869 +#: ../en/ch11-mq.xml:37 1.12870 msgid "" 1.12871 "When you have few changes to maintain, it is easy to manage a single patch " 1.12872 "using the standard <command>diff</command> and <command>patch</command> " 1.12873 @@ -13529,7 +12614,7 @@ 1.12874 msgstr "" 1.12875 1.12876 #. type: Content of: <book><chapter><sect1><para> 1.12877 -#: ../en/ch12-mq.xml:52 1.12878 +#: ../en/ch11-mq.xml:52 1.12879 msgid "" 1.12880 "Maintaining a single patch against an upstream tree is a little tedious and " 1.12881 "error-prone, but not difficult. However, the complexity of the problem grows " 1.12882 @@ -13539,7 +12624,7 @@ 1.12883 msgstr "" 1.12884 1.12885 #. type: Content of: <book><chapter><sect1><para> 1.12886 -#: ../en/ch12-mq.xml:59 1.12887 +#: ../en/ch11-mq.xml:59 1.12888 msgid "" 1.12889 "Fortunately, Mercurial includes a powerful extension, Mercurial Queues (or " 1.12890 "simply <quote>MQ</quote>), that massively simplifies the patch management " 1.12891 @@ -13547,12 +12632,12 @@ 1.12892 msgstr "" 1.12893 1.12894 #. type: Content of: <book><chapter><sect1><title> 1.12895 -#: ../en/ch12-mq.xml:65 1.12896 +#: ../en/ch11-mq.xml:65 1.12897 msgid "The prehistory of Mercurial Queues" 1.12898 msgstr "MQ 的历史" 1.12899 1.12900 #. type: Content of: <book><chapter><sect1><para> 1.12901 -#: ../en/ch12-mq.xml:67 1.12902 +#: ../en/ch11-mq.xml:67 1.12903 msgid "" 1.12904 "During the late 1990s, several Linux kernel developers started to maintain " 1.12905 "<quote>patch series</quote> that modified the behaviour of the Linux kernel. " 1.12906 @@ -13561,7 +12646,7 @@ 1.12907 msgstr "" 1.12908 1.12909 #. type: Content of: <book><chapter><sect1><para> 1.12910 -#: ../en/ch12-mq.xml:73 1.12911 +#: ../en/ch11-mq.xml:73 1.12912 msgid "" 1.12913 "The sizes of these patch series grew rapidly. In 2002, Andrew Morton " 1.12914 "published some shell scripts he had been using to automate the task of " 1.12915 @@ -13570,12 +12655,12 @@ 1.12916 msgstr "" 1.12917 1.12918 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12919 -#: ../en/ch12-mq.xml:80 1.12920 +#: ../en/ch11-mq.xml:80 1.12921 msgid "A patchwork quilt" 1.12922 msgstr "" 1.12923 1.12924 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12925 -#: ../en/ch12-mq.xml:82 1.12926 +#: ../en/ch11-mq.xml:82 1.12927 msgid "" 1.12928 "In early 2003, Andreas Gruenbacher and Martin Quinson borrowed the approach " 1.12929 "of Andrew's scripts and published a tool called <quote>patchwork quilt</" 1.12930 @@ -13586,7 +12671,7 @@ 1.12931 msgstr "" 1.12932 1.12933 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12934 -#: ../en/ch12-mq.xml:91 1.12935 +#: ../en/ch11-mq.xml:91 1.12936 msgid "" 1.12937 "Quilt manages a <emphasis>stack of patches</emphasis> on top of a directory " 1.12938 "tree. To begin, you tell quilt to manage a directory tree, and tell it which " 1.12939 @@ -13596,7 +12681,7 @@ 1.12940 msgstr "" 1.12941 1.12942 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12943 -#: ../en/ch12-mq.xml:99 1.12944 +#: ../en/ch11-mq.xml:99 1.12945 msgid "" 1.12946 "The refresh step causes quilt to scan the directory tree; it updates the " 1.12947 "patch with all of the changes you have made. You can create another patch on " 1.12948 @@ -13606,7 +12691,7 @@ 1.12949 msgstr "" 1.12950 1.12951 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12952 -#: ../en/ch12-mq.xml:106 1.12953 +#: ../en/ch11-mq.xml:106 1.12954 msgid "" 1.12955 "You can <emphasis>change</emphasis> which patches are applied to the tree. " 1.12956 "If you <quote>pop</quote> a patch, the changes made by that patch will vanish " 1.12957 @@ -13620,19 +12705,19 @@ 1.12958 msgstr "" 1.12959 1.12960 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12961 -#: ../en/ch12-mq.xml:118 1.12962 +#: ../en/ch11-mq.xml:118 1.12963 msgid "" 1.12964 "Quilt knows nothing about revision control tools, so it works equally well on " 1.12965 "top of an unpacked tarball or a Subversion working copy." 1.12966 msgstr "" 1.12967 1.12968 #. type: Content of: <book><chapter><sect1><sect2><title> 1.12969 -#: ../en/ch12-mq.xml:124 1.12970 +#: ../en/ch11-mq.xml:124 1.12971 msgid "From patchwork quilt to Mercurial Queues" 1.12972 msgstr "从 patchwork quilt 到 MQ" 1.12973 1.12974 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12975 -#: ../en/ch12-mq.xml:126 1.12976 +#: ../en/ch11-mq.xml:126 1.12977 msgid "" 1.12978 "In mid-2005, Chris Mason took the features of quilt and wrote an extension " 1.12979 "that he called Mercurial Queues, which added quilt-like behaviour to " 1.12980 @@ -13640,7 +12725,7 @@ 1.12981 msgstr "" 1.12982 1.12983 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12984 -#: ../en/ch12-mq.xml:130 1.12985 +#: ../en/ch11-mq.xml:130 1.12986 msgid "" 1.12987 "The key difference between quilt and MQ is that quilt knows nothing about " 1.12988 "revision control systems, while MQ is <emphasis>integrated</emphasis> into " 1.12989 @@ -13649,7 +12734,7 @@ 1.12990 msgstr "" 1.12991 1.12992 #. type: Content of: <book><chapter><sect1><sect2><para> 1.12993 -#: ../en/ch12-mq.xml:136 1.12994 +#: ../en/ch11-mq.xml:136 1.12995 msgid "" 1.12996 "Because quilt does not care about revision control tools, it is still a " 1.12997 "tremendously useful piece of software to know about for situations where you " 1.12998 @@ -13657,19 +12742,19 @@ 1.12999 msgstr "" 1.13000 1.13001 #. type: Content of: <book><chapter><sect1><title> 1.13002 -#: ../en/ch12-mq.xml:144 1.13003 +#: ../en/ch11-mq.xml:144 1.13004 msgid "The huge advantage of MQ" 1.13005 msgstr "MQ 的巨大优势" 1.13006 1.13007 #. type: Content of: <book><chapter><sect1><para> 1.13008 -#: ../en/ch12-mq.xml:146 1.13009 +#: ../en/ch11-mq.xml:146 1.13010 msgid "" 1.13011 "I cannot overstate the value that MQ offers through the unification of " 1.13012 "patches and revision control." 1.13013 msgstr "" 1.13014 1.13015 #. type: Content of: <book><chapter><sect1><para> 1.13016 -#: ../en/ch12-mq.xml:149 1.13017 +#: ../en/ch11-mq.xml:149 1.13018 msgid "" 1.13019 "A major reason that patches have persisted in the free software and open " 1.13020 "source world&emdash;in spite of the availability of increasingly capable " 1.13021 @@ -13678,7 +12763,7 @@ 1.13022 msgstr "" 1.13023 1.13024 #. type: Content of: <book><chapter><sect1><para> 1.13025 -#: ../en/ch12-mq.xml:155 1.13026 +#: ../en/ch11-mq.xml:155 1.13027 msgid "" 1.13028 "Traditional revision control tools make a permanent, irreversible record of " 1.13029 "everything that you do. While this has great value, it's also somewhat " 1.13030 @@ -13689,7 +12774,7 @@ 1.13031 msgstr "" 1.13032 1.13033 #. type: Content of: <book><chapter><sect1><para> 1.13034 -#: ../en/ch12-mq.xml:163 1.13035 +#: ../en/ch11-mq.xml:163 1.13036 msgid "" 1.13037 "By contrast, MQ's marriage of distributed revision control with patches makes " 1.13038 "it much easier to isolate your work. Your patches live on top of normal " 1.13039 @@ -13700,7 +12785,7 @@ 1.13040 msgstr "" 1.13041 1.13042 #. type: Content of: <book><chapter><sect1><para> 1.13043 -#: ../en/ch12-mq.xml:171 1.13044 +#: ../en/ch11-mq.xml:171 1.13045 msgid "" 1.13046 "As an example, the integration of patches with revision control makes " 1.13047 "understanding patches and debugging their effects&emdash;and their interplay " 1.13048 @@ -13715,19 +12800,19 @@ 1.13049 msgstr "" 1.13050 1.13051 #. type: Content of: <book><chapter><sect1><title> 1.13052 -#: ../en/ch12-mq.xml:187 1.13053 +#: ../en/ch11-mq.xml:187 1.13054 msgid "Understanding patches" 1.13055 msgstr "理解补丁" 1.13056 1.13057 #. type: Content of: <book><chapter><sect1><para> 1.13058 -#: ../en/ch12-mq.xml:189 1.13059 +#: ../en/ch11-mq.xml:189 1.13060 msgid "" 1.13061 "Because MQ doesn't hide its patch-oriented nature, it is helpful to " 1.13062 "understand what patches are, and a little about the tools that work with them." 1.13063 msgstr "" 1.13064 1.13065 #. type: Content of: <book><chapter><sect1><para> 1.13066 -#: ../en/ch12-mq.xml:193 1.13067 +#: ../en/ch11-mq.xml:193 1.13068 msgid "" 1.13069 "The traditional Unix <command>diff</command> command compares two files, and " 1.13070 "prints a list of differences between them. The <command>patch</command> " 1.13071 @@ -13737,7 +12822,7 @@ 1.13072 msgstr "" 1.13073 1.13074 #. type: Content of: <book><chapter><sect1><para> 1.13075 -#: ../en/ch12-mq.xml:202 1.13076 +#: ../en/ch11-mq.xml:202 1.13077 msgid "" 1.13078 "The type of file that <command>diff</command> generates (and <command>patch</" 1.13079 "command> takes as input) is called a <quote>patch</quote> or a <quote>diff</" 1.13080 @@ -13746,7 +12831,7 @@ 1.13081 msgstr "" 1.13082 1.13083 #. type: Content of: <book><chapter><sect1><para> 1.13084 -#: ../en/ch12-mq.xml:208 1.13085 +#: ../en/ch11-mq.xml:208 1.13086 msgid "" 1.13087 "A patch file can start with arbitrary text; the <command>patch</command> " 1.13088 "command ignores this text, but MQ uses it as the commit message when creating " 1.13089 @@ -13756,7 +12841,7 @@ 1.13090 msgstr "" 1.13091 1.13092 #. type: Content of: <book><chapter><sect1><para> 1.13093 -#: ../en/ch12-mq.xml:215 1.13094 +#: ../en/ch11-mq.xml:215 1.13095 msgid "" 1.13096 "MQ works with <emphasis>unified</emphasis> diffs (<command>patch</command> " 1.13097 "can accept several other diff formats, but MQ doesn't). A unified diff " 1.13098 @@ -13767,7 +12852,7 @@ 1.13099 msgstr "" 1.13100 1.13101 #. type: Content of: <book><chapter><sect1><para> 1.13102 -#: ../en/ch12-mq.xml:223 1.13103 +#: ../en/ch11-mq.xml:223 1.13104 msgid "" 1.13105 "After the file header comes a series of <emphasis>hunks</emphasis>. Each " 1.13106 "hunk starts with a header; this identifies the range of line numbers within " 1.13107 @@ -13780,7 +12865,7 @@ 1.13108 msgstr "" 1.13109 1.13110 #. type: Content of: <book><chapter><sect1><para> 1.13111 -#: ../en/ch12-mq.xml:235 1.13112 +#: ../en/ch11-mq.xml:235 1.13113 msgid "" 1.13114 "Each line of context begins with a space character. Within the hunk, a line " 1.13115 "that begins with <quote><literal>-</literal></quote> means <quote>remove this " 1.13116 @@ -13790,7 +12875,7 @@ 1.13117 msgstr "" 1.13118 1.13119 #. type: Content of: <book><chapter><sect1><para> 1.13120 -#: ../en/ch12-mq.xml:243 1.13121 +#: ../en/ch11-mq.xml:243 1.13122 msgid "" 1.13123 "We will return to some of the more subtle aspects of patches later (in " 1.13124 "section <xref linkend=\"sec.mq.adv-patch\"/>), but you should have enough " 1.13125 @@ -13798,12 +12883,12 @@ 1.13126 msgstr "" 1.13127 1.13128 #. type: Content of: <book><chapter><sect1><title> 1.13129 -#: ../en/ch12-mq.xml:250 1.13130 +#: ../en/ch11-mq.xml:250 1.13131 msgid "Getting started with Mercurial Queues" 1.13132 msgstr "开始使用 MQ" 1.13133 1.13134 #. type: Content of: <book><chapter><sect1><para> 1.13135 -#: ../en/ch12-mq.xml:252 1.13136 +#: ../en/ch11-mq.xml:252 1.13137 msgid "" 1.13138 "Because MQ is implemented as an extension, you must explicitly enable before " 1.13139 "you can use it. (You don't need to download anything; MQ ships with the " 1.13140 @@ -13812,7 +12897,7 @@ 1.13141 msgstr "" 1.13142 1.13143 #. type: Content of: <book><chapter><sect1><para> 1.13144 -#: ../en/ch12-mq.xml:261 1.13145 +#: ../en/ch11-mq.xml:262 1.13146 msgid "" 1.13147 "Once the extension is enabled, it will make a number of new commands " 1.13148 "available. To verify that the extension is working, you can use <command " 1.13149 @@ -13821,7 +12906,7 @@ 1.13150 msgstr "" 1.13151 1.13152 #. type: Content of: <book><chapter><sect1><para> 1.13153 -#: ../en/ch12-mq.xml:269 1.13154 +#: ../en/ch11-mq.xml:270 1.13155 msgid "" 1.13156 "You can use MQ with <emphasis>any</emphasis> Mercurial repository, and its " 1.13157 "commands only operate within that repository. To get started, simply prepare " 1.13158 @@ -13829,7 +12914,7 @@ 1.13159 msgstr "" 1.13160 1.13161 #. type: Content of: <book><chapter><sect1><para> 1.13162 -#: ../en/ch12-mq.xml:276 1.13163 +#: ../en/ch11-mq.xml:277 1.13164 msgid "" 1.13165 "This command creates an empty directory called <filename role=\"special\" " 1.13166 "class=\"directory\">.hg/patches</filename>, where MQ will keep its metadata. " 1.13167 @@ -13838,12 +12923,12 @@ 1.13168 msgstr "" 1.13169 1.13170 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13171 -#: ../en/ch12-mq.xml:283 1.13172 +#: ../en/ch11-mq.xml:284 1.13173 msgid "Creating a new patch" 1.13174 msgstr "创建新补丁" 1.13175 1.13176 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13177 -#: ../en/ch12-mq.xml:285 1.13178 +#: ../en/ch11-mq.xml:286 1.13179 msgid "" 1.13180 "To begin work on a new patch, use the <command role=\"hg-ext-mq\">qnew</" 1.13181 "command> command. This command takes one argument, the name of the patch to " 1.13182 @@ -13851,14 +12936,14 @@ 1.13183 msgstr "" 1.13184 1.13185 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13186 -#: ../en/ch12-mq.xml:289 1.13187 +#: ../en/ch11-mq.xml:290 1.13188 msgid "" 1.13189 "MQ will use this as the name of an actual file in the <filename role=\"special" 1.13190 "\" class=\"directory\">.hg/patches</filename> directory, as you can see below." 1.13191 msgstr "" 1.13192 1.13193 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13194 -#: ../en/ch12-mq.xml:296 1.13195 +#: ../en/ch11-mq.xml:297 1.13196 msgid "" 1.13197 "Also newly present in the <filename role=\"special\" class=\"directory\">.hg/" 1.13198 "patches</filename> directory are two other files, <filename role=\"special" 1.13199 @@ -13871,7 +12956,7 @@ 1.13200 msgstr "" 1.13201 1.13202 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.13203 -#: ../en/ch12-mq.xml:308 1.13204 +#: ../en/ch11-mq.xml:309 1.13205 msgid "" 1.13206 "You may sometimes want to edit the <filename role=\"special\">series</" 1.13207 "filename> file by hand; for example, to change the sequence in which some " 1.13208 @@ -13881,7 +12966,7 @@ 1.13209 msgstr "" 1.13210 1.13211 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13212 -#: ../en/ch12-mq.xml:317 1.13213 +#: ../en/ch11-mq.xml:318 1.13214 msgid "" 1.13215 "Once you have created your new patch, you can edit files in the working " 1.13216 "directory as you usually would. All of the normal Mercurial commands, such " 1.13217 @@ -13890,12 +12975,12 @@ 1.13218 msgstr "" 1.13219 1.13220 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13221 -#: ../en/ch12-mq.xml:325 1.13222 +#: ../en/ch11-mq.xml:326 1.13223 msgid "Refreshing a patch" 1.13224 msgstr "刷新补丁" 1.13225 1.13226 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13227 -#: ../en/ch12-mq.xml:327 1.13228 +#: ../en/ch11-mq.xml:328 1.13229 msgid "" 1.13230 "When you reach a point where you want to save your work, use the <command " 1.13231 "role=\"hg-ext-mq\">qrefresh</command> command to update the patch you are " 1.13232 @@ -13903,14 +12988,14 @@ 1.13233 msgstr "" 1.13234 1.13235 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13236 -#: ../en/ch12-mq.xml:333 1.13237 +#: ../en/ch11-mq.xml:334 1.13238 msgid "" 1.13239 "This command folds the changes you have made in the working directory into " 1.13240 "your patch, and updates its corresponding changeset to contain those changes." 1.13241 msgstr "" 1.13242 1.13243 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13244 -#: ../en/ch12-mq.xml:337 1.13245 +#: ../en/ch11-mq.xml:338 1.13246 msgid "" 1.13247 "You can run <command role=\"hg-ext-mq\">qrefresh</command> as often as you " 1.13248 "like, so it's a good way to <quote>checkpoint</quote> your work. Refresh " 1.13249 @@ -13920,12 +13005,12 @@ 1.13250 msgstr "" 1.13251 1.13252 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13253 -#: ../en/ch12-mq.xml:348 1.13254 +#: ../en/ch11-mq.xml:349 1.13255 msgid "Stacking and tracking patches" 1.13256 msgstr "堆叠和跟踪补丁" 1.13257 1.13258 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13259 -#: ../en/ch12-mq.xml:350 1.13260 +#: ../en/ch11-mq.xml:351 1.13261 msgid "" 1.13262 "Once you have finished working on a patch, or need to work on another, you " 1.13263 "can use the <command role=\"hg-ext-mq\">qnew</command> command again to " 1.13264 @@ -13934,7 +13019,7 @@ 1.13265 msgstr "" 1.13266 1.13267 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13268 -#: ../en/ch12-mq.xml:357 1.13269 +#: ../en/ch11-mq.xml:358 1.13270 msgid "" 1.13271 "Notice that the patch contains the changes in our prior patch as part of its " 1.13272 "context (you can see this more clearly in the output of <command role=\"hg-cmd" 1.13273 @@ -13942,7 +13027,7 @@ 1.13274 msgstr "" 1.13275 1.13276 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13277 -#: ../en/ch12-mq.xml:362 1.13278 +#: ../en/ch11-mq.xml:363 1.13279 msgid "" 1.13280 "So far, with the exception of <command role=\"hg-ext-mq\">qnew</command> and " 1.13281 "<command role=\"hg-ext-mq\">qrefresh</command>, we've been careful to only " 1.13282 @@ -13951,7 +13036,7 @@ 1.13283 msgstr "" 1.13284 1.13285 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13286 -#: ../en/ch12-mq.xml:372 1.13287 +#: ../en/ch11-mq.xml:373 1.13288 msgid "" 1.13289 "The <command role=\"hg-ext-mq\">qseries</command> command lists every patch " 1.13290 "that MQ knows about in this repository, from oldest to newest (most recently " 1.13291 @@ -13959,7 +13044,7 @@ 1.13292 msgstr "" 1.13293 1.13294 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13295 -#: ../en/ch12-mq.xml:378 1.13296 +#: ../en/ch11-mq.xml:379 1.13297 msgid "" 1.13298 "The <command role=\"hg-ext-mq\">qapplied</command> command lists every patch " 1.13299 "that MQ has <emphasis>applied</emphasis> in this repository, again from " 1.13300 @@ -13967,12 +13052,12 @@ 1.13301 msgstr "" 1.13302 1.13303 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13304 -#: ../en/ch12-mq.xml:387 1.13305 +#: ../en/ch11-mq.xml:388 1.13306 msgid "Manipulating the patch stack" 1.13307 msgstr "操作补丁堆栈" 1.13308 1.13309 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13310 -#: ../en/ch12-mq.xml:389 1.13311 +#: ../en/ch11-mq.xml:390 1.13312 msgid "" 1.13313 "The previous discussion implied that there must be a difference between " 1.13314 "<quote>known</quote> and <quote>applied</quote> patches, and there is. MQ " 1.13315 @@ -13980,7 +13065,7 @@ 1.13316 msgstr "" 1.13317 1.13318 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13319 -#: ../en/ch12-mq.xml:394 1.13320 +#: ../en/ch11-mq.xml:395 1.13321 msgid "" 1.13322 "An <emphasis>applied</emphasis> patch has a corresponding changeset in the " 1.13323 "repository, and the effects of the patch and changeset are visible in the " 1.13324 @@ -13994,17 +13079,17 @@ 1.13325 msgstr "" 1.13326 1.13327 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject> 1.13328 -#: ../en/ch12-mq.xml:408 1.13329 +#: ../en/ch11-mq.xml:409 1.13330 msgid "<imageobject><imagedata fileref=\"images/mq-stack.png\"/></imageobject>" 1.13331 msgstr "" 1.13332 1.13333 #. type: Content of: <book><chapter><sect1><sect2><informalfigure><mediaobject><caption><para> 1.13334 -#: ../en/ch12-mq.xml:410 1.13335 +#: ../en/ch11-mq.xml:411 1.13336 msgid "Applied and unapplied patches in the MQ patch stack" 1.13337 msgstr "" 1.13338 1.13339 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13340 -#: ../en/ch12-mq.xml:415 1.13341 +#: ../en/ch11-mq.xml:416 1.13342 msgid "" 1.13343 "You can reapply an unapplied, or popped, patch using the <command role=\"hg-" 1.13344 "ext-mq\">qpush</command> command. This creates a new changeset to correspond " 1.13345 @@ -14014,7 +13099,7 @@ 1.13346 msgstr "" 1.13347 1.13348 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13349 -#: ../en/ch12-mq.xml:424 1.13350 +#: ../en/ch11-mq.xml:425 1.13351 msgid "" 1.13352 "Notice that once we have popped a patch or two patches, the output of " 1.13353 "<command role=\"hg-ext-mq\">qseries</command> remains the same, while that of " 1.13354 @@ -14022,12 +13107,12 @@ 1.13355 msgstr "" 1.13356 1.13357 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13358 -#: ../en/ch12-mq.xml:432 1.13359 +#: ../en/ch11-mq.xml:433 1.13360 msgid "Pushing and popping many patches" 1.13361 msgstr "压入或弹出多个补丁" 1.13362 1.13363 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13364 -#: ../en/ch12-mq.xml:434 1.13365 +#: ../en/ch11-mq.xml:435 1.13366 msgid "" 1.13367 "While <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-" 1.13368 "mq\">qpop</command> each operate on a single patch at a time by default, you " 1.13369 @@ -14040,12 +13125,12 @@ 1.13370 msgstr "" 1.13371 1.13372 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13373 -#: ../en/ch12-mq.xml:451 1.13374 +#: ../en/ch11-mq.xml:452 1.13375 msgid "Safety checks, and overriding them" 1.13376 msgstr "安全的检查,然后覆盖它们" 1.13377 1.13378 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13379 -#: ../en/ch12-mq.xml:453 1.13380 +#: ../en/ch11-mq.xml:454 1.13381 msgid "" 1.13382 "Several MQ commands check the working directory before they do anything, and " 1.13383 "fail if they find any modifications. They do this to ensure that you won't " 1.13384 @@ -14057,7 +13142,7 @@ 1.13385 msgstr "" 1.13386 1.13387 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13388 -#: ../en/ch12-mq.xml:465 1.13389 +#: ../en/ch11-mq.xml:466 1.13390 msgid "" 1.13391 "Commands that check the working directory all take an <quote>I know what I'm " 1.13392 "doing</quote> option, which is always named <option>-f</option>. The exact " 1.13393 @@ -14071,12 +13156,12 @@ 1.13394 msgstr "" 1.13395 1.13396 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13397 -#: ../en/ch12-mq.xml:480 1.13398 +#: ../en/ch11-mq.xml:481 1.13399 msgid "Working on several patches at once" 1.13400 msgstr "同时处理多个补丁" 1.13401 1.13402 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13403 -#: ../en/ch12-mq.xml:482 1.13404 +#: ../en/ch11-mq.xml:483 1.13405 msgid "" 1.13406 "The <command role=\"hg-ext-mq\">qrefresh</command> command always refreshes " 1.13407 "the <emphasis>topmost</emphasis> applied patch. This means that you can " 1.13408 @@ -14085,7 +13170,7 @@ 1.13409 msgstr "" 1.13410 1.13411 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13412 -#: ../en/ch12-mq.xml:489 1.13413 +#: ../en/ch11-mq.xml:490 1.13414 msgid "" 1.13415 "Here's an example that illustrates how you can use this ability. Let's say " 1.13416 "you're developing a new feature as two patches. The first is a change to the " 1.13417 @@ -14101,12 +13186,12 @@ 1.13418 msgstr "" 1.13419 1.13420 #. type: Content of: <book><chapter><sect1><title> 1.13421 -#: ../en/ch12-mq.xml:506 1.13422 +#: ../en/ch11-mq.xml:507 1.13423 msgid "More about patches" 1.13424 msgstr "关于补丁的更多信息" 1.13425 1.13426 #. type: Content of: <book><chapter><sect1><para> 1.13427 -#: ../en/ch12-mq.xml:508 1.13428 +#: ../en/ch11-mq.xml:509 1.13429 msgid "" 1.13430 "MQ uses the GNU <command>patch</command> command to apply patches, so it's " 1.13431 "helpful to know a few more detailed aspects of how <command>patch</command> " 1.13432 @@ -14114,12 +13199,12 @@ 1.13433 msgstr "" 1.13434 1.13435 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13436 -#: ../en/ch12-mq.xml:514 1.13437 +#: ../en/ch11-mq.xml:515 1.13438 msgid "The strip count" 1.13439 msgstr "修剪计数" 1.13440 1.13441 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13442 -#: ../en/ch12-mq.xml:516 1.13443 +#: ../en/ch11-mq.xml:517 1.13444 msgid "" 1.13445 "If you look at the file headers in a patch, you will notice that the " 1.13446 "pathnames usually have an extra component on the front that isn't present in " 1.13447 @@ -14129,7 +13214,7 @@ 1.13448 msgstr "" 1.13449 1.13450 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13451 -#: ../en/ch12-mq.xml:523 1.13452 +#: ../en/ch11-mq.xml:524 1.13453 msgid "" 1.13454 "Alice would unpack a tarball, edit her files, then decide that she wanted to " 1.13455 "create a patch. So she'd rename her working directory, unpack the tarball " 1.13456 @@ -14143,7 +13228,7 @@ 1.13457 msgstr "" 1.13458 1.13459 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13460 -#: ../en/ch12-mq.xml:536 1.13461 +#: ../en/ch11-mq.xml:537 1.13462 msgid "" 1.13463 "Since someone receiving a patch from the Alices of the net would be unlikely " 1.13464 "to have unmodified and modified directories with exactly the same names, the " 1.13465 @@ -14154,7 +13239,7 @@ 1.13466 msgstr "" 1.13467 1.13468 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13469 -#: ../en/ch12-mq.xml:544 1.13470 +#: ../en/ch11-mq.xml:545 1.13471 msgid "" 1.13472 "An option of <quote><literal>-p1</literal></quote> means <quote>use a strip " 1.13473 "count of one</quote>. If <command>patch</command> sees a file name " 1.13474 @@ -14168,7 +13253,7 @@ 1.13475 msgstr "" 1.13476 1.13477 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13478 -#: ../en/ch12-mq.xml:557 1.13479 +#: ../en/ch11-mq.xml:558 1.13480 msgid "" 1.13481 "The <quote>standard</quote> strip count for patches is one; almost all " 1.13482 "patches contain one leading path name component that needs to be stripped. " 1.13483 @@ -14178,7 +13263,7 @@ 1.13484 msgstr "" 1.13485 1.13486 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13487 -#: ../en/ch12-mq.xml:565 1.13488 +#: ../en/ch11-mq.xml:566 1.13489 msgid "" 1.13490 "If you receive a patch from someone that you want to add to your patch queue, " 1.13491 "and the patch needs a strip count other than one, you cannot just <command " 1.13492 @@ -14195,12 +13280,12 @@ 1.13493 msgstr "" 1.13494 1.13495 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13496 -#: ../en/ch12-mq.xml:584 1.13497 +#: ../en/ch11-mq.xml:585 1.13498 msgid "Strategies for applying a patch" 1.13499 msgstr "应用补丁的策略" 1.13500 1.13501 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13502 -#: ../en/ch12-mq.xml:586 1.13503 +#: ../en/ch11-mq.xml:587 1.13504 msgid "" 1.13505 "When <command>patch</command> applies a hunk, it tries a handful of " 1.13506 "successively less accurate strategies to try to make the hunk apply. This " 1.13507 @@ -14210,7 +13295,7 @@ 1.13508 msgstr "" 1.13509 1.13510 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13511 -#: ../en/ch12-mq.xml:593 1.13512 +#: ../en/ch11-mq.xml:594 1.13513 msgid "" 1.13514 "First, <command>patch</command> tries an exact match, where the line numbers, " 1.13515 "the context, and the text to be modified must apply exactly. If it cannot " 1.13516 @@ -14221,7 +13306,7 @@ 1.13517 msgstr "" 1.13518 1.13519 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13520 -#: ../en/ch12-mq.xml:602 1.13521 +#: ../en/ch11-mq.xml:603 1.13522 msgid "" 1.13523 "If a context-only match fails, <command>patch</command> removes the first and " 1.13524 "last lines of the context, and tries a <emphasis>reduced</emphasis> context-" 1.13525 @@ -14232,7 +13317,7 @@ 1.13526 msgstr "" 1.13527 1.13528 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13529 -#: ../en/ch12-mq.xml:611 1.13530 +#: ../en/ch11-mq.xml:612 1.13531 msgid "" 1.13532 "When neither of these techniques works, <command>patch</command> prints a " 1.13533 "message saying that the hunk in question was rejected. It saves rejected " 1.13534 @@ -14249,33 +13334,33 @@ 1.13535 msgstr "" 1.13536 1.13537 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13538 -#: ../en/ch12-mq.xml:629 1.13539 +#: ../en/ch11-mq.xml:630 1.13540 msgid "Some quirks of patch representation" 1.13541 msgstr "补丁的一些特性" 1.13542 1.13543 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13544 -#: ../en/ch12-mq.xml:631 1.13545 +#: ../en/ch11-mq.xml:632 1.13546 msgid "" 1.13547 "There are a few useful things to know about how <command>patch</command> " 1.13548 "works with files." 1.13549 msgstr "" 1.13550 1.13551 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13552 -#: ../en/ch12-mq.xml:634 1.13553 +#: ../en/ch11-mq.xml:635 1.13554 msgid "" 1.13555 "This should already be obvious, but <command>patch</command> cannot handle " 1.13556 "binary files." 1.13557 msgstr "" 1.13558 1.13559 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13560 -#: ../en/ch12-mq.xml:638 1.13561 +#: ../en/ch11-mq.xml:639 1.13562 msgid "" 1.13563 "Neither does it care about the executable bit; it creates new files as " 1.13564 "readable, but not executable." 1.13565 msgstr "" 1.13566 1.13567 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13568 -#: ../en/ch12-mq.xml:642 1.13569 +#: ../en/ch11-mq.xml:643 1.13570 msgid "" 1.13571 "<command>patch</command> treats the removal of a file as a diff between the " 1.13572 "file to be removed and the empty file. So your idea of <quote>I deleted this " 1.13573 @@ -14284,7 +13369,7 @@ 1.13574 msgstr "" 1.13575 1.13576 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13577 -#: ../en/ch12-mq.xml:648 1.13578 +#: ../en/ch11-mq.xml:649 1.13579 msgid "" 1.13580 "It treats the addition of a file as a diff between the empty file and the " 1.13581 "file to be added. So in a patch, your idea of <quote>I added this file</" 1.13582 @@ -14292,7 +13377,7 @@ 1.13583 msgstr "" 1.13584 1.13585 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13586 -#: ../en/ch12-mq.xml:654 1.13587 +#: ../en/ch11-mq.xml:655 1.13588 msgid "" 1.13589 "It treats a renamed file as the removal of the old name, and the addition of " 1.13590 "the new name. This means that renamed files have a big footprint in " 1.13591 @@ -14301,7 +13386,7 @@ 1.13592 msgstr "" 1.13593 1.13594 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13595 -#: ../en/ch12-mq.xml:660 1.13596 +#: ../en/ch11-mq.xml:661 1.13597 msgid "" 1.13598 "<command>patch</command> cannot represent empty files, so you cannot use a " 1.13599 "patch to represent the notion <quote>I added this empty file to the tree</" 1.13600 @@ -14309,12 +13394,12 @@ 1.13601 msgstr "" 1.13602 1.13603 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13604 -#: ../en/ch12-mq.xml:667 1.13605 +#: ../en/ch11-mq.xml:668 1.13606 msgid "Beware the fuzz" 1.13607 msgstr "当心毛刺" 1.13608 1.13609 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13610 -#: ../en/ch12-mq.xml:669 1.13611 +#: ../en/ch11-mq.xml:670 1.13612 msgid "" 1.13613 "While applying a hunk at an offset, or with a fuzz factor, will often be " 1.13614 "completely successful, these inexact techniques naturally leave open the " 1.13615 @@ -14326,7 +13411,7 @@ 1.13616 msgstr "" 1.13617 1.13618 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13619 -#: ../en/ch12-mq.xml:679 1.13620 +#: ../en/ch11-mq.xml:680 1.13621 msgid "" 1.13622 "It's often a good idea to refresh a patch that has applied with an offset or " 1.13623 "fuzz factor; refreshing the patch generates new context information that will " 1.13624 @@ -14339,12 +13424,12 @@ 1.13625 msgstr "" 1.13626 1.13627 #. type: Content of: <book><chapter><sect1><sect2><title> 1.13628 -#: ../en/ch12-mq.xml:692 1.13629 +#: ../en/ch11-mq.xml:693 1.13630 msgid "Handling rejection" 1.13631 msgstr "处理拒绝" 1.13632 1.13633 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13634 -#: ../en/ch12-mq.xml:694 1.13635 +#: ../en/ch11-mq.xml:695 1.13636 msgid "" 1.13637 "If <command role=\"hg-ext-mq\">qpush</command> fails to apply a patch, it " 1.13638 "will print an error message and exit. If it has left <filename role=\"special" 1.13639 @@ -14353,7 +13438,7 @@ 1.13640 msgstr "" 1.13641 1.13642 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13643 -#: ../en/ch12-mq.xml:700 1.13644 +#: ../en/ch11-mq.xml:701 1.13645 msgid "" 1.13646 "If your patch <emphasis>used to</emphasis> apply cleanly, and no longer does " 1.13647 "because you've changed the underlying code that your patches are based on, " 1.13648 @@ -14362,7 +13447,7 @@ 1.13649 msgstr "" 1.13650 1.13651 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13652 -#: ../en/ch12-mq.xml:706 1.13653 +#: ../en/ch11-mq.xml:707 1.13654 msgid "" 1.13655 "Unfortunately, there aren't any great techniques for dealing with rejected " 1.13656 "hunks. Most often, you'll need to view the <filename role=\"special\">.rej</" 1.13657 @@ -14370,7 +13455,7 @@ 1.13658 msgstr "" 1.13659 1.13660 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13661 -#: ../en/ch12-mq.xml:711 1.13662 +#: ../en/ch11-mq.xml:712 1.13663 msgid "" 1.13664 "If you're feeling adventurous, Neil Brown, a Linux kernel hacker, wrote a " 1.13665 "tool called <command>wiggle</command> <citation>web:wiggle</citation>, which " 1.13666 @@ -14379,7 +13464,7 @@ 1.13667 msgstr "" 1.13668 1.13669 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13670 -#: ../en/ch12-mq.xml:717 1.13671 +#: ../en/ch11-mq.xml:718 1.13672 msgid "" 1.13673 "Another Linux kernel hacker, Chris Mason (the author of Mercurial Queues), " 1.13674 "wrote a similar tool called <command>mpatch</command> <citation>web:mpatch</" 1.13675 @@ -14389,31 +13474,31 @@ 1.13676 msgstr "" 1.13677 1.13678 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13679 -#: ../en/ch12-mq.xml:726 1.13680 +#: ../en/ch11-mq.xml:727 1.13681 msgid "The context in the middle of a hunk has changed." 1.13682 msgstr "" 1.13683 1.13684 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13685 -#: ../en/ch12-mq.xml:729 1.13686 +#: ../en/ch11-mq.xml:730 1.13687 msgid "A hunk is missing some context at the beginning or end." 1.13688 msgstr "" 1.13689 1.13690 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13691 -#: ../en/ch12-mq.xml:732 1.13692 +#: ../en/ch11-mq.xml:733 1.13693 msgid "" 1.13694 "A large hunk might apply better&emdash;either entirely or in part&emdash;if " 1.13695 "it was broken up into smaller hunks." 1.13696 msgstr "" 1.13697 1.13698 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.13699 -#: ../en/ch12-mq.xml:736 1.13700 +#: ../en/ch11-mq.xml:737 1.13701 msgid "" 1.13702 "A hunk removes lines with slightly different content than those currently " 1.13703 "present in the file." 1.13704 msgstr "" 1.13705 1.13706 #. type: Content of: <book><chapter><sect1><sect2><para> 1.13707 -#: ../en/ch12-mq.xml:740 1.13708 +#: ../en/ch11-mq.xml:741 1.13709 msgid "" 1.13710 "If you use <command>wiggle</command> or <command>mpatch</command>, you should " 1.13711 "be doubly careful to check your results when you're done. In fact, " 1.13712 @@ -14423,12 +13508,12 @@ 1.13713 msgstr "" 1.13714 1.13715 #. type: Content of: <book><chapter><sect1><title> 1.13716 -#: ../en/ch12-mq.xml:752 1.13717 +#: ../en/ch11-mq.xml:753 1.13718 msgid "Getting the best performance out of MQ" 1.13719 msgstr "MQ 的性能" 1.13720 1.13721 #. type: Content of: <book><chapter><sect1><para> 1.13722 -#: ../en/ch12-mq.xml:754 1.13723 +#: ../en/ch11-mq.xml:755 1.13724 msgid "" 1.13725 "MQ is very efficient at handling a large number of patches. I ran some " 1.13726 "performance experiments in mid-2006 for a talk that I gave at the 2006 " 1.13727 @@ -14439,7 +13524,7 @@ 1.13728 msgstr "" 1.13729 1.13730 #. type: Content of: <book><chapter><sect1><para> 1.13731 -#: ../en/ch12-mq.xml:763 1.13732 +#: ../en/ch11-mq.xml:764 1.13733 msgid "" 1.13734 "On my old, slow laptop, I was able to <command role=\"hg-cmd\">hg qpush " 1.13735 "<option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</option></command> all 1,738 " 1.13736 @@ -14451,14 +13536,14 @@ 1.13737 msgstr "" 1.13738 1.13739 #. type: Content of: <book><chapter><sect1><para> 1.13740 -#: ../en/ch12-mq.xml:774 1.13741 +#: ../en/ch11-mq.xml:775 1.13742 msgid "" 1.13743 "Clearly, MQ is well suited to working in large trees, but there are a few " 1.13744 "tricks you can use to get the best performance of it." 1.13745 msgstr "" 1.13746 1.13747 #. type: Content of: <book><chapter><sect1><para> 1.13748 -#: ../en/ch12-mq.xml:778 1.13749 +#: ../en/ch11-mq.xml:779 1.13750 msgid "" 1.13751 "First of all, try to <quote>batch</quote> operations together. Every time " 1.13752 "you run <command role=\"hg-ext-mq\">qpush</command> or <command role=\"hg-ext-" 1.13753 @@ -14470,7 +13555,7 @@ 1.13754 msgstr "" 1.13755 1.13756 #. type: Content of: <book><chapter><sect1><para> 1.13757 -#: ../en/ch12-mq.xml:789 1.13758 +#: ../en/ch11-mq.xml:790 1.13759 msgid "" 1.13760 "The <command role=\"hg-ext-mq\">qpush</command> and <command role=\"hg-ext-mq" 1.13761 "\">qpop</command> commands allow you to push and pop multiple patches at a " 1.13762 @@ -14482,7 +13567,7 @@ 1.13763 msgstr "" 1.13764 1.13765 #. type: Content of: <book><chapter><sect1><para> 1.13766 -#: ../en/ch12-mq.xml:799 1.13767 +#: ../en/ch11-mq.xml:800 1.13768 msgid "" 1.13769 "You can identify a destination patch using either the name of the patch, or " 1.13770 "by number. If you use numeric addressing, patches are counted from zero; " 1.13771 @@ -14490,12 +13575,12 @@ 1.13772 msgstr "" 1.13773 1.13774 #. type: Content of: <book><chapter><sect1><title> 1.13775 -#: ../en/ch12-mq.xml:806 1.13776 +#: ../en/ch11-mq.xml:807 1.13777 msgid "Updating your patches when the underlying code changes" 1.13778 msgstr "当基础代码改变时,更新补丁的方法" 1.13779 1.13780 #. type: Content of: <book><chapter><sect1><para> 1.13781 -#: ../en/ch12-mq.xml:809 1.13782 +#: ../en/ch11-mq.xml:810 1.13783 msgid "" 1.13784 "It's common to have a stack of patches on top of an underlying repository " 1.13785 "that you don't modify directly. If you're working on changes to third-party " 1.13786 @@ -14506,7 +13591,7 @@ 1.13787 msgstr "" 1.13788 1.13789 #. type: Content of: <book><chapter><sect1><para> 1.13790 -#: ../en/ch12-mq.xml:818 1.13791 +#: ../en/ch11-mq.xml:819 1.13792 msgid "" 1.13793 "The simplest way to do this is to <command role=\"hg-cmd\">hg qpop <option " 1.13794 "role=\"hg-ext-mq-cmd-qpop-opt\">hg -a</option></command> your patches, then " 1.13795 @@ -14520,7 +13605,7 @@ 1.13796 msgstr "" 1.13797 1.13798 #. type: Content of: <book><chapter><sect1><para> 1.13799 -#: ../en/ch12-mq.xml:830 1.13800 +#: ../en/ch11-mq.xml:831 1.13801 msgid "" 1.13802 "This approach is easy to use and works well if you don't expect changes to " 1.13803 "the underlying code to affect how well your patches apply. If your patch " 1.13804 @@ -14530,7 +13615,7 @@ 1.13805 msgstr "" 1.13806 1.13807 #. type: Content of: <book><chapter><sect1><para> 1.13808 -#: ../en/ch12-mq.xml:837 1.13809 +#: ../en/ch11-mq.xml:838 1.13810 msgid "" 1.13811 "It's possible to partially automate the rebasing process. If your patches " 1.13812 "apply cleanly against some revision of the underlying repo, MQ can use this " 1.13813 @@ -14539,19 +13624,19 @@ 1.13814 msgstr "" 1.13815 1.13816 #. type: Content of: <book><chapter><sect1><para> 1.13817 -#: ../en/ch12-mq.xml:843 1.13818 +#: ../en/ch11-mq.xml:844 1.13819 msgid "The process is a little involved." 1.13820 msgstr "" 1.13821 1.13822 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.13823 -#: ../en/ch12-mq.xml:845 1.13824 +#: ../en/ch11-mq.xml:846 1.13825 msgid "" 1.13826 "To begin, <command role=\"hg-cmd\">hg qpush -a</command> all of your patches " 1.13827 "on top of the revision where you know that they apply cleanly." 1.13828 msgstr "" 1.13829 1.13830 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.13831 -#: ../en/ch12-mq.xml:849 1.13832 +#: ../en/ch11-mq.xml:850 1.13833 msgid "" 1.13834 "Save a backup copy of your patch directory using <command role=\"hg-cmd\">hg " 1.13835 "qsave <option role=\"hg-ext-mq-cmd-qsave-opt\">hg -e</option> <option role=" 1.13836 @@ -14566,7 +13651,7 @@ 1.13837 msgstr "" 1.13838 1.13839 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.13840 -#: ../en/ch12-mq.xml:863 1.13841 +#: ../en/ch11-mq.xml:864 1.13842 msgid "" 1.13843 "Use <command role=\"hg-cmd\">hg pull</command> to bring new changes into the " 1.13844 "underlying repository. (Don't run <command role=\"hg-cmd\">hg pull -u</" 1.13845 @@ -14574,7 +13659,7 @@ 1.13846 msgstr "" 1.13847 1.13848 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.13849 -#: ../en/ch12-mq.xml:868 1.13850 +#: ../en/ch11-mq.xml:869 1.13851 msgid "" 1.13852 "Update to the new tip revision, using <command role=\"hg-cmd\">hg update " 1.13853 "<option role=\"hg-opt-update\">-C</option></command> to override the patches " 1.13854 @@ -14582,17 +13667,16 @@ 1.13855 msgstr "" 1.13856 1.13857 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.13858 -#: ../en/ch12-mq.xml:873 1.13859 -msgid "" 1.13860 -"Merge all patches using \\hgcmdargs{qpush}{<option role=\"hg-ext-mq-cmd-qpush-" 1.13861 -"opt\">hg -m</option> <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</" 1.13862 -"option>}. The <option role=\"hg-ext-mq-cmd-qpush-opt\">hg -m</option> option " 1.13863 -"to <command role=\"hg-ext-mq\">qpush</command> tells MQ to perform a three-" 1.13864 -"way merge if the patch fails to apply." 1.13865 -msgstr "" 1.13866 - 1.13867 -#. type: Content of: <book><chapter><sect1><para> 1.13868 -#: ../en/ch12-mq.xml:883 1.13869 +#: ../en/ch11-mq.xml:874 1.13870 +msgid "" 1.13871 +"Merge all patches using <command>hg qpush -m -a</command>. The <option role=" 1.13872 +"\"hg-ext-mq-cmd-qpush-opt\">-m</option> option to <command role=\"hg-ext-mq" 1.13873 +"\">qpush</command> tells MQ to perform a three-way merge if the patch fails " 1.13874 +"to apply." 1.13875 +msgstr "" 1.13876 + 1.13877 +#. type: Content of: <book><chapter><sect1><para> 1.13878 +#: ../en/ch11-mq.xml:882 1.13879 msgid "" 1.13880 "During the <command role=\"hg-cmd\">hg qpush <option role=\"hg-ext-mq-cmd-" 1.13881 "qpush-opt\">hg -m</option></command>, each patch in the <filename role=" 1.13882 @@ -14604,14 +13688,14 @@ 1.13883 msgstr "" 1.13884 1.13885 #. type: Content of: <book><chapter><sect1><para> 1.13886 -#: ../en/ch12-mq.xml:893 1.13887 +#: ../en/ch11-mq.xml:892 1.13888 msgid "" 1.13889 "When you finish resolving the effects of a patch, MQ refreshes your patch " 1.13890 "based on the result of the merge." 1.13891 msgstr "" 1.13892 1.13893 #. type: Content of: <book><chapter><sect1><para> 1.13894 -#: ../en/ch12-mq.xml:896 1.13895 +#: ../en/ch11-mq.xml:895 1.13896 msgid "" 1.13897 "At the end of this process, your repository will have one extra head from the " 1.13898 "old patch queue, and a copy of the old patch queue will be in <filename role=" 1.13899 @@ -14623,12 +13707,12 @@ 1.13900 msgstr "" 1.13901 1.13902 #. type: Content of: <book><chapter><sect1><title> 1.13903 -#: ../en/ch12-mq.xml:908 1.13904 +#: ../en/ch11-mq.xml:907 1.13905 msgid "Identifying patches" 1.13906 msgstr "标识补丁" 1.13907 1.13908 #. type: Content of: <book><chapter><sect1><para> 1.13909 -#: ../en/ch12-mq.xml:910 1.13910 +#: ../en/ch11-mq.xml:909 1.13911 msgid "" 1.13912 "MQ commands that work with patches let you refer to a patch either by using " 1.13913 "its name or by a number. By name is obvious enough; pass the name " 1.13914 @@ -14638,7 +13722,7 @@ 1.13915 msgstr "" 1.13916 1.13917 #. type: Content of: <book><chapter><sect1><para> 1.13918 -#: ../en/ch12-mq.xml:917 1.13919 +#: ../en/ch11-mq.xml:916 1.13920 msgid "" 1.13921 "As a shortcut, you can refer to a patch using both a name and a numeric " 1.13922 "offset; <literal>foo.patch-2</literal> means <quote>two patches before " 1.13923 @@ -14647,7 +13731,7 @@ 1.13924 msgstr "" 1.13925 1.13926 #. type: Content of: <book><chapter><sect1><para> 1.13927 -#: ../en/ch12-mq.xml:923 1.13928 +#: ../en/ch11-mq.xml:922 1.13929 msgid "" 1.13930 "Referring to a patch by index isn't much different. The first patch printed " 1.13931 "in the output of <command role=\"hg-ext-mq\">qseries</command> is patch zero " 1.13932 @@ -14656,51 +13740,45 @@ 1.13933 msgstr "" 1.13934 1.13935 #. type: Content of: <book><chapter><sect1><para> 1.13936 -#: ../en/ch12-mq.xml:929 1.13937 +#: ../en/ch11-mq.xml:928 1.13938 msgid "" 1.13939 "MQ also makes it easy to work with patches when you are using normal " 1.13940 "Mercurial commands. Every command that accepts a changeset ID will also " 1.13941 "accept the name of an applied patch. MQ augments the tags normally in the " 1.13942 "repository with an eponymous one for each applied patch. In addition, the " 1.13943 -"special tags \\index{tags!special tag names!<literal>qbase</literal>}" 1.13944 -"<literal>qbase</literal> and \\index{tags!special tag names!<literal>qtip</" 1.13945 -"literal>}<literal>qtip</literal> identify the <quote>bottom-most</quote> and " 1.13946 -"topmost applied patches, respectively." 1.13947 -msgstr "" 1.13948 - 1.13949 -#. type: Content of: <book><chapter><sect1><para> 1.13950 -#: ../en/ch12-mq.xml:941 1.13951 +"special tags <literal role=\"tag\">qbase</literal> and <literal role=\"tag" 1.13952 +"\">qtip</literal> identify the <quote>bottom-most</quote> and topmost applied " 1.13953 +"patches, respectively." 1.13954 +msgstr "" 1.13955 + 1.13956 +#. type: Content of: <book><chapter><sect1><para> 1.13957 +#: ../en/ch11-mq.xml:938 1.13958 msgid "" 1.13959 "These additions to Mercurial's normal tagging capabilities make dealing with " 1.13960 "patches even more of a breeze." 1.13961 msgstr "" 1.13962 1.13963 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.13964 -#: ../en/ch12-mq.xml:944 1.13965 +#: ../en/ch11-mq.xml:941 1.13966 msgid "Want to patchbomb a mailing list with your latest series of changes?" 1.13967 msgstr "" 1.13968 1.13969 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.13970 -#: ../en/ch12-mq.xml:948 1.13971 +#: ../en/ch11-mq.xml:944 1.13972 msgid "" 1.13973 "(Don't know what <quote>patchbombing</quote> is? See section <xref linkend=" 1.13974 "\"sec.hgext.patchbomb\"/>.)" 1.13975 msgstr "" 1.13976 1.13977 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.13978 -#: ../en/ch12-mq.xml:951 1.13979 +#: ../en/ch11-mq.xml:947 1.13980 msgid "" 1.13981 "Need to see all of the patches since <literal>foo.patch</literal> that have " 1.13982 "touched files in a subdirectory of your tree?" 1.13983 msgstr "" 1.13984 1.13985 -#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><programlisting><emphasis> 1.13986 -#: ../en/ch12-mq.xml:955 1.13987 -msgid "subdir" 1.13988 -msgstr "" 1.13989 - 1.13990 -#. type: Content of: <book><chapter><sect1><para> 1.13991 -#: ../en/ch12-mq.xml:960 1.13992 +#. type: Content of: <book><chapter><sect1><para> 1.13993 +#: ../en/ch11-mq.xml:954 1.13994 msgid "" 1.13995 "Because MQ makes the names of patches available to the rest of Mercurial " 1.13996 "through its normal internal tag machinery, you don't need to type in the " 1.13997 @@ -14708,7 +13786,7 @@ 1.13998 msgstr "" 1.13999 1.14000 #. type: Content of: <book><chapter><sect1><para> 1.14001 -#: ../en/ch12-mq.xml:965 1.14002 +#: ../en/ch11-mq.xml:959 1.14003 msgid "" 1.14004 "Another nice consequence of representing patch names as tags is that when you " 1.14005 "run the <command role=\"hg-cmd\">hg log</command> command, it will display a " 1.14006 @@ -14719,19 +13797,19 @@ 1.14007 msgstr "" 1.14008 1.14009 #. type: Content of: <book><chapter><sect1><title> 1.14010 -#: ../en/ch12-mq.xml:978 1.14011 +#: ../en/ch11-mq.xml:972 1.14012 msgid "Useful things to know about" 1.14013 msgstr "其它需要了解的东西" 1.14014 1.14015 #. type: Content of: <book><chapter><sect1><para> 1.14016 -#: ../en/ch12-mq.xml:980 1.14017 +#: ../en/ch11-mq.xml:974 1.14018 msgid "" 1.14019 "There are a number of aspects of MQ usage that don't fit tidily into sections " 1.14020 "of their own, but that are good to know. Here they are, in one place." 1.14021 msgstr "" 1.14022 1.14023 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14024 -#: ../en/ch12-mq.xml:985 1.14025 +#: ../en/ch11-mq.xml:979 1.14026 msgid "" 1.14027 "Normally, when you <command role=\"hg-ext-mq\">qpop</command> a patch and " 1.14028 "<command role=\"hg-ext-mq\">qpush</command> it again, the changeset that " 1.14029 @@ -14742,7 +13820,7 @@ 1.14030 msgstr "" 1.14031 1.14032 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14033 -#: ../en/ch12-mq.xml:994 1.14034 +#: ../en/ch11-mq.xml:988 1.14035 msgid "" 1.14036 "It's not a good idea to <command role=\"hg-cmd\">hg merge</command> changes " 1.14037 "from another branch with a patch changeset, at least if you want to maintain " 1.14038 @@ -14752,12 +13830,12 @@ 1.14039 msgstr "" 1.14040 1.14041 #. type: Content of: <book><chapter><sect1><title> 1.14042 -#: ../en/ch12-mq.xml:1005 1.14043 +#: ../en/ch11-mq.xml:999 1.14044 msgid "Managing patches in a repository" 1.14045 msgstr "在版本库管理补丁" 1.14046 1.14047 #. type: Content of: <book><chapter><sect1><para> 1.14048 -#: ../en/ch12-mq.xml:1007 1.14049 +#: ../en/ch11-mq.xml:1001 1.14050 msgid "" 1.14051 "Because MQ's <filename role=\"special\" class=\"directory\">.hg/patches</" 1.14052 "filename> directory resides outside a Mercurial repository's working " 1.14053 @@ -14766,7 +13844,7 @@ 1.14054 msgstr "" 1.14055 1.14056 #. type: Content of: <book><chapter><sect1><para> 1.14057 -#: ../en/ch12-mq.xml:1013 1.14058 +#: ../en/ch11-mq.xml:1007 1.14059 msgid "" 1.14060 "This presents the interesting possibility of managing the contents of the " 1.14061 "patch directory as a Mercurial repository in its own right. This can be a " 1.14062 @@ -14777,7 +13855,7 @@ 1.14063 msgstr "" 1.14064 1.14065 #. type: Content of: <book><chapter><sect1><para> 1.14066 -#: ../en/ch12-mq.xml:1022 1.14067 +#: ../en/ch11-mq.xml:1016 1.14068 msgid "" 1.14069 "You can then share different versions of the same patch stack among multiple " 1.14070 "underlying repositories. I use this when I am developing a Linux kernel " 1.14071 @@ -14789,7 +13867,7 @@ 1.14072 msgstr "" 1.14073 1.14074 #. type: Content of: <book><chapter><sect1><para> 1.14075 -#: ../en/ch12-mq.xml:1032 1.14076 +#: ../en/ch11-mq.xml:1026 1.14077 msgid "" 1.14078 "Managing patches in a repository makes it possible for multiple developers to " 1.14079 "work on the same patch series without colliding with each other, all on top " 1.14080 @@ -14797,12 +13875,12 @@ 1.14081 msgstr "" 1.14082 1.14083 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14084 -#: ../en/ch12-mq.xml:1038 1.14085 +#: ../en/ch11-mq.xml:1032 1.14086 msgid "MQ support for patch repositories" 1.14087 msgstr "MQ 支持补丁版本库" 1.14088 1.14089 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14090 -#: ../en/ch12-mq.xml:1040 1.14091 +#: ../en/ch11-mq.xml:1034 1.14092 msgid "" 1.14093 "MQ helps you to work with the <filename role=\"special\" class=\"directory\">." 1.14094 "hg/patches</filename> directory as a repository; when you prepare a " 1.14095 @@ -14813,7 +13891,7 @@ 1.14096 msgstr "" 1.14097 1.14098 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.14099 -#: ../en/ch12-mq.xml:1050 1.14100 +#: ../en/ch11-mq.xml:1044 1.14101 msgid "" 1.14102 "If you forget to use the <option role=\"hg-ext-mq-cmd-qinit-opt\">hg -c</" 1.14103 "option> option, you can simply go into the <filename role=\"special\" class=" 1.14104 @@ -14824,7 +13902,7 @@ 1.14105 msgstr "" 1.14106 1.14107 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.14108 -#: ../en/ch12-mq.xml:1059 1.14109 +#: ../en/ch11-mq.xml:1053 1.14110 msgid "" 1.14111 "(<command role=\"hg-cmd\">hg qinit <option role=\"hg-ext-mq-cmd-qinit-opt" 1.14112 "\">hg -c</option></command> does this for you automatically); you " 1.14113 @@ -14833,7 +13911,7 @@ 1.14114 msgstr "" 1.14115 1.14116 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14117 -#: ../en/ch12-mq.xml:1066 1.14118 +#: ../en/ch11-mq.xml:1060 1.14119 msgid "" 1.14120 "As a convenience, if MQ notices that the <filename class=\"directory\">.hg/" 1.14121 "patches</filename> directory is a repository, it will automatically <command " 1.14122 @@ -14841,7 +13919,7 @@ 1.14123 msgstr "" 1.14124 1.14125 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14126 -#: ../en/ch12-mq.xml:1071 1.14127 +#: ../en/ch11-mq.xml:1065 1.14128 msgid "" 1.14129 "MQ provides a shortcut command, <command role=\"hg-ext-mq\">qcommit</" 1.14130 "command>, that runs <command role=\"hg-cmd\">hg commit</command> in the " 1.14131 @@ -14850,7 +13928,7 @@ 1.14132 msgstr "" 1.14133 1.14134 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14135 -#: ../en/ch12-mq.xml:1077 1.14136 +#: ../en/ch11-mq.xml:1071 1.14137 msgid "" 1.14138 "Finally, as a convenience to manage the patch directory, you can define the " 1.14139 "alias <command>mq</command> on Unix systems. For example, on Linux systems " 1.14140 @@ -14859,26 +13937,26 @@ 1.14141 msgstr "" 1.14142 1.14143 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14144 -#: ../en/ch12-mq.xml:1087 1.14145 +#: ../en/ch11-mq.xml:1080 1.14146 msgid "" 1.14147 "You can then issue commands of the form <command>mq pull</command> from the " 1.14148 "main repository." 1.14149 msgstr "" 1.14150 1.14151 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14152 -#: ../en/ch12-mq.xml:1092 1.14153 +#: ../en/ch11-mq.xml:1085 1.14154 msgid "A few things to watch out for" 1.14155 msgstr "需要注意的事情" 1.14156 1.14157 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14158 -#: ../en/ch12-mq.xml:1094 1.14159 +#: ../en/ch11-mq.xml:1087 1.14160 msgid "" 1.14161 "MQ's support for working with a repository full of patches is limited in a " 1.14162 "few small respects." 1.14163 msgstr "" 1.14164 1.14165 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14166 -#: ../en/ch12-mq.xml:1097 1.14167 +#: ../en/ch11-mq.xml:1090 1.14168 msgid "" 1.14169 "MQ cannot automatically detect changes that you make to the patch directory. " 1.14170 "If you <command role=\"hg-cmd\">hg pull</command>, manually edit, or <command " 1.14171 @@ -14892,12 +13970,12 @@ 1.14172 msgstr "" 1.14173 1.14174 #. type: Content of: <book><chapter><sect1><title> 1.14175 -#: ../en/ch12-mq.xml:1113 1.14176 +#: ../en/ch11-mq.xml:1106 1.14177 msgid "Third party tools for working with patches" 1.14178 msgstr "操作补丁的第三方工具" 1.14179 1.14180 #. type: Content of: <book><chapter><sect1><para> 1.14181 -#: ../en/ch12-mq.xml:1115 1.14182 +#: ../en/ch11-mq.xml:1108 1.14183 msgid "" 1.14184 "Once you've been working with patches for a while, you'll find yourself " 1.14185 "hungry for tools that will help you to understand and manipulate the patches " 1.14186 @@ -14905,7 +13983,7 @@ 1.14187 msgstr "" 1.14188 1.14189 #. type: Content of: <book><chapter><sect1><para> 1.14190 -#: ../en/ch12-mq.xml:1119 1.14191 +#: ../en/ch11-mq.xml:1112 1.14192 msgid "" 1.14193 "The <command>diffstat</command> command <citation>web:diffstat</citation> " 1.14194 "generates a histogram of the modifications made to each file in a patch. It " 1.14195 @@ -14918,7 +13996,7 @@ 1.14196 msgstr "" 1.14197 1.14198 #. type: Content of: <book><chapter><sect1><para> 1.14199 -#: ../en/ch12-mq.xml:1133 1.14200 +#: ../en/ch11-mq.xml:1126 1.14201 msgid "" 1.14202 "The <literal role=\"package\">patchutils</literal> package <citation>web:" 1.14203 "patchutils</citation> is invaluable. It provides a set of small utilities " 1.14204 @@ -14933,12 +14011,12 @@ 1.14205 msgstr "" 1.14206 1.14207 #. type: Content of: <book><chapter><sect1><title> 1.14208 -#: ../en/ch12-mq.xml:1149 1.14209 +#: ../en/ch11-mq.xml:1142 1.14210 msgid "Good ways to work with patches" 1.14211 msgstr "操作补丁的好习惯" 1.14212 1.14213 #. type: Content of: <book><chapter><sect1><para> 1.14214 -#: ../en/ch12-mq.xml:1151 1.14215 +#: ../en/ch11-mq.xml:1144 1.14216 msgid "" 1.14217 "Whether you are working on a patch series to submit to a free software or " 1.14218 "open source project, or a series that you intend to treat as a sequence of " 1.14219 @@ -14947,7 +14025,7 @@ 1.14220 msgstr "" 1.14221 1.14222 #. type: Content of: <book><chapter><sect1><para> 1.14223 -#: ../en/ch12-mq.xml:1157 1.14224 +#: ../en/ch11-mq.xml:1150 1.14225 msgid "" 1.14226 "Give your patches descriptive names. A good name for a patch might be " 1.14227 "<filename>rework-device-alloc.patch</filename>, because it will immediately " 1.14228 @@ -14961,7 +14039,7 @@ 1.14229 msgstr "" 1.14230 1.14231 #. type: Content of: <book><chapter><sect1><para> 1.14232 -#: ../en/ch12-mq.xml:1169 1.14233 +#: ../en/ch11-mq.xml:1162 1.14234 msgid "" 1.14235 "Be aware of what patch you're working on. Use the <command role=\"hg-ext-mq" 1.14236 "\">qtop</command> command and skim over the text of your patches " 1.14237 @@ -14974,7 +14052,7 @@ 1.14238 msgstr "" 1.14239 1.14240 #. type: Content of: <book><chapter><sect1><para> 1.14241 -#: ../en/ch12-mq.xml:1179 1.14242 +#: ../en/ch11-mq.xml:1172 1.14243 msgid "" 1.14244 "For this reason, it is very much worth investing a little time to learn how " 1.14245 "to use some of the third-party tools I described in section <xref linkend=" 1.14246 @@ -14985,17 +14063,17 @@ 1.14247 msgstr "" 1.14248 1.14249 #. type: Content of: <book><chapter><sect1><title> 1.14250 -#: ../en/ch12-mq.xml:1190 1.14251 +#: ../en/ch11-mq.xml:1183 1.14252 msgid "MQ cookbook" 1.14253 msgstr "MQ 手册" 1.14254 1.14255 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14256 -#: ../en/ch12-mq.xml:1193 1.14257 +#: ../en/ch11-mq.xml:1186 1.14258 msgid "Manage <quote>trivial</quote> patches" 1.14259 msgstr "管理<quote>琐碎的</quote>补丁" 1.14260 1.14261 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14262 -#: ../en/ch12-mq.xml:1195 1.14263 +#: ../en/ch11-mq.xml:1188 1.14264 msgid "" 1.14265 "Because the overhead of dropping files into a new Mercurial repository is so " 1.14266 "low, it makes a lot of sense to manage patches this way even if you simply " 1.14267 @@ -15004,26 +14082,26 @@ 1.14268 1.14269 # 1.14270 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14271 -#: ../en/ch12-mq.xml:1200 1.14272 +#: ../en/ch11-mq.xml:1193 1.14273 msgid "" 1.14274 "Begin by downloading and unpacking the source tarball, and turning it into a " 1.14275 "Mercurial repository." 1.14276 msgstr "" 1.14277 1.14278 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14279 -#: ../en/ch12-mq.xml:1205 1.14280 +#: ../en/ch11-mq.xml:1198 1.14281 msgid "Continue by creating a patch stack and making your changes." 1.14282 msgstr "" 1.14283 1.14284 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14285 -#: ../en/ch12-mq.xml:1210 1.14286 +#: ../en/ch11-mq.xml:1203 1.14287 msgid "" 1.14288 "Let's say a few weeks or months pass, and your package author releases a new " 1.14289 "version. First, bring their changes into the repository." 1.14290 msgstr "" 1.14291 1.14292 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14293 -#: ../en/ch12-mq.xml:1216 1.14294 +#: ../en/ch11-mq.xml:1209 1.14295 msgid "" 1.14296 "The pipeline starting with <command role=\"hg-cmd\">hg locate</command> above " 1.14297 "deletes all files in the working directory, so that <command role=\"hg-cmd" 1.14298 @@ -15033,17 +14111,17 @@ 1.14299 msgstr "" 1.14300 1.14301 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14302 -#: ../en/ch12-mq.xml:1224 1.14303 +#: ../en/ch11-mq.xml:1217 1.14304 msgid "Finally, you can apply your patches on top of the new tree." 1.14305 msgstr "" 1.14306 1.14307 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14308 -#: ../en/ch12-mq.xml:1231 1.14309 +#: ../en/ch11-mq.xml:1224 1.14310 msgid "Combining entire patches" 1.14311 msgstr "组合全部的补丁" 1.14312 1.14313 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14314 -#: ../en/ch12-mq.xml:1233 1.14315 +#: ../en/ch11-mq.xml:1226 1.14316 msgid "" 1.14317 "MQ provides a command, <command role=\"hg-ext-mq\">qfold</command> that lets " 1.14318 "you combine entire patches. This <quote>folds</quote> the patches you name, " 1.14319 @@ -15053,7 +14131,7 @@ 1.14320 msgstr "" 1.14321 1.14322 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14323 -#: ../en/ch12-mq.xml:1241 1.14324 +#: ../en/ch11-mq.xml:1234 1.14325 msgid "" 1.14326 "The order in which you fold patches matters. If your topmost applied patch " 1.14327 "is <literal>foo</literal>, and you <command role=\"hg-ext-mq\">qfold</" 1.14328 @@ -15064,19 +14142,19 @@ 1.14329 msgstr "" 1.14330 1.14331 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14332 -#: ../en/ch12-mq.xml:1252 1.14333 +#: ../en/ch11-mq.xml:1245 1.14334 msgid "Merging part of one patch into another" 1.14335 msgstr "合并补丁的部分内容到其它补丁" 1.14336 1.14337 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14338 -#: ../en/ch12-mq.xml:1254 1.14339 +#: ../en/ch11-mq.xml:1247 1.14340 msgid "" 1.14341 "Merging <emphasis>part</emphasis> of one patch into another is more difficult " 1.14342 "than combining entire patches." 1.14343 msgstr "" 1.14344 1.14345 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14346 -#: ../en/ch12-mq.xml:1258 1.14347 +#: ../en/ch11-mq.xml:1251 1.14348 msgid "" 1.14349 "If you want to move changes to entire files, you can use <command>filterdiff</" 1.14350 "command>'s <option role=\"cmd-opt-filterdiff\">-i</option> and <option role=" 1.14351 @@ -15090,7 +14168,7 @@ 1.14352 msgstr "" 1.14353 1.14354 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14355 -#: ../en/ch12-mq.xml:1271 1.14356 +#: ../en/ch11-mq.xml:1264 1.14357 msgid "" 1.14358 "If you have a patch that has multiple hunks modifying a file, and you only " 1.14359 "want to move a few of those hunks, the job becomes more messy, but you can " 1.14360 @@ -15099,32 +14177,32 @@ 1.14361 msgstr "" 1.14362 1.14363 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14364 -#: ../en/ch12-mq.xml:1279 1.14365 +#: ../en/ch11-mq.xml:1272 1.14366 msgid "This command prints three different kinds of number:" 1.14367 msgstr "" 1.14368 1.14369 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.14370 -#: ../en/ch12-mq.xml:1282 1.14371 +#: ../en/ch11-mq.xml:1275 1.14372 msgid "" 1.14373 "(in the first column) a <emphasis>file number</emphasis> to identify each " 1.14374 "file modified in the patch;" 1.14375 msgstr "" 1.14376 1.14377 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.14378 -#: ../en/ch12-mq.xml:1286 1.14379 +#: ../en/ch11-mq.xml:1279 1.14380 msgid "" 1.14381 "(on the next line, indented) the line number within a modified file where a " 1.14382 "hunk starts; and" 1.14383 msgstr "" 1.14384 1.14385 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.14386 -#: ../en/ch12-mq.xml:1289 1.14387 +#: ../en/ch11-mq.xml:1282 1.14388 msgid "" 1.14389 "(on the same line) a <emphasis>hunk number</emphasis> to identify that hunk." 1.14390 msgstr "" 1.14391 1.14392 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14393 -#: ../en/ch12-mq.xml:1293 1.14394 +#: ../en/ch11-mq.xml:1286 1.14395 msgid "" 1.14396 "You'll have to use some visual inspection, and reading of the patch, to " 1.14397 "identify the file and hunk numbers you'll want, but you can then pass them to " 1.14398 @@ -15134,7 +14212,7 @@ 1.14399 msgstr "" 1.14400 1.14401 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14402 -#: ../en/ch12-mq.xml:1301 1.14403 +#: ../en/ch11-mq.xml:1294 1.14404 msgid "" 1.14405 "Once you have this hunk, you can concatenate it onto the end of your " 1.14406 "destination patch and continue with the remainder of section <xref linkend=" 1.14407 @@ -15142,19 +14220,19 @@ 1.14408 msgstr "" 1.14409 1.14410 #. type: Content of: <book><chapter><sect1><title> 1.14411 -#: ../en/ch12-mq.xml:1308 1.14412 +#: ../en/ch11-mq.xml:1301 1.14413 msgid "Differences between quilt and MQ" 1.14414 msgstr "MQ 与 quilt 的区别" 1.14415 1.14416 #. type: Content of: <book><chapter><sect1><para> 1.14417 -#: ../en/ch12-mq.xml:1310 1.14418 +#: ../en/ch11-mq.xml:1303 1.14419 msgid "" 1.14420 "If you are already familiar with quilt, MQ provides a similar command set. " 1.14421 "There are a few differences in the way that it works." 1.14422 msgstr "" 1.14423 1.14424 #. type: Content of: <book><chapter><sect1><para> 1.14425 -#: ../en/ch12-mq.xml:1314 1.14426 +#: ../en/ch11-mq.xml:1307 1.14427 msgid "" 1.14428 "You will already have noticed that most quilt commands have MQ counterparts " 1.14429 "that simply begin with a <quote><literal>q</literal></quote>. The exceptions " 1.14430 @@ -15166,12 +14244,12 @@ 1.14431 msgstr "" 1.14432 1.14433 #. type: Content of: <book><chapter><title> 1.14434 -#: ../en/ch13-mq-collab.xml:5 1.14435 +#: ../en/ch12-mq-collab.xml:5 1.14436 msgid "Advanced uses of Mercurial Queues" 1.14437 msgstr "MQ 的高级用法" 1.14438 1.14439 #. type: Content of: <book><chapter><para> 1.14440 -#: ../en/ch13-mq-collab.xml:7 1.14441 +#: ../en/ch12-mq-collab.xml:7 1.14442 msgid "" 1.14443 "While it's easy to pick up straightforward uses of Mercurial Queues, use of a " 1.14444 "little discipline and some of MQ's less frequently used capabilities makes it " 1.14445 @@ -15179,7 +14257,7 @@ 1.14446 msgstr "" 1.14447 1.14448 #. type: Content of: <book><chapter><para> 1.14449 -#: ../en/ch13-mq-collab.xml:12 1.14450 +#: ../en/ch12-mq-collab.xml:12 1.14451 msgid "" 1.14452 "In this chapter, I will use as an example a technique I have used to manage " 1.14453 "the development of an Infiniband device driver for the Linux kernel. The " 1.14454 @@ -15189,7 +14267,7 @@ 1.14455 msgstr "" 1.14456 1.14457 #. type: Content of: <book><chapter><para> 1.14458 -#: ../en/ch13-mq-collab.xml:18 1.14459 +#: ../en/ch12-mq-collab.xml:18 1.14460 msgid "" 1.14461 "While much of the material in this chapter is specific to Linux, the same " 1.14462 "principles apply to any code base for which you're not the primary owner, and " 1.14463 @@ -15197,12 +14275,12 @@ 1.14464 msgstr "" 1.14465 1.14466 #. type: Content of: <book><chapter><sect1><title> 1.14467 -#: ../en/ch13-mq-collab.xml:24 1.14468 +#: ../en/ch12-mq-collab.xml:24 1.14469 msgid "The problem of many targets" 1.14470 msgstr "多个目标的问题" 1.14471 1.14472 #. type: Content of: <book><chapter><sect1><para> 1.14473 -#: ../en/ch13-mq-collab.xml:26 1.14474 +#: ../en/ch12-mq-collab.xml:26 1.14475 msgid "" 1.14476 "The Linux kernel changes rapidly, and has never been internally stable; " 1.14477 "developers frequently make drastic changes between releases. This means that " 1.14478 @@ -15212,14 +14290,14 @@ 1.14479 msgstr "" 1.14480 1.14481 #. type: Content of: <book><chapter><sect1><para> 1.14482 -#: ../en/ch13-mq-collab.xml:33 1.14483 +#: ../en/ch12-mq-collab.xml:33 1.14484 msgid "" 1.14485 "To maintain a driver, we have to keep a number of distinct versions of Linux " 1.14486 "in mind." 1.14487 msgstr "" 1.14488 1.14489 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14490 -#: ../en/ch13-mq-collab.xml:36 1.14491 +#: ../en/ch12-mq-collab.xml:36 1.14492 msgid "" 1.14493 "One target is the main Linux kernel development tree. Maintenance of the code " 1.14494 "is in this case partly shared by other developers in the kernel community, " 1.14495 @@ -15228,7 +14306,7 @@ 1.14496 msgstr "" 1.14497 1.14498 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14499 -#: ../en/ch13-mq-collab.xml:42 1.14500 +#: ../en/ch12-mq-collab.xml:42 1.14501 msgid "" 1.14502 "We also maintain a number of <quote>backports</quote> to older versions of " 1.14503 "the Linux kernel, to support the needs of customers who are running older " 1.14504 @@ -15239,7 +14317,7 @@ 1.14505 msgstr "" 1.14506 1.14507 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14508 -#: ../en/ch13-mq-collab.xml:50 1.14509 +#: ../en/ch12-mq-collab.xml:50 1.14510 msgid "" 1.14511 "Finally, we make software releases on a schedule that is necessarily not " 1.14512 "aligned with those used by Linux distributors and kernel developers, so that " 1.14513 @@ -15248,19 +14326,19 @@ 1.14514 msgstr "" 1.14515 1.14516 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14517 -#: ../en/ch13-mq-collab.xml:58 1.14518 +#: ../en/ch12-mq-collab.xml:58 1.14519 msgid "Tempting approaches that don't work well" 1.14520 msgstr "工作不好的诱人方法" 1.14521 1.14522 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14523 -#: ../en/ch13-mq-collab.xml:60 1.14524 +#: ../en/ch12-mq-collab.xml:60 1.14525 msgid "" 1.14526 "There are two <quote>standard</quote> ways to maintain a piece of software " 1.14527 "that has to target many different environments." 1.14528 msgstr "" 1.14529 1.14530 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14531 -#: ../en/ch13-mq-collab.xml:64 1.14532 +#: ../en/ch12-mq-collab.xml:64 1.14533 msgid "" 1.14534 "The first is to maintain a number of branches, each intended for a single " 1.14535 "target. The trouble with this approach is that you must maintain iron " 1.14536 @@ -15272,7 +14350,7 @@ 1.14537 msgstr "" 1.14538 1.14539 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14540 -#: ../en/ch13-mq-collab.xml:74 1.14541 +#: ../en/ch12-mq-collab.xml:74 1.14542 msgid "" 1.14543 "The second is to maintain a single source tree filled with conditional " 1.14544 "statements that turn chunks of code on or off depending on the intended " 1.14545 @@ -15284,7 +14362,7 @@ 1.14546 msgstr "" 1.14547 1.14548 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14549 -#: ../en/ch13-mq-collab.xml:83 1.14550 +#: ../en/ch12-mq-collab.xml:83 1.14551 msgid "" 1.14552 "Neither of these approaches is well suited to a situation where you don't " 1.14553 "<quote>own</quote> the canonical copy of a source tree. In the case of a " 1.14554 @@ -15296,14 +14374,14 @@ 1.14555 msgstr "" 1.14556 1.14557 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14558 -#: ../en/ch13-mq-collab.xml:93 1.14559 +#: ../en/ch12-mq-collab.xml:93 1.14560 msgid "" 1.14561 "These approaches have the added weakness of making it difficult to generate " 1.14562 "well-formed patches to submit upstream." 1.14563 msgstr "" 1.14564 1.14565 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14566 -#: ../en/ch13-mq-collab.xml:97 1.14567 +#: ../en/ch12-mq-collab.xml:97 1.14568 msgid "" 1.14569 "In principle, Mercurial Queues seems like a good candidate to manage a " 1.14570 "development scenario such as the above. While this is indeed the case, MQ " 1.14571 @@ -15311,12 +14389,12 @@ 1.14572 msgstr "" 1.14573 1.14574 #. type: Content of: <book><chapter><sect1><title> 1.14575 -#: ../en/ch13-mq-collab.xml:105 1.14576 +#: ../en/ch12-mq-collab.xml:105 1.14577 msgid "Conditionally applying patches with guards" 1.14578 msgstr "有条件的应用补丁" 1.14579 1.14580 #. type: Content of: <book><chapter><sect1><para> 1.14581 -#: ../en/ch13-mq-collab.xml:107 1.14582 +#: ../en/ch12-mq-collab.xml:107 1.14583 msgid "" 1.14584 "Perhaps the best way to maintain sanity with so many targets is to be able to " 1.14585 "choose specific patches to apply for a given situation. MQ provides a " 1.14586 @@ -15326,14 +14404,14 @@ 1.14587 msgstr "" 1.14588 1.14589 #. type: Content of: <book><chapter><sect1><para> 1.14590 -#: ../en/ch13-mq-collab.xml:116 1.14591 +#: ../en/ch12-mq-collab.xml:116 1.14592 msgid "" 1.14593 "This gives us a tiny repository that contains two patches that don't have any " 1.14594 "dependencies on each other, because they touch different files." 1.14595 msgstr "" 1.14596 1.14597 #. type: Content of: <book><chapter><sect1><para> 1.14598 -#: ../en/ch13-mq-collab.xml:120 1.14599 +#: ../en/ch12-mq-collab.xml:120 1.14600 msgid "" 1.14601 "The idea behind conditional application is that you can <quote>tag</quote> a " 1.14602 "patch with a <emphasis>guard</emphasis>, which is simply a text string of " 1.14603 @@ -15343,7 +14421,7 @@ 1.14604 msgstr "" 1.14605 1.14606 #. type: Content of: <book><chapter><sect1><para> 1.14607 -#: ../en/ch13-mq-collab.xml:127 1.14608 +#: ../en/ch12-mq-collab.xml:127 1.14609 msgid "" 1.14610 "A patch can have an arbitrary number of guards; each one is " 1.14611 "<emphasis>positive</emphasis> (<quote>apply this patch if this guard is " 1.14612 @@ -15352,12 +14430,12 @@ 1.14613 msgstr "" 1.14614 1.14615 #. type: Content of: <book><chapter><sect1><title> 1.14616 -#: ../en/ch13-mq-collab.xml:135 1.14617 +#: ../en/ch12-mq-collab.xml:135 1.14618 msgid "Controlling the guards on a patch" 1.14619 msgstr "控制补丁的应用条件" 1.14620 1.14621 #. type: Content of: <book><chapter><sect1><para> 1.14622 -#: ../en/ch13-mq-collab.xml:137 1.14623 +#: ../en/ch12-mq-collab.xml:137 1.14624 msgid "" 1.14625 "The <command role=\"hg-ext-mq\">qguard</command> command lets you determine " 1.14626 "which guards should apply to a patch, or display the guards that are already " 1.14627 @@ -15366,21 +14444,21 @@ 1.14628 msgstr "" 1.14629 1.14630 #. type: Content of: <book><chapter><sect1><para> 1.14631 -#: ../en/ch13-mq-collab.xml:144 1.14632 +#: ../en/ch12-mq-collab.xml:144 1.14633 msgid "" 1.14634 "To set a positive guard on a patch, prefix the name of the guard with a " 1.14635 "<quote><literal>+</literal></quote>." 1.14636 msgstr "" 1.14637 1.14638 #. type: Content of: <book><chapter><sect1><para> 1.14639 -#: ../en/ch13-mq-collab.xml:149 1.14640 +#: ../en/ch12-mq-collab.xml:149 1.14641 msgid "" 1.14642 "To set a negative guard on a patch, prefix the name of the guard with a " 1.14643 "<quote><literal>-</literal></quote>." 1.14644 msgstr "" 1.14645 1.14646 #. type: Content of: <book><chapter><sect1><note><para> 1.14647 -#: ../en/ch13-mq-collab.xml:156 1.14648 +#: ../en/ch12-mq-collab.xml:156 1.14649 msgid "" 1.14650 "The <command role=\"hg-ext-mq\">qguard</command> command <emphasis>sets</" 1.14651 "emphasis> the guards on a patch; it doesn't <emphasis>modify</emphasis> " 1.14652 @@ -15392,7 +14470,7 @@ 1.14653 1.14654 # 1.14655 #. type: Content of: <book><chapter><sect1><para> 1.14656 -#: ../en/ch13-mq-collab.xml:165 1.14657 +#: ../en/ch12-mq-collab.xml:165 1.14658 msgid "" 1.14659 "Mercurial stores guards in the <filename role=\"special\">series</filename> " 1.14660 "file; the form in which they are stored is easy both to understand and to " 1.14661 @@ -15402,12 +14480,12 @@ 1.14662 msgstr "" 1.14663 1.14664 #. type: Content of: <book><chapter><sect1><title> 1.14665 -#: ../en/ch13-mq-collab.xml:177 1.14666 +#: ../en/ch12-mq-collab.xml:177 1.14667 msgid "Selecting the guards to use" 1.14668 msgstr "选择使用的条件" 1.14669 1.14670 #. type: Content of: <book><chapter><sect1><para> 1.14671 -#: ../en/ch13-mq-collab.xml:179 1.14672 +#: ../en/ch12-mq-collab.xml:179 1.14673 msgid "" 1.14674 "The <command role=\"hg-ext-mq\">qselect</command> command determines which " 1.14675 "guards are active at a given time. The effect of this is to determine which " 1.14676 @@ -15417,7 +14495,7 @@ 1.14677 msgstr "" 1.14678 1.14679 #. type: Content of: <book><chapter><sect1><para> 1.14680 -#: ../en/ch13-mq-collab.xml:186 1.14681 +#: ../en/ch12-mq-collab.xml:186 1.14682 msgid "" 1.14683 "With no arguments, the <command role=\"hg-ext-mq\">qselect</command> command " 1.14684 "lists the guards currently in effect, one per line of output. Each argument " 1.14685 @@ -15425,21 +14503,21 @@ 1.14686 msgstr "" 1.14687 1.14688 #. type: Content of: <book><chapter><sect1><para> 1.14689 -#: ../en/ch13-mq-collab.xml:193 1.14690 +#: ../en/ch12-mq-collab.xml:193 1.14691 msgid "" 1.14692 "In case you're interested, the currently selected guards are stored in the " 1.14693 "<filename role=\"special\">guards</filename> file." 1.14694 msgstr "" 1.14695 1.14696 #. type: Content of: <book><chapter><sect1><para> 1.14697 -#: ../en/ch13-mq-collab.xml:198 1.14698 +#: ../en/ch12-mq-collab.xml:198 1.14699 msgid "" 1.14700 "We can see the effect the selected guards have when we run <command role=\"hg-" 1.14701 "ext-mq\">qpush</command>." 1.14702 msgstr "" 1.14703 1.14704 #. type: Content of: <book><chapter><sect1><para> 1.14705 -#: ../en/ch13-mq-collab.xml:203 1.14706 +#: ../en/ch12-mq-collab.xml:203 1.14707 msgid "" 1.14708 "A guard cannot start with a <quote><literal>+</literal></quote> or " 1.14709 "<quote><literal>-</literal></quote> character. The name of a guard must not " 1.14710 @@ -15448,61 +14526,61 @@ 1.14711 msgstr "" 1.14712 1.14713 #. type: Content of: <book><chapter><sect1><para> 1.14714 -#: ../en/ch13-mq-collab.xml:212 1.14715 +#: ../en/ch12-mq-collab.xml:212 1.14716 msgid "Changing the selected guards changes the patches that are applied." 1.14717 msgstr "" 1.14718 1.14719 #. type: Content of: <book><chapter><sect1><para> 1.14720 -#: ../en/ch13-mq-collab.xml:217 1.14721 +#: ../en/ch12-mq-collab.xml:217 1.14722 msgid "" 1.14723 "You can see in the example below that negative guards take precedence over " 1.14724 "positive guards." 1.14725 msgstr "" 1.14726 1.14727 #. type: Content of: <book><chapter><sect1><title> 1.14728 -#: ../en/ch13-mq-collab.xml:224 1.14729 +#: ../en/ch12-mq-collab.xml:224 1.14730 msgid "MQ's rules for applying patches" 1.14731 msgstr "MQ 应用补丁的规则" 1.14732 1.14733 #. type: Content of: <book><chapter><sect1><para> 1.14734 -#: ../en/ch13-mq-collab.xml:226 1.14735 +#: ../en/ch12-mq-collab.xml:226 1.14736 msgid "" 1.14737 "The rules that MQ uses when deciding whether to apply a patch are as follows." 1.14738 msgstr "" 1.14739 1.14740 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14741 -#: ../en/ch13-mq-collab.xml:229 1.14742 +#: ../en/ch12-mq-collab.xml:229 1.14743 msgid "A patch that has no guards is always applied." 1.14744 msgstr "" 1.14745 1.14746 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14747 -#: ../en/ch13-mq-collab.xml:232 1.14748 +#: ../en/ch12-mq-collab.xml:232 1.14749 msgid "" 1.14750 "If the patch has any negative guard that matches any currently selected " 1.14751 "guard, the patch is skipped." 1.14752 msgstr "" 1.14753 1.14754 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14755 -#: ../en/ch13-mq-collab.xml:235 1.14756 +#: ../en/ch12-mq-collab.xml:235 1.14757 msgid "" 1.14758 "If the patch has any positive guard that matches any currently selected " 1.14759 "guard, the patch is applied." 1.14760 msgstr "" 1.14761 1.14762 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14763 -#: ../en/ch13-mq-collab.xml:238 1.14764 +#: ../en/ch12-mq-collab.xml:238 1.14765 msgid "" 1.14766 "If the patch has positive or negative guards, but none matches any currently " 1.14767 "selected guard, the patch is skipped." 1.14768 msgstr "" 1.14769 1.14770 #. type: Content of: <book><chapter><sect1><title> 1.14771 -#: ../en/ch13-mq-collab.xml:245 1.14772 +#: ../en/ch12-mq-collab.xml:245 1.14773 msgid "Trimming the work environment" 1.14774 msgstr "修剪工作环境" 1.14775 1.14776 #. type: Content of: <book><chapter><sect1><para> 1.14777 -#: ../en/ch13-mq-collab.xml:247 1.14778 +#: ../en/ch12-mq-collab.xml:247 1.14779 msgid "" 1.14780 "In working on the device driver I mentioned earlier, I don't apply the " 1.14781 "patches to a normal Linux kernel tree. Instead, I use a repository that " 1.14782 @@ -15512,7 +14590,7 @@ 1.14783 msgstr "" 1.14784 1.14785 #. type: Content of: <book><chapter><sect1><para> 1.14786 -#: ../en/ch13-mq-collab.xml:254 1.14787 +#: ../en/ch12-mq-collab.xml:254 1.14788 msgid "" 1.14789 "I then choose a <quote>base</quote> version on top of which the patches are " 1.14790 "applied. This is a snapshot of the Linux kernel tree as of a revision of my " 1.14791 @@ -15524,7 +14602,7 @@ 1.14792 msgstr "" 1.14793 1.14794 #. type: Content of: <book><chapter><sect1><para> 1.14795 -#: ../en/ch13-mq-collab.xml:263 1.14796 +#: ../en/ch12-mq-collab.xml:263 1.14797 msgid "" 1.14798 "Normally, the base tree atop which the patches apply should be a snapshot of " 1.14799 "a very recent upstream tree. This best facilitates the development of " 1.14800 @@ -15532,12 +14610,12 @@ 1.14801 msgstr "" 1.14802 1.14803 #. type: Content of: <book><chapter><sect1><title> 1.14804 -#: ../en/ch13-mq-collab.xml:270 1.14805 +#: ../en/ch12-mq-collab.xml:270 1.14806 msgid "Dividing up the <filename role=\"special\">series</filename> file" 1.14807 msgstr "分类补丁<filename role=\"special\">系列</filename>" 1.14808 1.14809 #. type: Content of: <book><chapter><sect1><para> 1.14810 -#: ../en/ch13-mq-collab.xml:273 1.14811 +#: ../en/ch12-mq-collab.xml:273 1.14812 msgid "" 1.14813 "I categorise the patches in the <filename role=\"special\">series</filename> " 1.14814 "file into a number of logical groups. Each section of like patches begins " 1.14815 @@ -15546,14 +14624,14 @@ 1.14816 msgstr "" 1.14817 1.14818 #. type: Content of: <book><chapter><sect1><para> 1.14819 -#: ../en/ch13-mq-collab.xml:279 1.14820 +#: ../en/ch12-mq-collab.xml:279 1.14821 msgid "" 1.14822 "The sequence of patch groups that I maintain follows. The ordering of these " 1.14823 "groups is important; I'll describe why after I introduce the groups." 1.14824 msgstr "" 1.14825 1.14826 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14827 -#: ../en/ch13-mq-collab.xml:283 1.14828 +#: ../en/ch12-mq-collab.xml:283 1.14829 msgid "" 1.14830 "The <quote>accepted</quote> group. Patches that the development team has " 1.14831 "submitted to the maintainer of the Infiniband subsystem, and which he has " 1.14832 @@ -15564,14 +14642,14 @@ 1.14833 msgstr "" 1.14834 1.14835 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14836 -#: ../en/ch13-mq-collab.xml:291 1.14837 +#: ../en/ch12-mq-collab.xml:291 1.14838 msgid "" 1.14839 "The <quote>rework</quote> group. Patches that I have submitted, but that the " 1.14840 "upstream maintainer has requested modifications to before he will accept them." 1.14841 msgstr "" 1.14842 1.14843 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14844 -#: ../en/ch13-mq-collab.xml:296 1.14845 +#: ../en/ch12-mq-collab.xml:296 1.14846 msgid "" 1.14847 "The <quote>pending</quote> group. Patches that I have not yet submitted to " 1.14848 "the upstream maintainer, but which we have finished working on. These will be " 1.14849 @@ -15582,21 +14660,21 @@ 1.14850 msgstr "" 1.14851 1.14852 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14853 -#: ../en/ch13-mq-collab.xml:305 1.14854 +#: ../en/ch12-mq-collab.xml:305 1.14855 msgid "" 1.14856 "The <quote>in progress</quote> group. Patches that are actively being " 1.14857 "developed, and should not be submitted anywhere yet." 1.14858 msgstr "" 1.14859 1.14860 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14861 -#: ../en/ch13-mq-collab.xml:309 1.14862 +#: ../en/ch12-mq-collab.xml:309 1.14863 msgid "" 1.14864 "The <quote>backport</quote> group. Patches that adapt the source tree to " 1.14865 "older versions of the kernel tree." 1.14866 msgstr "" 1.14867 1.14868 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14869 -#: ../en/ch13-mq-collab.xml:313 1.14870 +#: ../en/ch12-mq-collab.xml:313 1.14871 msgid "" 1.14872 "The <quote>do not ship</quote> group. Patches that for some reason should " 1.14873 "never be submitted upstream. For example, one such patch might change " 1.14874 @@ -15606,7 +14684,7 @@ 1.14875 msgstr "" 1.14876 1.14877 #. type: Content of: <book><chapter><sect1><para> 1.14878 -#: ../en/ch13-mq-collab.xml:321 1.14879 +#: ../en/ch12-mq-collab.xml:321 1.14880 msgid "" 1.14881 "Now to return to the reasons for ordering groups of patches in this way. We " 1.14882 "would like the lowest patches in the stack to be as stable as possible, so " 1.14883 @@ -15616,7 +14694,7 @@ 1.14884 msgstr "" 1.14885 1.14886 #. type: Content of: <book><chapter><sect1><para> 1.14887 -#: ../en/ch13-mq-collab.xml:329 1.14888 +#: ../en/ch12-mq-collab.xml:329 1.14889 msgid "" 1.14890 "We would also like the patches that we know we'll need to modify to be " 1.14891 "applied on top of a source tree that resembles the upstream tree as closely " 1.14892 @@ -15624,7 +14702,7 @@ 1.14893 msgstr "" 1.14894 1.14895 #. type: Content of: <book><chapter><sect1><para> 1.14896 -#: ../en/ch13-mq-collab.xml:334 1.14897 +#: ../en/ch12-mq-collab.xml:334 1.14898 msgid "" 1.14899 "The <quote>backport</quote> and <quote>do not ship</quote> patches float at " 1.14900 "the end of the <filename role=\"special\">series</filename> file. The " 1.14901 @@ -15633,19 +14711,19 @@ 1.14902 msgstr "" 1.14903 1.14904 #. type: Content of: <book><chapter><sect1><title> 1.14905 -#: ../en/ch13-mq-collab.xml:343 1.14906 +#: ../en/ch12-mq-collab.xml:343 1.14907 msgid "Maintaining the patch series" 1.14908 msgstr "维护补丁系列" 1.14909 1.14910 #. type: Content of: <book><chapter><sect1><para> 1.14911 -#: ../en/ch13-mq-collab.xml:345 1.14912 +#: ../en/ch12-mq-collab.xml:345 1.14913 msgid "" 1.14914 "In my work, I use a number of guards to control which patches are to be " 1.14915 "applied." 1.14916 msgstr "" 1.14917 1.14918 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14919 -#: ../en/ch13-mq-collab.xml:349 1.14920 +#: ../en/ch12-mq-collab.xml:349 1.14921 msgid "" 1.14922 "<quote>Accepted</quote> patches are guarded with <literal>accepted</" 1.14923 "literal>. I enable this guard most of the time. When I'm applying the " 1.14924 @@ -15654,7 +14732,7 @@ 1.14925 msgstr "" 1.14926 1.14927 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14928 -#: ../en/ch13-mq-collab.xml:356 1.14929 +#: ../en/ch12-mq-collab.xml:356 1.14930 msgid "" 1.14931 "Patches that are <quote>finished</quote>, but not yet submitted, have no " 1.14932 "guards. If I'm applying the patch stack to a copy of the upstream tree, I " 1.14933 @@ -15662,21 +14740,21 @@ 1.14934 msgstr "" 1.14935 1.14936 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14937 -#: ../en/ch13-mq-collab.xml:362 1.14938 +#: ../en/ch12-mq-collab.xml:362 1.14939 msgid "" 1.14940 "Those patches that need reworking before being resubmitted are guarded with " 1.14941 "<literal>rework</literal>." 1.14942 msgstr "" 1.14943 1.14944 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14945 -#: ../en/ch13-mq-collab.xml:366 1.14946 +#: ../en/ch12-mq-collab.xml:366 1.14947 msgid "" 1.14948 "For those patches that are still under development, I use <literal>devel</" 1.14949 "literal>." 1.14950 msgstr "" 1.14951 1.14952 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.14953 -#: ../en/ch13-mq-collab.xml:369 1.14954 +#: ../en/ch12-mq-collab.xml:369 1.14955 msgid "" 1.14956 "A backport patch may have several guards, one for each version of the kernel " 1.14957 "to which it applies. For example, a patch that backports a piece of code to " 1.14958 @@ -15684,7 +14762,7 @@ 1.14959 msgstr "" 1.14960 1.14961 #. type: Content of: <book><chapter><sect1><para> 1.14962 -#: ../en/ch13-mq-collab.xml:374 1.14963 +#: ../en/ch12-mq-collab.xml:374 1.14964 msgid "" 1.14965 "This variety of guards gives me considerable flexibility in determining what " 1.14966 "kind of source tree I want to end up with. For most situations, the " 1.14967 @@ -15693,12 +14771,12 @@ 1.14968 msgstr "" 1.14969 1.14970 #. type: Content of: <book><chapter><sect1><sect2><title> 1.14971 -#: ../en/ch13-mq-collab.xml:381 1.14972 +#: ../en/ch12-mq-collab.xml:381 1.14973 msgid "The art of writing backport patches" 1.14974 msgstr "编写向后移植补丁的艺术" 1.14975 1.14976 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14977 -#: ../en/ch13-mq-collab.xml:383 1.14978 +#: ../en/ch12-mq-collab.xml:383 1.14979 msgid "" 1.14980 "Using MQ, writing a backport patch is a simple process. All such a patch has " 1.14981 "to do is modify a piece of code that uses a kernel feature not present in the " 1.14982 @@ -15707,7 +14785,7 @@ 1.14983 msgstr "" 1.14984 1.14985 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14986 -#: ../en/ch13-mq-collab.xml:389 1.14987 +#: ../en/ch12-mq-collab.xml:389 1.14988 msgid "" 1.14989 "A useful goal when writing a good backport patch is to make your code look as " 1.14990 "if it was written for the older version of the kernel you're targeting. The " 1.14991 @@ -15721,7 +14799,7 @@ 1.14992 msgstr "" 1.14993 1.14994 #. type: Content of: <book><chapter><sect1><sect2><para> 1.14995 -#: ../en/ch13-mq-collab.xml:402 1.14996 +#: ../en/ch12-mq-collab.xml:402 1.14997 msgid "" 1.14998 "There are two reasons to divide backport patches into a distinct group, away " 1.14999 "from the <quote>regular</quote> patches whose effects they modify. The first " 1.15000 @@ -15734,17 +14812,17 @@ 1.15001 msgstr "" 1.15002 1.15003 #. type: Content of: <book><chapter><sect1><title> 1.15004 -#: ../en/ch13-mq-collab.xml:417 1.15005 +#: ../en/ch12-mq-collab.xml:417 1.15006 msgid "Useful tips for developing with MQ" 1.15007 msgstr "使用 MQ 开发的技巧" 1.15008 1.15009 #. type: Content of: <book><chapter><sect1><sect2><title> 1.15010 -#: ../en/ch13-mq-collab.xml:420 1.15011 +#: ../en/ch12-mq-collab.xml:420 1.15012 msgid "Organising patches in directories" 1.15013 msgstr "将补丁放到几个目录中" 1.15014 1.15015 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15016 -#: ../en/ch13-mq-collab.xml:422 1.15017 +#: ../en/ch12-mq-collab.xml:422 1.15018 msgid "" 1.15019 "If you're working on a substantial project with MQ, it's not difficult to " 1.15020 "accumulate a large number of patches. For example, I have one patch " 1.15021 @@ -15752,7 +14830,7 @@ 1.15022 msgstr "" 1.15023 1.15024 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15025 -#: ../en/ch13-mq-collab.xml:427 1.15026 +#: ../en/ch12-mq-collab.xml:427 1.15027 msgid "" 1.15028 "If you can group these patches into separate logical categories, you can if " 1.15029 "you like store them in different directories; MQ has no problems with patch " 1.15030 @@ -15760,12 +14838,12 @@ 1.15031 msgstr "" 1.15032 1.15033 #. type: Content of: <book><chapter><sect1><sect2><title> 1.15034 -#: ../en/ch13-mq-collab.xml:434 1.15035 +#: ../en/ch12-mq-collab.xml:434 1.15036 msgid "Viewing the history of a patch" 1.15037 msgstr "察看补丁的历史" 1.15038 1.15039 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15040 -#: ../en/ch13-mq-collab.xml:436 1.15041 +#: ../en/ch12-mq-collab.xml:436 1.15042 msgid "" 1.15043 "If you're developing a set of patches over a long time, it's a good idea to " 1.15044 "maintain them in a repository, as discussed in section <xref linkend=\"sec.mq." 1.15045 @@ -15778,7 +14856,7 @@ 1.15046 msgstr "" 1.15047 1.15048 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15049 -#: ../en/ch13-mq-collab.xml:448 1.15050 +#: ../en/ch12-mq-collab.xml:448 1.15051 msgid "" 1.15052 "However, you can use the <literal role=\"hg-ext\">extdiff</literal> " 1.15053 "extension, which is bundled with Mercurial, to turn a diff of two versions of " 1.15054 @@ -15791,18 +14869,18 @@ 1.15055 msgstr "" 1.15056 1.15057 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15058 -#: ../en/ch13-mq-collab.xml:459 1.15059 +#: ../en/ch12-mq-collab.xml:459 1.15060 msgid "" 1.15061 "You can enable the <literal role=\"hg-ext\">extdiff</literal> extension in " 1.15062 "the usual way, by adding a line to the <literal role=\"rc-extensions" 1.15063 -"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</" 1.15064 +"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</" 1.15065 "filename>." 1.15066 msgstr "" 1.15067 1.15068 # 1.15069 #. &example.hg-interdiff; 1.15070 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15071 -#: ../en/ch13-mq-collab.xml:465 1.15072 +#: ../en/ch12-mq-collab.xml:466 1.15073 msgid "" 1.15074 "The <command>interdiff</command> command expects to be passed the names of " 1.15075 "two files, but the <literal role=\"hg-ext\">extdiff</literal> extension " 1.15076 @@ -15815,7 +14893,7 @@ 1.15077 msgstr "" 1.15078 1.15079 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15080 -#: ../en/ch13-mq-collab.xml:477 1.15081 +#: ../en/ch12-mq-collab.xml:478 1.15082 msgid "" 1.15083 "With the <filename role=\"special\">hg-interdiff</filename> program in your " 1.15084 "shell's search path, you can run it as follows, from inside an MQ patch " 1.15085 @@ -15823,16 +14901,16 @@ 1.15086 msgstr "" 1.15087 1.15088 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15089 -#: ../en/ch13-mq-collab.xml:482 1.15090 +#: ../en/ch12-mq-collab.xml:482 1.15091 msgid "" 1.15092 "Since you'll probably want to use this long-winded command a lot, you can get " 1.15093 "<literal role=\"hg-ext\">hgext</literal> to make it available as a normal " 1.15094 -"Mercurial command, again by editing your <filename role=\"special\"> /.hgrc</" 1.15095 +"Mercurial command, again by editing your <filename role=\"special\">~/.hgrc</" 1.15096 "filename>." 1.15097 msgstr "" 1.15098 1.15099 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15100 -#: ../en/ch13-mq-collab.xml:489 1.15101 +#: ../en/ch12-mq-collab.xml:489 1.15102 msgid "" 1.15103 "This directs <literal role=\"hg-ext\">hgext</literal> to make an " 1.15104 "<literal>interdiff</literal> command available, so you can now shorten the " 1.15105 @@ -15841,7 +14919,7 @@ 1.15106 msgstr "" 1.15107 1.15108 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.15109 -#: ../en/ch13-mq-collab.xml:498 1.15110 +#: ../en/ch12-mq-collab.xml:497 1.15111 msgid "" 1.15112 "The <command>interdiff</command> command works well only if the underlying " 1.15113 "files against which versions of a patch are generated remain the same. If " 1.15114 @@ -15850,7 +14928,7 @@ 1.15115 msgstr "" 1.15116 1.15117 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15118 -#: ../en/ch13-mq-collab.xml:506 1.15119 +#: ../en/ch12-mq-collab.xml:505 1.15120 msgid "" 1.15121 "The <literal role=\"hg-ext\">extdiff</literal> extension is useful for more " 1.15122 "than merely improving the presentation of MQ patches. To read more about it, " 1.15123 @@ -15858,12 +14936,12 @@ 1.15124 msgstr "" 1.15125 1.15126 #. type: Content of: <book><chapter><title> 1.15127 -#: ../en/ch14-hgext.xml:5 1.15128 +#: ../en/ch13-hgext.xml:5 1.15129 msgid "Adding functionality with extensions" 1.15130 msgstr "使用扩展增加功能" 1.15131 1.15132 #. type: Content of: <book><chapter><para> 1.15133 -#: ../en/ch14-hgext.xml:7 1.15134 +#: ../en/ch13-hgext.xml:7 1.15135 msgid "" 1.15136 "While the core of Mercurial is quite complete from a functionality " 1.15137 "standpoint, it's deliberately shorn of fancy features. This approach of " 1.15138 @@ -15872,7 +14950,7 @@ 1.15139 msgstr "" 1.15140 1.15141 #. type: Content of: <book><chapter><para> 1.15142 -#: ../en/ch14-hgext.xml:12 1.15143 +#: ../en/ch13-hgext.xml:12 1.15144 msgid "" 1.15145 "However, Mercurial doesn't box you in with an inflexible command set: you can " 1.15146 "add features to it as <emphasis>extensions</emphasis> (sometimes known as " 1.15147 @@ -15881,7 +14959,7 @@ 1.15148 msgstr "" 1.15149 1.15150 #. type: Content of: <book><chapter><itemizedlist><listitem><para> 1.15151 -#: ../en/ch14-hgext.xml:18 1.15152 +#: ../en/ch13-hgext.xml:18 1.15153 msgid "" 1.15154 "Section <xref linkend=\"sec.tour-merge.fetch\"/> covers the <literal role=" 1.15155 "\"hg-ext\">fetch</literal> extension; this combines pulling new changes and " 1.15156 @@ -15890,7 +14968,7 @@ 1.15157 msgstr "" 1.15158 1.15159 #. type: Content of: <book><chapter><itemizedlist><listitem><para> 1.15160 -#: ../en/ch14-hgext.xml:24 1.15161 +#: ../en/ch13-hgext.xml:24 1.15162 msgid "" 1.15163 "In chapter <xref linkend=\"chap.hook\"/>, we covered several extensions that " 1.15164 "are useful for hook-related functionality: <literal role=\"hg-ext\">acl</" 1.15165 @@ -15900,7 +14978,7 @@ 1.15166 msgstr "" 1.15167 1.15168 #. type: Content of: <book><chapter><itemizedlist><listitem><para> 1.15169 -#: ../en/ch14-hgext.xml:33 1.15170 +#: ../en/ch13-hgext.xml:33 1.15171 msgid "" 1.15172 "The Mercurial Queues patch management extension is so invaluable that it " 1.15173 "merits two chapters and an appendix all to itself. Chapter <xref linkend=" 1.15174 @@ -15910,7 +14988,7 @@ 1.15175 msgstr "" 1.15176 1.15177 #. type: Content of: <book><chapter><para> 1.15178 -#: ../en/ch14-hgext.xml:43 1.15179 +#: ../en/ch13-hgext.xml:43 1.15180 msgid "" 1.15181 "In this chapter, we'll cover some of the other extensions that are available " 1.15182 "for Mercurial, and briefly touch on some of the machinery you'll need to know " 1.15183 @@ -15918,7 +14996,7 @@ 1.15184 msgstr "" 1.15185 1.15186 #. type: Content of: <book><chapter><itemizedlist><listitem><para> 1.15187 -#: ../en/ch14-hgext.xml:48 1.15188 +#: ../en/ch13-hgext.xml:48 1.15189 msgid "" 1.15190 "In section <xref linkend=\"sec.hgext.inotify\"/>, we'll discuss the " 1.15191 "possibility of <emphasis>huge</emphasis> performance improvements using the " 1.15192 @@ -15926,21 +15004,21 @@ 1.15193 msgstr "" 1.15194 1.15195 #. type: Content of: <book><chapter><sect1><title> 1.15196 -#: ../en/ch14-hgext.xml:55 1.15197 +#: ../en/ch13-hgext.xml:55 1.15198 msgid "" 1.15199 "Improve performance with the <literal role=\"hg-ext\">inotify</literal> " 1.15200 "extension" 1.15201 msgstr "使用扩展 <literal role=\"hg-ext\">inotify</literal> 以提高性能" 1.15202 1.15203 #. type: Content of: <book><chapter><sect1><para> 1.15204 -#: ../en/ch14-hgext.xml:58 1.15205 +#: ../en/ch13-hgext.xml:58 1.15206 msgid "" 1.15207 "Are you interested in having some of the most common Mercurial operations run " 1.15208 "as much as a hundred times faster? Read on!" 1.15209 msgstr "" 1.15210 1.15211 #. type: Content of: <book><chapter><sect1><para> 1.15212 -#: ../en/ch14-hgext.xml:62 1.15213 +#: ../en/ch13-hgext.xml:62 1.15214 msgid "" 1.15215 "Mercurial has great performance under normal circumstances. For example, " 1.15216 "when you run the <command role=\"hg-cmd\">hg status</command> command, " 1.15217 @@ -15952,7 +15030,7 @@ 1.15218 msgstr "" 1.15219 1.15220 #. type: Content of: <book><chapter><sect1><para> 1.15221 -#: ../en/ch14-hgext.xml:72 1.15222 +#: ../en/ch13-hgext.xml:72 1.15223 msgid "" 1.15224 "Because obtaining file status is crucial to good performance, the authors of " 1.15225 "Mercurial have optimised this code to within an inch of its life. However, " 1.15226 @@ -15964,7 +15042,7 @@ 1.15227 msgstr "" 1.15228 1.15229 #. type: Content of: <book><chapter><sect1><para> 1.15230 -#: ../en/ch14-hgext.xml:82 1.15231 +#: ../en/ch13-hgext.xml:82 1.15232 msgid "" 1.15233 "To put a number on the magnitude of this effect, I created a repository " 1.15234 "containing 150,000 managed files. I timed <command role=\"hg-cmd\">hg " 1.15235 @@ -15973,7 +15051,7 @@ 1.15236 msgstr "" 1.15237 1.15238 #. type: Content of: <book><chapter><sect1><para> 1.15239 -#: ../en/ch14-hgext.xml:88 1.15240 +#: ../en/ch13-hgext.xml:88 1.15241 msgid "" 1.15242 "Many modern operating systems contain a file notification facility. If a " 1.15243 "program signs up to an appropriate service, the operating system will notify " 1.15244 @@ -15983,7 +15061,7 @@ 1.15245 msgstr "" 1.15246 1.15247 #. type: Content of: <book><chapter><sect1><para> 1.15248 -#: ../en/ch14-hgext.xml:95 1.15249 +#: ../en/ch13-hgext.xml:95 1.15250 msgid "" 1.15251 "Mercurial's <literal role=\"hg-ext\">inotify</literal> extension talks to the " 1.15252 "kernel's <literal>inotify</literal> component to optimise <command role=\"hg-" 1.15253 @@ -15998,7 +15076,7 @@ 1.15254 msgstr "" 1.15255 1.15256 #. type: Content of: <book><chapter><sect1><para> 1.15257 -#: ../en/ch14-hgext.xml:108 1.15258 +#: ../en/ch13-hgext.xml:108 1.15259 msgid "" 1.15260 "Recall the ten seconds that I measured plain Mercurial as taking to run " 1.15261 "<command role=\"hg-cmd\">hg status</command> on a 150,000 file repository. " 1.15262 @@ -16008,12 +15086,12 @@ 1.15263 msgstr "" 1.15264 1.15265 #. type: Content of: <book><chapter><sect1><para> 1.15266 -#: ../en/ch14-hgext.xml:115 1.15267 +#: ../en/ch13-hgext.xml:115 1.15268 msgid "Before we continue, please pay attention to some caveats." 1.15269 msgstr "" 1.15270 1.15271 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.15272 -#: ../en/ch14-hgext.xml:118 1.15273 +#: ../en/ch13-hgext.xml:118 1.15274 msgid "" 1.15275 "The <literal role=\"hg-ext\">inotify</literal> extension is Linux-specific. " 1.15276 "Because it interfaces directly to the Linux kernel's <literal>inotify</" 1.15277 @@ -16021,7 +15099,7 @@ 1.15278 msgstr "" 1.15279 1.15280 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.15281 -#: ../en/ch14-hgext.xml:123 1.15282 +#: ../en/ch13-hgext.xml:123 1.15283 msgid "" 1.15284 "It should work on any Linux distribution that was released after early 2005. " 1.15285 "Older distributions are likely to have a kernel that lacks <literal>inotify</" 1.15286 @@ -16030,7 +15108,7 @@ 1.15287 msgstr "" 1.15288 1.15289 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.15290 -#: ../en/ch14-hgext.xml:130 1.15291 +#: ../en/ch13-hgext.xml:130 1.15292 msgid "" 1.15293 "Not all filesystems are suitable for use with the <literal role=\"hg-ext" 1.15294 "\">inotify</literal> extension. Network filesystems such as NFS are a non-" 1.15295 @@ -16042,7 +15120,7 @@ 1.15296 msgstr "" 1.15297 1.15298 #. type: Content of: <book><chapter><sect1><para> 1.15299 -#: ../en/ch14-hgext.xml:141 1.15300 +#: ../en/ch13-hgext.xml:141 1.15301 msgid "" 1.15302 "The <literal role=\"hg-ext\">inotify</literal> extension is not yet shipped " 1.15303 "with Mercurial as of May 2007, so it's a little more involved to set up than " 1.15304 @@ -16050,7 +15128,7 @@ 1.15305 msgstr "" 1.15306 1.15307 #. type: Content of: <book><chapter><sect1><para> 1.15308 -#: ../en/ch14-hgext.xml:146 1.15309 +#: ../en/ch13-hgext.xml:146 1.15310 msgid "" 1.15311 "The extension currently comes in two parts: a set of patches to the Mercurial " 1.15312 "source code, and a library of Python bindings to the <literal>inotify</" 1.15313 @@ -16058,7 +15136,7 @@ 1.15314 msgstr "" 1.15315 1.15316 #. type: Content of: <book><chapter><sect1><note><para> 1.15317 -#: ../en/ch14-hgext.xml:150 1.15318 +#: ../en/ch13-hgext.xml:150 1.15319 msgid "" 1.15320 "There are <emphasis>two</emphasis> Python <literal>inotify</literal> binding " 1.15321 "libraries. One of them is called <literal>pyinotify</literal>, and is " 1.15322 @@ -16068,14 +15146,14 @@ 1.15323 msgstr "" 1.15324 1.15325 #. type: Content of: <book><chapter><sect1><para> 1.15326 -#: ../en/ch14-hgext.xml:157 1.15327 +#: ../en/ch13-hgext.xml:157 1.15328 msgid "" 1.15329 "To get going, it's best to already have a functioning copy of Mercurial " 1.15330 "installed." 1.15331 msgstr "" 1.15332 1.15333 #. type: Content of: <book><chapter><sect1><note><para> 1.15334 -#: ../en/ch14-hgext.xml:160 1.15335 +#: ../en/ch13-hgext.xml:160 1.15336 msgid "" 1.15337 "If you follow the instructions below, you'll be <emphasis>replacing</" 1.15338 "emphasis> and overwriting any existing installation of Mercurial that you " 1.15339 @@ -16084,14 +15162,14 @@ 1.15340 msgstr "" 1.15341 1.15342 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15343 -#: ../en/ch14-hgext.xml:167 1.15344 +#: ../en/ch13-hgext.xml:167 1.15345 msgid "" 1.15346 "Clone the Python <literal>inotify</literal> binding repository. Build and " 1.15347 "install it." 1.15348 msgstr "" 1.15349 1.15350 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15351 -#: ../en/ch14-hgext.xml:175 1.15352 +#: ../en/ch13-hgext.xml:174 1.15353 msgid "" 1.15354 "Clone the <filename class=\"directory\">crew</filename> Mercurial " 1.15355 "repository. Clone the <literal role=\"hg-ext\">inotify</literal> patch " 1.15356 @@ -16100,7 +15178,7 @@ 1.15357 msgstr "" 1.15358 1.15359 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15360 -#: ../en/ch14-hgext.xml:188 1.15361 +#: ../en/ch13-hgext.xml:184 1.15362 msgid "" 1.15363 "Make sure that you have the Mercurial Queues extension, <literal role=\"hg-ext" 1.15364 "\">mq</literal>, enabled. If you've never used MQ, read section <xref " 1.15365 @@ -16108,7 +15186,7 @@ 1.15366 msgstr "" 1.15367 1.15368 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15369 -#: ../en/ch14-hgext.xml:194 1.15370 +#: ../en/ch13-hgext.xml:190 1.15371 msgid "" 1.15372 "Go into the <filename class=\"directory\">inotify</filename> repo, and apply " 1.15373 "all of the <literal role=\"hg-ext\">inotify</literal> patches using the " 1.15374 @@ -16117,27 +15195,27 @@ 1.15375 msgstr "" 1.15376 1.15377 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15378 -#: ../en/ch14-hgext.xml:204 1.15379 +#: ../en/ch13-hgext.xml:199 1.15380 msgid "" 1.15381 "If you get an error message from <command role=\"hg-ext-mq\">qpush</command>, " 1.15382 "you should not continue. Instead, ask for help." 1.15383 msgstr "" 1.15384 1.15385 #. type: Content of: <book><chapter><sect1><orderedlist><listitem><para> 1.15386 -#: ../en/ch14-hgext.xml:208 1.15387 +#: ../en/ch13-hgext.xml:203 1.15388 msgid "Build and install the patched version of Mercurial." 1.15389 msgstr "" 1.15390 1.15391 #. type: Content of: <book><chapter><sect1><para> 1.15392 -#: ../en/ch14-hgext.xml:216 1.15393 +#: ../en/ch13-hgext.xml:209 1.15394 msgid "" 1.15395 "Once you've build a suitably patched version of Mercurial, all you need to do " 1.15396 "to enable the <literal role=\"hg-ext\">inotify</literal> extension is add an " 1.15397 -"entry to your <filename role=\"special\"> /.hgrc</filename>." 1.15398 -msgstr "" 1.15399 - 1.15400 -#. type: Content of: <book><chapter><sect1><para> 1.15401 -#: ../en/ch14-hgext.xml:221 1.15402 +"entry to your <filename role=\"special\">~/.hgrc</filename>." 1.15403 +msgstr "" 1.15404 + 1.15405 +#. type: Content of: <book><chapter><sect1><para> 1.15406 +#: ../en/ch13-hgext.xml:214 1.15407 msgid "" 1.15408 "When the <literal role=\"hg-ext\">inotify</literal> extension is enabled, " 1.15409 "Mercurial will automatically and transparently start the status daemon the " 1.15410 @@ -16146,7 +15224,7 @@ 1.15411 msgstr "" 1.15412 1.15413 #. type: Content of: <book><chapter><sect1><para> 1.15414 -#: ../en/ch14-hgext.xml:227 1.15415 +#: ../en/ch13-hgext.xml:220 1.15416 msgid "" 1.15417 "The status daemon is started silently, and runs in the background. If you " 1.15418 "look at a list of running processes after you've enabled the <literal role=" 1.15419 @@ -16156,7 +15234,7 @@ 1.15420 msgstr "" 1.15421 1.15422 #. type: Content of: <book><chapter><sect1><para> 1.15423 -#: ../en/ch14-hgext.xml:235 1.15424 +#: ../en/ch13-hgext.xml:228 1.15425 msgid "" 1.15426 "The first time you run a Mercurial command in a repository when you have the " 1.15427 "<literal role=\"hg-ext\">inotify</literal> extension enabled, it will run " 1.15428 @@ -16172,7 +15250,7 @@ 1.15429 msgstr "" 1.15430 1.15431 #. type: Content of: <book><chapter><sect1><para> 1.15432 -#: ../en/ch14-hgext.xml:249 1.15433 +#: ../en/ch13-hgext.xml:242 1.15434 msgid "" 1.15435 "If you like, you can manually start a status daemon using the <command role=" 1.15436 "\"hg-ext-inotify\">inserve</command> command. This gives you slightly finer " 1.15437 @@ -16182,7 +15260,7 @@ 1.15438 msgstr "" 1.15439 1.15440 #. type: Content of: <book><chapter><sect1><para> 1.15441 -#: ../en/ch14-hgext.xml:256 1.15442 +#: ../en/ch13-hgext.xml:249 1.15443 msgid "" 1.15444 "When you're using the <literal role=\"hg-ext\">inotify</literal> extension, " 1.15445 "you should notice <emphasis>no difference at all</emphasis> in Mercurial's " 1.15446 @@ -16193,14 +15271,14 @@ 1.15447 msgstr "" 1.15448 1.15449 #. type: Content of: <book><chapter><sect1><title> 1.15450 -#: ../en/ch14-hgext.xml:267 1.15451 +#: ../en/ch13-hgext.xml:260 1.15452 msgid "" 1.15453 "Flexible diff support with the <literal role=\"hg-ext\">extdiff</literal> " 1.15454 "extension" 1.15455 msgstr "使用扩展 <literal role=\"hg-ext\">extdiff</literal> 以扩展差异支持" 1.15456 1.15457 #. type: Content of: <book><chapter><sect1><para> 1.15458 -#: ../en/ch14-hgext.xml:270 1.15459 +#: ../en/ch13-hgext.xml:263 1.15460 msgid "" 1.15461 "Mercurial's built-in <command role=\"hg-cmd\">hg diff</command> command " 1.15462 "outputs plaintext unified diffs." 1.15463 @@ -16209,7 +15287,7 @@ 1.15464 "不同。" 1.15465 1.15466 #. type: Content of: <book><chapter><sect1><para> 1.15467 -#: ../en/ch14-hgext.xml:275 1.15468 +#: ../en/ch13-hgext.xml:268 1.15469 msgid "" 1.15470 "If you would like to use an external tool to display modifications, you'll " 1.15471 "want to use the <literal role=\"hg-ext\">extdiff</literal> extension. This " 1.15472 @@ -16217,16 +15295,16 @@ 1.15473 msgstr "" 1.15474 1.15475 #. type: Content of: <book><chapter><sect1><para> 1.15476 -#: ../en/ch14-hgext.xml:280 1.15477 +#: ../en/ch13-hgext.xml:273 1.15478 msgid "" 1.15479 "The <literal role=\"hg-ext\">extdiff</literal> extension is bundled with " 1.15480 "Mercurial, so it's easy to set up. In the <literal role=\"rc-extensions" 1.15481 -"\">extensions</literal> section of your <filename role=\"special\"> /.hgrc</" 1.15482 +"\">extensions</literal> section of your <filename role=\"special\">~/.hgrc</" 1.15483 "filename>, simply add a one-line entry to enable the extension." 1.15484 msgstr "" 1.15485 1.15486 #. type: Content of: <book><chapter><sect1><para> 1.15487 -#: ../en/ch14-hgext.xml:286 1.15488 +#: ../en/ch13-hgext.xml:280 1.15489 msgid "" 1.15490 "This introduces a command named <command role=\"hg-ext-extdiff\">extdiff</" 1.15491 "command>, which by default uses your system's <command>diff</command> command " 1.15492 @@ -16235,7 +15313,7 @@ 1.15493 msgstr "" 1.15494 1.15495 #. type: Content of: <book><chapter><sect1><para> 1.15496 -#: ../en/ch14-hgext.xml:294 1.15497 +#: ../en/ch13-hgext.xml:288 1.15498 msgid "" 1.15499 "The result won't be exactly the same as with the built-in <command role=\"hg-" 1.15500 "cmd\">hg diff</command> variations, because the output of <command>diff</" 1.15501 @@ -16243,7 +15321,7 @@ 1.15502 msgstr "" 1.15503 1.15504 #. type: Content of: <book><chapter><sect1><para> 1.15505 -#: ../en/ch14-hgext.xml:299 1.15506 +#: ../en/ch13-hgext.xml:293 1.15507 msgid "" 1.15508 "As the <quote><literal>making snapshot</literal></quote> lines of output " 1.15509 "above imply, the <command role=\"hg-ext-extdiff\">extdiff</command> command " 1.15510 @@ -16257,7 +15335,7 @@ 1.15511 msgstr "" 1.15512 1.15513 #. type: Content of: <book><chapter><sect1><para> 1.15514 -#: ../en/ch14-hgext.xml:312 1.15515 +#: ../en/ch13-hgext.xml:306 1.15516 msgid "" 1.15517 "Snapshot directory names have the same base name as your repository. If your " 1.15518 "repository path is <filename class=\"directory\">/quux/bar/foo</filename>, " 1.15519 @@ -16274,7 +15352,7 @@ 1.15520 msgstr "" 1.15521 1.15522 #. type: Content of: <book><chapter><sect1><para> 1.15523 -#: ../en/ch14-hgext.xml:328 1.15524 +#: ../en/ch13-hgext.xml:322 1.15525 msgid "" 1.15526 "The <command role=\"hg-ext-extdiff\">extdiff</command> command accepts two " 1.15527 "important options. The <option role=\"hg-ext-extdiff-cmd-extdiff-opt\">hg -p</" 1.15528 @@ -16292,7 +15370,7 @@ 1.15529 1.15530 # 1.15531 #. type: Content of: <book><chapter><sect1><para> 1.15532 -#: ../en/ch14-hgext.xml:345 1.15533 +#: ../en/ch13-hgext.xml:339 1.15534 msgid "" 1.15535 "As an example, here's how to run the normal system <command>diff</command> " 1.15536 "command, getting it to generate context diffs (using the <option role=\"cmd-" 1.15537 @@ -16302,14 +15380,14 @@ 1.15538 msgstr "" 1.15539 1.15540 #. type: Content of: <book><chapter><sect1><para> 1.15541 -#: ../en/ch14-hgext.xml:354 1.15542 +#: ../en/ch13-hgext.xml:348 1.15543 msgid "" 1.15544 "Launching a visual diff tool is just as easy. Here's how to launch the " 1.15545 "<command>kdiff3</command> viewer." 1.15546 msgstr "" 1.15547 1.15548 #. type: Content of: <book><chapter><sect1><para> 1.15549 -#: ../en/ch14-hgext.xml:358 1.15550 +#: ../en/ch13-hgext.xml:352 1.15551 msgid "" 1.15552 "If your diff viewing command can't deal with directories, you can easily work " 1.15553 "around this with a little scripting. For an example of such scripting in " 1.15554 @@ -16319,12 +15397,12 @@ 1.15555 msgstr "" 1.15556 1.15557 #. type: Content of: <book><chapter><sect1><sect2><title> 1.15558 -#: ../en/ch14-hgext.xml:366 1.15559 +#: ../en/ch13-hgext.xml:360 1.15560 msgid "Defining command aliases" 1.15561 msgstr "定义命令的别名" 1.15562 1.15563 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15564 -#: ../en/ch14-hgext.xml:368 1.15565 +#: ../en/ch13-hgext.xml:362 1.15566 msgid "" 1.15567 "It can be cumbersome to remember the options to both the <command role=\"hg-" 1.15568 "ext-extdiff\">extdiff</command> command and the diff viewer you want to use, " 1.15569 @@ -16334,9 +15412,9 @@ 1.15570 msgstr "" 1.15571 1.15572 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15573 -#: ../en/ch14-hgext.xml:375 1.15574 -msgid "" 1.15575 -"All you need to do is edit your <filename role=\"special\"> /.hgrc</" 1.15576 +#: ../en/ch13-hgext.xml:369 1.15577 +msgid "" 1.15578 +"All you need to do is edit your <filename role=\"special\">~/.hgrc</" 1.15579 "filename>, and add a section named <literal role=\"rc-extdiff\">extdiff</" 1.15580 "literal>. Inside this section, you can define multiple commands. Here's how " 1.15581 "to add a <literal>kdiff3</literal> command. Once you've defined this, you " 1.15582 @@ -16346,7 +15424,7 @@ 1.15583 msgstr "" 1.15584 1.15585 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15586 -#: ../en/ch14-hgext.xml:384 1.15587 +#: ../en/ch13-hgext.xml:379 1.15588 msgid "" 1.15589 "If you leave the right hand side of the definition empty, as above, the " 1.15590 "<literal role=\"hg-ext\">extdiff</literal> extension uses the name of the " 1.15591 @@ -16357,7 +15435,7 @@ 1.15592 msgstr "" 1.15593 1.15594 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15595 -#: ../en/ch14-hgext.xml:393 1.15596 +#: ../en/ch13-hgext.xml:389 1.15597 msgid "" 1.15598 "You can also specify the default options that you want to invoke your diff " 1.15599 "viewing program with. The prefix to use is <quote><literal>opts.</literal></" 1.15600 @@ -16367,19 +15445,19 @@ 1.15601 msgstr "" 1.15602 1.15603 #. type: Content of: <book><chapter><sect1><title> 1.15604 -#: ../en/ch14-hgext.xml:406 1.15605 +#: ../en/ch13-hgext.xml:403 1.15606 msgid "" 1.15607 "Cherrypicking changes with the <literal role=\"hg-ext\">transplant</literal> " 1.15608 "extension" 1.15609 msgstr "使用扩展 <literal role=\"hg-ext\">transplant</literal> 以挑选修改" 1.15610 1.15611 #. type: Content of: <book><chapter><sect1><para> 1.15612 -#: ../en/ch14-hgext.xml:409 1.15613 +#: ../en/ch13-hgext.xml:406 1.15614 msgid "Need to have a long chat with Brendan about this." 1.15615 msgstr "" 1.15616 1.15617 #. type: Content of: <book><chapter><sect1><title> 1.15618 -#: ../en/ch14-hgext.xml:413 1.15619 +#: ../en/ch13-hgext.xml:410 1.15620 msgid "" 1.15621 "Send changes via email with the <literal role=\"hg-ext\">patchbomb</literal> " 1.15622 "extension" 1.15623 @@ -16387,7 +15465,7 @@ 1.15624 "使用扩展 <literal role=\"hg-ext\">patchbomb</literal> 通过 email 发送修改" 1.15625 1.15626 #. type: Content of: <book><chapter><sect1><para> 1.15627 -#: ../en/ch14-hgext.xml:416 1.15628 +#: ../en/ch13-hgext.xml:413 1.15629 msgid "" 1.15630 "Many projects have a culture of <quote>change review</quote>, in which people " 1.15631 "send their modifications to a mailing list for others to read and comment on " 1.15632 @@ -16397,7 +15475,7 @@ 1.15633 msgstr "" 1.15634 1.15635 #. type: Content of: <book><chapter><sect1><para> 1.15636 -#: ../en/ch14-hgext.xml:424 1.15637 +#: ../en/ch13-hgext.xml:421 1.15638 msgid "" 1.15639 "Mercurial makes it easy to send changes over email for review or application, " 1.15640 "via its <literal role=\"hg-ext\">patchbomb</literal> extension. The " 1.15641 @@ -16408,7 +15486,7 @@ 1.15642 msgstr "" 1.15643 1.15644 #. type: Content of: <book><chapter><sect1><para> 1.15645 -#: ../en/ch14-hgext.xml:432 1.15646 +#: ../en/ch13-hgext.xml:429 1.15647 msgid "" 1.15648 "As usual, the basic configuration of the <literal role=\"hg-ext\">patchbomb</" 1.15649 "literal> extension takes just one or two lines in your <filename role=" 1.15650 @@ -16416,14 +15494,14 @@ 1.15651 msgstr "" 1.15652 1.15653 #. type: Content of: <book><chapter><sect1><para> 1.15654 -#: ../en/ch14-hgext.xml:437 1.15655 +#: ../en/ch13-hgext.xml:435 1.15656 msgid "" 1.15657 "Once you've enabled the extension, you will have a new command available, " 1.15658 "named <command role=\"hg-ext-patchbomb\">email</command>." 1.15659 msgstr "" 1.15660 1.15661 #. type: Content of: <book><chapter><sect1><para> 1.15662 -#: ../en/ch14-hgext.xml:441 1.15663 +#: ../en/ch13-hgext.xml:439 1.15664 msgid "" 1.15665 "The safest and best way to invoke the <command role=\"hg-ext-patchbomb" 1.15666 "\">email</command> command is to <emphasis>always</emphasis> run it first " 1.15667 @@ -16436,7 +15514,7 @@ 1.15668 msgstr "" 1.15669 1.15670 #. type: Content of: <book><chapter><sect1><para> 1.15671 -#: ../en/ch14-hgext.xml:452 1.15672 +#: ../en/ch13-hgext.xml:450 1.15673 msgid "" 1.15674 "The <command role=\"hg-ext-patchbomb\">email</command> command accepts the " 1.15675 "same kind of revision syntax as every other Mercurial command. For example, " 1.15676 @@ -16445,7 +15523,7 @@ 1.15677 msgstr "" 1.15678 1.15679 #. type: Content of: <book><chapter><sect1><para> 1.15680 -#: ../en/ch14-hgext.xml:457 1.15681 +#: ../en/ch13-hgext.xml:455 1.15682 msgid "" 1.15683 "You can also specify a <emphasis>repository</emphasis> to compare with. If " 1.15684 "you provide a repository but no revisions, the <command role=\"hg-ext-" 1.15685 @@ -16457,7 +15535,7 @@ 1.15686 msgstr "" 1.15687 1.15688 #. type: Content of: <book><chapter><sect1><para> 1.15689 -#: ../en/ch14-hgext.xml:466 1.15690 +#: ../en/ch13-hgext.xml:464 1.15691 msgid "" 1.15692 "It's perfectly safe to run the <command role=\"hg-ext-patchbomb\">email</" 1.15693 "command> command without the names of the people you want to send to: if you " 1.15694 @@ -16468,7 +15546,7 @@ 1.15695 msgstr "" 1.15696 1.15697 #. type: Content of: <book><chapter><sect1><para> 1.15698 -#: ../en/ch14-hgext.xml:474 1.15699 +#: ../en/ch13-hgext.xml:472 1.15700 msgid "" 1.15701 "When you are sending just one revision, the <command role=\"hg-ext-patchbomb" 1.15702 "\">email</command> command will by default use the first line of the " 1.15703 @@ -16476,7 +15554,7 @@ 1.15704 msgstr "" 1.15705 1.15706 #. type: Content of: <book><chapter><sect1><para> 1.15707 -#: ../en/ch14-hgext.xml:479 1.15708 +#: ../en/ch13-hgext.xml:477 1.15709 msgid "" 1.15710 "If you send multiple revisions, the <command role=\"hg-ext-patchbomb\">email</" 1.15711 "command> command will usually send one message per changeset. It will " 1.15712 @@ -16485,12 +15563,12 @@ 1.15713 msgstr "" 1.15714 1.15715 #. type: Content of: <book><chapter><sect1><sect2><title> 1.15716 -#: ../en/ch14-hgext.xml:486 1.15717 +#: ../en/ch13-hgext.xml:484 1.15718 msgid "Changing the behaviour of patchbombs" 1.15719 msgstr "修改 patchbomb 的行为" 1.15720 1.15721 #. type: Content of: <book><chapter><sect1><sect2><para> 1.15722 -#: ../en/ch14-hgext.xml:488 1.15723 +#: ../en/ch13-hgext.xml:486 1.15724 msgid "" 1.15725 "Not every project has exactly the same conventions for sending changes in " 1.15726 "email; the <literal role=\"hg-ext\">patchbomb</literal> extension tries to " 1.15727 @@ -16498,7 +15576,7 @@ 1.15728 msgstr "" 1.15729 1.15730 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15731 -#: ../en/ch14-hgext.xml:494 1.15732 +#: ../en/ch13-hgext.xml:492 1.15733 msgid "" 1.15734 "You can write a subject for the introductory message on the command line " 1.15735 "using the <option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -s</option> " 1.15736 @@ -16506,7 +15584,7 @@ 1.15737 msgstr "" 1.15738 1.15739 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15740 -#: ../en/ch14-hgext.xml:500 1.15741 +#: ../en/ch13-hgext.xml:498 1.15742 msgid "" 1.15743 "To change the email address from which the messages originate, use the " 1.15744 "<option role=\"hg-ext-patchbomb-cmd-email-opt\">hg -f</option> option. This " 1.15745 @@ -16514,7 +15592,7 @@ 1.15746 msgstr "" 1.15747 1.15748 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15749 -#: ../en/ch14-hgext.xml:506 1.15750 +#: ../en/ch13-hgext.xml:504 1.15751 msgid "" 1.15752 "The default behaviour is to send unified diffs (see section <xref linkend=" 1.15753 "\"sec.mq.patch\"/> for a description of the format), one per message. You " 1.15754 @@ -16523,7 +15601,7 @@ 1.15755 msgstr "" 1.15756 1.15757 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15758 -#: ../en/ch14-hgext.xml:514 1.15759 +#: ../en/ch13-hgext.xml:512 1.15760 msgid "" 1.15761 "Unified diffs are normally prefaced with a metadata header. You can omit " 1.15762 "this, and send unadorned diffs, with the <option role=\"hg-ext-patchbomb-cmd-" 1.15763 @@ -16531,7 +15609,7 @@ 1.15764 msgstr "" 1.15765 1.15766 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15767 -#: ../en/ch14-hgext.xml:520 1.15768 +#: ../en/ch13-hgext.xml:518 1.15769 msgid "" 1.15770 "Diffs are normally sent <quote>inline</quote>, in the same body part as the " 1.15771 "description of a patch. This makes it easiest for the largest number of " 1.15772 @@ -16542,7 +15620,7 @@ 1.15773 msgstr "" 1.15774 1.15775 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15776 -#: ../en/ch14-hgext.xml:530 1.15777 +#: ../en/ch13-hgext.xml:528 1.15778 msgid "" 1.15779 "Instead of sending mail messages, you can write them to an <literal>mbox</" 1.15780 "literal>-format mail folder using the <option role=\"hg-ext-patchbomb-cmd-" 1.15781 @@ -16551,7 +15629,7 @@ 1.15782 msgstr "" 1.15783 1.15784 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.15785 -#: ../en/ch14-hgext.xml:537 1.15786 +#: ../en/ch13-hgext.xml:535 1.15787 msgid "" 1.15788 "If you would like to add a <command>diffstat</command>-format summary to each " 1.15789 "patch, and one to the introductory message, use the <option role=\"hg-ext-" 1.15790 @@ -16560,3 +15638,60 @@ 1.15791 "the number of lines affected, and a histogram showing how much each file is " 1.15792 "modified. This gives readers a qualitative glance at how complex a patch is." 1.15793 msgstr "" 1.15794 + 1.15795 +#~ msgid "Introduction" 1.15796 +#~ msgstr "简介" 1.15797 + 1.15798 +#~ msgid "About revision control" 1.15799 +#~ msgstr "关于版本控制" 1.15800 + 1.15801 +#~ msgid "Why use revision control?" 1.15802 +#~ msgstr "为什么使用版本控制?" 1.15803 + 1.15804 +#~ msgid "The many names of revision control" 1.15805 +#~ msgstr "版本控制的别名" 1.15806 + 1.15807 +#~ msgid "Revision control (RCS)" 1.15808 +#~ msgstr "版本控制(RCS)" 1.15809 + 1.15810 +#~ msgid "Software configuration management (SCM), or configuration management" 1.15811 +#~ msgstr "软件配置管理(SCM),或配置管理" 1.15812 + 1.15813 +#~ msgid "Source code management" 1.15814 +#~ msgstr "源代码管理" 1.15815 + 1.15816 +#~ msgid "Source code control, or source control" 1.15817 +#~ msgstr "源代码控制,或源控制" 1.15818 + 1.15819 +#~ msgid "Version control (VCS)" 1.15820 +#~ msgstr "版本控制(VCS)" 1.15821 + 1.15822 +#~ msgid "A short history of revision control" 1.15823 +#~ msgstr "版本控制简史" 1.15824 + 1.15825 +#~ msgid "Trends in revision control" 1.15826 +#~ msgstr "版本控制的发展趋势" 1.15827 + 1.15828 +#~ msgid "A few of the advantages of distributed revision control" 1.15829 +#~ msgstr "分布版本控制的优点" 1.15830 + 1.15831 +#~ msgid "Advantages for open source projects" 1.15832 +#~ msgstr "开源项目的优点" 1.15833 + 1.15834 +#~ msgid "Advantages for commercial projects" 1.15835 +#~ msgstr "商业项目的优点" 1.15836 + 1.15837 +#~ msgid "Why choose Mercurial?" 1.15838 +#~ msgstr "为什么选择 Mercurial?" 1.15839 + 1.15840 +#~ msgid "Mercurial compared with other tools" 1.15841 +#~ msgstr "Mercurial 与其它工具的比较" 1.15842 + 1.15843 +#~ msgid "Commercial tools" 1.15844 +#~ msgstr "商业工具" 1.15845 + 1.15846 +#~ msgid "Choosing a revision control tool" 1.15847 +#~ msgstr "选择版本控制工具" 1.15848 + 1.15849 +#~ msgid "Switching from another tool to Mercurial" 1.15850 +#~ msgstr "从其它工具切换到 Mercurial"