hgbook
changeset 710:8613844dd2cf
Update po files with source xml files
author | Dongsheng Song <songdongsheng@live.cn> |
---|---|
date | Sat Apr 18 10:09:11 2009 +0800 (2009-04-18) |
parents | 29f0f79cf614 |
children | 364d2ce9e055 |
files | po/zh.po |
line diff
1.1 --- a/po/zh.po Thu Apr 16 23:46:45 2009 -0700 1.2 +++ b/po/zh.po Sat Apr 18 10:09:11 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-04-05 11:48+0800\n" 1.8 +"POT-Creation-Date: 2009-04-18 10:05+0800\n" 1.9 "PO-Revision-Date: 2009-04-05 12:10+0800\n" 1.10 "Last-Translator: 宋冬生 <songdonogsheng@live.cn>\n" 1.11 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n" 1.12 @@ -349,7 +349,7 @@ 1.13 "If <command role=\"hg-ext-mq\">qnew</command> finds modified files in the " 1.14 "working directory, it will refuse to create a new patch unless the <option " 1.15 "role=\"hg-ext-mq-cmd-qnew-opt\">-f</option> option is used (see below). This " 1.16 -"behaviour allows you to <command role=\"hg-ext-mq\">qrefresh</command> your " 1.17 +"behavior allows you to <command role=\"hg-ext-mq\">qrefresh</command> your " 1.18 "topmost applied patch before you apply a new patch on top of it." 1.19 msgstr "" 1.20 1.21 @@ -436,7 +436,7 @@ 1.22 msgid "" 1.23 "By default, the <command role=\"hg-ext-mq\">qpop</command> command will not " 1.24 "pop any patches if the working directory has been modified. You can override " 1.25 -"this behaviour using the <option role=\"hg-ext-mq-cmd-qpop-opt\">-f</option> " 1.26 +"this behavior using the <option role=\"hg-ext-mq-cmd-qpop-opt\">-f</option> " 1.27 "option, which reverts all modifications in the working directory." 1.28 msgstr "" 1.29 1.30 @@ -1420,7 +1420,7 @@ 1.31 #: ../en/ch00-preface.xml:153 1.32 msgid "" 1.33 "The advantage of this approach is that the examples are always accurate; they " 1.34 -"describe <emphasis>exactly</emphasis> the behaviour of the version of " 1.35 +"describe <emphasis>exactly</emphasis> the behavior of the version of " 1.36 "Mercurial that's mentioned at the front of the book. If I update the version " 1.37 "of Mercurial that I'm documenting, and the output of some command changes, " 1.38 "the build fails." 1.39 @@ -1451,7 +1451,7 @@ 1.40 msgid "" 1.41 "So when you're reading examples, don't place too much weight on the dates or " 1.42 "times you see in the output of commands. But <emphasis>do</emphasis> be " 1.43 -"confident that the behaviour you're seeing is consistent and reproducible." 1.44 +"confident that the behavior you're seeing is consistent and reproducible." 1.45 msgstr "" 1.46 1.47 #. type: Content of: <book><preface><sect1><title> 1.48 @@ -2579,7 +2579,7 @@ 1.49 1.50 #. type: Content of: <book><chapter><sect1><figure> 1.51 #: ../en/ch01-tour-basic.xml:259 ../en/ch02-tour-merge.xml:50 1.52 -#: ../en/ch02-tour-merge.xml:181 ../en/ch03-concepts.xml:293 1.53 +#: ../en/ch02-tour-merge.xml:188 ../en/ch03-concepts.xml:295 1.54 msgid "<placeholder type=\"mediaobject\" id=\"0\"/>" 1.55 msgstr "" 1.56 1.57 @@ -2591,13 +2591,13 @@ 1.58 1.59 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject><textobject><phrase> 1.60 #: ../en/ch01-tour-basic.xml:261 ../en/ch02-tour-merge.xml:52 1.61 -#: ../en/ch02-tour-merge.xml:82 ../en/ch02-tour-merge.xml:129 1.62 -#: ../en/ch02-tour-merge.xml:183 ../en/ch02-tour-merge.xml:254 1.63 -#: ../en/ch03-concepts.xml:57 ../en/ch03-concepts.xml:106 1.64 -#: ../en/ch03-concepts.xml:191 ../en/ch03-concepts.xml:295 1.65 -#: ../en/ch03-concepts.xml:346 ../en/ch03-concepts.xml:361 1.66 -#: ../en/ch03-concepts.xml:402 ../en/ch03-concepts.xml:422 1.67 -#: ../en/ch03-concepts.xml:465 ../en/ch05-collab.xml:276 1.68 +#: ../en/ch02-tour-merge.xml:82 ../en/ch02-tour-merge.xml:163 1.69 +#: ../en/ch02-tour-merge.xml:190 ../en/ch02-tour-merge.xml:260 1.70 +#: ../en/ch03-concepts.xml:59 ../en/ch03-concepts.xml:108 1.71 +#: ../en/ch03-concepts.xml:193 ../en/ch03-concepts.xml:297 1.72 +#: ../en/ch03-concepts.xml:348 ../en/ch03-concepts.xml:363 1.73 +#: ../en/ch03-concepts.xml:404 ../en/ch03-concepts.xml:424 1.74 +#: ../en/ch03-concepts.xml:467 ../en/ch05-collab.xml:322 1.75 #: ../en/ch08-undo.xml:365 ../en/ch08-undo.xml:412 ../en/ch08-undo.xml:477 1.76 #: ../en/ch08-undo.xml:515 ../en/ch11-mq.xml:412 1.77 msgid "XXX add text" 1.78 @@ -3040,7 +3040,7 @@ 1.79 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.80 #: ../en/ch01-tour-basic.xml:592 1.81 msgid "" 1.82 -"To set a user name, use your favourite editor to create a file called " 1.83 +"To set a user name, use your favorite editor to create a file called " 1.84 "<filename role=\"special\">.hgrc</filename> in your home directory. " 1.85 "Mercurial will use this file to look up your personalised configuration " 1.86 "settings. The initial contents of your <filename role=\"special\">.hgrc</" 1.87 @@ -3540,12 +3540,12 @@ 1.88 "\"directory\">my-new-hello</filename> 之后版本库的内容" 1.89 1.90 #. type: Content of: <book><chapter><sect1><sect2><figure> 1.91 -#: ../en/ch02-tour-merge.xml:78 ../en/ch02-tour-merge.xml:125 1.92 -#: ../en/ch02-tour-merge.xml:250 ../en/ch03-concepts.xml:55 1.93 -#: ../en/ch03-concepts.xml:104 ../en/ch03-concepts.xml:189 1.94 -#: ../en/ch03-concepts.xml:344 ../en/ch03-concepts.xml:359 1.95 -#: ../en/ch03-concepts.xml:400 ../en/ch03-concepts.xml:420 1.96 -#: ../en/ch03-concepts.xml:461 ../en/ch05-collab.xml:274 1.97 +#: ../en/ch02-tour-merge.xml:78 ../en/ch02-tour-merge.xml:159 1.98 +#: ../en/ch02-tour-merge.xml:256 ../en/ch03-concepts.xml:57 1.99 +#: ../en/ch03-concepts.xml:106 ../en/ch03-concepts.xml:191 1.100 +#: ../en/ch03-concepts.xml:346 ../en/ch03-concepts.xml:361 1.101 +#: ../en/ch03-concepts.xml:402 ../en/ch03-concepts.xml:422 1.102 +#: ../en/ch03-concepts.xml:463 ../en/ch05-collab.xml:320 1.103 #: ../en/ch08-undo.xml:363 ../en/ch08-undo.xml:410 ../en/ch08-undo.xml:475 1.104 #: ../en/ch08-undo.xml:513 ../en/ch11-mq.xml:410 1.105 msgid " <placeholder type=\"mediaobject\" id=\"0\"/>" 1.106 @@ -3590,25 +3590,13 @@ 1.107 msgid "" 1.108 "Mercurial is telling us that the <command role=\"hg-cmd\">hg update</command> " 1.109 "command won't do a merge; it won't update the working directory when it " 1.110 -"thinks we might be wanting to do a merge, unless we force it to do so. " 1.111 -"Instead, we use the <command role=\"hg-cmd\">hg merge</command> command to " 1.112 -"merge the two heads." 1.113 -msgstr "" 1.114 - 1.115 -#. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.116 -#: ../en/ch02-tour-merge.xml:123 1.117 -msgid "Working directory and repository during merge, and following commit" 1.118 -msgstr "在合并期间,以及提交之后的工作目录与版本库" 1.119 - 1.120 -#. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.121 -#: ../en/ch02-tour-merge.xml:126 1.122 -msgid "" 1.123 -"<imageobject> <imagedata fileref=\"figs/tour-merge-merge.png\"/> </" 1.124 -"imageobject>" 1.125 -msgstr "" 1.126 - 1.127 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.128 -#: ../en/ch02-tour-merge.xml:133 1.129 +"thinks we might want to do a merge, unless we force it to do so. Instead, we " 1.130 +"use the <command role=\"hg-cmd\">hg merge</command> command to merge the two " 1.131 +"heads." 1.132 +msgstr "" 1.133 + 1.134 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.135 +#: ../en/ch02-tour-merge.xml:122 1.136 msgid "" 1.137 "This updates the working directory so that it contains changes from " 1.138 "<emphasis>both</emphasis> heads, which is reflected in both the output of " 1.139 @@ -3617,12 +3605,12 @@ 1.140 msgstr "" 1.141 1.142 #. type: Content of: <book><chapter><sect1><sect2><title> 1.143 -#: ../en/ch02-tour-merge.xml:143 1.144 +#: ../en/ch02-tour-merge.xml:132 1.145 msgid "Committing the results of the merge" 1.146 msgstr "提交合并结果" 1.147 1.148 #. type: Content of: <book><chapter><sect1><sect2><para> 1.149 -#: ../en/ch02-tour-merge.xml:145 1.150 +#: ../en/ch02-tour-merge.xml:134 1.151 msgid "" 1.152 "Whenever we've done a merge, <command role=\"hg-cmd\">hg parents</command> " 1.153 "will display two parents until we <command role=\"hg-cmd\">hg commit</" 1.154 @@ -3630,7 +3618,7 @@ 1.155 msgstr "" 1.156 1.157 #. type: Content of: <book><chapter><sect1><sect2><para> 1.158 -#: ../en/ch02-tour-merge.xml:152 1.159 +#: ../en/ch02-tour-merge.xml:141 1.160 msgid "" 1.161 "We now have a new tip revision; notice that it has <emphasis>both</emphasis> " 1.162 "of our former heads as its parents. These are the same revisions that were " 1.163 @@ -3638,7 +3626,7 @@ 1.164 msgstr "" 1.165 1.166 #. type: Content of: <book><chapter><sect1><sect2><para> 1.167 -#: ../en/ch02-tour-merge.xml:159 1.168 +#: ../en/ch02-tour-merge.xml:148 1.169 msgid "" 1.170 "In <xref linkend=\"fig:tour-merge:merge\"/>, you can see a representation of " 1.171 "what happens to the working directory during the merge, and how this affects " 1.172 @@ -3647,35 +3635,57 @@ 1.173 "changeset." 1.174 msgstr "" 1.175 1.176 +#. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.177 +#: ../en/ch02-tour-merge.xml:157 1.178 +msgid "Working directory and repository during merge, and following commit" 1.179 +msgstr "在合并期间,以及提交之后的工作目录与版本库" 1.180 + 1.181 +#. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.182 +#: ../en/ch02-tour-merge.xml:160 1.183 +msgid "" 1.184 +"<imageobject> <imagedata fileref=\"figs/tour-merge-merge.png\"/> </" 1.185 +"imageobject>" 1.186 +msgstr "" 1.187 + 1.188 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.189 +#: ../en/ch02-tour-merge.xml:167 1.190 +msgid "" 1.191 +"We sometimes talk about a merge having <emphasis>sides</emphasis>: the left " 1.192 +"side is the first parent in the output of <command role=\"hg-cmd\">hg " 1.193 +"parents</command>, and the right side is the second. If the working " 1.194 +"directory was at e.g. revision 5 before we began a merge, that revision will " 1.195 +"become the left side of the merge." 1.196 +msgstr "" 1.197 + 1.198 #. type: Content of: <book><chapter><sect1><title> 1.199 -#: ../en/ch02-tour-merge.xml:170 1.200 +#: ../en/ch02-tour-merge.xml:177 1.201 msgid "Merging conflicting changes" 1.202 msgstr "合并有冲突的改变" 1.203 1.204 #. type: Content of: <book><chapter><sect1><para> 1.205 -#: ../en/ch02-tour-merge.xml:172 1.206 +#: ../en/ch02-tour-merge.xml:179 1.207 msgid "" 1.208 "Most merges are simple affairs, but sometimes you'll find yourself merging " 1.209 -"changes where each modifies the same portions of the same files. Unless both " 1.210 -"modifications are identical, this results in a <emphasis>conflict</emphasis>, " 1.211 -"where you have to decide how to reconcile the different changes into " 1.212 -"something coherent." 1.213 +"changes where each side modifies the same portions of the same files. Unless " 1.214 +"both modifications are identical, this results in a <emphasis>conflict</" 1.215 +"emphasis>, where you have to decide how to reconcile the different changes " 1.216 +"into something coherent." 1.217 msgstr "" 1.218 1.219 #. type: Content of: <book><chapter><sect1><figure><title> 1.220 -#: ../en/ch02-tour-merge.xml:180 1.221 +#: ../en/ch02-tour-merge.xml:187 1.222 msgid "Conflicting changes to a document" 1.223 msgstr "冲突的修改" 1.224 1.225 #. type: Content of: <book><chapter><sect1><figure><mediaobject> 1.226 -#: ../en/ch02-tour-merge.xml:182 1.227 +#: ../en/ch02-tour-merge.xml:189 1.228 msgid "" 1.229 "<imageobject><imagedata fileref=\"figs/tour-merge-conflict.png\"/></" 1.230 "imageobject>" 1.231 msgstr "" 1.232 1.233 #. type: Content of: <book><chapter><sect1><para> 1.234 -#: ../en/ch02-tour-merge.xml:187 1.235 +#: ../en/ch02-tour-merge.xml:194 1.236 msgid "" 1.237 "<xref linkend=\"fig:tour-merge:conflict\"/> illustrates an instance of two " 1.238 "conflicting changes to a document. We started with a single version of the " 1.239 @@ -3685,20 +3695,19 @@ 1.240 msgstr "" 1.241 1.242 #. type: Content of: <book><chapter><sect1><para> 1.243 -#: ../en/ch02-tour-merge.xml:194 1.244 +#: ../en/ch02-tour-merge.xml:201 1.245 msgid "" 1.246 "Mercurial doesn't have a built-in facility for handling conflicts. Instead, " 1.247 -"it runs an external program called <command>hgmerge</command>. This is a " 1.248 -"shell script that is bundled with Mercurial; you can change it to behave " 1.249 -"however you please. What it does by default is try to find one of several " 1.250 -"different merging tools that are likely to be installed on your system. It " 1.251 -"first tries a few fully automatic merging tools; if these don't succeed " 1.252 -"(because the resolution process requires human guidance) or aren't present, " 1.253 -"the script tries a few different graphical merging tools." 1.254 -msgstr "" 1.255 - 1.256 -#. type: Content of: <book><chapter><sect1><para> 1.257 -#: ../en/ch02-tour-merge.xml:205 1.258 +"it runs an external program, usually one that displays some kind of graphical " 1.259 +"conflict resolution interface. By default, Mercurial tries to find one of " 1.260 +"several different merging tools that are likely to be installed on your " 1.261 +"system. It first tries a few fully automatic merging tools; if these don't " 1.262 +"succeed (because the resolution process requires human guidance) or aren't " 1.263 +"present, it tries a few different graphical merging tools." 1.264 +msgstr "" 1.265 + 1.266 +#. type: Content of: <book><chapter><sect1><para> 1.267 +#: ../en/ch02-tour-merge.xml:211 1.268 msgid "" 1.269 "It's also possible to get Mercurial to run another program or script instead " 1.270 "of <command>hgmerge</command>, by setting the <envar>HGMERGE</envar> " 1.271 @@ -3706,12 +3715,12 @@ 1.272 msgstr "" 1.273 1.274 #. type: Content of: <book><chapter><sect1><sect2><title> 1.275 -#: ../en/ch02-tour-merge.xml:211 1.276 +#: ../en/ch02-tour-merge.xml:217 1.277 msgid "Using a graphical merge tool" 1.278 msgstr "使用图形合并工具" 1.279 1.280 #. type: Content of: <book><chapter><sect1><sect2><para> 1.281 -#: ../en/ch02-tour-merge.xml:213 1.282 +#: ../en/ch02-tour-merge.xml:219 1.283 msgid "" 1.284 "My preferred graphical merge tool is <command>kdiff3</command>, which I'll " 1.285 "use to describe the features that are common to graphical file merging " 1.286 @@ -3723,7 +3732,7 @@ 1.287 msgstr "" 1.288 1.289 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.290 -#: ../en/ch02-tour-merge.xml:223 1.291 +#: ../en/ch02-tour-merge.xml:229 1.292 msgid "" 1.293 "At the left is the <emphasis>base</emphasis> version of the file, i.e. the " 1.294 "most recent version from which the two versions we're trying to merge are " 1.295 @@ -3731,21 +3740,21 @@ 1.296 msgstr "" 1.297 1.298 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.299 -#: ../en/ch02-tour-merge.xml:228 1.300 +#: ../en/ch02-tour-merge.xml:234 1.301 msgid "" 1.302 "In the middle is <quote>our</quote> version of the file, with the contents " 1.303 "that we modified." 1.304 msgstr "" 1.305 1.306 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.307 -#: ../en/ch02-tour-merge.xml:231 1.308 +#: ../en/ch02-tour-merge.xml:237 1.309 msgid "" 1.310 "On the right is <quote>their</quote> version of the file, the one that from " 1.311 "the changeset that we're trying to merge with." 1.312 msgstr "" 1.313 1.314 #. type: Content of: <book><chapter><sect1><sect2><para> 1.315 -#: ../en/ch02-tour-merge.xml:235 1.316 +#: ../en/ch02-tour-merge.xml:241 1.317 msgid "" 1.318 "In the pane below these is the current <emphasis>result</emphasis> of the " 1.319 "merge. Our task is to replace all of the red text, which indicates unresolved " 1.320 @@ -3754,7 +3763,7 @@ 1.321 msgstr "" 1.322 1.323 #. type: Content of: <book><chapter><sect1><sect2><para> 1.324 -#: ../en/ch02-tour-merge.xml:242 1.325 +#: ../en/ch02-tour-merge.xml:248 1.326 msgid "" 1.327 "All four of these panes are <emphasis>locked together</emphasis>; if we " 1.328 "scroll vertically or horizontally in any of them, the others are updated to " 1.329 @@ -3762,19 +3771,19 @@ 1.330 msgstr "" 1.331 1.332 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.333 -#: ../en/ch02-tour-merge.xml:248 1.334 +#: ../en/ch02-tour-merge.xml:254 1.335 msgid "Using <command>kdiff3</command> to merge versions of a file" 1.336 msgstr "使用 <command>kdiff3</command> 合并文件的不同版本" 1.337 1.338 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.339 -#: ../en/ch02-tour-merge.xml:251 1.340 +#: ../en/ch02-tour-merge.xml:257 1.341 msgid "" 1.342 "<imageobject> <imagedata width=\"100%\" fileref=\"figs/kdiff3.png\"/></" 1.343 "imageobject>" 1.344 msgstr "" 1.345 1.346 #. type: Content of: <book><chapter><sect1><sect2><para> 1.347 -#: ../en/ch02-tour-merge.xml:259 1.348 +#: ../en/ch02-tour-merge.xml:265 1.349 msgid "" 1.350 "For each conflicting portion of the file, we can choose to resolve the " 1.351 "conflict using some combination of text from the base version, ours, or " 1.352 @@ -3783,7 +3792,7 @@ 1.353 msgstr "" 1.354 1.355 #. type: Content of: <book><chapter><sect1><sect2><para> 1.356 -#: ../en/ch02-tour-merge.xml:265 1.357 +#: ../en/ch02-tour-merge.xml:271 1.358 msgid "" 1.359 "There are <emphasis>many</emphasis> file merging tools available, too many to " 1.360 "cover here. They vary in which platforms they are available for, and in " 1.361 @@ -3793,12 +3802,12 @@ 1.362 msgstr "" 1.363 1.364 #. type: Content of: <book><chapter><sect1><sect2><title> 1.365 -#: ../en/ch02-tour-merge.xml:274 1.366 +#: ../en/ch02-tour-merge.xml:280 1.367 msgid "A worked example" 1.368 msgstr "合并实例" 1.369 1.370 #. type: Content of: <book><chapter><sect1><sect2><para> 1.371 -#: ../en/ch02-tour-merge.xml:276 1.372 +#: ../en/ch02-tour-merge.xml:282 1.373 msgid "" 1.374 "In this example, we will reproduce the file modification history of <xref " 1.375 "linkend=\"fig:tour-merge:conflict\"/> above. Let's begin by creating a " 1.376 @@ -3806,12 +3815,12 @@ 1.377 msgstr "" 1.378 1.379 #. type: Content of: <book><chapter><sect1><sect2><para> 1.380 -#: ../en/ch02-tour-merge.xml:283 1.381 +#: ../en/ch02-tour-merge.xml:289 1.382 msgid "We'll clone the repository and make a change to the file." 1.383 msgstr "" 1.384 1.385 #. type: Content of: <book><chapter><sect1><sect2><para> 1.386 -#: ../en/ch02-tour-merge.xml:288 1.387 +#: ../en/ch02-tour-merge.xml:294 1.388 msgid "" 1.389 "And another clone, to simulate someone else making a change to the file. " 1.390 "(This hints at the idea that it's not all that unusual to merge with yourself " 1.391 @@ -3820,27 +3829,19 @@ 1.392 msgstr "" 1.393 1.394 #. type: Content of: <book><chapter><sect1><sect2><para> 1.395 -#: ../en/ch02-tour-merge.xml:296 1.396 +#: ../en/ch02-tour-merge.xml:302 1.397 msgid "" 1.398 "Having created two different versions of the file, we'll set up an " 1.399 "environment suitable for running our merge." 1.400 msgstr "" 1.401 1.402 #. type: Content of: <book><chapter><sect1><sect2><para> 1.403 -#: ../en/ch02-tour-merge.xml:302 1.404 -msgid "" 1.405 -"In this example, I won't use Mercurial's normal <command>hgmerge</command> " 1.406 -"program to do the merge, because it would drop my nice automated example-" 1.407 -"running tool into a graphical user interface. Instead, I'll set " 1.408 -"<envar>HGMERGE</envar> to tell Mercurial to use the non-interactive " 1.409 -"<command>merge</command> command. This is bundled with many Unix-like " 1.410 -"systems. If you're following this example on your computer, don't bother " 1.411 -"setting <envar>HGMERGE</envar>." 1.412 -msgstr "" 1.413 - 1.414 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.415 -#: ../en/ch02-tour-merge.xml:312 1.416 -msgid "<emphasis role=\"bold\">XXX FIX THIS EXAMPLE.</emphasis>" 1.417 +#: ../en/ch02-tour-merge.xml:308 1.418 +msgid "" 1.419 +"In this example, I'll set <envar>HGMERGE</envar> to tell Mercurial to use the " 1.420 +"non-interactive <command>merge</command> command. This is bundled with many " 1.421 +"Unix-like systems. (If you're following this example on your computer, don't " 1.422 +"bother setting <envar>HGMERGE</envar>.)" 1.423 msgstr "" 1.424 1.425 #. type: Content of: <book><chapter><sect1><sect2><para> 1.426 @@ -3913,30 +3914,32 @@ 1.427 msgid "" 1.428 "The <literal role=\"hg-ext\">fetch</literal> extension adds a new command " 1.429 "called, not surprisingly, <command role=\"hg-cmd\">hg fetch</command>. This " 1.430 -"extension acts as a combination of <command role=\"hg-cmd\">hg pull</" 1.431 -"command>, <command role=\"hg-cmd\">hg update</command> and <command role=\"hg-" 1.432 -"cmd\">hg merge</command>. It begins by pulling changes from another " 1.433 +"extension acts as a combination of <command role=\"hg-cmd\">hg pull -u</" 1.434 +"command>, <command role=\"hg-cmd\">hg merge</command> and <command role=\"hg-" 1.435 +"cmd\">hg commit</command>. It begins by pulling changes from another " 1.436 "repository into the current repository. If it finds that the changes added a " 1.437 -"new head to the repository, it begins a merge, then commits the result of the " 1.438 -"merge with an automatically-generated commit message. If no new heads were " 1.439 -"added, it updates the working directory to the new tip changeset." 1.440 +"new head to the repository, it begins a merge, then (if the merge succeeded) " 1.441 +"commits the result of the merge with an automatically-generated commit " 1.442 +"message. If no new heads were added, it updates the working directory to the " 1.443 +"new tip changeset." 1.444 msgstr "" 1.445 1.446 #. type: Content of: <book><chapter><sect1><para> 1.447 #: ../en/ch02-tour-merge.xml:376 1.448 msgid "" 1.449 "Enabling the <literal role=\"hg-ext\">fetch</literal> extension is easy. " 1.450 -"Edit your <filename role=\"special\">.hgrc</filename>, and either go to the " 1.451 -"<literal role=\"rc-extensions\">extensions</literal> section or create an " 1.452 -"<literal role=\"rc-extensions\">extensions</literal> section. Then add a line " 1.453 -"that simply reads <quote><literal>fetch </literal></quote>." 1.454 -msgstr "" 1.455 - 1.456 -#. type: Content of: <book><chapter><sect1><para> 1.457 -#: ../en/ch02-tour-merge.xml:385 1.458 -msgid "" 1.459 -"(Normally, on the right-hand side of the <quote><literal>=</literal></quote> " 1.460 -"would appear the location of the extension, but since the <literal role=\"hg-" 1.461 +"Edit the <filename role=\"special\">.hgrc</filename> file in your home " 1.462 +"directory, and either go to the <literal role=\"rc-extensions\">extensions</" 1.463 +"literal> section or create an <literal role=\"rc-extensions\">extensions</" 1.464 +"literal> section. Then add a line that simply reads <quote><literal>fetch=</" 1.465 +"literal></quote>." 1.466 +msgstr "" 1.467 + 1.468 +#. type: Content of: <book><chapter><sect1><para> 1.469 +#: ../en/ch02-tour-merge.xml:388 1.470 +msgid "" 1.471 +"(Normally, the right-hand side of the <quote><literal>=</literal></quote> " 1.472 +"would indicate where to find the extension, but since the <literal role=\"hg-" 1.473 "ext\">fetch</literal> extension is in the standard distribution, Mercurial " 1.474 "knows where to search for it.)" 1.475 msgstr "" 1.476 @@ -3951,22 +3954,24 @@ 1.477 msgid "" 1.478 "Unlike many revision control systems, the concepts upon which Mercurial is " 1.479 "built are simple enough that it's easy to understand how the software really " 1.480 -"works. Knowing this certainly isn't necessary, but I find it useful to have " 1.481 -"a <quote>mental model</quote> of what's going on." 1.482 +"works. Knowing these details certainly isn't necessary, so it is certainly " 1.483 +"safe to skip this chapter. However, I think you will get more out of the " 1.484 +"software with a <quote>mental model</quote> of what's going on." 1.485 msgstr "" 1.486 1.487 #. type: Content of: <book><chapter><para> 1.488 -#: ../en/ch03-concepts.xml:13 1.489 -msgid "" 1.490 -"This understanding gives me confidence that Mercurial has been carefully " 1.491 -"designed to be both <emphasis>safe</emphasis> and <emphasis>efficient</" 1.492 -"emphasis>. And just as importantly, if it's easy for me to retain a good " 1.493 -"idea of what the software is doing when I perform a revision control task, " 1.494 -"I'm less likely to be surprised by its behaviour." 1.495 +#: ../en/ch03-concepts.xml:14 1.496 +msgid "" 1.497 +"Being able to understand what's going on behind the scenes gives me " 1.498 +"confidence that Mercurial has been carefully designed to be both " 1.499 +"<emphasis>safe</emphasis> and <emphasis>efficient</emphasis>. And just as " 1.500 +"importantly, if it's easy for me to retain a good idea of what the software " 1.501 +"is doing when I perform a revision control task, I'm less likely to be " 1.502 +"surprised by its behavior." 1.503 msgstr "" 1.504 1.505 #. type: Content of: <book><chapter><para> 1.506 -#: ../en/ch03-concepts.xml:20 1.507 +#: ../en/ch03-concepts.xml:22 1.508 msgid "" 1.509 "In this chapter, we'll initially cover the core concepts behind Mercurial's " 1.510 "design, then continue to discuss some of the interesting details of its " 1.511 @@ -3974,17 +3979,17 @@ 1.512 msgstr "" 1.513 1.514 #. type: Content of: <book><chapter><sect1><title> 1.515 -#: ../en/ch03-concepts.xml:25 1.516 +#: ../en/ch03-concepts.xml:27 1.517 msgid "Mercurial's historical record" 1.518 msgstr "Mercurial 的历史记录" 1.519 1.520 #. type: Content of: <book><chapter><sect1><sect2><title> 1.521 -#: ../en/ch03-concepts.xml:28 1.522 +#: ../en/ch03-concepts.xml:30 1.523 msgid "Tracking the history of a single file" 1.524 msgstr "跟踪单一文件的历史" 1.525 1.526 #. type: Content of: <book><chapter><sect1><sect2><para> 1.527 -#: ../en/ch03-concepts.xml:30 1.528 +#: ../en/ch03-concepts.xml:32 1.529 msgid "" 1.530 "When Mercurial tracks modifications to a file, it stores the history of that " 1.531 "file in a metadata object called a <emphasis>filelog</emphasis>. Each entry " 1.532 @@ -3996,7 +4001,7 @@ 1.533 msgstr "" 1.534 1.535 #. type: Content of: <book><chapter><sect1><sect2><para> 1.536 -#: ../en/ch03-concepts.xml:41 1.537 +#: ../en/ch03-concepts.xml:43 1.538 msgid "" 1.539 "A file that is large, or has a lot of history, has its filelog stored in " 1.540 "separate data (<quote><literal>.d</literal></quote> suffix) and index " 1.541 @@ -4008,23 +4013,23 @@ 1.542 msgstr "" 1.543 1.544 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.545 -#: ../en/ch03-concepts.xml:53 1.546 +#: ../en/ch03-concepts.xml:55 1.547 msgid "" 1.548 "Relationships between files in working directory and filelogs in repository" 1.549 msgstr "工作目录中的文件与版本库中的文件日志之间的关系" 1.550 1.551 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.552 -#: ../en/ch03-concepts.xml:56 1.553 +#: ../en/ch03-concepts.xml:58 1.554 msgid "<imageobject><imagedata fileref=\"figs/filelog.png\"/></imageobject>" 1.555 msgstr "" 1.556 1.557 #. type: Content of: <book><chapter><sect1><sect2><title> 1.558 -#: ../en/ch03-concepts.xml:63 1.559 +#: ../en/ch03-concepts.xml:65 1.560 msgid "Managing tracked files" 1.561 msgstr "管理跟踪的文件" 1.562 1.563 #. type: Content of: <book><chapter><sect1><sect2><para> 1.564 -#: ../en/ch03-concepts.xml:65 1.565 +#: ../en/ch03-concepts.xml:67 1.566 msgid "" 1.567 "Mercurial uses a structure called a <emphasis>manifest</emphasis> to collect " 1.568 "together information about the files that it tracks. Each entry in the " 1.569 @@ -4034,12 +4039,12 @@ 1.570 msgstr "" 1.571 1.572 #. type: Content of: <book><chapter><sect1><sect2><title> 1.573 -#: ../en/ch03-concepts.xml:75 1.574 +#: ../en/ch03-concepts.xml:77 1.575 msgid "Recording changeset information" 1.576 msgstr "记录修改集信息" 1.577 1.578 #. type: Content of: <book><chapter><sect1><sect2><para> 1.579 -#: ../en/ch03-concepts.xml:77 1.580 +#: ../en/ch03-concepts.xml:79 1.581 msgid "" 1.582 "The <emphasis>changelog</emphasis> contains information about each " 1.583 "changeset. Each revision records who committed a change, the changeset " 1.584 @@ -4048,12 +4053,12 @@ 1.585 msgstr "" 1.586 1.587 #. type: Content of: <book><chapter><sect1><sect2><title> 1.588 -#: ../en/ch03-concepts.xml:85 1.589 +#: ../en/ch03-concepts.xml:87 1.590 msgid "Relationships between revisions" 1.591 msgstr "版本之间的关系" 1.592 1.593 #. type: Content of: <book><chapter><sect1><sect2><para> 1.594 -#: ../en/ch03-concepts.xml:87 1.595 +#: ../en/ch03-concepts.xml:89 1.596 msgid "" 1.597 "Within a changelog, a manifest, or a filelog, each revision stores a pointer " 1.598 "to its immediate parent (or to its two parents, if it's a merge revision). " 1.599 @@ -4063,7 +4068,7 @@ 1.600 msgstr "" 1.601 1.602 #. type: Content of: <book><chapter><sect1><sect2><para> 1.603 -#: ../en/ch03-concepts.xml:94 1.604 +#: ../en/ch03-concepts.xml:96 1.605 msgid "" 1.606 "For every changeset in a repository, there is exactly one revision stored in " 1.607 "the changelog. Each revision of the changelog contains a pointer to a single " 1.608 @@ -4074,17 +4079,17 @@ 1.609 msgstr "" 1.610 1.611 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.612 -#: ../en/ch03-concepts.xml:103 1.613 +#: ../en/ch03-concepts.xml:105 1.614 msgid "Metadata relationships" 1.615 msgstr "元数据之间的关系" 1.616 1.617 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.618 -#: ../en/ch03-concepts.xml:105 1.619 +#: ../en/ch03-concepts.xml:107 1.620 msgid "<imageobject><imagedata fileref=\"figs/metadata.png\"/></imageobject>" 1.621 msgstr "" 1.622 1.623 #. type: Content of: <book><chapter><sect1><sect2><para> 1.624 -#: ../en/ch03-concepts.xml:110 1.625 +#: ../en/ch03-concepts.xml:112 1.626 msgid "" 1.627 "As the illustration shows, there is <emphasis>not</emphasis> a <quote>one to " 1.628 "one</quote> relationship between revisions in the changelog, manifest, or " 1.629 @@ -4096,24 +4101,24 @@ 1.630 msgstr "" 1.631 1.632 #. type: Content of: <book><chapter><sect1><title> 1.633 -#: ../en/ch03-concepts.xml:123 1.634 +#: ../en/ch03-concepts.xml:125 1.635 msgid "Safe, efficient storage" 1.636 msgstr "安全,高效的存储" 1.637 1.638 #. type: Content of: <book><chapter><sect1><para> 1.639 -#: ../en/ch03-concepts.xml:125 1.640 +#: ../en/ch03-concepts.xml:127 1.641 msgid "" 1.642 "The underpinnings of changelogs, manifests, and filelogs are provided by a " 1.643 "single structure called the <emphasis>revlog</emphasis>." 1.644 msgstr "" 1.645 1.646 #. type: Content of: <book><chapter><sect1><sect2><title> 1.647 -#: ../en/ch03-concepts.xml:130 1.648 +#: ../en/ch03-concepts.xml:132 1.649 msgid "Efficient storage" 1.650 msgstr "高效存储" 1.651 1.652 #. type: Content of: <book><chapter><sect1><sect2><para> 1.653 -#: ../en/ch03-concepts.xml:132 1.654 +#: ../en/ch03-concepts.xml:134 1.655 msgid "" 1.656 "The revlog provides efficient storage of revisions using a <emphasis>delta</" 1.657 "emphasis> mechanism. Instead of storing a complete copy of a file for each " 1.658 @@ -4123,7 +4128,7 @@ 1.659 msgstr "" 1.660 1.661 #. type: Content of: <book><chapter><sect1><sect2><para> 1.662 -#: ../en/ch03-concepts.xml:140 1.663 +#: ../en/ch03-concepts.xml:142 1.664 msgid "" 1.665 "Some obsolete revision control systems can only work with deltas of text " 1.666 "files. They must either store binary files as complete snapshots or encoded " 1.667 @@ -4133,12 +4138,12 @@ 1.668 msgstr "" 1.669 1.670 #. type: Content of: <book><chapter><sect1><sect2><title> 1.671 -#: ../en/ch03-concepts.xml:149 1.672 +#: ../en/ch03-concepts.xml:151 1.673 msgid "Safe operation" 1.674 msgstr "安全操作" 1.675 1.676 #. type: Content of: <book><chapter><sect1><sect2><para> 1.677 -#: ../en/ch03-concepts.xml:151 1.678 +#: ../en/ch03-concepts.xml:153 1.679 msgid "" 1.680 "Mercurial only ever <emphasis>appends</emphasis> data to the end of a revlog " 1.681 "file. It never modifies a section of a file after it has written it. This is " 1.682 @@ -4147,7 +4152,7 @@ 1.683 msgstr "" 1.684 1.685 #. type: Content of: <book><chapter><sect1><sect2><para> 1.686 -#: ../en/ch03-concepts.xml:157 1.687 +#: ../en/ch03-concepts.xml:159 1.688 msgid "" 1.689 "In addition, Mercurial treats every write as part of a <emphasis>transaction</" 1.690 "emphasis> that can span a number of files. A transaction is " 1.691 @@ -4159,7 +4164,7 @@ 1.692 msgstr "" 1.693 1.694 #. type: Content of: <book><chapter><sect1><sect2><para> 1.695 -#: ../en/ch03-concepts.xml:167 1.696 +#: ../en/ch03-concepts.xml:169 1.697 msgid "" 1.698 "The fact that Mercurial only appends to files makes it easier to provide this " 1.699 "transactional guarantee. The easier it is to do stuff like this, the more " 1.700 @@ -4167,12 +4172,12 @@ 1.701 msgstr "" 1.702 1.703 #. type: Content of: <book><chapter><sect1><sect2><title> 1.704 -#: ../en/ch03-concepts.xml:174 1.705 +#: ../en/ch03-concepts.xml:176 1.706 msgid "Fast retrieval" 1.707 msgstr "快速检索" 1.708 1.709 #. type: Content of: <book><chapter><sect1><sect2><para> 1.710 -#: ../en/ch03-concepts.xml:176 1.711 +#: ../en/ch03-concepts.xml:178 1.712 msgid "" 1.713 "Mercurial cleverly avoids a pitfall common to all earlier revision control " 1.714 "systems: the problem of <emphasis>inefficient retrieval</emphasis>. Most " 1.715 @@ -4185,17 +4190,17 @@ 1.716 msgstr "" 1.717 1.718 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.719 -#: ../en/ch03-concepts.xml:188 1.720 +#: ../en/ch03-concepts.xml:190 1.721 msgid "Snapshot of a revlog, with incremental deltas" 1.722 msgstr "版本日志的快照,以及增量差异" 1.723 1.724 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.725 -#: ../en/ch03-concepts.xml:190 1.726 +#: ../en/ch03-concepts.xml:192 1.727 msgid "<imageobject><imagedata fileref=\"figs/snapshot.png\"/></imageobject>" 1.728 msgstr "" 1.729 1.730 #. type: Content of: <book><chapter><sect1><sect2><para> 1.731 -#: ../en/ch03-concepts.xml:195 1.732 +#: ../en/ch03-concepts.xml:197 1.733 msgid "" 1.734 "The innovation that Mercurial applies to this problem is simple but " 1.735 "effective. Once the cumulative amount of delta information stored since the " 1.736 @@ -4207,7 +4212,7 @@ 1.737 msgstr "" 1.738 1.739 #. type: Content of: <book><chapter><sect1><sect2><para> 1.740 -#: ../en/ch03-concepts.xml:204 1.741 +#: ../en/ch03-concepts.xml:206 1.742 msgid "" 1.743 "<xref linkend=\"fig:concepts:snapshot\"/> illustrates the idea. In an entry " 1.744 "in a revlog's index file, Mercurial stores the range of entries from the data " 1.745 @@ -4215,12 +4220,12 @@ 1.746 msgstr "" 1.747 1.748 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.749 -#: ../en/ch03-concepts.xml:210 1.750 +#: ../en/ch03-concepts.xml:212 1.751 msgid "Aside: the influence of video compression" 1.752 msgstr "旁白: 视频压缩的影响" 1.753 1.754 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.755 -#: ../en/ch03-concepts.xml:212 1.756 +#: ../en/ch03-concepts.xml:214 1.757 msgid "" 1.758 "If you're familiar with video compression or have ever watched a TV feed " 1.759 "through a digital cable or satellite service, you may know that most video " 1.760 @@ -4231,7 +4236,7 @@ 1.761 msgstr "" 1.762 1.763 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.764 -#: ../en/ch03-concepts.xml:221 1.765 +#: ../en/ch03-concepts.xml:223 1.766 msgid "" 1.767 "Because it's possible for a video stream to <quote>drop out</quote> " 1.768 "occasionally due to signal glitches, and to limit the accumulation of " 1.769 @@ -4244,12 +4249,12 @@ 1.770 msgstr "" 1.771 1.772 #. type: Content of: <book><chapter><sect1><sect2><title> 1.773 -#: ../en/ch03-concepts.xml:235 1.774 +#: ../en/ch03-concepts.xml:237 1.775 msgid "Identification and strong integrity" 1.776 msgstr "鉴别和强完整性" 1.777 1.778 #. type: Content of: <book><chapter><sect1><sect2><para> 1.779 -#: ../en/ch03-concepts.xml:237 1.780 +#: ../en/ch03-concepts.xml:239 1.781 msgid "" 1.782 "Along with delta or snapshot information, a revlog entry contains a " 1.783 "cryptographic hash of the data that it represents. This makes it difficult " 1.784 @@ -4257,7 +4262,7 @@ 1.785 msgstr "" 1.786 1.787 #. type: Content of: <book><chapter><sect1><sect2><para> 1.788 -#: ../en/ch03-concepts.xml:242 1.789 +#: ../en/ch03-concepts.xml:244 1.790 msgid "" 1.791 "Hashes provide more than a mere check against corruption; they are used as " 1.792 "the identifiers for revisions. The changeset identification hashes that you " 1.793 @@ -4266,7 +4271,7 @@ 1.794 msgstr "" 1.795 1.796 #. type: Content of: <book><chapter><sect1><sect2><para> 1.797 -#: ../en/ch03-concepts.xml:249 1.798 +#: ../en/ch03-concepts.xml:251 1.799 msgid "" 1.800 "Mercurial verifies that hashes are correct when it retrieves file revisions " 1.801 "and when it pulls changes from another repository. If it encounters an " 1.802 @@ -4274,7 +4279,7 @@ 1.803 msgstr "" 1.804 1.805 #. type: Content of: <book><chapter><sect1><sect2><para> 1.806 -#: ../en/ch03-concepts.xml:254 1.807 +#: ../en/ch03-concepts.xml:256 1.808 msgid "" 1.809 "In addition to the effect it has on retrieval efficiency, Mercurial's use of " 1.810 "periodic snapshots makes it more robust against partial data corruption. If " 1.811 @@ -4285,12 +4290,12 @@ 1.812 msgstr "" 1.813 1.814 #. type: Content of: <book><chapter><sect1><title> 1.815 -#: ../en/ch03-concepts.xml:266 1.816 +#: ../en/ch03-concepts.xml:268 1.817 msgid "Revision history, branching, and merging" 1.818 msgstr "修订历史,分支与合并" 1.819 1.820 #. type: Content of: <book><chapter><sect1><para> 1.821 -#: ../en/ch03-concepts.xml:268 1.822 +#: ../en/ch03-concepts.xml:270 1.823 msgid "" 1.824 "Every entry in a Mercurial revlog knows the identity of its immediate " 1.825 "ancestor revision, usually referred to as its <emphasis>parent</emphasis>. " 1.826 @@ -4301,7 +4306,7 @@ 1.827 msgstr "" 1.828 1.829 #. type: Content of: <book><chapter><sect1><para> 1.830 -#: ../en/ch03-concepts.xml:276 1.831 +#: ../en/ch03-concepts.xml:278 1.832 msgid "" 1.833 "In <xref linkend=\"fig:concepts:revlog\"/>, you can see an example of the " 1.834 "conceptual structure of a revlog. Filelogs, manifests, and changelogs all " 1.835 @@ -4310,7 +4315,7 @@ 1.836 msgstr "" 1.837 1.838 #. type: Content of: <book><chapter><sect1><para> 1.839 -#: ../en/ch03-concepts.xml:282 1.840 +#: ../en/ch03-concepts.xml:284 1.841 msgid "" 1.842 "The first revision in a revlog (at the bottom of the image) has the null ID " 1.843 "in both of its parent slots. For a <quote>normal</quote> revision, its first " 1.844 @@ -4322,29 +4327,29 @@ 1.845 msgstr "" 1.846 1.847 #. type: Content of: <book><chapter><sect1><figure><title> 1.848 -#: ../en/ch03-concepts.xml:292 1.849 +#: ../en/ch03-concepts.xml:294 1.850 msgid "The conceptual structure of a revlog" 1.851 msgstr "版本日志的设计结构" 1.852 1.853 #. type: Content of: <book><chapter><sect1><figure><mediaobject> 1.854 -#: ../en/ch03-concepts.xml:294 1.855 +#: ../en/ch03-concepts.xml:296 1.856 msgid "<imageobject><imagedata fileref=\"figs/revlog.png\"/></imageobject>" 1.857 msgstr "" 1.858 1.859 #. type: Content of: <book><chapter><sect1><title> 1.860 -#: ../en/ch03-concepts.xml:301 1.861 +#: ../en/ch03-concepts.xml:303 1.862 msgid "The working directory" 1.863 msgstr "工作目录" 1.864 1.865 #. type: Content of: <book><chapter><sect1><para> 1.866 -#: ../en/ch03-concepts.xml:303 1.867 +#: ../en/ch03-concepts.xml:305 1.868 msgid "" 1.869 "In the working directory, Mercurial stores a snapshot of the files from the " 1.870 "repository as of a particular changeset." 1.871 msgstr "" 1.872 1.873 #. type: Content of: <book><chapter><sect1><para> 1.874 -#: ../en/ch03-concepts.xml:306 1.875 +#: ../en/ch03-concepts.xml:308 1.876 msgid "" 1.877 "The working directory <quote>knows</quote> which changeset it contains. When " 1.878 "you update the working directory to contain a particular changeset, Mercurial " 1.879 @@ -4355,7 +4360,7 @@ 1.880 msgstr "" 1.881 1.882 #. type: Content of: <book><chapter><sect1><para> 1.883 -#: ../en/ch03-concepts.xml:315 1.884 +#: ../en/ch03-concepts.xml:317 1.885 msgid "" 1.886 "The <emphasis>dirstate</emphasis> contains Mercurial's knowledge of the " 1.887 "working directory. This details which changeset the working directory is " 1.888 @@ -4364,7 +4369,7 @@ 1.889 msgstr "" 1.890 1.891 #. type: Content of: <book><chapter><sect1><para> 1.892 -#: ../en/ch03-concepts.xml:321 1.893 +#: ../en/ch03-concepts.xml:323 1.894 msgid "" 1.895 "Just as a revision of a revlog has room for two parents, so that it can " 1.896 "represent either a normal revision (with one parent) or a merge of two " 1.897 @@ -4379,12 +4384,12 @@ 1.898 msgstr "" 1.899 1.900 #. type: Content of: <book><chapter><sect1><sect2><title> 1.901 -#: ../en/ch03-concepts.xml:335 1.902 +#: ../en/ch03-concepts.xml:337 1.903 msgid "What happens when you commit" 1.904 msgstr "当你提交时发生的事情" 1.905 1.906 #. type: Content of: <book><chapter><sect1><sect2><para> 1.907 -#: ../en/ch03-concepts.xml:337 1.908 +#: ../en/ch03-concepts.xml:339 1.909 msgid "" 1.910 "The dirstate stores parent information for more than just book-keeping " 1.911 "purposes. Mercurial uses the parents of the dirstate as <emphasis>the " 1.912 @@ -4392,17 +4397,17 @@ 1.913 msgstr "" 1.914 1.915 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.916 -#: ../en/ch03-concepts.xml:343 1.917 +#: ../en/ch03-concepts.xml:345 1.918 msgid "The working directory can have two parents" 1.919 msgstr "工作目录可以有两个父亲" 1.920 1.921 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.922 -#: ../en/ch03-concepts.xml:345 1.923 +#: ../en/ch03-concepts.xml:347 1.924 msgid "<imageobject><imagedata fileref=\"figs/wdir.png\"/></imageobject>" 1.925 msgstr "" 1.926 1.927 #. type: Content of: <book><chapter><sect1><sect2><para> 1.928 -#: ../en/ch03-concepts.xml:350 1.929 +#: ../en/ch03-concepts.xml:352 1.930 msgid "" 1.931 "<xref linkend=\"fig:concepts:wdir\"/> shows the normal state of the working " 1.932 "directory, where it has a single changeset as parent. That changeset is the " 1.933 @@ -4411,18 +4416,18 @@ 1.934 msgstr "" 1.935 1.936 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.937 -#: ../en/ch03-concepts.xml:357 1.938 +#: ../en/ch03-concepts.xml:359 1.939 msgid "The working directory gains new parents after a commit" 1.940 msgstr "提交之后,工作目录的父亲就改变了" 1.941 1.942 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.943 -#: ../en/ch03-concepts.xml:360 1.944 +#: ../en/ch03-concepts.xml:362 1.945 msgid "" 1.946 "<imageobject><imagedata fileref=\"figs/wdir-after-commit.png\"/></imageobject>" 1.947 msgstr "" 1.948 1.949 #. type: Content of: <book><chapter><sect1><sect2><para> 1.950 -#: ../en/ch03-concepts.xml:365 1.951 +#: ../en/ch03-concepts.xml:367 1.952 msgid "" 1.953 "It's useful to think of the working directory as <quote>the changeset I'm " 1.954 "about to commit</quote>. Any files that you tell Mercurial that you've " 1.955 @@ -4432,7 +4437,7 @@ 1.956 msgstr "" 1.957 1.958 #. type: Content of: <book><chapter><sect1><sect2><para> 1.959 -#: ../en/ch03-concepts.xml:373 1.960 +#: ../en/ch03-concepts.xml:375 1.961 msgid "" 1.962 "After a commit, Mercurial will update the parents of the working directory, " 1.963 "so that the first parent is the ID of the new changeset, and the second is " 1.964 @@ -4442,12 +4447,12 @@ 1.965 msgstr "" 1.966 1.967 #. type: Content of: <book><chapter><sect1><sect2><title> 1.968 -#: ../en/ch03-concepts.xml:384 1.969 +#: ../en/ch03-concepts.xml:386 1.970 msgid "Creating a new head" 1.971 msgstr "创建新顶点" 1.972 1.973 #. type: Content of: <book><chapter><sect1><sect2><para> 1.974 -#: ../en/ch03-concepts.xml:386 1.975 +#: ../en/ch03-concepts.xml:388 1.976 msgid "" 1.977 "It's perfectly normal to update the working directory to a changeset other " 1.978 "than the current tip. For example, you might want to know what your project " 1.979 @@ -4460,18 +4465,18 @@ 1.980 msgstr "" 1.981 1.982 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.983 -#: ../en/ch03-concepts.xml:398 1.984 +#: ../en/ch03-concepts.xml:400 1.985 msgid "The working directory, updated to an older changeset" 1.986 msgstr "同步到旧修改集的工作目录" 1.987 1.988 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.989 -#: ../en/ch03-concepts.xml:401 1.990 +#: ../en/ch03-concepts.xml:403 1.991 msgid "" 1.992 "<imageobject><imagedata fileref=\"figs/wdir-pre-branch.png\"/></imageobject>" 1.993 msgstr "" 1.994 1.995 #. type: Content of: <book><chapter><sect1><sect2><para> 1.996 -#: ../en/ch03-concepts.xml:406 1.997 +#: ../en/ch03-concepts.xml:408 1.998 msgid "" 1.999 "Having updated the working directory to an older changeset, what happens if " 1.1000 "you make some changes, and then commit? Mercurial behaves in the same way as " 1.1001 @@ -4483,17 +4488,17 @@ 1.1002 msgstr "" 1.1003 1.1004 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.1005 -#: ../en/ch03-concepts.xml:418 1.1006 +#: ../en/ch03-concepts.xml:420 1.1007 msgid "After a commit made while synced to an older changeset" 1.1008 msgstr "对同步到旧修改集的工作目录提交之后" 1.1009 1.1010 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.1011 -#: ../en/ch03-concepts.xml:421 1.1012 +#: ../en/ch03-concepts.xml:423 1.1013 msgid "<imageobject><imagedata fileref=\"figs/wdir-branch.png\"/></imageobject>" 1.1014 msgstr "" 1.1015 1.1016 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.1017 -#: ../en/ch03-concepts.xml:427 1.1018 +#: ../en/ch03-concepts.xml:429 1.1019 msgid "" 1.1020 "If you're new to Mercurial, you should keep in mind a common <quote>error</" 1.1021 "quote>, which is to use the <command role=\"hg-cmd\">hg pull</command> " 1.1022 @@ -4507,23 +4512,24 @@ 1.1023 msgstr "" 1.1024 1.1025 #. type: Content of: <book><chapter><sect1><sect2><note><para> 1.1026 -#: ../en/ch03-concepts.xml:439 1.1027 +#: ../en/ch03-concepts.xml:441 1.1028 msgid "" 1.1029 "I put the word <quote>error</quote> in quotes because all that you need to do " 1.1030 "to rectify this situation is <command role=\"hg-cmd\">hg merge</command>, " 1.1031 "then <command role=\"hg-cmd\">hg commit</command>. In other words, this " 1.1032 -"almost never has negative consequences; it just surprises people. I'll " 1.1033 -"discuss other ways to avoid this behaviour, and why Mercurial behaves in this " 1.1034 -"initially surprising way, later on." 1.1035 -msgstr "" 1.1036 - 1.1037 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1038 -#: ../en/ch03-concepts.xml:451 1.1039 -msgid "Merging heads" 1.1040 -msgstr "合并顶点" 1.1041 - 1.1042 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1043 +"almost never has negative consequences; it's just something of a surprise for " 1.1044 +"newcomers. I'll discuss other ways to avoid this behavior, and why Mercurial " 1.1045 +"behaves in this initially surprising way, later on." 1.1046 +msgstr "" 1.1047 + 1.1048 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1049 #: ../en/ch03-concepts.xml:453 1.1050 +#, fuzzy 1.1051 +msgid "Merging changes" 1.1052 +msgstr "共享修改" 1.1053 + 1.1054 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1055 +#: ../en/ch03-concepts.xml:455 1.1056 msgid "" 1.1057 "When you run the <command role=\"hg-cmd\">hg merge</command> command, " 1.1058 "Mercurial leaves the first parent of the working directory unchanged, and " 1.1059 @@ -4532,18 +4538,18 @@ 1.1060 msgstr "" 1.1061 1.1062 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.1063 -#: ../en/ch03-concepts.xml:460 1.1064 +#: ../en/ch03-concepts.xml:462 1.1065 msgid "Merging two heads" 1.1066 msgstr "合并两个顶点" 1.1067 1.1068 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.1069 -#: ../en/ch03-concepts.xml:462 1.1070 +#: ../en/ch03-concepts.xml:464 1.1071 msgid "" 1.1072 "<imageobject> <imagedata fileref=\"figs/wdir-merge.png\"/> </imageobject>" 1.1073 msgstr "" 1.1074 1.1075 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1076 -#: ../en/ch03-concepts.xml:469 1.1077 +#: ../en/ch03-concepts.xml:471 1.1078 msgid "" 1.1079 "Mercurial also has to modify the working directory, to merge the files " 1.1080 "managed in the two changesets. Simplified a little, the merging process goes " 1.1081 @@ -4551,33 +4557,33 @@ 1.1082 msgstr "" 1.1083 1.1084 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1085 -#: ../en/ch03-concepts.xml:474 1.1086 +#: ../en/ch03-concepts.xml:476 1.1087 msgid "If neither changeset has modified a file, do nothing with that file." 1.1088 msgstr "" 1.1089 1.1090 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1091 -#: ../en/ch03-concepts.xml:477 1.1092 +#: ../en/ch03-concepts.xml:479 1.1093 msgid "" 1.1094 "If one changeset has modified a file, and the other hasn't, create the " 1.1095 "modified copy of the file in the working directory." 1.1096 msgstr "" 1.1097 1.1098 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1099 -#: ../en/ch03-concepts.xml:481 1.1100 +#: ../en/ch03-concepts.xml:483 1.1101 msgid "" 1.1102 "If one changeset has removed a file, and the other hasn't (or has also " 1.1103 "deleted it), delete the file from the working directory." 1.1104 msgstr "" 1.1105 1.1106 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1107 -#: ../en/ch03-concepts.xml:485 1.1108 +#: ../en/ch03-concepts.xml:487 1.1109 msgid "" 1.1110 "If one changeset has removed a file, but the other has modified the file, ask " 1.1111 "the user what to do: keep the modified file, or remove it?" 1.1112 msgstr "" 1.1113 1.1114 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1115 -#: ../en/ch03-concepts.xml:489 1.1116 +#: ../en/ch03-concepts.xml:491 1.1117 msgid "" 1.1118 "If both changesets have modified a file, invoke an external merge program to " 1.1119 "choose the new contents for the merged file. This may require input from the " 1.1120 @@ -4585,14 +4591,14 @@ 1.1121 msgstr "" 1.1122 1.1123 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.1124 -#: ../en/ch03-concepts.xml:494 1.1125 +#: ../en/ch03-concepts.xml:496 1.1126 msgid "" 1.1127 "If one changeset has modified a file, and the other has renamed or copied the " 1.1128 "file, make sure that the changes follow the new name of the file." 1.1129 msgstr "" 1.1130 1.1131 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1132 -#: ../en/ch03-concepts.xml:498 1.1133 +#: ../en/ch03-concepts.xml:500 1.1134 msgid "" 1.1135 "There are more details&emdash;merging has plenty of corner cases&emdash;but " 1.1136 "these are the most common choices that are involved in a merge. As you can " 1.1137 @@ -4601,7 +4607,7 @@ 1.1138 msgstr "" 1.1139 1.1140 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1141 -#: ../en/ch03-concepts.xml:505 1.1142 +#: ../en/ch03-concepts.xml:507 1.1143 msgid "" 1.1144 "When you're thinking about what happens when you commit after a merge, once " 1.1145 "again the working directory is <quote>the changeset I'm about to commit</" 1.1146 @@ -4611,7 +4617,7 @@ 1.1147 msgstr "" 1.1148 1.1149 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1150 -#: ../en/ch03-concepts.xml:512 1.1151 +#: ../en/ch03-concepts.xml:514 1.1152 msgid "" 1.1153 "Mercurial lets you perform multiple merges, but you must commit the results " 1.1154 "of each individual merge as you go. This is necessary because Mercurial only " 1.1155 @@ -4621,13 +4627,38 @@ 1.1156 "becomes overwhelming." 1.1157 msgstr "" 1.1158 1.1159 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1160 +#: ../en/ch03-concepts.xml:525 1.1161 +#, fuzzy 1.1162 +msgid "Merging and renames" 1.1163 +msgstr "合并顶点" 1.1164 + 1.1165 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1166 +#: ../en/ch03-concepts.xml:527 1.1167 +msgid "" 1.1168 +"A surprising number of revision control systems pay little or no attention to " 1.1169 +"a file's <emphasis>name</emphasis> over time. For instance, it used to be " 1.1170 +"common that if a file got renamed on one side of a merge, the changes from " 1.1171 +"the other side would be silently dropped." 1.1172 +msgstr "" 1.1173 + 1.1174 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1175 +#: ../en/ch03-concepts.xml:533 1.1176 +msgid "" 1.1177 +"Mercurial records metadata when you tell it to perform a rename or copy. It " 1.1178 +"uses this metadata during a merge to do the right thing in the case of a " 1.1179 +"merge. For instance, if I rename a file, and you edit it without renaming " 1.1180 +"it, when we merge our work the file will be renamed and have your edits " 1.1181 +"applied." 1.1182 +msgstr "" 1.1183 + 1.1184 #. type: Content of: <book><chapter><sect1><title> 1.1185 -#: ../en/ch03-concepts.xml:523 1.1186 +#: ../en/ch03-concepts.xml:543 1.1187 msgid "Other interesting design features" 1.1188 msgstr "其它有趣的设计特性" 1.1189 1.1190 #. type: Content of: <book><chapter><sect1><para> 1.1191 -#: ../en/ch03-concepts.xml:525 1.1192 +#: ../en/ch03-concepts.xml:545 1.1193 msgid "" 1.1194 "In the sections above, I've tried to highlight some of the most important " 1.1195 "aspects of Mercurial's design, to illustrate that it pays careful attention " 1.1196 @@ -4640,12 +4671,12 @@ 1.1197 msgstr "" 1.1198 1.1199 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1200 -#: ../en/ch03-concepts.xml:536 1.1201 +#: ../en/ch03-concepts.xml:556 1.1202 msgid "Clever compression" 1.1203 msgstr "智能压缩" 1.1204 1.1205 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1206 -#: ../en/ch03-concepts.xml:538 1.1207 +#: ../en/ch03-concepts.xml:558 1.1208 msgid "" 1.1209 "When appropriate, Mercurial will store both snapshots and deltas in " 1.1210 "compressed form. It does this by always <emphasis>trying to</emphasis> " 1.1211 @@ -4654,7 +4685,7 @@ 1.1212 msgstr "" 1.1213 1.1214 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1215 -#: ../en/ch03-concepts.xml:544 1.1216 +#: ../en/ch03-concepts.xml:564 1.1217 msgid "" 1.1218 "This means that Mercurial does <quote>the right thing</quote> when storing a " 1.1219 "file whose native form is compressed, such as a <literal>zip</literal> " 1.1220 @@ -4664,7 +4695,7 @@ 1.1221 msgstr "" 1.1222 1.1223 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1224 -#: ../en/ch03-concepts.xml:552 1.1225 +#: ../en/ch03-concepts.xml:572 1.1226 msgid "" 1.1227 "Deltas between revisions of a compressed file are usually larger than " 1.1228 "snapshots of the file, and Mercurial again does <quote>the right thing</" 1.1229 @@ -4674,12 +4705,12 @@ 1.1230 msgstr "" 1.1231 1.1232 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.1233 -#: ../en/ch03-concepts.xml:561 1.1234 +#: ../en/ch03-concepts.xml:581 1.1235 msgid "Network recompression" 1.1236 msgstr "网络重新压缩" 1.1237 1.1238 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1239 -#: ../en/ch03-concepts.xml:563 1.1240 +#: ../en/ch03-concepts.xml:583 1.1241 msgid "" 1.1242 "When storing revisions on disk, Mercurial uses the <quote>deflate</quote> " 1.1243 "compression algorithm (the same one used by the popular <literal>zip</" 1.1244 @@ -4689,7 +4720,7 @@ 1.1245 msgstr "" 1.1246 1.1247 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1248 -#: ../en/ch03-concepts.xml:571 1.1249 +#: ../en/ch03-concepts.xml:591 1.1250 msgid "" 1.1251 "If the connection is over HTTP, Mercurial recompresses the entire stream of " 1.1252 "data using a compression algorithm that gives a better compression ratio (the " 1.1253 @@ -4697,11 +4728,11 @@ 1.1254 "compression package). This combination of algorithm and compression of the " 1.1255 "entire stream (instead of a revision at a time) substantially reduces the " 1.1256 "number of bytes to be transferred, yielding better network performance over " 1.1257 -"almost all kinds of network." 1.1258 +"most kinds of network." 1.1259 msgstr "" 1.1260 1.1261 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1262 -#: ../en/ch03-concepts.xml:581 1.1263 +#: ../en/ch03-concepts.xml:601 1.1264 msgid "" 1.1265 "(If the connection is over <command>ssh</command>, Mercurial " 1.1266 "<emphasis>doesn't</emphasis> recompress the stream, because <command>ssh</" 1.1267 @@ -4709,12 +4740,12 @@ 1.1268 msgstr "" 1.1269 1.1270 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1271 -#: ../en/ch03-concepts.xml:589 1.1272 +#: ../en/ch03-concepts.xml:609 1.1273 msgid "Read/write ordering and atomicity" 1.1274 msgstr "读写顺序与原子性" 1.1275 1.1276 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1277 -#: ../en/ch03-concepts.xml:591 1.1278 +#: ../en/ch03-concepts.xml:611 1.1279 msgid "" 1.1280 "Appending to files isn't the whole story when it comes to guaranteeing that a " 1.1281 "reader won't see a partial write. If you recall <xref linkend=\"fig:concepts:" 1.1282 @@ -4724,7 +4755,7 @@ 1.1283 msgstr "" 1.1284 1.1285 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1286 -#: ../en/ch03-concepts.xml:599 1.1287 +#: ../en/ch03-concepts.xml:619 1.1288 msgid "" 1.1289 "A writer starts a transaction by writing filelog and manifest data, and " 1.1290 "doesn't write any changelog data until those are finished. A reader starts " 1.1291 @@ -4732,7 +4763,7 @@ 1.1292 msgstr "" 1.1293 1.1294 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1295 -#: ../en/ch03-concepts.xml:604 1.1296 +#: ../en/ch03-concepts.xml:624 1.1297 msgid "" 1.1298 "Since the writer has always finished writing filelog and manifest data before " 1.1299 "it writes to the changelog, a reader will never read a pointer to a partially " 1.1300 @@ -4741,12 +4772,12 @@ 1.1301 msgstr "" 1.1302 1.1303 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1304 -#: ../en/ch03-concepts.xml:612 1.1305 +#: ../en/ch03-concepts.xml:632 1.1306 msgid "Concurrent access" 1.1307 msgstr "并发访问" 1.1308 1.1309 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1310 -#: ../en/ch03-concepts.xml:614 1.1311 +#: ../en/ch03-concepts.xml:634 1.1312 msgid "" 1.1313 "The read/write ordering and atomicity guarantees mean that Mercurial never " 1.1314 "needs to <emphasis>lock</emphasis> a repository when it's reading data, even " 1.1315 @@ -4757,7 +4788,7 @@ 1.1316 msgstr "" 1.1317 1.1318 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1319 -#: ../en/ch03-concepts.xml:623 1.1320 +#: ../en/ch03-concepts.xml:643 1.1321 msgid "" 1.1322 "The lockless nature of reading means that if you're sharing a repository on a " 1.1323 "multi-user system, you don't need to grant other local users permission to " 1.1324 @@ -4771,7 +4802,7 @@ 1.1325 msgstr "" 1.1326 1.1327 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1328 -#: ../en/ch03-concepts.xml:636 1.1329 +#: ../en/ch03-concepts.xml:656 1.1330 msgid "" 1.1331 "Mercurial uses locks to ensure that only one process can write to a " 1.1332 "repository at a time (the locking mechanism is safe even over filesystems " 1.1333 @@ -4785,12 +4816,12 @@ 1.1334 msgstr "" 1.1335 1.1336 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.1337 -#: ../en/ch03-concepts.xml:648 1.1338 +#: ../en/ch03-concepts.xml:668 1.1339 msgid "Safe dirstate access" 1.1340 msgstr "安全的目录状态访问" 1.1341 1.1342 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.1343 -#: ../en/ch03-concepts.xml:650 1.1344 +#: ../en/ch03-concepts.xml:670 1.1345 msgid "" 1.1346 "As with revision data, Mercurial doesn't take a lock to read the dirstate " 1.1347 "file; it does acquire a lock to write it. To avoid the possibility of " 1.1348 @@ -4802,12 +4833,12 @@ 1.1349 msgstr "" 1.1350 1.1351 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1352 -#: ../en/ch03-concepts.xml:663 1.1353 +#: ../en/ch03-concepts.xml:683 1.1354 msgid "Avoiding seeks" 1.1355 msgstr "避免查找" 1.1356 1.1357 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1358 -#: ../en/ch03-concepts.xml:665 1.1359 +#: ../en/ch03-concepts.xml:685 1.1360 msgid "" 1.1361 "Critical to Mercurial's performance is the avoidance of seeks of the disk " 1.1362 "head, since any seek is far more expensive than even a comparatively large " 1.1363 @@ -4815,7 +4846,7 @@ 1.1364 msgstr "" 1.1365 1.1366 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1367 -#: ../en/ch03-concepts.xml:669 1.1368 +#: ../en/ch03-concepts.xml:689 1.1369 msgid "" 1.1370 "This is why, for example, the dirstate is stored in a single file. If there " 1.1371 "were a dirstate file per directory that Mercurial tracked, the disk would " 1.1372 @@ -4824,7 +4855,7 @@ 1.1373 msgstr "" 1.1374 1.1375 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1376 -#: ../en/ch03-concepts.xml:675 1.1377 +#: ../en/ch03-concepts.xml:695 1.1378 msgid "" 1.1379 "Mercurial also uses a <quote>copy on write</quote> scheme when cloning a " 1.1380 "repository on local storage. Instead of copying every revlog file from the " 1.1381 @@ -4837,7 +4868,7 @@ 1.1382 msgstr "" 1.1383 1.1384 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1385 -#: ../en/ch03-concepts.xml:686 1.1386 +#: ../en/ch03-concepts.xml:706 1.1387 msgid "" 1.1388 "A few revision control developers have pointed out that this idea of making a " 1.1389 "complete private copy of a file is not very efficient in its use of storage. " 1.1390 @@ -4849,12 +4880,12 @@ 1.1391 msgstr "" 1.1392 1.1393 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1394 -#: ../en/ch03-concepts.xml:698 1.1395 +#: ../en/ch03-concepts.xml:718 1.1396 msgid "Other contents of the dirstate" 1.1397 msgstr "目录状态的其它内容" 1.1398 1.1399 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1400 -#: ../en/ch03-concepts.xml:700 1.1401 +#: ../en/ch03-concepts.xml:720 1.1402 msgid "" 1.1403 "Because Mercurial doesn't force you to tell it when you're modifying a file, " 1.1404 "it uses the dirstate to store some extra information so it can determine " 1.1405 @@ -4864,7 +4895,7 @@ 1.1406 msgstr "" 1.1407 1.1408 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1409 -#: ../en/ch03-concepts.xml:707 1.1410 +#: ../en/ch03-concepts.xml:727 1.1411 msgid "" 1.1412 "When you explicitly <command role=\"hg-cmd\">hg add</command>, <command role=" 1.1413 "\"hg-cmd\">hg remove</command>, <command role=\"hg-cmd\">hg rename</command> " 1.1414 @@ -4873,7 +4904,7 @@ 1.1415 msgstr "" 1.1416 1.1417 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1418 -#: ../en/ch03-concepts.xml:714 1.1419 +#: ../en/ch03-concepts.xml:734 1.1420 msgid "" 1.1421 "When Mercurial is checking the states of files in the working directory, it " 1.1422 "first checks a file's modification time. If that has not changed, the file " 1.1423 @@ -4920,13 +4951,13 @@ 1.1424 msgid "" 1.1425 "After you run a <command role=\"hg-cmd\">hg commit</command>, the files that " 1.1426 "you added before the commit will no longer be listed in the output of " 1.1427 -"<command role=\"hg-cmd\">hg status</command>. The reason for this is that " 1.1428 -"<command role=\"hg-cmd\">hg status</command> only tells you about " 1.1429 -"<quote>interesting</quote> files&emdash;those that you have modified or told " 1.1430 -"Mercurial to do something with&emdash;by default. If you have a repository " 1.1431 -"that contains thousands of files, you will rarely want to know about files " 1.1432 -"that Mercurial is tracking, but that have not changed. (You can still get " 1.1433 -"this information; we'll return to this later.)" 1.1434 +"<command role=\"hg-cmd\">hg status</command>. The reason for this is that by " 1.1435 +"default, <command role=\"hg-cmd\">hg status</command> only tells you about " 1.1436 +"<quote>interesting</quote> files&emdash;those that you have (for example) " 1.1437 +"modified, removed, or renamed. If you have a repository that contains " 1.1438 +"thousands of files, you will rarely want to know about files that Mercurial " 1.1439 +"is tracking, but that have not changed. (You can still get this information; " 1.1440 +"we'll return to this later.)" 1.1441 msgstr "" 1.1442 1.1443 #. type: Content of: <book><chapter><sect1><para> 1.1444 @@ -4946,7 +4977,7 @@ 1.1445 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1446 #: ../en/ch04-daily.xml:47 1.1447 msgid "" 1.1448 -"A useful behaviour that Mercurial has is that if you pass the name of a " 1.1449 +"A useful behavior that Mercurial has is that if you pass the name of a " 1.1450 "directory to a command, every Mercurial command will treat this as <quote>I " 1.1451 "want to operate on every file in this directory and its subdirectories</" 1.1452 "quote>." 1.1453 @@ -4956,16 +4987,16 @@ 1.1454 #: ../en/ch04-daily.xml:54 1.1455 msgid "" 1.1456 "Notice in this example that Mercurial printed the names of the files it " 1.1457 -"added, whereas it didn't do so when we added the file named <filename>a</" 1.1458 -"filename> in the earlier example." 1.1459 +"added, whereas it didn't do so when we added the file named <filename>myfile." 1.1460 +"txt</filename> in the earlier example." 1.1461 msgstr "" 1.1462 1.1463 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1464 #: ../en/ch04-daily.xml:59 1.1465 msgid "" 1.1466 "What's going on is that in the former case, we explicitly named the file to " 1.1467 -"add on the command line, so the assumption that Mercurial makes in such cases " 1.1468 -"is that you know what you were doing, and it doesn't print any output." 1.1469 +"add on the command line. The assumption that Mercurial makes in such cases " 1.1470 +"is that we know what we are doing, and it doesn't print any output." 1.1471 msgstr "" 1.1472 1.1473 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1474 @@ -4975,12 +5006,13 @@ 1.1475 "name of a directory, Mercurial takes the extra step of printing the name of " 1.1476 "each file that it does something with. This makes it more clear what is " 1.1477 "happening, and reduces the likelihood of a silent and nasty surprise. This " 1.1478 -"behaviour is common to most Mercurial commands." 1.1479 +"behavior is common to most Mercurial commands." 1.1480 msgstr "" 1.1481 1.1482 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1483 #: ../en/ch04-daily.xml:73 1.1484 -msgid "Aside: Mercurial tracks files, not directories" 1.1485 +#, fuzzy 1.1486 +msgid "Mercurial tracks files, not directories" 1.1487 msgstr "旁白: Mercurial 只跟踪文件,不跟踪目录" 1.1488 1.1489 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1490 @@ -5026,12 +5058,11 @@ 1.1491 msgid "How to stop tracking a file" 1.1492 msgstr "如何停止跟踪文件" 1.1493 1.1494 -# 1.1495 #. type: Content of: <book><chapter><sect1><para> 1.1496 #: ../en/ch04-daily.xml:111 1.1497 msgid "" 1.1498 "Once you decide that a file no longer belongs in your repository, use the " 1.1499 -"<command role=\"hg-cmd\">hg remove</command> command; this deletes the file, " 1.1500 +"<command role=\"hg-cmd\">hg remove</command> command. This deletes the file, " 1.1501 "and tells Mercurial to stop tracking it. A removed file is represented in " 1.1502 "the output of <command role=\"hg-cmd\">hg status</command> with a " 1.1503 "<quote><literal>R</literal></quote>." 1.1504 @@ -5080,20 +5111,21 @@ 1.1505 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1506 #: ../en/ch04-daily.xml:143 1.1507 msgid "" 1.1508 -"If you update the working directory to a changeset in which a file that you " 1.1509 -"have removed was still tracked, it will reappear in the working directory, " 1.1510 -"with the contents it had when you committed that changeset. If you then " 1.1511 -"update the working directory to a later changeset, in which the file had been " 1.1512 -"removed, Mercurial will once again remove the file from the working directory." 1.1513 -msgstr "" 1.1514 - 1.1515 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1516 -#: ../en/ch04-daily.xml:153 1.1517 +"If you update the working directory to a changeset that was committed when it " 1.1518 +"was still tracking a file that you later removed, the file will reappear in " 1.1519 +"the working directory, with the contents it had when you committed that " 1.1520 +"changeset. If you then update the working directory to a later changeset, in " 1.1521 +"which the file had been removed, Mercurial will once again remove the file " 1.1522 +"from the working directory." 1.1523 +msgstr "" 1.1524 + 1.1525 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1526 +#: ../en/ch04-daily.xml:154 1.1527 msgid "Missing files" 1.1528 msgstr "丢失的文件" 1.1529 1.1530 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1531 -#: ../en/ch04-daily.xml:155 1.1532 +#: ../en/ch04-daily.xml:156 1.1533 msgid "" 1.1534 "Mercurial considers a file that you have deleted, but not used <command role=" 1.1535 "\"hg-cmd\">hg remove</command> to delete, to be <emphasis>missing</" 1.1536 @@ -5103,7 +5135,7 @@ 1.1537 msgstr "" 1.1538 1.1539 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1540 -#: ../en/ch04-daily.xml:165 1.1541 +#: ../en/ch04-daily.xml:166 1.1542 msgid "" 1.1543 "If your repository contains a file that <command role=\"hg-cmd\">hg status</" 1.1544 "command> reports as missing, and you want the file to stay gone, you can run " 1.1545 @@ -5113,7 +5145,7 @@ 1.1546 msgstr "" 1.1547 1.1548 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1549 -#: ../en/ch04-daily.xml:175 1.1550 +#: ../en/ch04-daily.xml:176 1.1551 msgid "" 1.1552 "On the other hand, if you deleted the missing file by accident, give <command " 1.1553 "role=\"hg-cmd\">hg revert</command> the name of the file to recover. It will " 1.1554 @@ -5121,12 +5153,12 @@ 1.1555 msgstr "" 1.1556 1.1557 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1558 -#: ../en/ch04-daily.xml:184 1.1559 +#: ../en/ch04-daily.xml:185 1.1560 msgid "Aside: why tell Mercurial explicitly to remove a file?" 1.1561 msgstr "旁白: 为什么要明确告诉 Mercurial 删除文件?" 1.1562 1.1563 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1564 -#: ../en/ch04-daily.xml:187 1.1565 +#: ../en/ch04-daily.xml:188 1.1566 msgid "" 1.1567 "You might wonder why Mercurial requires you to explicitly tell it that you " 1.1568 "are deleting a file. Early during the development of Mercurial, it let you " 1.1569 @@ -5137,12 +5169,12 @@ 1.1570 msgstr "" 1.1571 1.1572 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1573 -#: ../en/ch04-daily.xml:198 1.1574 +#: ../en/ch04-daily.xml:199 1.1575 msgid "Useful shorthand&emdash;adding and removing files in one step" 1.1576 msgstr "有用的速记—一个步骤添加和删除文件" 1.1577 1.1578 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1579 -#: ../en/ch04-daily.xml:201 1.1580 +#: ../en/ch04-daily.xml:202 1.1581 msgid "" 1.1582 "Mercurial offers a combination command, <command role=\"hg-cmd\">hg " 1.1583 "addremove</command>, that adds untracked files and marks missing files as " 1.1584 @@ -5150,7 +5182,7 @@ 1.1585 msgstr "" 1.1586 1.1587 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1588 -#: ../en/ch04-daily.xml:207 1.1589 +#: ../en/ch04-daily.xml:208 1.1590 msgid "" 1.1591 "The <command role=\"hg-cmd\">hg commit</command> command also provides a " 1.1592 "<option role=\"hg-opt-commit\">-A</option> option that performs this same add-" 1.1593 @@ -5158,12 +5190,12 @@ 1.1594 msgstr "" 1.1595 1.1596 #. type: Content of: <book><chapter><sect1><title> 1.1597 -#: ../en/ch04-daily.xml:217 1.1598 +#: ../en/ch04-daily.xml:218 1.1599 msgid "Copying files" 1.1600 msgstr "复制文件" 1.1601 1.1602 #. type: Content of: <book><chapter><sect1><para> 1.1603 -#: ../en/ch04-daily.xml:219 1.1604 +#: ../en/ch04-daily.xml:220 1.1605 msgid "" 1.1606 "Mercurial provides a <command role=\"hg-cmd\">hg copy</command> command that " 1.1607 "lets you make a new copy of a file. When you copy a file using this command, " 1.1608 @@ -5173,12 +5205,12 @@ 1.1609 msgstr "" 1.1610 1.1611 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1612 -#: ../en/ch04-daily.xml:227 1.1613 +#: ../en/ch04-daily.xml:228 1.1614 msgid "The results of copying during a merge" 1.1615 msgstr "合并期间的复制结果" 1.1616 1.1617 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1618 -#: ../en/ch04-daily.xml:229 1.1619 +#: ../en/ch04-daily.xml:230 1.1620 msgid "" 1.1621 "What happens during a merge is that changes <quote>follow</quote> a copy. To " 1.1622 "best illustrate what this means, let's create an example. We'll start with " 1.1623 @@ -5186,28 +5218,28 @@ 1.1624 msgstr "" 1.1625 1.1626 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1627 -#: ../en/ch04-daily.xml:236 1.1628 +#: ../en/ch04-daily.xml:237 1.1629 msgid "" 1.1630 "We need to do some work in parallel, so that we'll have something to merge. " 1.1631 "So let's clone our repository." 1.1632 msgstr "" 1.1633 1.1634 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1635 -#: ../en/ch04-daily.xml:242 1.1636 +#: ../en/ch04-daily.xml:243 1.1637 msgid "" 1.1638 "Back in our initial repository, let's use the <command role=\"hg-cmd\">hg " 1.1639 "copy</command> command to make a copy of the first file we created." 1.1640 msgstr "" 1.1641 1.1642 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1643 -#: ../en/ch04-daily.xml:248 1.1644 +#: ../en/ch04-daily.xml:249 1.1645 msgid "" 1.1646 "If we look at the output of the <command role=\"hg-cmd\">hg status</command> " 1.1647 "command afterwards, the copied file looks just like a normal added file." 1.1648 msgstr "" 1.1649 1.1650 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1651 -#: ../en/ch04-daily.xml:254 1.1652 +#: ../en/ch04-daily.xml:255 1.1653 msgid "" 1.1654 "But if we pass the <option role=\"hg-opt-status\">-C</option> option to " 1.1655 "<command role=\"hg-cmd\">hg status</command>, it prints another line of " 1.1656 @@ -5216,14 +5248,14 @@ 1.1657 msgstr "" 1.1658 1.1659 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1660 -#: ../en/ch04-daily.xml:262 1.1661 +#: ../en/ch04-daily.xml:263 1.1662 msgid "" 1.1663 "Now, back in the repository we cloned, let's make a change in parallel. " 1.1664 "We'll add a line of content to the original file that we created." 1.1665 msgstr "" 1.1666 1.1667 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1668 -#: ../en/ch04-daily.xml:268 1.1669 +#: ../en/ch04-daily.xml:269 1.1670 msgid "" 1.1671 "Now we have a modified <filename>file</filename> in this repository. When we " 1.1672 "pull the changes from the first repository, and merge the two heads, " 1.1673 @@ -5232,19 +5264,19 @@ 1.1674 msgstr "" 1.1675 1.1676 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1677 -#: ../en/ch04-daily.xml:278 1.1678 +#: ../en/ch04-daily.xml:279 1.1679 msgid "Why should changes follow copies?" 1.1680 msgstr "为什么复制后需要后续修改?" 1.1681 1.1682 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1683 -#: ../en/ch04-daily.xml:280 1.1684 -msgid "" 1.1685 -"This behaviour, of changes to a file propagating out to copies of the file, " 1.1686 -"might seem esoteric, but in most cases it's highly desirable." 1.1687 -msgstr "" 1.1688 - 1.1689 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1690 -#: ../en/ch04-daily.xml:284 1.1691 +#: ../en/ch04-daily.xml:281 1.1692 +msgid "" 1.1693 +"This behavior&emdash;of changes to a file propagating out to copies of the " 1.1694 +"file&emdash;might seem esoteric, but in most cases it's highly desirable." 1.1695 +msgstr "" 1.1696 + 1.1697 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1698 +#: ../en/ch04-daily.xml:285 1.1699 msgid "" 1.1700 "First of all, remember that this propagation <emphasis>only</emphasis> " 1.1701 "happens when you merge. So if you <command role=\"hg-cmd\">hg copy</command> " 1.1702 @@ -5253,15 +5285,15 @@ 1.1703 msgstr "" 1.1704 1.1705 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1706 -#: ../en/ch04-daily.xml:290 1.1707 +#: ../en/ch04-daily.xml:291 1.1708 msgid "" 1.1709 "The second thing to know is that modifications will only propagate across a " 1.1710 -"copy as long as the repository that you're pulling changes from " 1.1711 -"<emphasis>doesn't know</emphasis> about the copy." 1.1712 -msgstr "" 1.1713 - 1.1714 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1715 -#: ../en/ch04-daily.xml:295 1.1716 +"copy as long as the changeset that you're merging changes from " 1.1717 +"<emphasis>hasn't yet seen</emphasis> the copy." 1.1718 +msgstr "" 1.1719 + 1.1720 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1721 +#: ../en/ch04-daily.xml:296 1.1722 msgid "" 1.1723 "The reason that Mercurial does this is as follows. Let's say I make an " 1.1724 "important bug fix in a source file, and commit my changes. Meanwhile, you've " 1.1725 @@ -5271,16 +5303,16 @@ 1.1726 msgstr "" 1.1727 1.1728 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1729 -#: ../en/ch04-daily.xml:302 1.1730 +#: ../en/ch04-daily.xml:303 1.1731 msgid "" 1.1732 "If you pulled and merged my changes, and Mercurial <emphasis>didn't</" 1.1733 -"emphasis> propagate changes across copies, your source file would now contain " 1.1734 -"the bug, and unless you remembered to propagate the bug fix by hand, the bug " 1.1735 -"would <emphasis>remain</emphasis> in your copy of the file." 1.1736 -msgstr "" 1.1737 - 1.1738 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1739 -#: ../en/ch04-daily.xml:308 1.1740 +"emphasis> propagate changes across copies, your new source file would now " 1.1741 +"contain the bug, and unless you knew to propagate the bug fix by hand, the " 1.1742 +"bug would <emphasis>remain</emphasis> in your copy of the file." 1.1743 +msgstr "" 1.1744 + 1.1745 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1746 +#: ../en/ch04-daily.xml:309 1.1747 msgid "" 1.1748 "By automatically propagating the change that fixed the bug from the original " 1.1749 "file to the copy, Mercurial prevents this class of problem. To my knowledge, " 1.1750 @@ -5289,97 +5321,104 @@ 1.1751 msgstr "" 1.1752 1.1753 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1754 -#: ../en/ch04-daily.xml:314 1.1755 +#: ../en/ch04-daily.xml:315 1.1756 msgid "" 1.1757 "Once your change history has a record that the copy and subsequent merge " 1.1758 "occurred, there's usually no further need to propagate changes from the " 1.1759 "original file to the copied file, and that's why Mercurial only propagates " 1.1760 -"changes across copies until this point, and no further." 1.1761 -msgstr "" 1.1762 - 1.1763 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1764 -#: ../en/ch04-daily.xml:322 1.1765 +"changes across copies at the first merge, and not afterwards." 1.1766 +msgstr "" 1.1767 + 1.1768 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1769 +#: ../en/ch04-daily.xml:323 1.1770 msgid "How to make changes <emphasis>not</emphasis> follow a copy" 1.1771 msgstr "如何让复制后<emphasis>不</emphasis>修改?" 1.1772 1.1773 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1774 -#: ../en/ch04-daily.xml:325 1.1775 +#: ../en/ch04-daily.xml:326 1.1776 msgid "" 1.1777 "If, for some reason, you decide that this business of automatically " 1.1778 "propagating changes across copies is not for you, simply use your system's " 1.1779 "normal file copy command (on Unix-like systems, that's <command>cp</command>) " 1.1780 "to make a copy of a file, then <command role=\"hg-cmd\">hg add</command> the " 1.1781 "new copy by hand. Before you do so, though, please do reread <xref linkend=" 1.1782 -"\"sec:daily:why-copy\"/>, and make an informed decision that this behaviour " 1.1783 -"is not appropriate to your specific case." 1.1784 -msgstr "" 1.1785 - 1.1786 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1787 -#: ../en/ch04-daily.xml:338 1.1788 -msgid "Behaviour of the <command role=\"hg-cmd\">hg copy</command> command" 1.1789 +"\"sec:daily:why-copy\"/>, and make an informed decision that this behavior is " 1.1790 +"not appropriate to your specific case." 1.1791 +msgstr "" 1.1792 + 1.1793 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1794 +#: ../en/ch04-daily.xml:339 1.1795 +#, fuzzy 1.1796 +msgid "Behavior of the <command role=\"hg-cmd\">hg copy</command> command" 1.1797 msgstr "命令 <command role=\"hg-cmd\">hg copy</command> 的特性" 1.1798 1.1799 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1800 -#: ../en/ch04-daily.xml:341 1.1801 +#: ../en/ch04-daily.xml:342 1.1802 msgid "" 1.1803 "When you use the <command role=\"hg-cmd\">hg copy</command> command, " 1.1804 "Mercurial makes a copy of each source file as it currently stands in the " 1.1805 "working directory. This means that if you make some modifications to a file, " 1.1806 "then <command role=\"hg-cmd\">hg copy</command> it without first having " 1.1807 "committed those changes, the new copy will also contain the modifications you " 1.1808 -"have made up until that point. (I find this behaviour a little " 1.1809 +"have made up until that point. (I find this behavior a little " 1.1810 "counterintuitive, which is why I mention it here.)" 1.1811 msgstr "" 1.1812 1.1813 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1814 -#: ../en/ch04-daily.xml:351 1.1815 +#: ../en/ch04-daily.xml:352 1.1816 msgid "" 1.1817 "The <command role=\"hg-cmd\">hg copy</command> command acts similarly to the " 1.1818 "Unix <command>cp</command> command (you can use the <command role=\"hg-cmd" 1.1819 -"\">hg cp</command> alias if you prefer). The last argument is the " 1.1820 -"<emphasis>destination</emphasis>, and all prior arguments are " 1.1821 -"<emphasis>sources</emphasis>. If you pass it a single file as the source, " 1.1822 -"and the destination does not exist, it creates a new file with that name." 1.1823 -msgstr "" 1.1824 - 1.1825 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1826 -#: ../en/ch04-daily.xml:362 1.1827 +"\">hg cp</command> alias if you prefer). We must supply two or more " 1.1828 +"arguments, of which the last is treated as the <emphasis>destination</" 1.1829 +"emphasis>, and all others are <emphasis>sources</emphasis>." 1.1830 +msgstr "" 1.1831 + 1.1832 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1833 +#: ../en/ch04-daily.xml:360 1.1834 +msgid "" 1.1835 +"If you pass <command role=\"hg-cmd\">hg copy</command> a single file as the " 1.1836 +"source, and the destination does not exist, it creates a new file with that " 1.1837 +"name." 1.1838 +msgstr "" 1.1839 + 1.1840 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1841 +#: ../en/ch04-daily.xml:366 1.1842 msgid "" 1.1843 "If the destination is a directory, Mercurial copies its sources into that " 1.1844 "directory." 1.1845 msgstr "" 1.1846 1.1847 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1848 -#: ../en/ch04-daily.xml:367 1.1849 +#: ../en/ch04-daily.xml:371 1.1850 msgid "" 1.1851 "Copying a directory is recursive, and preserves the directory structure of " 1.1852 "the source." 1.1853 msgstr "" 1.1854 1.1855 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1856 -#: ../en/ch04-daily.xml:373 1.1857 +#: ../en/ch04-daily.xml:377 1.1858 msgid "" 1.1859 "If the source and destination are both directories, the source tree is " 1.1860 "recreated in the destination directory." 1.1861 msgstr "" 1.1862 1.1863 -# 1.1864 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1865 -#: ../en/ch04-daily.xml:378 1.1866 -msgid "" 1.1867 -"As with the <command role=\"hg-cmd\">hg rename</command> command, if you copy " 1.1868 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.1869 +#: ../en/ch04-daily.xml:382 1.1870 +msgid "" 1.1871 +"As with the <command role=\"hg-cmd\">hg remove</command> command, if you copy " 1.1872 "a file manually and then want Mercurial to know that you've copied the file, " 1.1873 "simply use the <option role=\"hg-opt-copy\">--after</option> option to " 1.1874 "<command role=\"hg-cmd\">hg copy</command>." 1.1875 msgstr "" 1.1876 1.1877 #. type: Content of: <book><chapter><sect1><title> 1.1878 -#: ../en/ch04-daily.xml:389 1.1879 +#: ../en/ch04-daily.xml:393 1.1880 msgid "Renaming files" 1.1881 msgstr "改名文件" 1.1882 1.1883 #. type: Content of: <book><chapter><sect1><para> 1.1884 -#: ../en/ch04-daily.xml:391 1.1885 +#: ../en/ch04-daily.xml:395 1.1886 msgid "" 1.1887 "It's rather more common to need to rename a file than to make a copy of it. " 1.1888 "The reason I discussed the <command role=\"hg-cmd\">hg copy</command> command " 1.1889 @@ -5389,7 +5428,7 @@ 1.1890 msgstr "" 1.1891 1.1892 #. type: Content of: <book><chapter><sect1><para> 1.1893 -#: ../en/ch04-daily.xml:399 1.1894 +#: ../en/ch04-daily.xml:403 1.1895 msgid "" 1.1896 "When you use the <command role=\"hg-cmd\">hg rename</command> command, " 1.1897 "Mercurial makes a copy of each source file, then deletes it and marks the " 1.1898 @@ -5397,14 +5436,14 @@ 1.1899 msgstr "" 1.1900 1.1901 #. type: Content of: <book><chapter><sect1><para> 1.1902 -#: ../en/ch04-daily.xml:405 1.1903 +#: ../en/ch04-daily.xml:409 1.1904 msgid "" 1.1905 "The <command role=\"hg-cmd\">hg status</command> command shows the newly " 1.1906 "copied file as added, and the copied-from file as removed." 1.1907 msgstr "" 1.1908 1.1909 #. type: Content of: <book><chapter><sect1><para> 1.1910 -#: ../en/ch04-daily.xml:411 1.1911 +#: ../en/ch04-daily.xml:415 1.1912 msgid "" 1.1913 "As with the results of a <command role=\"hg-cmd\">hg copy</command>, we must " 1.1914 "use the <option role=\"hg-opt-status\">-C</option> option to <command role=" 1.1915 @@ -5413,30 +5452,38 @@ 1.1916 msgstr "" 1.1917 1.1918 #. type: Content of: <book><chapter><sect1><para> 1.1919 -#: ../en/ch04-daily.xml:420 1.1920 +#: ../en/ch04-daily.xml:424 1.1921 msgid "" 1.1922 "As with <command role=\"hg-cmd\">hg remove</command> and <command role=\"hg-" 1.1923 "cmd\">hg copy</command>, you can tell Mercurial about a rename after the fact " 1.1924 "using the <option role=\"hg-opt-rename\">--after</option> option. In most " 1.1925 -"other respects, the behaviour of the <command role=\"hg-cmd\">hg rename</" 1.1926 +"other respects, the behavior of the <command role=\"hg-cmd\">hg rename</" 1.1927 "command> command, and the options it accepts, are similar to the <command " 1.1928 "role=\"hg-cmd\">hg copy</command> command." 1.1929 msgstr "" 1.1930 1.1931 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.1932 -#: ../en/ch04-daily.xml:430 1.1933 +#. type: Content of: <book><chapter><sect1><para> 1.1934 +#: ../en/ch04-daily.xml:433 1.1935 +msgid "" 1.1936 +"If you're familiar with the Unix command line, you'll be glad to know that " 1.1937 +"<command role=\"hg-cmd\">hg rename</command> command can be invoked as " 1.1938 +"<command role=\"hg-cmd\">hg mv</command>." 1.1939 +msgstr "" 1.1940 + 1.1941 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.1942 +#: ../en/ch04-daily.xml:439 1.1943 msgid "Renaming files and merging changes" 1.1944 msgstr "改名文件与合并修改" 1.1945 1.1946 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1947 -#: ../en/ch04-daily.xml:432 1.1948 +#: ../en/ch04-daily.xml:441 1.1949 msgid "" 1.1950 "Since Mercurial's rename is implemented as copy-and-remove, the same " 1.1951 "propagation of changes happens when you merge after a rename as after a copy." 1.1952 msgstr "" 1.1953 1.1954 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1955 -#: ../en/ch04-daily.xml:436 1.1956 +#: ../en/ch04-daily.xml:445 1.1957 msgid "" 1.1958 "If I modify a file, and you rename it to a new name, and then we merge our " 1.1959 "respective changes, my modifications to the file under its original name will " 1.1960 @@ -5446,7 +5493,7 @@ 1.1961 msgstr "" 1.1962 1.1963 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1964 -#: ../en/ch04-daily.xml:443 1.1965 +#: ../en/ch04-daily.xml:452 1.1966 msgid "" 1.1967 "Whereas having changes follow a copy is a feature where you can perhaps nod " 1.1968 "and say <quote>yes, that might be useful,</quote> it should be clear that " 1.1969 @@ -5456,12 +5503,12 @@ 1.1970 msgstr "" 1.1971 1.1972 #. type: Content of: <book><chapter><sect1><sect2><title> 1.1973 -#: ../en/ch04-daily.xml:452 1.1974 +#: ../en/ch04-daily.xml:461 1.1975 msgid "Divergent renames and merging" 1.1976 msgstr "改名与合并的分歧" 1.1977 1.1978 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1979 -#: ../en/ch04-daily.xml:454 1.1980 +#: ../en/ch04-daily.xml:463 1.1981 msgid "" 1.1982 "The case of diverging names occurs when two developers start with a " 1.1983 "file&emdash;let's call it <filename>foo</filename>&emdash;in their respective " 1.1984 @@ -5469,45 +5516,47 @@ 1.1985 msgstr "" 1.1986 1.1987 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1988 -#: ../en/ch04-daily.xml:461 1.1989 +#: ../en/ch04-daily.xml:470 1.1990 msgid "Anne renames the file to <filename>bar</filename>." 1.1991 msgstr "" 1.1992 1.1993 #. type: Content of: <book><chapter><sect1><sect2><para> 1.1994 -#: ../en/ch04-daily.xml:465 1.1995 -msgid "Meanwhile, Bob renames it to <filename>quux</filename>." 1.1996 -msgstr "" 1.1997 - 1.1998 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.1999 -#: ../en/ch04-daily.xml:470 1.2000 +#: ../en/ch04-daily.xml:474 1.2001 +msgid "" 1.2002 +"Meanwhile, Bob renames it to <filename>quux</filename>. (Remember that " 1.2003 +"<command role=\"hg-cmd\">hg mv</command> is an alias for <command role=\"hg-" 1.2004 +"cmd\">hg rename</command>.)" 1.2005 +msgstr "" 1.2006 + 1.2007 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2008 +#: ../en/ch04-daily.xml:481 1.2009 msgid "" 1.2010 "I like to think of this as a conflict because each developer has expressed " 1.2011 "different intentions about what the file ought to be named." 1.2012 msgstr "" 1.2013 1.2014 -# 1.2015 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2016 -#: ../en/ch04-daily.xml:474 1.2017 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2018 +#: ../en/ch04-daily.xml:485 1.2019 msgid "" 1.2020 "What do you think should happen when they merge their work? Mercurial's " 1.2021 -"actual behaviour is that it always preserves <emphasis>both</emphasis> names " 1.2022 +"actual behavior is that it always preserves <emphasis>both</emphasis> names " 1.2023 "when it merges changesets that contain divergent renames." 1.2024 msgstr "" 1.2025 1.2026 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2027 -#: ../en/ch04-daily.xml:481 1.2028 -msgid "" 1.2029 -"Notice that Mercurial does warn about the divergent renames, but it leaves it " 1.2030 +#: ../en/ch04-daily.xml:492 1.2031 +msgid "" 1.2032 +"Notice that while Mercurial warns about the divergent renames, it leaves it " 1.2033 "up to you to do something about the divergence after the merge." 1.2034 msgstr "" 1.2035 1.2036 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2037 -#: ../en/ch04-daily.xml:487 1.2038 +#: ../en/ch04-daily.xml:498 1.2039 msgid "Convergent renames and merging" 1.2040 msgstr "收敛改名与合并" 1.2041 1.2042 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2043 -#: ../en/ch04-daily.xml:489 1.2044 +#: ../en/ch04-daily.xml:500 1.2045 msgid "" 1.2046 "Another kind of rename conflict occurs when two people choose to rename " 1.2047 "different <emphasis>source</emphasis> files to the same " 1.2048 @@ -5516,12 +5565,12 @@ 1.2049 msgstr "" 1.2050 1.2051 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2052 -#: ../en/ch04-daily.xml:497 1.2053 +#: ../en/ch04-daily.xml:508 1.2054 msgid "Other name-related corner cases" 1.2055 msgstr "其它名称相关的角落" 1.2056 1.2057 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2058 -#: ../en/ch04-daily.xml:499 1.2059 +#: ../en/ch04-daily.xml:510 1.2060 msgid "" 1.2061 "Mercurial has a longstanding bug in which it fails to handle a merge where " 1.2062 "one side has a file with a given name, while another has a directory with the " 1.2063 @@ -5530,19 +5579,19 @@ 1.2064 msgstr "" 1.2065 1.2066 #. type: Content of: <book><chapter><sect1><title> 1.2067 -#: ../en/ch04-daily.xml:511 1.2068 +#: ../en/ch04-daily.xml:523 1.2069 msgid "Recovering from mistakes" 1.2070 msgstr "从错误恢复" 1.2071 1.2072 #. type: Content of: <book><chapter><sect1><para> 1.2073 -#: ../en/ch04-daily.xml:513 1.2074 +#: ../en/ch04-daily.xml:525 1.2075 msgid "" 1.2076 "Mercurial has some useful commands that will help you to recover from some " 1.2077 "common mistakes." 1.2078 msgstr "" 1.2079 1.2080 #. type: Content of: <book><chapter><sect1><para> 1.2081 -#: ../en/ch04-daily.xml:516 1.2082 +#: ../en/ch04-daily.xml:528 1.2083 msgid "" 1.2084 "The <command role=\"hg-cmd\">hg revert</command> command lets you undo " 1.2085 "changes that you have made to your working directory. For example, if you " 1.2086 @@ -5554,22 +5603,187 @@ 1.2087 msgstr "" 1.2088 1.2089 #. type: Content of: <book><chapter><sect1><para> 1.2090 -#: ../en/ch04-daily.xml:526 1.2091 -msgid "" 1.2092 -"It's useful to remember that the <command role=\"hg-cmd\">hg revert</command> " 1.2093 +#: ../en/ch04-daily.xml:538 1.2094 +msgid "" 1.2095 +"It's good to remember that the <command role=\"hg-cmd\">hg revert</command> " 1.2096 "command is useful for changes that you have not yet committed. Once you've " 1.2097 "committed a change, if you decide it was a mistake, you can still do " 1.2098 "something about it, though your options may be more limited." 1.2099 msgstr "" 1.2100 1.2101 #. type: Content of: <book><chapter><sect1><para> 1.2102 -#: ../en/ch04-daily.xml:532 1.2103 +#: ../en/ch04-daily.xml:544 1.2104 msgid "" 1.2105 "For more information about the <command role=\"hg-cmd\">hg revert</command> " 1.2106 "command, and details about how to deal with changes you have already " 1.2107 "committed, see <xref linkend=\"chap:undo\"/>." 1.2108 msgstr "" 1.2109 1.2110 +#. type: Content of: <book><chapter><sect1><title> 1.2111 +#: ../en/ch04-daily.xml:551 1.2112 +#, fuzzy 1.2113 +msgid "Dealing with tricky merges" 1.2114 +msgstr "处理已经提交的修改" 1.2115 + 1.2116 +#. type: Content of: <book><chapter><sect1><para> 1.2117 +#: ../en/ch04-daily.xml:553 1.2118 +msgid "" 1.2119 +"In a complicated or large project, it's not unusual for a merge of two " 1.2120 +"changesets to result in some headaches. Suppose there's a big source file " 1.2121 +"that's been extensively edited by each side of a merge: this is almost " 1.2122 +"inevitably going to result in conflicts, some of which can take a few tries " 1.2123 +"to sort out." 1.2124 +msgstr "" 1.2125 + 1.2126 +#. type: Content of: <book><chapter><sect1><para> 1.2127 +#: ../en/ch04-daily.xml:560 1.2128 +msgid "" 1.2129 +"Let's develop a simple case of this and see how to deal with it. We'll start " 1.2130 +"off with a repository containing one file, and clone it twice." 1.2131 +msgstr "" 1.2132 + 1.2133 +#. type: Content of: <book><chapter><sect1><para> 1.2134 +#: ../en/ch04-daily.xml:566 1.2135 +msgid "In one clone, we'll modify the file in one way." 1.2136 +msgstr "" 1.2137 + 1.2138 +#. type: Content of: <book><chapter><sect1><para> 1.2139 +#: ../en/ch04-daily.xml:570 1.2140 +msgid "In another, we'll modify the file differently." 1.2141 +msgstr "" 1.2142 + 1.2143 +#. type: Content of: <book><chapter><sect1><para> 1.2144 +#: ../en/ch04-daily.xml:574 1.2145 +msgid "Next, we'll pull each set of changes into our original repo." 1.2146 +msgstr "" 1.2147 + 1.2148 +#. type: Content of: <book><chapter><sect1><para> 1.2149 +#: ../en/ch04-daily.xml:579 1.2150 +msgid "We expect our repository to now contain two heads." 1.2151 +msgstr "" 1.2152 + 1.2153 +#. type: Content of: <book><chapter><sect1><para> 1.2154 +#: ../en/ch04-daily.xml:583 1.2155 +msgid "" 1.2156 +"Normally, if we run <command role=\"hg-cmd\">hg merge</command> at this " 1.2157 +"point, it will drop us into a GUI that will let us manually resolve the " 1.2158 +"conflicting edits to <filename>myfile.txt</filename>. However, to simplify " 1.2159 +"things for presentation here, we'd like the merge to fail immediately " 1.2160 +"instead. Here's one way we can do so." 1.2161 +msgstr "" 1.2162 + 1.2163 +#. type: Content of: <book><chapter><sect1><para> 1.2164 +#: ../en/ch04-daily.xml:592 1.2165 +msgid "" 1.2166 +"We've told Mercurial's merge machinery to run the command <command>false</" 1.2167 +"command> (which, as we desire, fails immediately) if it detects a merge that " 1.2168 +"it can't sort out automatically." 1.2169 +msgstr "" 1.2170 + 1.2171 +#. type: Content of: <book><chapter><sect1><para> 1.2172 +#: ../en/ch04-daily.xml:597 1.2173 +msgid "" 1.2174 +"If we now fire up <command role=\"hg-cmd\">hg merge</command>, it should " 1.2175 +"grind to a halt and report a failure." 1.2176 +msgstr "" 1.2177 + 1.2178 +#. type: Content of: <book><chapter><sect1><para> 1.2179 +#: ../en/ch04-daily.xml:603 1.2180 +msgid "" 1.2181 +"Even if we don't notice that the merge failed, Mercurial will prevent us from " 1.2182 +"accidentally committing the result of a failed merge." 1.2183 +msgstr "" 1.2184 + 1.2185 +#. type: Content of: <book><chapter><sect1><para> 1.2186 +#: ../en/ch04-daily.xml:609 1.2187 +msgid "" 1.2188 +"When <command role=\"hg-cmd\">hg commit</command> fails in this case, it " 1.2189 +"suggests that we use the unfamiliar <command role=\"hg-cmd\">hg resolve</" 1.2190 +"command> command. As usual, <command role=\"hg-cmd\">hg help resolve</" 1.2191 +"command> will print a helpful synopsis." 1.2192 +msgstr "" 1.2193 + 1.2194 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2195 +#: ../en/ch04-daily.xml:616 1.2196 +msgid "File resolution states" 1.2197 +msgstr "" 1.2198 + 1.2199 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2200 +#: ../en/ch04-daily.xml:618 1.2201 +msgid "" 1.2202 +"When a merge occurs, most files will usually remain unmodified. For each " 1.2203 +"file where Mercurial has to do something, it tracks the state of the file." 1.2204 +msgstr "" 1.2205 + 1.2206 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.2207 +#: ../en/ch04-daily.xml:624 1.2208 +msgid "" 1.2209 +"A <emphasis>resolved</emphasis> file has been successfully merged, either " 1.2210 +"automatically by Mercurial or manually with human intervention." 1.2211 +msgstr "" 1.2212 + 1.2213 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.2214 +#: ../en/ch04-daily.xml:629 1.2215 +msgid "" 1.2216 +"An <emphasis>unresolved</emphasis> file was not merged successfully, and " 1.2217 +"needs more attention." 1.2218 +msgstr "" 1.2219 + 1.2220 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2221 +#: ../en/ch04-daily.xml:634 1.2222 +msgid "" 1.2223 +"If Mercurial sees <emphasis>any</emphasis> file in the unresolved state after " 1.2224 +"a merge, it considers the merge to have failed. Fortunately, we do not need " 1.2225 +"to restart the entire merge from scratch." 1.2226 +msgstr "" 1.2227 + 1.2228 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2229 +#: ../en/ch04-daily.xml:639 1.2230 +msgid "" 1.2231 +"The <option role=\"hg-opt-resolve\">--list</option> or <option role=\"hg-opt-" 1.2232 +"resolve\">-l</option> option to <command role=\"hg-cmd\">hg resolve</command> " 1.2233 +"prints out the state of each merged file." 1.2234 +msgstr "" 1.2235 + 1.2236 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2237 +#: ../en/ch04-daily.xml:646 1.2238 +msgid "" 1.2239 +"In the output from <command role=\"hg-cmd\">hg resolve</command>, a resolved " 1.2240 +"file is marked with <literal>R</literal>, while an unresolved file is marked " 1.2241 +"with <literal>U</literal>. If any files are listed with <literal>U</" 1.2242 +"literal>, we know that an attempt to commit the results of the merge will " 1.2243 +"fail." 1.2244 +msgstr "" 1.2245 + 1.2246 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2247 +#: ../en/ch04-daily.xml:655 1.2248 +#, fuzzy 1.2249 +msgid "Resolving a file merge" 1.2250 +msgstr "执行合并" 1.2251 + 1.2252 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2253 +#: ../en/ch04-daily.xml:657 1.2254 +msgid "" 1.2255 +"We have several options to move a file from the unresolved into the resolved " 1.2256 +"state. By far the most common is to rerun <command role=\"hg-cmd\">hg " 1.2257 +"resolve</command>. If we pass the names of individual files or directories, " 1.2258 +"it will retry the merges of any unresolved files present in those locations. " 1.2259 +"We can also pass the <option role=\"hg-opt-resolve\">--all</option> or " 1.2260 +"<option role=\"hg-opt-resolve\">-a</option> option, which will retry the " 1.2261 +"merges of <emphasis>all</emphasis> unresolved files." 1.2262 +msgstr "" 1.2263 + 1.2264 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2265 +#: ../en/ch04-daily.xml:667 1.2266 +msgid "" 1.2267 +"Mercurial also lets us modify the resolution state of a file directly. We " 1.2268 +"can manually mark a file as resolved using the <option role=\"hg-opt-resolve" 1.2269 +"\">--mark</option> option, or as unresolved using the <option role=\"hg-opt-" 1.2270 +"resolve\">--unmark</option> option. This allows us to clean up a " 1.2271 +"particularly messy merge by hand, and to keep track of our progress with each " 1.2272 +"file as we go." 1.2273 +msgstr "" 1.2274 + 1.2275 #. type: Content of: <book><chapter><title> 1.2276 #: ../en/ch05-collab.xml:5 1.2277 msgid "Collaborating with other people" 1.2278 @@ -5602,15 +5816,16 @@ 1.2279 "For interactive use, the web interface lets you browse a single repository or " 1.2280 "a collection of repositories. You can view the history of a repository, " 1.2281 "examine each change (comments and diffs), and view the contents of each " 1.2282 -"directory and file." 1.2283 -msgstr "" 1.2284 - 1.2285 -#. type: Content of: <book><chapter><sect1><para> 1.2286 -#: ../en/ch05-collab.xml:24 1.2287 -msgid "" 1.2288 -"Also for human consumption, the web interface provides an RSS feed of the " 1.2289 -"changes in a repository. This lets you <quote>subscribe</quote> to a " 1.2290 -"repository using your favourite feed reader, and be automatically notified of " 1.2291 +"directory and file. You can even get a view of history that gives a " 1.2292 +"graphical view of the relationships between individual changes and merges." 1.2293 +msgstr "" 1.2294 + 1.2295 +#. type: Content of: <book><chapter><sect1><para> 1.2296 +#: ../en/ch05-collab.xml:26 1.2297 +msgid "" 1.2298 +"Also for human consumption, the web interface provides Atom and RSS feeds of " 1.2299 +"the changes in a repository. This lets you <quote>subscribe</quote> to a " 1.2300 +"repository using your favorite feed reader, and be automatically notified of " 1.2301 "activity in that repository as soon as it happens. I find this capability " 1.2302 "much more convenient than the model of subscribing to a mailing list to which " 1.2303 "notifications are sent, as it requires no additional configuration on the " 1.2304 @@ -5618,7 +5833,7 @@ 1.2305 msgstr "" 1.2306 1.2307 #. type: Content of: <book><chapter><sect1><para> 1.2308 -#: ../en/ch05-collab.xml:34 1.2309 +#: ../en/ch05-collab.xml:36 1.2310 msgid "" 1.2311 "The web interface also lets remote users clone a repository, pull changes " 1.2312 "from it, and (when the server is configured to permit it) push changes back " 1.2313 @@ -5627,35 +5842,61 @@ 1.2314 msgstr "" 1.2315 1.2316 #. type: Content of: <book><chapter><sect1><para> 1.2317 -#: ../en/ch05-collab.xml:40 1.2318 +#: ../en/ch05-collab.xml:42 1.2319 msgid "" 1.2320 "The easiest way to get started with the web interface is to use your web " 1.2321 "browser to visit an existing repository, such as the master Mercurial " 1.2322 -"repository at <ulink url=\"http://www.selenic.com/repo/hg?style=gitweb" 1.2323 -"\">http://www.selenic.com/repo/hg?style=gitweb</ulink>." 1.2324 -msgstr "" 1.2325 - 1.2326 -#. type: Content of: <book><chapter><sect1><para> 1.2327 -#: ../en/ch05-collab.xml:45 1.2328 +"repository at <ulink url=\"http://www.selenic.com/repo/hg\">http://www." 1.2329 +"selenic.com/repo/hg</ulink>." 1.2330 +msgstr "" 1.2331 + 1.2332 +#. type: Content of: <book><chapter><sect1><para> 1.2333 +#: ../en/ch05-collab.xml:47 1.2334 msgid "" 1.2335 "If you're interested in providing a web interface to your own repositories, " 1.2336 -"Mercurial provides two ways to do this. The first is using the <command role=" 1.2337 -"\"hg-cmd\">hg serve</command> command, which is best suited to short-term " 1.2338 -"<quote>lightweight</quote> serving. See <xref linkend=\"sec:collab:serve\"/> " 1.2339 -"below for details of how to use this command. If you have a long-lived " 1.2340 -"repository that you'd like to make permanently available, Mercurial has built-" 1.2341 -"in support for the CGI (Common Gateway Interface) standard, which all common " 1.2342 -"web servers support. See <xref linkend=\"sec:collab:cgi\"/> for details of " 1.2343 -"CGI configuration." 1.2344 +"there are several good ways to do this." 1.2345 +msgstr "" 1.2346 + 1.2347 +#. type: Content of: <book><chapter><sect1><para> 1.2348 +#: ../en/ch05-collab.xml:51 1.2349 +msgid "" 1.2350 +"The easiest and fastest way to get started in an informal environment is to " 1.2351 +"use the <command role=\"hg-cmd\">hg serve</command> command, which is best " 1.2352 +"suited to short-term <quote>lightweight</quote> serving. See <xref linkend=" 1.2353 +"\"sec:collab:serve\"/> below for details of how to use this command." 1.2354 +msgstr "" 1.2355 + 1.2356 +#. type: Content of: <book><chapter><sect1><para> 1.2357 +#: ../en/ch05-collab.xml:58 1.2358 +msgid "" 1.2359 +"For longer-lived repositories that you'd like to have permanently available, " 1.2360 +"there are several public hosting services available." 1.2361 +msgstr "" 1.2362 + 1.2363 +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2364 +#: ../en/ch05-collab.xml:64 1.2365 +msgid "" 1.2366 +"Bitbucket, at <ulink url=\"http://bitbucket.org/\">http://bitbucket.org/</" 1.2367 +"ulink>, provides free hosting for open source projects, and paid hosting for " 1.2368 +"commercial projects." 1.2369 +msgstr "" 1.2370 + 1.2371 +#. type: Content of: <book><chapter><sect1><para> 1.2372 +#: ../en/ch05-collab.xml:71 1.2373 +msgid "" 1.2374 +"If you would prefer to host your own repositories, Mercurial has built-in " 1.2375 +"support for several popular hosting technologies, most notably CGI (Common " 1.2376 +"Gateway Interface), and WSGI (Web Services Gateway Interface). See <xref " 1.2377 +"linkend=\"sec:collab:cgi\"/> for details of CGI and WSGI configuration." 1.2378 msgstr "" 1.2379 1.2380 #. type: Content of: <book><chapter><sect1><title> 1.2381 -#: ../en/ch05-collab.xml:60 1.2382 +#: ../en/ch05-collab.xml:80 1.2383 msgid "Collaboration models" 1.2384 msgstr "协作模型" 1.2385 1.2386 #. type: Content of: <book><chapter><sect1><para> 1.2387 -#: ../en/ch05-collab.xml:62 1.2388 +#: ../en/ch05-collab.xml:82 1.2389 msgid "" 1.2390 "With a suitably flexible tool, making decisions about workflow is much more " 1.2391 "of a social engineering challenge than a technical one. Mercurial imposes few " 1.2392 @@ -5665,12 +5906,12 @@ 1.2393 msgstr "" 1.2394 1.2395 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2396 -#: ../en/ch05-collab.xml:70 1.2397 +#: ../en/ch05-collab.xml:90 1.2398 msgid "Factors to keep in mind" 1.2399 msgstr "要牢记的因素" 1.2400 1.2401 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2402 -#: ../en/ch05-collab.xml:72 1.2403 +#: ../en/ch05-collab.xml:92 1.2404 msgid "" 1.2405 "The most important aspect of any model that you must keep in mind is how well " 1.2406 "it matches the needs and capabilities of the people who will be using it. " 1.2407 @@ -5679,7 +5920,7 @@ 1.2408 msgstr "" 1.2409 1.2410 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2411 -#: ../en/ch05-collab.xml:78 1.2412 +#: ../en/ch05-collab.xml:98 1.2413 msgid "" 1.2414 "I once put together a workflow model that seemed to make perfect sense to me, " 1.2415 "but that caused a considerable amount of consternation and strife within my " 1.2416 @@ -5692,7 +5933,7 @@ 1.2417 msgstr "" 1.2418 1.2419 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2420 -#: ../en/ch05-collab.xml:88 1.2421 +#: ../en/ch05-collab.xml:108 1.2422 msgid "" 1.2423 "Don't sweep foreseeable social or technical problems under the rug. Whatever " 1.2424 "scheme you put into effect, you should plan for mistakes and problem " 1.2425 @@ -5706,12 +5947,12 @@ 1.2426 msgstr "" 1.2427 1.2428 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2429 -#: ../en/ch05-collab.xml:102 1.2430 +#: ../en/ch05-collab.xml:122 1.2431 msgid "Informal anarchy" 1.2432 msgstr "无政府状态" 1.2433 1.2434 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2435 -#: ../en/ch05-collab.xml:104 1.2436 +#: ../en/ch05-collab.xml:124 1.2437 msgid "" 1.2438 "I wouldn't suggest an <quote>anything goes</quote> approach as something " 1.2439 "sustainable, but it's a model that's easy to grasp, and it works perfectly " 1.2440 @@ -5719,11 +5960,11 @@ 1.2441 msgstr "" 1.2442 1.2443 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2444 -#: ../en/ch05-collab.xml:109 1.2445 +#: ../en/ch05-collab.xml:129 1.2446 msgid "" 1.2447 "As one example, many projects have a loose-knit group of collaborators who " 1.2448 "rarely physically meet each other. Some groups like to overcome the " 1.2449 -"isolation of working at a distance by organising occasional <quote>sprints</" 1.2450 +"isolation of working at a distance by organizing occasional <quote>sprints</" 1.2451 "quote>. In a sprint, a number of people get together in a single location (a " 1.2452 "company's conference room, a hotel meeting room, that kind of place) and " 1.2453 "spend several days more or less locked in there, hacking intensely on a " 1.2454 @@ -5731,37 +5972,38 @@ 1.2455 msgstr "" 1.2456 1.2457 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2458 -#: ../en/ch05-collab.xml:118 1.2459 -msgid "" 1.2460 -"A sprint is the perfect place to use the <command role=\"hg-cmd\">hg serve</" 1.2461 -"command> command, since <command role=\"hg-cmd\">hg serve</command> does not " 1.2462 -"require any fancy server infrastructure. You can get started with <command " 1.2463 -"role=\"hg-cmd\">hg serve</command> in moments, by reading <xref linkend=\"sec:" 1.2464 -"collab:serve\"/> below. Then simply tell the person next to you that you're " 1.2465 -"running a server, send the URL to them in an instant message, and you " 1.2466 -"immediately have a quick-turnaround way to work together. They can type your " 1.2467 -"URL into their web browser and quickly review your changes; or they can pull " 1.2468 -"a bugfix from you and verify it; or they can clone a branch containing a new " 1.2469 -"feature and try it out." 1.2470 -msgstr "" 1.2471 - 1.2472 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2473 -#: ../en/ch05-collab.xml:132 1.2474 +#: ../en/ch05-collab.xml:138 1.2475 +msgid "" 1.2476 +"A sprint or a hacking session in a coffee shop are the perfect places to use " 1.2477 +"the <command role=\"hg-cmd\">hg serve</command> command, since <command role=" 1.2478 +"\"hg-cmd\">hg serve</command> does not require any fancy server " 1.2479 +"infrastructure. You can get started with <command role=\"hg-cmd\">hg serve</" 1.2480 +"command> in moments, by reading <xref linkend=\"sec:collab:serve\"/> below. " 1.2481 +"Then simply tell the person next to you that you're running a server, send " 1.2482 +"the URL to them in an instant message, and you immediately have a quick-" 1.2483 +"turnaround way to work together. They can type your URL into their web " 1.2484 +"browser and quickly review your changes; or they can pull a bugfix from you " 1.2485 +"and verify it; or they can clone a branch containing a new feature and try it " 1.2486 +"out." 1.2487 +msgstr "" 1.2488 + 1.2489 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2490 +#: ../en/ch05-collab.xml:152 1.2491 msgid "" 1.2492 "The charm, and the problem, with doing things in an ad hoc fashion like this " 1.2493 "is that only people who know about your changes, and where they are, can see " 1.2494 "them. Such an informal approach simply doesn't scale beyond a handful " 1.2495 -"people, because each individual needs to know about $n$ different " 1.2496 -"repositories to pull from." 1.2497 -msgstr "" 1.2498 - 1.2499 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.2500 -#: ../en/ch05-collab.xml:141 1.2501 +"people, because each individual needs to know about <emphasis>n</emphasis> " 1.2502 +"different repositories to pull from." 1.2503 +msgstr "" 1.2504 + 1.2505 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2506 +#: ../en/ch05-collab.xml:162 1.2507 msgid "A single central repository" 1.2508 msgstr "单一中央版本库" 1.2509 1.2510 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2511 -#: ../en/ch05-collab.xml:143 1.2512 +#: ../en/ch05-collab.xml:164 1.2513 msgid "" 1.2514 "For smaller projects migrating from a centralised revision control tool, " 1.2515 "perhaps the easiest way to get started is to have changes flow through a " 1.2516 @@ -5770,7 +6012,7 @@ 1.2517 msgstr "" 1.2518 1.2519 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2520 -#: ../en/ch05-collab.xml:149 1.2521 +#: ../en/ch05-collab.xml:170 1.2522 msgid "" 1.2523 "Contributors start by cloning a copy of this repository. They can pull " 1.2524 "changes from it whenever they need to, and some (perhaps all) developers have " 1.2525 @@ -5779,7 +6021,7 @@ 1.2526 msgstr "" 1.2527 1.2528 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2529 -#: ../en/ch05-collab.xml:154 1.2530 +#: ../en/ch05-collab.xml:175 1.2531 msgid "" 1.2532 "Under this model, it can still often make sense for people to pull changes " 1.2533 "directly from each other, without going through the central repository. " 1.2534 @@ -5792,24 +6034,56 @@ 1.2535 msgstr "" 1.2536 1.2537 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2538 -#: ../en/ch05-collab.xml:165 1.2539 -msgid "" 1.2540 -"In this kind of scenario, people usually use the <command>ssh</command> " 1.2541 -"protocol to securely push changes to the central repository, as documented in " 1.2542 -"<xref linkend=\"sec:collab:ssh\"/>. It's also usual to publish a read-only " 1.2543 -"copy of the repository over HTTP using CGI, as in <xref linkend=\"sec:collab:" 1.2544 -"cgi\"/>. Publishing over HTTP satisfies the needs of people who don't have " 1.2545 -"push access, and those who want to use web browsers to browse the " 1.2546 -"repository's history." 1.2547 -msgstr "" 1.2548 - 1.2549 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.2550 -#: ../en/ch05-collab.xml:177 1.2551 +#: ../en/ch05-collab.xml:186 1.2552 +msgid "" 1.2553 +"If a team is hosting its own repository in this kind of scenario, people will " 1.2554 +"usually use the <command>ssh</command> protocol to securely push changes to " 1.2555 +"the central repository, as documented in <xref linkend=\"sec:collab:ssh\"/>. " 1.2556 +"It's also usual to publish a read-only copy of the repository over HTTP, as " 1.2557 +"in <xref linkend=\"sec:collab:cgi\"/>. Publishing over HTTP satisfies the " 1.2558 +"needs of people who don't have push access, and those who want to use web " 1.2559 +"browsers to browse the repository's history." 1.2560 +msgstr "" 1.2561 + 1.2562 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2563 +#: ../en/ch05-collab.xml:199 1.2564 +#, fuzzy 1.2565 +msgid "A hosted central repository" 1.2566 +msgstr "单一中央版本库" 1.2567 + 1.2568 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2569 +#: ../en/ch05-collab.xml:201 1.2570 +msgid "" 1.2571 +"A wonderful thing about public hosting services like <ulink url=\"http://" 1.2572 +"bitbucket.org/\">Bitbucket</ulink> is that not only do they handle the fiddly " 1.2573 +"server configuration details, such as user accounts, authentication, and " 1.2574 +"secure wire protocols, they provide additional infrastructure to make this " 1.2575 +"model work well." 1.2576 +msgstr "" 1.2577 + 1.2578 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2579 +#: ../en/ch05-collab.xml:208 1.2580 +msgid "" 1.2581 +"For instance, a well-engineered hosting service will let people clone their " 1.2582 +"own copies of a repository with a single click. This lets people work in " 1.2583 +"separate spaces and share their changes when they're ready." 1.2584 +msgstr "" 1.2585 + 1.2586 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2587 +#: ../en/ch05-collab.xml:213 1.2588 +msgid "" 1.2589 +"In addition, a good hosting service will let people communicate with each " 1.2590 +"other, for instance to say <quote>there are changes ready for you to review " 1.2591 +"in this tree</quote>." 1.2592 +msgstr "" 1.2593 + 1.2594 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2595 +#: ../en/ch05-collab.xml:220 1.2596 msgid "Working with multiple branches" 1.2597 msgstr "使用多个分支工作" 1.2598 1.2599 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2600 -#: ../en/ch05-collab.xml:179 1.2601 +#: ../en/ch05-collab.xml:222 1.2602 msgid "" 1.2603 "Projects of any significant size naturally tend to make progress on several " 1.2604 "fronts simultaneously. In the case of software, it's common for a project to " 1.2605 @@ -5823,30 +6097,30 @@ 1.2606 msgstr "" 1.2607 1.2608 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2609 -#: ../en/ch05-collab.xml:192 1.2610 +#: ../en/ch05-collab.xml:235 1.2611 msgid "" 1.2612 "Mercurial is particularly well suited to managing a number of simultaneous, " 1.2613 "but not identical, branches. Each <quote>development direction</quote> can " 1.2614 "live in its own central repository, and you can merge changes from one to " 1.2615 "another as the need arises. Because repositories are independent of each " 1.2616 "other, unstable changes in a development branch will never affect a stable " 1.2617 -"branch unless someone explicitly merges those changes in." 1.2618 -msgstr "" 1.2619 - 1.2620 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2621 -#: ../en/ch05-collab.xml:201 1.2622 +"branch unless someone explicitly merges those changes into the stable branch." 1.2623 +msgstr "" 1.2624 + 1.2625 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2626 +#: ../en/ch05-collab.xml:244 1.2627 msgid "" 1.2628 "Here's an example of how this can work in practice. Let's say you have one " 1.2629 "<quote>main branch</quote> on a central server." 1.2630 msgstr "" 1.2631 1.2632 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2633 -#: ../en/ch05-collab.xml:207 1.2634 +#: ../en/ch05-collab.xml:250 1.2635 msgid "People clone it, make changes locally, test them, and push them back." 1.2636 msgstr "" 1.2637 1.2638 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2639 -#: ../en/ch05-collab.xml:210 1.2640 +#: ../en/ch05-collab.xml:253 1.2641 msgid "" 1.2642 "Once the main branch reaches a release milestone, you can use the <command " 1.2643 "role=\"hg-cmd\">hg tag</command> command to give a permanent name to the " 1.2644 @@ -5854,12 +6128,12 @@ 1.2645 msgstr "" 1.2646 1.2647 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2648 -#: ../en/ch05-collab.xml:216 1.2649 +#: ../en/ch05-collab.xml:259 1.2650 msgid "Let's say some ongoing development occurs on the main branch." 1.2651 msgstr "" 1.2652 1.2653 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2654 -#: ../en/ch05-collab.xml:221 1.2655 +#: ../en/ch05-collab.xml:264 1.2656 msgid "" 1.2657 "Using the tag that was recorded at the milestone, people who clone that " 1.2658 "repository at any time in the future can use <command role=\"hg-cmd\">hg " 1.2659 @@ -5867,57 +6141,57 @@ 1.2660 "when that tagged revision was committed." 1.2661 msgstr "" 1.2662 1.2663 -# 1.2664 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2665 -#: ../en/ch05-collab.xml:229 1.2666 -msgid "" 1.2667 -"In addition, immediately after the main branch is tagged, someone can then " 1.2668 -"clone the main branch on the server to a new <quote>stable</quote> branch, " 1.2669 -"also on the server." 1.2670 -msgstr "" 1.2671 - 1.2672 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2673 -#: ../en/ch05-collab.xml:235 1.2674 -msgid "" 1.2675 -"Someone who needs to make a change to the stable branch can then clone " 1.2676 -"<emphasis>that</emphasis> repository, make their changes, commit, and push " 1.2677 -"their changes back there." 1.2678 -msgstr "" 1.2679 - 1.2680 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2681 -#: ../en/ch05-collab.xml:241 1.2682 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2683 +#: ../en/ch05-collab.xml:272 1.2684 +msgid "" 1.2685 +"In addition, immediately after the main branch is tagged, we can then clone " 1.2686 +"the main branch on the server to a new <quote>stable</quote> branch, also on " 1.2687 +"the server." 1.2688 +msgstr "" 1.2689 + 1.2690 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2691 +#: ../en/ch05-collab.xml:278 1.2692 +msgid "" 1.2693 +"If we need to make a change to the stable branch, we can then clone " 1.2694 +"<emphasis>that</emphasis> repository, make our changes, commit, and push our " 1.2695 +"changes back there." 1.2696 +msgstr "" 1.2697 + 1.2698 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2699 +#: ../en/ch05-collab.xml:285 1.2700 msgid "" 1.2701 "Because Mercurial repositories are independent, and Mercurial doesn't move " 1.2702 "changes around automatically, the stable and main branches are " 1.2703 -"<emphasis>isolated</emphasis> from each other. The changes that you made on " 1.2704 +"<emphasis>isolated</emphasis> from each other. The changes that we made on " 1.2705 "the main branch don't <quote>leak</quote> to the stable branch, and vice " 1.2706 "versa." 1.2707 msgstr "" 1.2708 1.2709 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2710 -#: ../en/ch05-collab.xml:248 1.2711 -msgid "" 1.2712 -"You'll often want all of your bugfixes on the stable branch to show up on the " 1.2713 -"main branch, too. Rather than rewrite a bugfix on the main branch, you can " 1.2714 +#: ../en/ch05-collab.xml:292 1.2715 +msgid "" 1.2716 +"We'll often want all of our bugfixes on the stable branch to show up on the " 1.2717 +"main branch, too. Rather than rewrite a bugfix on the main branch, we can " 1.2718 "simply pull and merge changes from the stable to the main branch, and " 1.2719 -"Mercurial will bring those bugfixes in for you." 1.2720 -msgstr "" 1.2721 - 1.2722 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.2723 -#: ../en/ch05-collab.xml:256 1.2724 +"Mercurial will bring those bugfixes in for us." 1.2725 +msgstr "" 1.2726 + 1.2727 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.2728 +#: ../en/ch05-collab.xml:300 1.2729 msgid "" 1.2730 "The main branch will still contain changes that are not on the stable branch, " 1.2731 "but it will also contain all of the bugfixes from the stable branch. The " 1.2732 -"stable branch remains unaffected by these changes." 1.2733 +"stable branch remains unaffected by these changes, since changes are only " 1.2734 +"flowing from the stable to the main branch, and not the other way." 1.2735 msgstr "" 1.2736 1.2737 #. type: Content of: <book><chapter><sect1><sect2><figure><title> 1.2738 -#: ../en/ch05-collab.xml:263 ../en/ch05-collab.xml:273 1.2739 +#: ../en/ch05-collab.xml:309 ../en/ch05-collab.xml:319 1.2740 msgid "Feature branches" 1.2741 msgstr "特性分支" 1.2742 1.2743 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2744 -#: ../en/ch05-collab.xml:265 1.2745 +#: ../en/ch05-collab.xml:311 1.2746 msgid "" 1.2747 "For larger projects, an effective way to manage change is to break up a team " 1.2748 "into smaller groups. Each group has a shared branch of its own, cloned from " 1.2749 @@ -5927,14 +6201,14 @@ 1.2750 msgstr "" 1.2751 1.2752 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject> 1.2753 -#: ../en/ch05-collab.xml:275 1.2754 +#: ../en/ch05-collab.xml:321 1.2755 msgid "" 1.2756 "<imageobject><imagedata width=\"100%\" fileref=\"figs/feature-branches.png\"/" 1.2757 "></imageobject>" 1.2758 msgstr "" 1.2759 1.2760 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2761 -#: ../en/ch05-collab.xml:280 1.2762 +#: ../en/ch05-collab.xml:326 1.2763 msgid "" 1.2764 "When a particular feature is deemed to be in suitable shape, someone on that " 1.2765 "feature team pulls and merges from the master branch into the feature branch, " 1.2766 @@ -5942,20 +6216,20 @@ 1.2767 msgstr "" 1.2768 1.2769 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2770 -#: ../en/ch05-collab.xml:287 1.2771 +#: ../en/ch05-collab.xml:333 1.2772 msgid "The release train" 1.2773 msgstr "发布列车" 1.2774 1.2775 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2776 -#: ../en/ch05-collab.xml:289 1.2777 -msgid "" 1.2778 -"Some projects are organised on a <quote>train</quote> basis: a release is " 1.2779 +#: ../en/ch05-collab.xml:335 1.2780 +msgid "" 1.2781 +"Some projects are organized on a <quote>train</quote> basis: a release is " 1.2782 "scheduled to happen every few months, and whatever features are ready when " 1.2783 "the <quote>train</quote> is ready to leave are allowed in." 1.2784 msgstr "" 1.2785 1.2786 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2787 -#: ../en/ch05-collab.xml:294 1.2788 +#: ../en/ch05-collab.xml:340 1.2789 msgid "" 1.2790 "This model resembles working with feature branches. The difference is that " 1.2791 "when a feature branch misses a train, someone on the feature team pulls and " 1.2792 @@ -5965,12 +6239,12 @@ 1.2793 msgstr "" 1.2794 1.2795 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2796 -#: ../en/ch05-collab.xml:303 1.2797 +#: ../en/ch05-collab.xml:349 1.2798 msgid "The Linux kernel model" 1.2799 msgstr "Linux 内核模型" 1.2800 1.2801 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2802 -#: ../en/ch05-collab.xml:305 1.2803 +#: ../en/ch05-collab.xml:351 1.2804 msgid "" 1.2805 "The development of the Linux kernel has a shallow hierarchical structure, " 1.2806 "surrounded by a cloud of apparent chaos. Because most Linux developers use " 1.2807 @@ -5980,7 +6254,7 @@ 1.2808 msgstr "" 1.2809 1.2810 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2811 -#: ../en/ch05-collab.xml:313 1.2812 +#: ../en/ch05-collab.xml:359 1.2813 msgid "" 1.2814 "At the center of the community sits Linus Torvalds, the creator of Linux. He " 1.2815 "publishes a single source repository that is considered the " 1.2816 @@ -5990,7 +6264,7 @@ 1.2817 msgstr "" 1.2818 1.2819 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2820 -#: ../en/ch05-collab.xml:320 1.2821 +#: ../en/ch05-collab.xml:366 1.2822 msgid "" 1.2823 "Linus has a number of <quote>trusted lieutenants</quote>. As a general rule, " 1.2824 "he pulls whatever changes they publish, in most cases without even reviewing " 1.2825 @@ -6004,7 +6278,7 @@ 1.2826 msgstr "" 1.2827 1.2828 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2829 -#: ../en/ch05-collab.xml:332 1.2830 +#: ../en/ch05-collab.xml:378 1.2831 msgid "" 1.2832 "Individual lieutenants have their own approaches to reviewing, accepting, and " 1.2833 "publishing changes; and for deciding when to feed them to Linus. In " 1.2834 @@ -6017,7 +6291,7 @@ 1.2835 msgstr "" 1.2836 1.2837 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2838 -#: ../en/ch05-collab.xml:343 1.2839 +#: ../en/ch05-collab.xml:389 1.2840 msgid "" 1.2841 "This model has two notable features. The first is that it's <quote>pull " 1.2842 "only</quote>. You have to ask, convince, or beg another developer to take a " 1.2843 @@ -6027,7 +6301,7 @@ 1.2844 msgstr "" 1.2845 1.2846 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2847 -#: ../en/ch05-collab.xml:350 1.2848 +#: ../en/ch05-collab.xml:396 1.2849 msgid "" 1.2850 "The second is that it's based on reputation and acclaim. If you're an " 1.2851 "unknown, Linus will probably ignore changes from you without even " 1.2852 @@ -6041,7 +6315,7 @@ 1.2853 msgstr "" 1.2854 1.2855 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2856 -#: ../en/ch05-collab.xml:361 1.2857 +#: ../en/ch05-collab.xml:407 1.2858 msgid "" 1.2859 "Reputation and acclaim don't necessarily cross subsystem or <quote>people</" 1.2860 "quote> boundaries. If you're a respected but specialised storage hacker, and " 1.2861 @@ -6050,7 +6324,7 @@ 1.2862 msgstr "" 1.2863 1.2864 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2865 -#: ../en/ch05-collab.xml:368 1.2866 +#: ../en/ch05-collab.xml:414 1.2867 msgid "" 1.2868 "To people who come from more orderly project backgrounds, the comparatively " 1.2869 "chaotic Linux kernel development process often seems completely insane. It's " 1.2870 @@ -6060,12 +6334,12 @@ 1.2871 msgstr "" 1.2872 1.2873 #. type: Content of: <book><chapter><sect1><sect2><title> 1.2874 -#: ../en/ch05-collab.xml:378 1.2875 +#: ../en/ch05-collab.xml:424 1.2876 msgid "Pull-only versus shared-push collaboration" 1.2877 msgstr "只读与共享写协作" 1.2878 1.2879 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2880 -#: ../en/ch05-collab.xml:380 1.2881 +#: ../en/ch05-collab.xml:426 1.2882 msgid "" 1.2883 "A perpetual source of heat in the open source community is whether a " 1.2884 "development model in which people only ever pull changes from others is " 1.2885 @@ -6074,7 +6348,7 @@ 1.2886 msgstr "" 1.2887 1.2888 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2889 -#: ../en/ch05-collab.xml:386 1.2890 +#: ../en/ch05-collab.xml:432 1.2891 msgid "" 1.2892 "Typically, the backers of the shared-push model use tools that actively " 1.2893 "enforce this approach. If you're using a centralised revision control tool " 1.2894 @@ -6085,21 +6359,20 @@ 1.2895 msgstr "" 1.2896 1.2897 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2898 -#: ../en/ch05-collab.xml:394 1.2899 -msgid "" 1.2900 -"A good distributed revision control tool, such as Mercurial, will support " 1.2901 -"both models. You and your collaborators can then structure how you work " 1.2902 -"together based on your own needs and preferences, not on what contortions " 1.2903 -"your tools force you into." 1.2904 -msgstr "" 1.2905 - 1.2906 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.2907 -#: ../en/ch05-collab.xml:402 1.2908 +#: ../en/ch05-collab.xml:440 1.2909 +msgid "" 1.2910 +"A good distributed revision control tool will support both models. You and " 1.2911 +"your collaborators can then structure how you work together based on your own " 1.2912 +"needs and preferences, not on what contortions your tools force you into." 1.2913 +msgstr "" 1.2914 + 1.2915 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.2916 +#: ../en/ch05-collab.xml:447 1.2917 msgid "Where collaboration meets branch management" 1.2918 msgstr "协作与分支管理" 1.2919 1.2920 #. type: Content of: <book><chapter><sect1><sect2><para> 1.2921 -#: ../en/ch05-collab.xml:404 1.2922 +#: ../en/ch05-collab.xml:449 1.2923 msgid "" 1.2924 "Once you and your team set up some shared repositories and start propagating " 1.2925 "changes back and forth between local and shared repos, you begin to face a " 1.2926 @@ -6110,24 +6383,24 @@ 1.2927 msgstr "" 1.2928 1.2929 #. type: Content of: <book><chapter><sect1><title> 1.2930 -#: ../en/ch05-collab.xml:416 1.2931 +#: ../en/ch05-collab.xml:461 1.2932 msgid "The technical side of sharing" 1.2933 msgstr "共享的技术因素" 1.2934 1.2935 #. type: Content of: <book><chapter><sect1><para> 1.2936 -#: ../en/ch05-collab.xml:418 1.2937 -msgid "" 1.2938 -"The remainder of this chapter is devoted to the question of serving data to " 1.2939 -"your collaborators." 1.2940 +#: ../en/ch05-collab.xml:463 1.2941 +msgid "" 1.2942 +"The remainder of this chapter is devoted to the question of sharing changes " 1.2943 +"with your collaborators." 1.2944 msgstr "" 1.2945 1.2946 #. type: Content of: <book><chapter><sect1><title> 1.2947 -#: ../en/ch05-collab.xml:423 1.2948 +#: ../en/ch05-collab.xml:468 1.2949 msgid "Informal sharing with <command role=\"hg-cmd\">hg serve</command>" 1.2950 msgstr "使用 <command role=\"hg-cmd\">hg serve</command> 进行非正式共享" 1.2951 1.2952 #. type: Content of: <book><chapter><sect1><para> 1.2953 -#: ../en/ch05-collab.xml:426 1.2954 +#: ../en/ch05-collab.xml:471 1.2955 msgid "" 1.2956 "Mercurial's <command role=\"hg-cmd\">hg serve</command> command is " 1.2957 "wonderfully suited to small, tight-knit, and fast-paced group environments. " 1.2958 @@ -6136,7 +6409,7 @@ 1.2959 msgstr "" 1.2960 1.2961 #. type: Content of: <book><chapter><sect1><para> 1.2962 -#: ../en/ch05-collab.xml:431 1.2963 +#: ../en/ch05-collab.xml:476 1.2964 msgid "" 1.2965 "Run <command role=\"hg-cmd\">hg serve</command> inside a repository, and in " 1.2966 "under a second it will bring up a specialised HTTP server; this will accept " 1.2967 @@ -6149,21 +6422,21 @@ 1.2968 msgstr "" 1.2969 1.2970 #. type: Content of: <book><chapter><sect1><para> 1.2971 -#: ../en/ch05-collab.xml:442 1.2972 +#: ../en/ch05-collab.xml:487 1.2973 msgid "" 1.2974 "The <command role=\"hg-cmd\">hg serve</command> command is <emphasis>not</" 1.2975 "emphasis> a general-purpose web server. It can do only two things:" 1.2976 msgstr "" 1.2977 1.2978 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2979 -#: ../en/ch05-collab.xml:446 1.2980 +#: ../en/ch05-collab.xml:491 1.2981 msgid "" 1.2982 "Allow people to browse the history of the repository it's serving, from their " 1.2983 "normal web browsers." 1.2984 msgstr "" 1.2985 1.2986 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.2987 -#: ../en/ch05-collab.xml:450 1.2988 +#: ../en/ch05-collab.xml:495 1.2989 msgid "" 1.2990 "Speak Mercurial's wire protocol, so that people can <command role=\"hg-cmd" 1.2991 "\">hg clone</command> or <command role=\"hg-cmd\">hg pull</command> changes " 1.2992 @@ -6171,7 +6444,7 @@ 1.2993 msgstr "" 1.2994 1.2995 #. type: Content of: <book><chapter><sect1><para> 1.2996 -#: ../en/ch05-collab.xml:455 1.2997 +#: ../en/ch05-collab.xml:500 1.2998 msgid "" 1.2999 "In particular, <command role=\"hg-cmd\">hg serve</command> won't allow remote " 1.3000 "users to <emphasis>modify</emphasis> your repository. It's intended for read-" 1.3001 @@ -6179,7 +6452,7 @@ 1.3002 msgstr "" 1.3003 1.3004 #. type: Content of: <book><chapter><sect1><para> 1.3005 -#: ../en/ch05-collab.xml:459 1.3006 +#: ../en/ch05-collab.xml:504 1.3007 msgid "" 1.3008 "If you're getting started with Mercurial, there's nothing to prevent you from " 1.3009 "using <command role=\"hg-cmd\">hg serve</command> to serve up a repository on " 1.3010 @@ -6190,12 +6463,12 @@ 1.3011 msgstr "" 1.3012 1.3013 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3014 -#: ../en/ch05-collab.xml:469 1.3015 +#: ../en/ch05-collab.xml:514 1.3016 msgid "A few things to keep in mind" 1.3017 msgstr "要牢记的几件事" 1.3018 1.3019 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3020 -#: ../en/ch05-collab.xml:471 1.3021 +#: ../en/ch05-collab.xml:516 1.3022 msgid "" 1.3023 "Because it provides unauthenticated read access to all clients, you should " 1.3024 "only use <command role=\"hg-cmd\">hg serve</command> in an environment where " 1.3025 @@ -6204,7 +6477,7 @@ 1.3026 msgstr "" 1.3027 1.3028 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3029 -#: ../en/ch05-collab.xml:477 1.3030 +#: ../en/ch05-collab.xml:522 1.3031 msgid "" 1.3032 "The <command role=\"hg-cmd\">hg serve</command> command knows nothing about " 1.3033 "any firewall software you might have installed on your system or network. It " 1.3034 @@ -6215,7 +6488,7 @@ 1.3035 msgstr "" 1.3036 1.3037 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3038 -#: ../en/ch05-collab.xml:486 1.3039 +#: ../en/ch05-collab.xml:531 1.3040 msgid "" 1.3041 "By default, <command role=\"hg-cmd\">hg serve</command> listens for incoming " 1.3042 "connections on port 8000. If another process is already listening on the " 1.3043 @@ -6224,7 +6497,7 @@ 1.3044 msgstr "" 1.3045 1.3046 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3047 -#: ../en/ch05-collab.xml:492 1.3048 +#: ../en/ch05-collab.xml:537 1.3049 msgid "" 1.3050 "Normally, when <command role=\"hg-cmd\">hg serve</command> starts, it prints " 1.3051 "no output, which can be a bit unnerving. If you'd like to confirm that it is " 1.3052 @@ -6234,12 +6507,12 @@ 1.3053 msgstr "" 1.3054 1.3055 #. type: Content of: <book><chapter><sect1><title> 1.3056 -#: ../en/ch05-collab.xml:502 1.3057 +#: ../en/ch05-collab.xml:547 1.3058 msgid "Using the Secure Shell (ssh) protocol" 1.3059 msgstr "使用 ssh 协议" 1.3060 1.3061 #. type: Content of: <book><chapter><sect1><para> 1.3062 -#: ../en/ch05-collab.xml:504 1.3063 +#: ../en/ch05-collab.xml:549 1.3064 msgid "" 1.3065 "You can pull and push changes securely over a network connection using the " 1.3066 "Secure Shell (<literal>ssh</literal>) protocol. To use this successfully, " 1.3067 @@ -6248,40 +6521,40 @@ 1.3068 msgstr "" 1.3069 1.3070 #. type: Content of: <book><chapter><sect1><para> 1.3071 -#: ../en/ch05-collab.xml:509 1.3072 -msgid "" 1.3073 -"If you're not familiar with ssh, it's a network protocol that lets you " 1.3074 -"securely communicate with another computer. To use it with Mercurial, you'll " 1.3075 -"be setting up one or more user accounts on a server so that remote users can " 1.3076 -"log in and execute commands." 1.3077 -msgstr "" 1.3078 - 1.3079 -#. type: Content of: <book><chapter><sect1><para> 1.3080 -#: ../en/ch05-collab.xml:515 1.3081 +#: ../en/ch05-collab.xml:554 1.3082 +msgid "" 1.3083 +"If you're not familiar with ssh, it's the name of both a command and a " 1.3084 +"network protocol that let you securely communicate with another computer. To " 1.3085 +"use it with Mercurial, you'll be setting up one or more user accounts on a " 1.3086 +"server so that remote users can log in and execute commands." 1.3087 +msgstr "" 1.3088 + 1.3089 +#. type: Content of: <book><chapter><sect1><para> 1.3090 +#: ../en/ch05-collab.xml:560 1.3091 msgid "" 1.3092 "(If you <emphasis>are</emphasis> familiar with ssh, you'll probably find some " 1.3093 "of the material that follows to be elementary in nature.)" 1.3094 msgstr "" 1.3095 1.3096 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3097 -#: ../en/ch05-collab.xml:520 1.3098 +#: ../en/ch05-collab.xml:565 1.3099 msgid "How to read and write ssh URLs" 1.3100 msgstr "如何读写 ssh 路径" 1.3101 1.3102 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3103 -#: ../en/ch05-collab.xml:522 1.3104 +#: ../en/ch05-collab.xml:567 1.3105 msgid "An ssh URL tends to look like this:" 1.3106 msgstr "" 1.3107 1.3108 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3109 -#: ../en/ch05-collab.xml:525 1.3110 +#: ../en/ch05-collab.xml:570 1.3111 msgid "" 1.3112 "The <quote><literal>ssh://</literal></quote> part tells Mercurial to use the " 1.3113 "ssh protocol." 1.3114 msgstr "" 1.3115 1.3116 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3117 -#: ../en/ch05-collab.xml:528 1.3118 +#: ../en/ch05-collab.xml:573 1.3119 msgid "" 1.3120 "The <quote><literal>bos@</literal></quote> component indicates what username " 1.3121 "to log into the server as. You can leave this out if the remote username is " 1.3122 @@ -6289,14 +6562,14 @@ 1.3123 msgstr "" 1.3124 1.3125 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3126 -#: ../en/ch05-collab.xml:533 1.3127 +#: ../en/ch05-collab.xml:578 1.3128 msgid "" 1.3129 "The <quote><literal>hg.serpentine.com</literal></quote> gives the hostname of " 1.3130 "the server to log into." 1.3131 msgstr "" 1.3132 1.3133 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3134 -#: ../en/ch05-collab.xml:537 1.3135 +#: ../en/ch05-collab.xml:582 1.3136 msgid "" 1.3137 "The <quote>:22</quote> identifies the port number to connect to the server " 1.3138 "on. The default port is 22, so you only need to specify a colon and port " 1.3139 @@ -6304,13 +6577,13 @@ 1.3140 msgstr "" 1.3141 1.3142 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3143 -#: ../en/ch05-collab.xml:542 1.3144 +#: ../en/ch05-collab.xml:587 1.3145 msgid "" 1.3146 "The remainder of the URL is the local path to the repository on the server." 1.3147 msgstr "" 1.3148 1.3149 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3150 -#: ../en/ch05-collab.xml:546 1.3151 +#: ../en/ch05-collab.xml:591 1.3152 msgid "" 1.3153 "There's plenty of scope for confusion with the path component of ssh URLs, as " 1.3154 "there is no standard way for tools to interpret it. Some programs behave " 1.3155 @@ -6320,7 +6593,7 @@ 1.3156 msgstr "" 1.3157 1.3158 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3159 -#: ../en/ch05-collab.xml:553 1.3160 +#: ../en/ch05-collab.xml:598 1.3161 msgid "" 1.3162 "Mercurial treats the path to a repository on the server as relative to the " 1.3163 "remote user's home directory. For example, if user <literal>foo</literal> on " 1.3164 @@ -6331,7 +6604,7 @@ 1.3165 msgstr "" 1.3166 1.3167 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3168 -#: ../en/ch05-collab.xml:562 1.3169 +#: ../en/ch05-collab.xml:607 1.3170 msgid "" 1.3171 "If you want to specify a path relative to another user's home directory, you " 1.3172 "can use a path that starts with a tilde character followed by the user's name " 1.3173 @@ -6339,19 +6612,19 @@ 1.3174 msgstr "" 1.3175 1.3176 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3177 -#: ../en/ch05-collab.xml:568 1.3178 +#: ../en/ch05-collab.xml:613 1.3179 msgid "" 1.3180 "And if you really want to specify an <emphasis>absolute</emphasis> path on " 1.3181 "the server, begin the path component with two slashes, as in this example." 1.3182 msgstr "" 1.3183 1.3184 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3185 -#: ../en/ch05-collab.xml:575 1.3186 +#: ../en/ch05-collab.xml:620 1.3187 msgid "Finding an ssh client for your system" 1.3188 msgstr "为你的系统寻找 ssh 客户端" 1.3189 1.3190 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3191 -#: ../en/ch05-collab.xml:577 1.3192 +#: ../en/ch05-collab.xml:622 1.3193 msgid "" 1.3194 "Almost every Unix-like system comes with OpenSSH preinstalled. If you're " 1.3195 "using such a system, run <literal>which ssh</literal> to find out if the " 1.3196 @@ -6362,60 +6635,58 @@ 1.3197 msgstr "" 1.3198 1.3199 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3200 -#: ../en/ch05-collab.xml:585 1.3201 -msgid "" 1.3202 -"On Windows, you'll first need to download a suitable ssh client. There are " 1.3203 -"two alternatives." 1.3204 -msgstr "" 1.3205 - 1.3206 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3207 -#: ../en/ch05-collab.xml:588 1.3208 -msgid "" 1.3209 -"Simon Tatham's excellent PuTTY package <citation>web:putty</citation> " 1.3210 -"provides a complete suite of ssh client commands." 1.3211 -msgstr "" 1.3212 - 1.3213 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3214 -#: ../en/ch05-collab.xml:592 1.3215 -msgid "" 1.3216 -"If you have a high tolerance for pain, you can use the Cygwin port of OpenSSH." 1.3217 -msgstr "" 1.3218 - 1.3219 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3220 -#: ../en/ch05-collab.xml:595 1.3221 -msgid "" 1.3222 -"In either case, you'll need to edit your <filename role=\"special\">hg.ini</" 1.3223 -"filename> file to tell Mercurial where to find the actual client command. " 1.3224 -"For example, if you're using PuTTY, you'll need to use the <command>plink</" 1.3225 -"command> command as a command-line ssh client." 1.3226 -msgstr "" 1.3227 - 1.3228 -#. type: Content of: <book><chapter><sect1><sect2><note><para> 1.3229 -#: ../en/ch05-collab.xml:605 1.3230 -msgid "" 1.3231 -"The path to <command>plink</command> shouldn't contain any whitespace " 1.3232 -"characters, or Mercurial may not be able to run it correctly (so putting it " 1.3233 -"in <filename class=\"directory\">C:\\Program Files</filename> is probably not " 1.3234 -"a good idea)." 1.3235 -msgstr "" 1.3236 - 1.3237 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.3238 -#: ../en/ch05-collab.xml:614 1.3239 +#: ../en/ch05-collab.xml:630 1.3240 +msgid "" 1.3241 +"On Windows, the TortoiseHg package is bundled with a version of Simon " 1.3242 +"Tatham's excellent <command>plink</command> command, and you should not need " 1.3243 +"to do any further configuration." 1.3244 +msgstr "" 1.3245 + 1.3246 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.3247 +#: ../en/ch05-collab.xml:637 1.3248 msgid "Generating a key pair" 1.3249 msgstr "产生密钥对" 1.3250 1.3251 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3252 -#: ../en/ch05-collab.xml:616 1.3253 +#: ../en/ch05-collab.xml:639 1.3254 msgid "" 1.3255 "To avoid the need to repetitively type a password every time you need to use " 1.3256 -"your ssh client, I recommend generating a key pair. On a Unix-like system, " 1.3257 -"the <command>ssh-keygen</command> command will do the trick. On Windows, if " 1.3258 -"you're using PuTTY, the <command>puttygen</command> command is what you'll " 1.3259 -"need." 1.3260 -msgstr "" 1.3261 - 1.3262 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3263 -#: ../en/ch05-collab.xml:624 1.3264 +"your ssh client, I recommend generating a key pair." 1.3265 +msgstr "" 1.3266 + 1.3267 +#. type: Content of: <book><chapter><sect1><sect2><tip><title> 1.3268 +#: ../en/ch05-collab.xml:644 1.3269 +msgid "Key pairs are not mandatory" 1.3270 +msgstr "" 1.3271 + 1.3272 +#. type: Content of: <book><chapter><sect1><sect2><tip><para> 1.3273 +#: ../en/ch05-collab.xml:646 1.3274 +msgid "" 1.3275 +"Mercurial knows nothing about ssh authentication or key pairs. You can, if " 1.3276 +"you like, safely ignore this section and the one that follows until you grow " 1.3277 +"tired of repeatedly typing ssh passwords." 1.3278 +msgstr "" 1.3279 + 1.3280 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3281 +#: ../en/ch05-collab.xml:654 1.3282 +msgid "" 1.3283 +"On a Unix-like system, the <command>ssh-keygen</command> command will do the " 1.3284 +"trick." 1.3285 +msgstr "" 1.3286 + 1.3287 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3288 +#: ../en/ch05-collab.xml:657 1.3289 +msgid "" 1.3290 +"On Windows, if you're using TortoiseHg, you may need to download a command " 1.3291 +"named <command>puttygen</command> from <ulink url=\"http://www.chiark." 1.3292 +"greenend.org.uk/~sgtatham/putty\">the PuTTY web site</ulink> to generate a " 1.3293 +"key pair. See <ulink url=\"http://the.earth.li/~sgtatham/putty/0.60/htmldoc/" 1.3294 +"Chapter8.html#pubkey-puttygen\">the <command>puttygen</command> " 1.3295 +"documentation</ulink> for details of how use the command." 1.3296 +msgstr "" 1.3297 + 1.3298 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.3299 +#: ../en/ch05-collab.xml:669 1.3300 msgid "" 1.3301 "When you generate a key pair, it's usually <emphasis>highly</emphasis> " 1.3302 "advisable to protect it with a passphrase. (The only time that you might not " 1.3303 @@ -6424,7 +6695,7 @@ 1.3304 msgstr "" 1.3305 1.3306 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3307 -#: ../en/ch05-collab.xml:630 1.3308 +#: ../en/ch05-collab.xml:675 1.3309 msgid "" 1.3310 "Simply generating a key pair isn't enough, however. You'll need to add the " 1.3311 "public key to the set of authorised keys for whatever user you're logging in " 1.3312 @@ -6435,7 +6706,7 @@ 1.3313 msgstr "" 1.3314 1.3315 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3316 -#: ../en/ch05-collab.xml:639 1.3317 +#: ../en/ch05-collab.xml:684 1.3318 msgid "" 1.3319 "On a Unix-like system, your public key will have a <filename>.pub</filename> " 1.3320 "extension. If you're using <command>puttygen</command> on Windows, you can " 1.3321 @@ -6445,12 +6716,12 @@ 1.3322 msgstr "" 1.3323 1.3324 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3325 -#: ../en/ch05-collab.xml:648 1.3326 +#: ../en/ch05-collab.xml:692 1.3327 msgid "Using an authentication agent" 1.3328 msgstr "使用认证代理" 1.3329 1.3330 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3331 -#: ../en/ch05-collab.xml:650 1.3332 +#: ../en/ch05-collab.xml:694 1.3333 msgid "" 1.3334 "An authentication agent is a daemon that stores passphrases in memory (so it " 1.3335 "will forget passphrases if you log out and log back in again). An ssh client " 1.3336 @@ -6462,7 +6733,7 @@ 1.3337 msgstr "" 1.3338 1.3339 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3340 -#: ../en/ch05-collab.xml:659 1.3341 +#: ../en/ch05-collab.xml:703 1.3342 msgid "" 1.3343 "The downside of storing passphrases in an agent is that it's possible for a " 1.3344 "well-prepared attacker to recover the plain text of your passphrases, in some " 1.3345 @@ -6471,34 +6742,44 @@ 1.3346 "of repeated typing." 1.3347 msgstr "" 1.3348 1.3349 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3350 -#: ../en/ch05-collab.xml:666 1.3351 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3352 +#: ../en/ch05-collab.xml:712 1.3353 msgid "" 1.3354 "On Unix-like systems, the agent is called <command>ssh-agent</command>, and " 1.3355 "it's often run automatically for you when you log in. You'll need to use the " 1.3356 -"<command>ssh-add</command> command to add passphrases to the agent's store. " 1.3357 -"On Windows, if you're using PuTTY, the <command>pageant</command> command " 1.3358 -"acts as the agent. It adds an icon to your system tray that will let you " 1.3359 -"manage stored passphrases." 1.3360 -msgstr "" 1.3361 - 1.3362 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.3363 -#: ../en/ch05-collab.xml:677 1.3364 +"<command>ssh-add</command> command to add passphrases to the agent's store." 1.3365 +msgstr "" 1.3366 + 1.3367 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3368 +#: ../en/ch05-collab.xml:719 1.3369 +msgid "" 1.3370 +"On Windows, if you're using TortoiseHg, the <command>pageant</command> " 1.3371 +"command acts as the agent. As with <command>puttygen</command>, you'll need " 1.3372 +"to <ulink url=\"http://www.chiark.greenend.org.uk/%7Esgtatham/putty/download." 1.3373 +"html\">download <command>pageant</command></ulink> from the PuTTY web site " 1.3374 +"and read <ulink url=\"http://the.earth.li/~sgtatham/putty/0.60/htmldoc/" 1.3375 +"Chapter9.html#pageant\">its documentation</ulink>. The <command>pageant</" 1.3376 +"command> command adds an icon to your system tray that will let you manage " 1.3377 +"stored passphrases." 1.3378 +msgstr "" 1.3379 + 1.3380 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.3381 +#: ../en/ch05-collab.xml:734 1.3382 msgid "Configuring the server side properly" 1.3383 msgstr "正确配置服务器端" 1.3384 1.3385 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3386 -#: ../en/ch05-collab.xml:679 1.3387 -msgid "" 1.3388 -"Because ssh can be fiddly to set up if you're new to it, there's a variety of " 1.3389 -"things that can go wrong. Add Mercurial on top, and there's plenty more " 1.3390 -"scope for head-scratching. Most of these potential problems occur on the " 1.3391 -"server side, not the client side. The good news is that once you've gotten a " 1.3392 -"configuration working, it will usually continue to work indefinitely." 1.3393 -msgstr "" 1.3394 - 1.3395 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3396 -#: ../en/ch05-collab.xml:687 1.3397 +#: ../en/ch05-collab.xml:736 1.3398 +msgid "" 1.3399 +"Because ssh can be fiddly to set up if you're new to it, a variety of things " 1.3400 +"can go wrong. Add Mercurial on top, and there's plenty more scope for head-" 1.3401 +"scratching. Most of these potential problems occur on the server side, not " 1.3402 +"the client side. The good news is that once you've gotten a configuration " 1.3403 +"working, it will usually continue to work indefinitely." 1.3404 +msgstr "" 1.3405 + 1.3406 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.3407 +#: ../en/ch05-collab.xml:744 1.3408 msgid "" 1.3409 "Before you try using Mercurial to talk to an ssh server, it's best to make " 1.3410 "sure that you can use the normal <command>ssh</command> or <command>putty</" 1.3411 @@ -6511,7 +6792,7 @@ 1.3412 msgstr "" 1.3413 1.3414 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3415 -#: ../en/ch05-collab.xml:698 1.3416 +#: ../en/ch05-collab.xml:755 1.3417 msgid "" 1.3418 "The first thing to be sure of on the server side is that you can actually log " 1.3419 "in from another machine at all. If you can't use <command>ssh</command> or " 1.3420 @@ -6520,7 +6801,7 @@ 1.3421 msgstr "" 1.3422 1.3423 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3424 -#: ../en/ch05-collab.xml:705 1.3425 +#: ../en/ch05-collab.xml:762 1.3426 msgid "" 1.3427 "If you get a <quote>connection refused</quote> error, either there isn't an " 1.3428 "SSH daemon running on the server at all, or it's inaccessible due to firewall " 1.3429 @@ -6528,7 +6809,7 @@ 1.3430 msgstr "" 1.3431 1.3432 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3433 -#: ../en/ch05-collab.xml:710 1.3434 +#: ../en/ch05-collab.xml:767 1.3435 msgid "" 1.3436 "If you get a <quote>no route to host</quote> error, you either have an " 1.3437 "incorrect address for the server or a seriously locked down firewall that " 1.3438 @@ -6536,7 +6817,7 @@ 1.3439 msgstr "" 1.3440 1.3441 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3442 -#: ../en/ch05-collab.xml:715 1.3443 +#: ../en/ch05-collab.xml:772 1.3444 msgid "" 1.3445 "If you get a <quote>permission denied</quote> error, you may have mistyped " 1.3446 "the username on the server, or you could have mistyped your key's passphrase " 1.3447 @@ -6544,7 +6825,7 @@ 1.3448 msgstr "" 1.3449 1.3450 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3451 -#: ../en/ch05-collab.xml:720 1.3452 +#: ../en/ch05-collab.xml:777 1.3453 msgid "" 1.3454 "In summary, if you're having trouble talking to the server's ssh daemon, " 1.3455 "first make sure that one is running at all. On many systems it will be " 1.3456 @@ -6556,7 +6837,7 @@ 1.3457 msgstr "" 1.3458 1.3459 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3460 -#: ../en/ch05-collab.xml:730 1.3461 +#: ../en/ch05-collab.xml:787 1.3462 msgid "" 1.3463 "If you're using an authentication agent on the client side to store " 1.3464 "passphrases for your keys, you ought to be able to log into the server " 1.3465 @@ -6565,26 +6846,26 @@ 1.3466 msgstr "" 1.3467 1.3468 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3469 -#: ../en/ch05-collab.xml:736 1.3470 +#: ../en/ch05-collab.xml:793 1.3471 msgid "" 1.3472 "You might have forgotten to use <command>ssh-add</command> or " 1.3473 "<command>pageant</command> to store the passphrase." 1.3474 msgstr "" 1.3475 1.3476 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3477 -#: ../en/ch05-collab.xml:740 1.3478 +#: ../en/ch05-collab.xml:797 1.3479 msgid "You might have stored the passphrase for the wrong key." 1.3480 msgstr "" 1.3481 1.3482 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3483 -#: ../en/ch05-collab.xml:743 1.3484 +#: ../en/ch05-collab.xml:800 1.3485 msgid "" 1.3486 "If you're being prompted for the remote user's password, there are another " 1.3487 "few possible problems to check." 1.3488 msgstr "" 1.3489 1.3490 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3491 -#: ../en/ch05-collab.xml:746 1.3492 +#: ../en/ch05-collab.xml:803 1.3493 msgid "" 1.3494 "Either the user's home directory or their <filename role=\"special\" class=" 1.3495 "\"directory\">.ssh</filename> directory might have excessively liberal " 1.3496 @@ -6595,7 +6876,7 @@ 1.3497 msgstr "" 1.3498 1.3499 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3500 -#: ../en/ch05-collab.xml:755 1.3501 +#: ../en/ch05-collab.xml:812 1.3502 msgid "" 1.3503 "The user's <filename role=\"special\">authorized_keys</filename> file may " 1.3504 "have a problem. If anyone other than the user owns or can write to that file, " 1.3505 @@ -6603,7 +6884,7 @@ 1.3506 msgstr "" 1.3507 1.3508 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3509 -#: ../en/ch05-collab.xml:762 1.3510 +#: ../en/ch05-collab.xml:819 1.3511 msgid "" 1.3512 "In the ideal world, you should be able to run the following command " 1.3513 "successfully, and it should print exactly one line of output, the current " 1.3514 @@ -6611,7 +6892,7 @@ 1.3515 msgstr "" 1.3516 1.3517 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3518 -#: ../en/ch05-collab.xml:767 1.3519 +#: ../en/ch05-collab.xml:824 1.3520 msgid "" 1.3521 "If, on your server, you have login scripts that print banners or other junk " 1.3522 "even when running non-interactive commands like this, you should fix them " 1.3523 @@ -6626,7 +6907,7 @@ 1.3524 msgstr "" 1.3525 1.3526 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3527 -#: ../en/ch05-collab.xml:781 1.3528 +#: ../en/ch05-collab.xml:838 1.3529 msgid "" 1.3530 "Once you've verified that plain old ssh is working with your server, the next " 1.3531 "step is to ensure that Mercurial runs on the server. The following command " 1.3532 @@ -6634,7 +6915,7 @@ 1.3533 msgstr "" 1.3534 1.3535 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3536 -#: ../en/ch05-collab.xml:788 1.3537 +#: ../en/ch05-collab.xml:845 1.3538 msgid "" 1.3539 "If you see an error message instead of normal <command role=\"hg-cmd\">hg " 1.3540 "version</command> output, this is usually because you haven't installed " 1.3541 @@ -6644,21 +6925,21 @@ 1.3542 msgstr "" 1.3543 1.3544 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3545 -#: ../en/ch05-collab.xml:795 1.3546 +#: ../en/ch05-collab.xml:852 1.3547 msgid "" 1.3548 "Is Mercurial really installed on the server at all? I know this sounds " 1.3549 "trivial, but it's worth checking!" 1.3550 msgstr "" 1.3551 1.3552 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3553 -#: ../en/ch05-collab.xml:799 1.3554 +#: ../en/ch05-collab.xml:856 1.3555 msgid "" 1.3556 "Maybe your shell's search path (usually set via the <envar>PATH</envar> " 1.3557 "environment variable) is simply misconfigured." 1.3558 msgstr "" 1.3559 1.3560 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3561 -#: ../en/ch05-collab.xml:803 1.3562 +#: ../en/ch05-collab.xml:860 1.3563 msgid "" 1.3564 "Perhaps your <envar>PATH</envar> environment variable is only being set to " 1.3565 "point to the location of the <command>hg</command> executable if the login " 1.3566 @@ -6667,7 +6948,7 @@ 1.3567 msgstr "" 1.3568 1.3569 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.3570 -#: ../en/ch05-collab.xml:810 1.3571 +#: ../en/ch05-collab.xml:867 1.3572 msgid "" 1.3573 "The <envar>PYTHONPATH</envar> environment variable may need to contain the " 1.3574 "path to the Mercurial Python modules. It might not be set at all; it could " 1.3575 @@ -6675,7 +6956,7 @@ 1.3576 msgstr "" 1.3577 1.3578 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3579 -#: ../en/ch05-collab.xml:817 1.3580 +#: ../en/ch05-collab.xml:874 1.3581 msgid "" 1.3582 "If you can run <command role=\"hg-cmd\">hg version</command> over an ssh " 1.3583 "connection, well done! You've got the server and client sorted out. You " 1.3584 @@ -6686,20 +6967,20 @@ 1.3585 msgstr "" 1.3586 1.3587 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3588 -#: ../en/ch05-collab.xml:827 1.3589 +#: ../en/ch05-collab.xml:883 1.3590 msgid "Using compression with ssh" 1.3591 msgstr "通过 ssh 使用压缩" 1.3592 1.3593 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3594 -#: ../en/ch05-collab.xml:829 1.3595 +#: ../en/ch05-collab.xml:885 1.3596 msgid "" 1.3597 "Mercurial does not compress data when it uses the ssh protocol, because the " 1.3598 -"ssh protocol can transparently compress data. However, the default behaviour " 1.3599 +"ssh protocol can transparently compress data. However, the default behavior " 1.3600 "of ssh clients is <emphasis>not</emphasis> to request compression." 1.3601 msgstr "" 1.3602 1.3603 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3604 -#: ../en/ch05-collab.xml:834 1.3605 +#: ../en/ch05-collab.xml:890 1.3606 msgid "" 1.3607 "Over any network other than a fast LAN (even a wireless network), using " 1.3608 "compression is likely to significantly speed up Mercurial's network " 1.3609 @@ -6709,55 +6990,69 @@ 1.3610 msgstr "" 1.3611 1.3612 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3613 -#: ../en/ch05-collab.xml:841 1.3614 +#: ../en/ch05-collab.xml:897 1.3615 msgid "" 1.3616 "Both <command>ssh</command> and <command>plink</command> accept a <option " 1.3617 "role=\"cmd-opt-ssh\">-C</option> option which turns on compression. You can " 1.3618 "easily edit your <filename role=\"special\">~/.hgrc</filename> to enable " 1.3619 -"compression for all of Mercurial's uses of the ssh protocol." 1.3620 -msgstr "" 1.3621 - 1.3622 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3623 -#: ../en/ch05-collab.xml:849 1.3624 -msgid "" 1.3625 -"If you use <command>ssh</command>, you can configure it to always use " 1.3626 -"compression when talking to your server. To do this, edit your <filename " 1.3627 -"role=\"special\">.ssh/config</filename> file (which may not yet exist), as " 1.3628 -"follows." 1.3629 -msgstr "" 1.3630 - 1.3631 -#. type: Content of: <book><chapter><sect1><sect2><para> 1.3632 -#: ../en/ch05-collab.xml:857 1.3633 -msgid "" 1.3634 -"This defines an alias, <literal>hg</literal>. When you use it on the " 1.3635 -"<command>ssh</command> command line or in a Mercurial <literal>ssh</literal>-" 1.3636 -"protocol URL, it will cause <command>ssh</command> to connect to <literal>hg." 1.3637 -"example.com</literal> and use compression. This gives you both a shorter " 1.3638 -"name to type and compression, each of which is a good thing in its own right." 1.3639 +"compression for all of Mercurial's uses of the ssh protocol. Here is how to " 1.3640 +"do so for regular <command>ssh</command> on Unix-like systems, for example." 1.3641 +msgstr "" 1.3642 + 1.3643 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.3644 +#: ../en/ch05-collab.xml:907 1.3645 +msgid "" 1.3646 +"If you use <command>ssh</command> on a Unix-like system, you can configure it " 1.3647 +"to always use compression when talking to your server. To do this, edit your " 1.3648 +"<filename role=\"special\">.ssh/config</filename> file (which may not yet " 1.3649 +"exist), as follows." 1.3650 +msgstr "" 1.3651 + 1.3652 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.3653 +#: ../en/ch05-collab.xml:917 1.3654 +msgid "" 1.3655 +"This defines a hostname alias, <literal>hg</literal>. When you use that " 1.3656 +"hostname on the <command>ssh</command> command line or in a Mercurial " 1.3657 +"<literal>ssh</literal>-protocol URL, it will cause <command>ssh</command> to " 1.3658 +"connect to <literal>hg.example.com</literal> and use compression. This gives " 1.3659 +"you both a shorter name to type and compression, each of which is a good " 1.3660 +"thing in its own right." 1.3661 msgstr "" 1.3662 1.3663 #. type: Content of: <book><chapter><sect1><title> 1.3664 -#: ../en/ch05-collab.xml:868 1.3665 +#: ../en/ch05-collab.xml:929 1.3666 msgid "Serving over HTTP using CGI" 1.3667 msgstr "使用 CGI 通过 HTTP 提供服务" 1.3668 1.3669 #. type: Content of: <book><chapter><sect1><para> 1.3670 -#: ../en/ch05-collab.xml:870 1.3671 +#: ../en/ch05-collab.xml:931 1.3672 +msgid "" 1.3673 +"The simplest way to host one or more repositories in a permanent way is to " 1.3674 +"use a web server and Mercurial's CGI support." 1.3675 +msgstr "" 1.3676 + 1.3677 +#. type: Content of: <book><chapter><sect1><para> 1.3678 +#: ../en/ch05-collab.xml:935 1.3679 msgid "" 1.3680 "Depending on how ambitious you are, configuring Mercurial's CGI interface can " 1.3681 "take anything from a few moments to several hours." 1.3682 msgstr "" 1.3683 1.3684 #. type: Content of: <book><chapter><sect1><para> 1.3685 -#: ../en/ch05-collab.xml:874 1.3686 +#: ../en/ch05-collab.xml:939 1.3687 msgid "" 1.3688 "We'll begin with the simplest of examples, and work our way towards a more " 1.3689 "complex configuration. Even for the most basic case, you're almost certainly " 1.3690 "going to need to read and modify your web server's configuration." 1.3691 msgstr "" 1.3692 1.3693 +#. type: Content of: <book><chapter><sect1><note><title> 1.3694 +#: ../en/ch05-collab.xml:945 1.3695 +msgid "High pain tolerance required" 1.3696 +msgstr "" 1.3697 + 1.3698 #. type: Content of: <book><chapter><sect1><note><para> 1.3699 -#: ../en/ch05-collab.xml:880 1.3700 +#: ../en/ch05-collab.xml:947 1.3701 msgid "" 1.3702 "Configuring a web server is a complex, fiddly, and highly system-dependent " 1.3703 "activity. I can't possibly give you instructions that will cover anything " 1.3704 @@ -6766,34 +7061,43 @@ 1.3705 "mistakes, and to spend a lot of time reading your server's error logs." 1.3706 msgstr "" 1.3707 1.3708 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.3709 -#: ../en/ch05-collab.xml:890 1.3710 +#. type: Content of: <book><chapter><sect1><note><para> 1.3711 +#: ../en/ch05-collab.xml:955 1.3712 +msgid "" 1.3713 +"If you don't have a strong stomach for tweaking configurations over and over, " 1.3714 +"or a compelling need to host your own services, you might want to try one of " 1.3715 +"the public hosting services that I mentioned earlier." 1.3716 +msgstr "" 1.3717 + 1.3718 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.3719 +#: ../en/ch05-collab.xml:962 1.3720 msgid "Web server configuration checklist" 1.3721 msgstr "Web 服务器配置检查表" 1.3722 1.3723 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3724 -#: ../en/ch05-collab.xml:892 1.3725 +#: ../en/ch05-collab.xml:964 1.3726 msgid "" 1.3727 "Before you continue, do take a few moments to check a few aspects of your " 1.3728 "system's setup." 1.3729 msgstr "" 1.3730 1.3731 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3732 -#: ../en/ch05-collab.xml:896 1.3733 -msgid "" 1.3734 -"Do you have a web server installed at all? Mac OS X ships with Apache, but " 1.3735 -"many other systems may not have a web server installed." 1.3736 +#: ../en/ch05-collab.xml:968 1.3737 +msgid "" 1.3738 +"Do you have a web server installed at all? Mac OS X and some Linux " 1.3739 +"distributions ship with Apache, but many other systems may not have a web " 1.3740 +"server installed." 1.3741 msgstr "" 1.3742 1.3743 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3744 -#: ../en/ch05-collab.xml:900 1.3745 +#: ../en/ch05-collab.xml:973 1.3746 msgid "" 1.3747 "If you have a web server installed, is it actually running? On most systems, " 1.3748 "even if one is present, it will be disabled by default." 1.3749 msgstr "" 1.3750 1.3751 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 1.3752 -#: ../en/ch05-collab.xml:904 1.3753 +#: ../en/ch05-collab.xml:977 1.3754 msgid "" 1.3755 "Is your server configured to allow you to run CGI programs in the directory " 1.3756 "where you plan to do so? Most servers default to explicitly disabling the " 1.3757 @@ -6801,7 +7105,7 @@ 1.3758 msgstr "" 1.3759 1.3760 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3761 -#: ../en/ch05-collab.xml:910 1.3762 +#: ../en/ch05-collab.xml:983 1.3763 msgid "" 1.3764 "If you don't have a web server installed, and don't have substantial " 1.3765 "experience configuring Apache, you should consider using the " 1.3766 @@ -6814,12 +7118,12 @@ 1.3767 msgstr "" 1.3768 1.3769 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3770 -#: ../en/ch05-collab.xml:923 1.3771 +#: ../en/ch05-collab.xml:996 1.3772 msgid "Basic CGI configuration" 1.3773 msgstr "基本 CGI 配置" 1.3774 1.3775 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3776 -#: ../en/ch05-collab.xml:925 1.3777 +#: ../en/ch05-collab.xml:998 1.3778 msgid "" 1.3779 "On Unix-like systems, it's common for users to have a subdirectory named " 1.3780 "something like <filename class=\"directory\">public_html</filename> in their " 1.3781 @@ -6829,7 +7133,7 @@ 1.3782 msgstr "" 1.3783 1.3784 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3785 -#: ../en/ch05-collab.xml:933 1.3786 +#: ../en/ch05-collab.xml:1006 1.3787 msgid "" 1.3788 "To get started, find the <filename role=\"special\">hgweb.cgi</filename> " 1.3789 "script that should be present in your Mercurial installation. If you can't " 1.3790 @@ -6839,14 +7143,14 @@ 1.3791 msgstr "" 1.3792 1.3793 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3794 -#: ../en/ch05-collab.xml:940 ../en/ch05-collab.xml:1109 1.3795 +#: ../en/ch05-collab.xml:1013 ../en/ch05-collab.xml:1182 1.3796 msgid "" 1.3797 "You'll need to copy this script into your <filename class=\"directory" 1.3798 "\">public_html</filename> directory, and ensure that it's executable." 1.3799 msgstr "" 1.3800 1.3801 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3802 -#: ../en/ch05-collab.xml:945 1.3803 +#: ../en/ch05-collab.xml:1018 1.3804 msgid "" 1.3805 "The <literal>755</literal> argument to <command>chmod</command> is a little " 1.3806 "more general than just making the script executable: it ensures that the " 1.3807 @@ -6859,12 +7163,12 @@ 1.3808 msgstr "" 1.3809 1.3810 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.3811 -#: ../en/ch05-collab.xml:959 1.3812 +#: ../en/ch05-collab.xml:1032 1.3813 msgid "What could <emphasis>possibly</emphasis> go wrong?" 1.3814 msgstr "什么<emphasis>可能</emphasis>会出错?" 1.3815 1.3816 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3817 -#: ../en/ch05-collab.xml:962 1.3818 +#: ../en/ch05-collab.xml:1035 1.3819 msgid "" 1.3820 "Once you've copied the CGI script into place, go into a web browser, and try " 1.3821 "to open the URL <ulink url=\"http://myhostname/ myuser/hgweb.cgi\">http://" 1.3822 @@ -6878,7 +7182,7 @@ 1.3823 msgstr "" 1.3824 1.3825 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3826 -#: ../en/ch05-collab.xml:976 1.3827 +#: ../en/ch05-collab.xml:1049 1.3828 msgid "" 1.3829 "Your web server may have per-user directories disabled. If you're using " 1.3830 "Apache, search your config file for a <literal>UserDir</literal> directive. " 1.3831 @@ -6891,7 +7195,7 @@ 1.3832 msgstr "" 1.3833 1.3834 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3835 -#: ../en/ch05-collab.xml:987 1.3836 +#: ../en/ch05-collab.xml:1060 1.3837 msgid "" 1.3838 "Your file access permissions may be too restrictive. The web server must be " 1.3839 "able to traverse your home directory and directories under your <filename " 1.3840 @@ -6901,7 +7205,7 @@ 1.3841 msgstr "" 1.3842 1.3843 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3844 -#: ../en/ch05-collab.xml:997 1.3845 +#: ../en/ch05-collab.xml:1070 1.3846 msgid "" 1.3847 "The other possibility with permissions is that you might get a completely " 1.3848 "empty window when you try to load the script. In this case, it's likely that " 1.3849 @@ -6911,7 +7215,7 @@ 1.3850 msgstr "" 1.3851 1.3852 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3853 -#: ../en/ch05-collab.xml:1004 1.3854 +#: ../en/ch05-collab.xml:1077 1.3855 msgid "" 1.3856 "Your web server may be configured to disallow execution of CGI programs in " 1.3857 "your per-user web directory. Here's Apache's default per-user configuration " 1.3858 @@ -6919,7 +7223,7 @@ 1.3859 msgstr "" 1.3860 1.3861 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3862 -#: ../en/ch05-collab.xml:1011 1.3863 +#: ../en/ch05-collab.xml:1084 1.3864 msgid "" 1.3865 "If you find a similar-looking <literal>Directory</literal> group in your " 1.3866 "Apache configuration, the directive to look at inside it is <literal>Options</" 1.3867 @@ -6928,7 +7232,7 @@ 1.3868 msgstr "" 1.3869 1.3870 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3871 -#: ../en/ch05-collab.xml:1018 1.3872 +#: ../en/ch05-collab.xml:1091 1.3873 msgid "" 1.3874 "If you find that Apache serves you the text of the CGI script instead of " 1.3875 "executing it, you may need to either uncomment (if already present) or add a " 1.3876 @@ -6936,7 +7240,7 @@ 1.3877 msgstr "" 1.3878 1.3879 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3880 -#: ../en/ch05-collab.xml:1024 1.3881 +#: ../en/ch05-collab.xml:1097 1.3882 msgid "" 1.3883 "The next possibility is that you might be served with a colourful Python " 1.3884 "backtrace claiming that it can't import a <literal>mercurial</literal>-" 1.3885 @@ -6951,7 +7255,7 @@ 1.3886 msgstr "" 1.3887 1.3888 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3889 -#: ../en/ch05-collab.xml:1038 1.3890 +#: ../en/ch05-collab.xml:1111 1.3891 msgid "" 1.3892 "Finally, you are <emphasis>certain</emphasis> to by served with another " 1.3893 "colourful Python backtrace: this one will complain that it can't find " 1.3894 @@ -6962,19 +7266,19 @@ 1.3895 msgstr "" 1.3896 1.3897 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3898 -#: ../en/ch05-collab.xml:1048 1.3899 +#: ../en/ch05-collab.xml:1121 1.3900 msgid "" 1.3901 "At this point, when you try to reload the page, you should be presented with " 1.3902 "a nice HTML view of your repository's history. Whew!" 1.3903 msgstr "" 1.3904 1.3905 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.3906 -#: ../en/ch05-collab.xml:1054 1.3907 +#: ../en/ch05-collab.xml:1127 1.3908 msgid "Configuring lighttpd" 1.3909 msgstr "配置 lighttpd" 1.3910 1.3911 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3912 -#: ../en/ch05-collab.xml:1056 1.3913 +#: ../en/ch05-collab.xml:1129 1.3914 msgid "" 1.3915 "To be exhaustive in my experiments, I tried configuring the increasingly " 1.3916 "popular <literal>lighttpd</literal> web server to serve the same repository " 1.3917 @@ -6985,7 +7289,7 @@ 1.3918 msgstr "" 1.3919 1.3920 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3921 -#: ../en/ch05-collab.xml:1066 1.3922 +#: ../en/ch05-collab.xml:1139 1.3923 msgid "" 1.3924 "Once I had Apache running, getting <literal>lighttpd</literal> to serve the " 1.3925 "repository was a snap (in other words, even if you're trying to use " 1.3926 @@ -6997,7 +7301,7 @@ 1.3927 msgstr "" 1.3928 1.3929 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.3930 -#: ../en/ch05-collab.xml:1078 1.3931 +#: ../en/ch05-collab.xml:1151 1.3932 msgid "" 1.3933 "With this done, <literal>lighttpd</literal> ran immediately for me. If I had " 1.3934 "configured <literal>lighttpd</literal> before Apache, I'd almost certainly " 1.3935 @@ -7008,12 +7312,12 @@ 1.3936 msgstr "" 1.3937 1.3938 #. type: Content of: <book><chapter><sect1><sect2><title> 1.3939 -#: ../en/ch05-collab.xml:1091 1.3940 +#: ../en/ch05-collab.xml:1164 1.3941 msgid "Sharing multiple repositories with one CGI script" 1.3942 msgstr "使用一个 CGI 脚本共享多个版本库" 1.3943 1.3944 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3945 -#: ../en/ch05-collab.xml:1093 1.3946 +#: ../en/ch05-collab.xml:1166 1.3947 msgid "" 1.3948 "The <filename role=\"special\">hgweb.cgi</filename> script only lets you " 1.3949 "publish a single repository, which is an annoying restriction. If you want " 1.3950 @@ -7023,7 +7327,7 @@ 1.3951 msgstr "" 1.3952 1.3953 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3954 -#: ../en/ch05-collab.xml:1101 1.3955 +#: ../en/ch05-collab.xml:1174 1.3956 msgid "" 1.3957 "The procedure to configure <filename role=\"special\">hgwebdir.cgi</filename> " 1.3958 "is only a little more involved than for <filename role=\"special\">hgweb.cgi</" 1.3959 @@ -7034,7 +7338,7 @@ 1.3960 msgstr "" 1.3961 1.3962 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3963 -#: ../en/ch05-collab.xml:1116 1.3964 +#: ../en/ch05-collab.xml:1189 1.3965 msgid "" 1.3966 "With basic configuration out of the way, try to visit <ulink url=\"http://" 1.3967 "myhostname/ myuser/hgwebdir.cgi\">http://myhostname/ myuser/hgwebdir.cgi</" 1.3968 @@ -7044,7 +7348,7 @@ 1.3969 msgstr "" 1.3970 1.3971 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3972 -#: ../en/ch05-collab.xml:1125 1.3973 +#: ../en/ch05-collab.xml:1198 1.3974 msgid "" 1.3975 "The <filename role=\"special\">hgwebdir.cgi</filename> script relies on an " 1.3976 "external configuration file. By default, it searches for a file named " 1.3977 @@ -7056,7 +7360,7 @@ 1.3978 msgstr "" 1.3979 1.3980 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3981 -#: ../en/ch05-collab.xml:1135 1.3982 +#: ../en/ch05-collab.xml:1208 1.3983 msgid "" 1.3984 "The easiest way to configure <filename role=\"special\">hgwebdir.cgi</" 1.3985 "filename> is with a section named <literal>collections</literal>. This will " 1.3986 @@ -7065,7 +7369,7 @@ 1.3987 msgstr "" 1.3988 1.3989 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3990 -#: ../en/ch05-collab.xml:1143 1.3991 +#: ../en/ch05-collab.xml:1216 1.3992 msgid "" 1.3993 "Mercurial interprets this by looking at the directory name on the " 1.3994 "<emphasis>right</emphasis> hand side of the <quote><literal>=</literal></" 1.3995 @@ -7077,7 +7381,7 @@ 1.3996 msgstr "" 1.3997 1.3998 #. type: Content of: <book><chapter><sect1><sect2><para> 1.3999 -#: ../en/ch05-collab.xml:1152 1.4000 +#: ../en/ch05-collab.xml:1225 1.4001 msgid "" 1.4002 "Given the example above, if we have a repository whose local path is " 1.4003 "<filename class=\"directory\">/my/root/this/repo</filename>, the CGI script " 1.4004 @@ -7091,7 +7395,7 @@ 1.4005 msgstr "" 1.4006 1.4007 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4008 -#: ../en/ch05-collab.xml:1166 1.4009 +#: ../en/ch05-collab.xml:1239 1.4010 msgid "" 1.4011 "If we replace <filename class=\"directory\">/my/root</filename> on the left " 1.4012 "hand side of this example with <filename class=\"directory\">/my</filename>, " 1.4013 @@ -7102,7 +7406,7 @@ 1.4014 msgstr "" 1.4015 1.4016 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4017 -#: ../en/ch05-collab.xml:1176 1.4018 +#: ../en/ch05-collab.xml:1249 1.4019 msgid "" 1.4020 "The <filename role=\"special\">hgwebdir.cgi</filename> script will " 1.4021 "recursively search each directory listed in the <literal>collections</" 1.4022 @@ -7111,7 +7415,7 @@ 1.4023 msgstr "" 1.4024 1.4025 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4026 -#: ../en/ch05-collab.xml:1182 1.4027 +#: ../en/ch05-collab.xml:1255 1.4028 msgid "" 1.4029 "The <literal>collections</literal> mechanism makes it easy to publish many " 1.4030 "repositories in a <quote>fire and forget</quote> manner. You only need to " 1.4031 @@ -7122,12 +7426,12 @@ 1.4032 msgstr "" 1.4033 1.4034 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4035 -#: ../en/ch05-collab.xml:1192 1.4036 +#: ../en/ch05-collab.xml:1265 1.4037 msgid "Explicitly specifying which repositories to publish" 1.4038 msgstr "明确指出要发布的版本库" 1.4039 1.4040 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4041 -#: ../en/ch05-collab.xml:1195 1.4042 +#: ../en/ch05-collab.xml:1268 1.4043 msgid "" 1.4044 "In addition to the <literal>collections</literal> mechanism, the <filename " 1.4045 "role=\"special\">hgwebdir.cgi</filename> script allows you to publish a " 1.4046 @@ -7136,7 +7440,7 @@ 1.4047 msgstr "" 1.4048 1.4049 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4050 -#: ../en/ch05-collab.xml:1204 1.4051 +#: ../en/ch05-collab.xml:1277 1.4052 msgid "" 1.4053 "In this case, the virtual path (the component that will appear in a URL) is " 1.4054 "on the left hand side of each definition, while the path to the repository is " 1.4055 @@ -7146,28 +7450,33 @@ 1.4056 msgstr "" 1.4057 1.4058 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4059 -#: ../en/ch05-collab.xml:1211 1.4060 +#: ../en/ch05-collab.xml:1284 1.4061 msgid "" 1.4062 "If you wish, you can use both the <literal>collections</literal> and " 1.4063 "<literal>paths</literal> mechanisms simultaneously in a single configuration " 1.4064 "file." 1.4065 msgstr "" 1.4066 1.4067 +#. type: Content of: <book><chapter><sect1><sect2><sect3><note><title> 1.4068 +#: ../en/ch05-collab.xml:1290 1.4069 +msgid "Beware duplicate virtual paths" 1.4070 +msgstr "" 1.4071 + 1.4072 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> 1.4073 -#: ../en/ch05-collab.xml:1217 1.4074 -msgid "" 1.4075 -"If multiple repositories have the same virtual path, <filename role=\"special" 1.4076 +#: ../en/ch05-collab.xml:1292 1.4077 +msgid "" 1.4078 +"If several repositories have the same virtual path, <filename role=\"special" 1.4079 "\">hgwebdir.cgi</filename> will not report an error. Instead, it will behave " 1.4080 "unpredictably." 1.4081 msgstr "" 1.4082 1.4083 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4084 -#: ../en/ch05-collab.xml:1226 1.4085 +#: ../en/ch05-collab.xml:1301 1.4086 msgid "Downloading source archives" 1.4087 msgstr "下载源代码档案包" 1.4088 1.4089 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4090 -#: ../en/ch05-collab.xml:1228 1.4091 +#: ../en/ch05-collab.xml:1303 1.4092 msgid "" 1.4093 "Mercurial's web interface lets users download an archive of any revision. " 1.4094 "This archive will contain a snapshot of the working directory as of that " 1.4095 @@ -7175,21 +7484,21 @@ 1.4096 msgstr "" 1.4097 1.4098 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4099 -#: ../en/ch05-collab.xml:1233 1.4100 +#: ../en/ch05-collab.xml:1308 1.4101 msgid "" 1.4102 "By default, this feature is not enabled. To enable it, you'll need to add an " 1.4103 "<envar role=\"rc-item-web\">allow_archive</envar> item to the <literal role=" 1.4104 "\"rc-web\">web</literal> section of your <filename role=\"special\">~/.hgrc</" 1.4105 -"filename>." 1.4106 -msgstr "" 1.4107 - 1.4108 -#. type: Content of: <book><chapter><sect1><sect2><title> 1.4109 -#: ../en/ch05-collab.xml:1241 1.4110 +"filename>; see below for details." 1.4111 +msgstr "" 1.4112 + 1.4113 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.4114 +#: ../en/ch05-collab.xml:1315 1.4115 msgid "Web configuration options" 1.4116 msgstr "Web 配置选项" 1.4117 1.4118 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4119 -#: ../en/ch05-collab.xml:1243 1.4120 +#: ../en/ch05-collab.xml:1317 1.4121 msgid "" 1.4122 "Mercurial's web interfaces (the <command role=\"hg-cmd\">hg serve</command> " 1.4123 "command, and the <filename role=\"special\">hgweb.cgi</filename> and " 1.4124 @@ -7199,7 +7508,7 @@ 1.4125 msgstr "" 1.4126 1.4127 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4128 -#: ../en/ch05-collab.xml:1251 1.4129 +#: ../en/ch05-collab.xml:1325 1.4130 msgid "" 1.4131 "<envar role=\"rc-item-web\">allow_archive</envar>: Determines which (if any) " 1.4132 "archive download mechanisms Mercurial supports. If you enable this feature, " 1.4133 @@ -7209,7 +7518,7 @@ 1.4134 msgstr "" 1.4135 1.4136 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4137 -#: ../en/ch05-collab.xml:1260 1.4138 +#: ../en/ch05-collab.xml:1334 1.4139 msgid "" 1.4140 "<literal>bz2</literal>: A <command>tar</command> archive, compressed using " 1.4141 "<literal>bzip2</literal> compression. This has the best compression ratio, " 1.4142 @@ -7217,14 +7526,14 @@ 1.4143 msgstr "" 1.4144 1.4145 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4146 -#: ../en/ch05-collab.xml:1266 1.4147 +#: ../en/ch05-collab.xml:1340 1.4148 msgid "" 1.4149 "<literal>gz</literal>: A <command>tar</command> archive, compressed using " 1.4150 "<literal>gzip</literal> compression." 1.4151 msgstr "" 1.4152 1.4153 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4154 -#: ../en/ch05-collab.xml:1270 1.4155 +#: ../en/ch05-collab.xml:1344 1.4156 msgid "" 1.4157 "<literal>zip</literal>: A <command>zip</command> archive, compressed using " 1.4158 "LZW compression. This format has the worst compression ratio, but is widely " 1.4159 @@ -7232,7 +7541,7 @@ 1.4160 msgstr "" 1.4161 1.4162 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4163 -#: ../en/ch05-collab.xml:1276 1.4164 +#: ../en/ch05-collab.xml:1350 1.4165 msgid "" 1.4166 "If you provide an empty list, or don't have an <envar role=\"rc-item-web" 1.4167 "\">allow_archive</envar> entry at all, this feature will be disabled. Here " 1.4168 @@ -7240,7 +7549,7 @@ 1.4169 msgstr "" 1.4170 1.4171 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4172 -#: ../en/ch05-collab.xml:1283 1.4173 +#: ../en/ch05-collab.xml:1357 1.4174 msgid "" 1.4175 "<envar role=\"rc-item-web\">allowpull</envar>: Boolean. Determines whether " 1.4176 "the web interface allows remote users to <command role=\"hg-cmd\">hg pull</" 1.4177 @@ -7250,7 +7559,7 @@ 1.4178 msgstr "" 1.4179 1.4180 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4181 -#: ../en/ch05-collab.xml:1292 1.4182 +#: ../en/ch05-collab.xml:1366 1.4183 msgid "" 1.4184 "<envar role=\"rc-item-web\">contact</envar>: String. A free-form (but " 1.4185 "preferably brief) string identifying the person or group in charge of the " 1.4186 @@ -7262,21 +7571,21 @@ 1.4187 msgstr "" 1.4188 1.4189 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4190 -#: ../en/ch05-collab.xml:1303 1.4191 +#: ../en/ch05-collab.xml:1377 1.4192 msgid "" 1.4193 "<envar role=\"rc-item-web\">maxchanges</envar>: Integer. The default maximum " 1.4194 "number of changesets to display in a single page of output." 1.4195 msgstr "" 1.4196 1.4197 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4198 -#: ../en/ch05-collab.xml:1307 1.4199 +#: ../en/ch05-collab.xml:1381 1.4200 msgid "" 1.4201 "<envar role=\"rc-item-web\">maxfiles</envar>: Integer. The default maximum " 1.4202 "number of modified files to display in a single page of output." 1.4203 msgstr "" 1.4204 1.4205 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4206 -#: ../en/ch05-collab.xml:1311 1.4207 +#: ../en/ch05-collab.xml:1385 1.4208 msgid "" 1.4209 "<envar role=\"rc-item-web\">stripes</envar>: Integer. If the web interface " 1.4210 "displays alternating <quote>stripes</quote> to make it easier to visually " 1.4211 @@ -7285,18 +7594,49 @@ 1.4212 msgstr "" 1.4213 1.4214 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4215 -#: ../en/ch05-collab.xml:1317 1.4216 +#: ../en/ch05-collab.xml:1391 1.4217 msgid "" 1.4218 "<envar role=\"rc-item-web\">style</envar>: Controls the template Mercurial " 1.4219 -"uses to display the web interface. Mercurial ships with two web templates, " 1.4220 -"named <literal>default</literal> and <literal>gitweb</literal> (the latter is " 1.4221 -"much more visually attractive). You can also specify a custom template of " 1.4222 -"your own; see <xref linkend=\"chap:template\"/> for details. Here, you can " 1.4223 -"see how to enable the <literal>gitweb</literal> style." 1.4224 +"uses to display the web interface. Mercurial ships with several web " 1.4225 +"templates." 1.4226 +msgstr "" 1.4227 + 1.4228 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4229 +#: ../en/ch05-collab.xml:1397 1.4230 +msgid "<literal>coal</literal> is monochromatic." 1.4231 +msgstr "" 1.4232 + 1.4233 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4234 +#: ../en/ch05-collab.xml:1400 1.4235 +msgid "" 1.4236 +"<literal>gitweb</literal> emulates the visual style of git's web interface." 1.4237 +msgstr "" 1.4238 + 1.4239 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4240 +#: ../en/ch05-collab.xml:1404 1.4241 +msgid "<literal>monoblue</literal> uses solid blues and greys." 1.4242 +msgstr "" 1.4243 + 1.4244 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4245 +#: ../en/ch05-collab.xml:1408 1.4246 +msgid "<literal>paper</literal> is the default." 1.4247 +msgstr "" 1.4248 + 1.4249 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><itemizedlist><listitem><para> 1.4250 +#: ../en/ch05-collab.xml:1411 1.4251 +msgid "<literal>spartan</literal> was the default for a long time." 1.4252 msgstr "" 1.4253 1.4254 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4255 -#: ../en/ch05-collab.xml:1330 1.4256 +#: ../en/ch05-collab.xml:1415 1.4257 +msgid "" 1.4258 +"You can also specify a custom template of your own; see <xref linkend=\"chap:" 1.4259 +"template\"/> for details. Here, you can see how to enable the " 1.4260 +"<literal>gitweb</literal> style." 1.4261 +msgstr "" 1.4262 + 1.4263 +#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4264 +#: ../en/ch05-collab.xml:1423 1.4265 msgid "" 1.4266 "<envar role=\"rc-item-web\">templates</envar>: Path. The directory in which " 1.4267 "to search for template files. By default, Mercurial searches in the " 1.4268 @@ -7304,7 +7644,7 @@ 1.4269 msgstr "" 1.4270 1.4271 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4272 -#: ../en/ch05-collab.xml:1335 1.4273 +#: ../en/ch05-collab.xml:1428 1.4274 msgid "" 1.4275 "If you are using <filename role=\"special\">hgwebdir.cgi</filename>, you can " 1.4276 "place a few configuration items in a <literal role=\"rc-web\">web</literal> " 1.4277 @@ -7315,12 +7655,12 @@ 1.4278 msgstr "" 1.4279 1.4280 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4281 -#: ../en/ch05-collab.xml:1346 1.4282 +#: ../en/ch05-collab.xml:1439 1.4283 msgid "Options specific to an individual repository" 1.4284 msgstr "针对单个版本库的选项" 1.4285 1.4286 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4287 -#: ../en/ch05-collab.xml:1348 1.4288 +#: ../en/ch05-collab.xml:1441 1.4289 msgid "" 1.4290 "A few <literal role=\"rc-web\">web</literal> configuration items ought to be " 1.4291 "placed in a repository's local <filename role=\"special\">.hg/hgrc</" 1.4292 @@ -7329,7 +7669,7 @@ 1.4293 msgstr "" 1.4294 1.4295 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4296 -#: ../en/ch05-collab.xml:1353 1.4297 +#: ../en/ch05-collab.xml:1446 1.4298 msgid "" 1.4299 "<envar role=\"rc-item-web\">description</envar>: String. A free-form (but " 1.4300 "preferably brief) string that describes the contents or purpose of the " 1.4301 @@ -7337,7 +7677,7 @@ 1.4302 msgstr "" 1.4303 1.4304 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4305 -#: ../en/ch05-collab.xml:1358 1.4306 +#: ../en/ch05-collab.xml:1451 1.4307 msgid "" 1.4308 "<envar role=\"rc-item-web\">name</envar>: String. The name to use for the " 1.4309 "repository in the web interface. This overrides the default name, which is " 1.4310 @@ -7345,13 +7685,13 @@ 1.4311 msgstr "" 1.4312 1.4313 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4314 -#: ../en/ch05-collab.xml:1366 1.4315 +#: ../en/ch05-collab.xml:1459 1.4316 msgid "" 1.4317 "Options specific to the <command role=\"hg-cmd\">hg serve</command> command" 1.4318 msgstr "命令 <command role=\"hg-cmd\">hg serve</command> 的选项" 1.4319 1.4320 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4321 -#: ../en/ch05-collab.xml:1369 1.4322 +#: ../en/ch05-collab.xml:1462 1.4323 msgid "" 1.4324 "Some of the items in the <literal role=\"rc-web\">web</literal> section of a " 1.4325 "<filename role=\"special\">~/.hgrc</filename> file are only for use with the " 1.4326 @@ -7359,7 +7699,7 @@ 1.4327 msgstr "" 1.4328 1.4329 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4330 -#: ../en/ch05-collab.xml:1375 1.4331 +#: ../en/ch05-collab.xml:1468 1.4332 msgid "" 1.4333 "<envar role=\"rc-item-web\">accesslog</envar>: Path. The name of a file into " 1.4334 "which to write an access log. By default, the <command role=\"hg-cmd\">hg " 1.4335 @@ -7369,7 +7709,7 @@ 1.4336 msgstr "" 1.4337 1.4338 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4339 -#: ../en/ch05-collab.xml:1383 1.4340 +#: ../en/ch05-collab.xml:1476 1.4341 msgid "" 1.4342 "<envar role=\"rc-item-web\">address</envar>: String. The local address on " 1.4343 "which the server should listen for incoming connections. By default, the " 1.4344 @@ -7377,7 +7717,7 @@ 1.4345 msgstr "" 1.4346 1.4347 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4348 -#: ../en/ch05-collab.xml:1388 1.4349 +#: ../en/ch05-collab.xml:1481 1.4350 msgid "" 1.4351 "<envar role=\"rc-item-web\">errorlog</envar>: Path. The name of a file into " 1.4352 "which to write an error log. By default, the <command role=\"hg-cmd\">hg " 1.4353 @@ -7386,21 +7726,21 @@ 1.4354 msgstr "" 1.4355 1.4356 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4357 -#: ../en/ch05-collab.xml:1394 1.4358 +#: ../en/ch05-collab.xml:1487 1.4359 msgid "" 1.4360 "<envar role=\"rc-item-web\">ipv6</envar>: Boolean. Whether to use the IPv6 " 1.4361 "protocol. By default, IPv6 is not used." 1.4362 msgstr "" 1.4363 1.4364 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4365 -#: ../en/ch05-collab.xml:1398 1.4366 +#: ../en/ch05-collab.xml:1491 1.4367 msgid "" 1.4368 "<envar role=\"rc-item-web\">port</envar>: Integer. The TCP port number on " 1.4369 "which the server should listen. The default port number used is 8000." 1.4370 msgstr "" 1.4371 1.4372 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 1.4373 -#: ../en/ch05-collab.xml:1405 1.4374 +#: ../en/ch05-collab.xml:1498 1.4375 msgid "" 1.4376 "Choosing the right <filename role=\"special\">~/.hgrc</filename> file to add " 1.4377 "<literal role=\"rc-web\">web</literal> items to" 1.4378 @@ -7409,7 +7749,7 @@ 1.4379 "role=\"rc-web\">web</literal> 条目" 1.4380 1.4381 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4382 -#: ../en/ch05-collab.xml:1409 1.4383 +#: ../en/ch05-collab.xml:1502 1.4384 msgid "" 1.4385 "It is important to remember that a web server like Apache or " 1.4386 "<literal>lighttpd</literal> will run under a user ID that is different to " 1.4387 @@ -7418,16 +7758,67 @@ 1.4388 msgstr "" 1.4389 1.4390 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 1.4391 -#: ../en/ch05-collab.xml:1416 1.4392 +#: ../en/ch05-collab.xml:1509 1.4393 msgid "" 1.4394 "If you add <literal role=\"rc-web\">web</literal> items to your own personal " 1.4395 "<filename role=\"special\">~/.hgrc</filename> file, CGI scripts won't read " 1.4396 "that <filename role=\"special\">~/.hgrc</filename> file. Those settings will " 1.4397 -"thus only affect the behaviour of the <command role=\"hg-cmd\">hg serve</" 1.4398 +"thus only affect the behavior of the <command role=\"hg-cmd\">hg serve</" 1.4399 "command> command when you run it. To cause CGI scripts to see your settings, " 1.4400 "either create a <filename role=\"special\">~/.hgrc</filename> file in the " 1.4401 "home directory of the user ID that runs your web server, or add those " 1.4402 -"settings to a system-wide <filename role=\"special\">~/.hgrc</filename> file." 1.4403 +"settings to a system-wide <filename role=\"special\">hgrc</filename> file." 1.4404 +msgstr "" 1.4405 + 1.4406 +#. type: Content of: <book><chapter><sect1><title> 1.4407 +#: ../en/ch05-collab.xml:1524 1.4408 +#, fuzzy 1.4409 +msgid "System-wide configuration" 1.4410 +msgstr "基本 CGI 配置" 1.4411 + 1.4412 +#. type: Content of: <book><chapter><sect1><para> 1.4413 +#: ../en/ch05-collab.xml:1526 1.4414 +msgid "" 1.4415 +"On Unix-like systems shared by multiple users (such as a server to which " 1.4416 +"people publish changes), it often makes sense to set up some global default " 1.4417 +"behaviors, such as what theme to use in web interfaces." 1.4418 +msgstr "" 1.4419 + 1.4420 +#. type: Content of: <book><chapter><sect1><para> 1.4421 +#: ../en/ch05-collab.xml:1531 1.4422 +msgid "" 1.4423 +"If a file named <filename>/etc/mercurial/hgrc</filename> exists, Mercurial " 1.4424 +"will read it at startup time and apply any configuration settings it finds in " 1.4425 +"that file. It will also look for files ending in a <literal>.rc</literal> " 1.4426 +"extension in a directory named <filename>/etc/mercurial/hgrc.d</filename>, " 1.4427 +"and apply any configuration settings it finds in each of those files." 1.4428 +msgstr "" 1.4429 + 1.4430 +#. type: Content of: <book><chapter><sect1><sect2><title> 1.4431 +#: ../en/ch05-collab.xml:1540 1.4432 +#, fuzzy 1.4433 +msgid "Making Mercurial more trusting" 1.4434 +msgstr "安装 Mercurial" 1.4435 + 1.4436 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.4437 +#: ../en/ch05-collab.xml:1542 1.4438 +msgid "" 1.4439 +"One situation in which a global <filename>hgrc</filename> can be useful is if " 1.4440 +"users are pulling changes owned by other users. By default, Mercurial will " 1.4441 +"not trust most of the configuration items in a <filename>.hg/hgrc</filename> " 1.4442 +"file inside a repository that is owned by a different user. If we clone or " 1.4443 +"pull changes from such a repository, Mercurial will print a warning stating " 1.4444 +"that it does not trust their <filename>.hg/hgrc</filename>." 1.4445 +msgstr "" 1.4446 + 1.4447 +#. type: Content of: <book><chapter><sect1><sect2><para> 1.4448 +#: ../en/ch05-collab.xml:1551 1.4449 +msgid "" 1.4450 +"If everyone in a particular Unix group is on the same team and " 1.4451 +"<emphasis>should</emphasis> trust each other's configuration settings, or we " 1.4452 +"want to trust particular users, we can override Mercurial's skeptical " 1.4453 +"defaults by creating a system-wide <filename>hgrc</filename> file such as the " 1.4454 +"following:" 1.4455 msgstr "" 1.4456 1.4457 #. type: Content of: <book><chapter><title> 1.4458 @@ -7481,9 +7872,9 @@ 1.4459 #. type: Content of: <book><chapter><sect1><para> 1.4460 #: ../en/ch06-filenames.xml:35 1.4461 msgid "" 1.4462 -"Mercurial's commands that work with file names have useful default behaviours " 1.4463 +"Mercurial's commands that work with file names have useful default behaviors " 1.4464 "when you invoke them without providing any file names or patterns. What kind " 1.4465 -"of behaviour you should expect depends on what the command does. Here are a " 1.4466 +"of behavior you should expect depends on what the command does. Here are a " 1.4467 "few rules of thumb you can use to predict what a command is likely to do if " 1.4468 "you don't give it any names to work with." 1.4469 msgstr "" 1.4470 @@ -7504,11 +7895,10 @@ 1.4471 "<command role=\"hg-cmd\">hg remove</command> with no arguments, for example." 1.4472 msgstr "" 1.4473 1.4474 -# 1.4475 #. type: Content of: <book><chapter><sect1><para> 1.4476 #: ../en/ch06-filenames.xml:54 1.4477 msgid "" 1.4478 -"It's easy to work around these default behaviours if they don't suit you. If " 1.4479 +"It's easy to work around these default behaviors if they don't suit you. If " 1.4480 "a command normally operates on the whole working directory, you can invoke it " 1.4481 "on just the current directory and its subdirectories by giving it the name " 1.4482 "<quote><filename class=\"directory\">.</filename></quote>." 1.4483 @@ -7549,8 +7939,8 @@ 1.4484 "The principle here is of <emphasis>least surprise</emphasis>. If you've " 1.4485 "exactly named a file on the command line, there's no point in repeating it " 1.4486 "back at you. If Mercurial is acting on a file <emphasis>implicitly</" 1.4487 -"emphasis>, because you provided no names, or a directory, or a pattern (see " 1.4488 -"below), it's safest to tell you what it's doing." 1.4489 +"emphasis>, e.g. because you provided no names, or a directory, or a pattern " 1.4490 +"(see below), it is safest to tell you what files it's operating on." 1.4491 msgstr "" 1.4492 1.4493 #. type: Content of: <book><chapter><sect1><para> 1.4494 @@ -7810,21 +8200,63 @@ 1.4495 1.4496 #. type: Content of: <book><chapter><sect1><title> 1.4497 #: ../en/ch06-filenames.xml:272 1.4498 -msgid "Ignoring unwanted files and directories" 1.4499 +#, fuzzy 1.4500 +msgid "Permanently ignoring unwanted files and directories" 1.4501 msgstr "忽略不需要的文件和目录" 1.4502 1.4503 #. type: Content of: <book><chapter><sect1><para> 1.4504 #: ../en/ch06-filenames.xml:274 1.4505 -msgid "XXX." 1.4506 +msgid "" 1.4507 +"When you create a new repository, the chances are that over time it will grow " 1.4508 +"to contain files that ought to <emphasis>not</emphasis> be managed by " 1.4509 +"Mercurial, but which you don't want to see listed every time you run " 1.4510 +"<command>hg status</command>. For instance, <quote>build products</quote> " 1.4511 +"are files that are created as part of a build but which should not be managed " 1.4512 +"by a revision control system. The most common build products are output " 1.4513 +"files produced by software tools such as compilers. As another example, many " 1.4514 +"text editors litter a directory with lock files, temporary working files, and " 1.4515 +"backup files, which it also makes no sense to manage." 1.4516 +msgstr "" 1.4517 + 1.4518 +#. type: Content of: <book><chapter><sect1><para> 1.4519 +#: ../en/ch06-filenames.xml:286 1.4520 +msgid "" 1.4521 +"To have Mercurial permanently ignore such files, create a file named " 1.4522 +"<filename>.hgignore</filename> in the root of your repository. You " 1.4523 +"<emphasis>should</emphasis> <command>hg add</command> this file so that it " 1.4524 +"gets tracked with the rest of your repository contents, since your " 1.4525 +"collaborators will probably find it useful too." 1.4526 +msgstr "" 1.4527 + 1.4528 +#. type: Content of: <book><chapter><sect1><para> 1.4529 +#: ../en/ch06-filenames.xml:293 1.4530 +msgid "" 1.4531 +"By default, the <filename>.hgignore</filename> file should contain a list of " 1.4532 +"regular expressions, one per line. Empty lines are skipped. Most people " 1.4533 +"prefer to describe the files they want to ignore using the <quote>glob</" 1.4534 +"quote> syntax that we described above, so a typical <filename>.hgignore</" 1.4535 +"filename> file will start with this directive:" 1.4536 +msgstr "" 1.4537 + 1.4538 +#. type: Content of: <book><chapter><sect1><para> 1.4539 +#: ../en/ch06-filenames.xml:302 1.4540 +msgid "" 1.4541 +"This tells Mercurial to interpret the lines that follow as glob patterns, not " 1.4542 +"regular expressions." 1.4543 +msgstr "" 1.4544 + 1.4545 +#. type: Content of: <book><chapter><sect1><para> 1.4546 +#: ../en/ch06-filenames.xml:305 1.4547 +msgid "Here is a typical-looking <filename>.hgignore</filename> file." 1.4548 msgstr "" 1.4549 1.4550 #. type: Content of: <book><chapter><sect1><title> 1.4551 -#: ../en/ch06-filenames.xml:278 1.4552 +#: ../en/ch06-filenames.xml:329 1.4553 msgid "Case sensitivity" 1.4554 msgstr "大小写敏感性" 1.4555 1.4556 #. type: Content of: <book><chapter><sect1><para> 1.4557 -#: ../en/ch06-filenames.xml:280 1.4558 +#: ../en/ch06-filenames.xml:331 1.4559 msgid "" 1.4560 "If you're working in a mixed development environment that contains both Linux " 1.4561 "(or other Unix) systems and Macs or Windows systems, you should keep in the " 1.4562 @@ -7835,7 +8267,7 @@ 1.4563 msgstr "" 1.4564 1.4565 #. type: Content of: <book><chapter><sect1><para> 1.4566 -#: ../en/ch06-filenames.xml:289 1.4567 +#: ../en/ch06-filenames.xml:340 1.4568 msgid "" 1.4569 "Operating systems and filesystems differ in the way they handle the " 1.4570 "<emphasis>case</emphasis> of characters in file and directory names. There " 1.4571 @@ -7843,7 +8275,7 @@ 1.4572 msgstr "" 1.4573 1.4574 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.4575 -#: ../en/ch06-filenames.xml:294 1.4576 +#: ../en/ch06-filenames.xml:345 1.4577 msgid "" 1.4578 "Completely case insensitive. Uppercase and lowercase versions of a letter " 1.4579 "are treated as identical, both when creating a file and during subsequent " 1.4580 @@ -7851,7 +8283,7 @@ 1.4581 msgstr "" 1.4582 1.4583 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.4584 -#: ../en/ch06-filenames.xml:299 1.4585 +#: ../en/ch06-filenames.xml:350 1.4586 msgid "" 1.4587 "Case preserving, but insensitive. When a file or directory is created, the " 1.4588 "case of its name is stored, and can be retrieved and displayed by the " 1.4589 @@ -7863,7 +8295,7 @@ 1.4590 msgstr "" 1.4591 1.4592 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 1.4593 -#: ../en/ch06-filenames.xml:310 1.4594 +#: ../en/ch06-filenames.xml:361 1.4595 msgid "" 1.4596 "Case sensitive. The case of a name is significant at all times. The names " 1.4597 "<filename>foo</filename> and {FoO} identify different files. This is the way " 1.4598 @@ -7871,7 +8303,7 @@ 1.4599 msgstr "" 1.4600 1.4601 #. type: Content of: <book><chapter><sect1><para> 1.4602 -#: ../en/ch06-filenames.xml:316 1.4603 +#: ../en/ch06-filenames.xml:367 1.4604 msgid "" 1.4605 "On Unix-like systems, it is possible to have any or all of the above ways of " 1.4606 "handling case in action at once. For example, if you use a USB thumb drive " 1.4607 @@ -7880,12 +8312,12 @@ 1.4608 msgstr "" 1.4609 1.4610 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4611 -#: ../en/ch06-filenames.xml:323 1.4612 +#: ../en/ch06-filenames.xml:374 1.4613 msgid "Safe, portable repository storage" 1.4614 msgstr "安全,可移植的版本库存储" 1.4615 1.4616 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4617 -#: ../en/ch06-filenames.xml:325 1.4618 +#: ../en/ch06-filenames.xml:376 1.4619 msgid "" 1.4620 "Mercurial's repository storage mechanism is <emphasis>case safe</emphasis>. " 1.4621 "It translates file names so that they can be safely stored on both case " 1.4622 @@ -7896,12 +8328,12 @@ 1.4623 msgstr "" 1.4624 1.4625 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4626 -#: ../en/ch06-filenames.xml:336 1.4627 +#: ../en/ch06-filenames.xml:387 1.4628 msgid "Detecting case conflicts" 1.4629 msgstr "检测大小写冲突" 1.4630 1.4631 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4632 -#: ../en/ch06-filenames.xml:338 1.4633 +#: ../en/ch06-filenames.xml:389 1.4634 msgid "" 1.4635 "When operating in the working directory, Mercurial honours the naming policy " 1.4636 "of the filesystem where the working directory is located. If the filesystem " 1.4637 @@ -7910,7 +8342,7 @@ 1.4638 msgstr "" 1.4639 1.4640 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4641 -#: ../en/ch06-filenames.xml:344 1.4642 +#: ../en/ch06-filenames.xml:395 1.4643 msgid "" 1.4644 "An important aspect of this approach is that it is possible to commit a " 1.4645 "changeset on a case sensitive (typically Linux or Unix) filesystem that will " 1.4646 @@ -7923,7 +8355,7 @@ 1.4647 msgstr "" 1.4648 1.4649 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4650 -#: ../en/ch06-filenames.xml:355 1.4651 +#: ../en/ch06-filenames.xml:406 1.4652 msgid "" 1.4653 "If a Windows or Mac user pulls this change, they will not initially have a " 1.4654 "problem, because Mercurial's repository storage mechanism is case safe. " 1.4655 @@ -7935,12 +8367,12 @@ 1.4656 msgstr "" 1.4657 1.4658 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4659 -#: ../en/ch06-filenames.xml:367 1.4660 +#: ../en/ch06-filenames.xml:418 1.4661 msgid "Fixing a case conflict" 1.4662 msgstr "修正大小写冲突" 1.4663 1.4664 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4665 -#: ../en/ch06-filenames.xml:369 1.4666 +#: ../en/ch06-filenames.xml:420 1.4667 msgid "" 1.4668 "If you are using Windows or a Mac in a mixed environment where some of your " 1.4669 "collaborators are using Linux or Unix, and Mercurial reports a case folding " 1.4670 @@ -7950,7 +8382,7 @@ 1.4671 msgstr "" 1.4672 1.4673 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4674 -#: ../en/ch06-filenames.xml:376 1.4675 +#: ../en/ch06-filenames.xml:427 1.4676 msgid "" 1.4677 "Just find a nearby Linux or Unix box, clone the problem repository onto it, " 1.4678 "and use Mercurial's <command role=\"hg-cmd\">hg rename</command> command to " 1.4679 @@ -7962,7 +8394,7 @@ 1.4680 msgstr "" 1.4681 1.4682 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4683 -#: ../en/ch06-filenames.xml:386 1.4684 +#: ../en/ch06-filenames.xml:437 1.4685 msgid "" 1.4686 "The changeset with case-conflicting names will remain in your project's " 1.4687 "history, and you still won't be able to <command role=\"hg-cmd\">hg update</" 1.4688 @@ -7970,15 +8402,6 @@ 1.4689 "system, but you can continue development unimpeded." 1.4690 msgstr "" 1.4691 1.4692 -#. type: Content of: <book><chapter><sect1><sect2><note><para> 1.4693 -#: ../en/ch06-filenames.xml:393 1.4694 -msgid "" 1.4695 -"Prior to version 0.9.3, Mercurial did not use a case safe repository storage " 1.4696 -"mechanism, and did not detect case folding conflicts. If you are using an " 1.4697 -"older version of Mercurial on Windows or MacOS, I strongly recommend that you " 1.4698 -"upgrade." 1.4699 -msgstr "" 1.4700 - 1.4701 #. type: Content of: <book><chapter><title> 1.4702 #: ../en/ch07-branch.xml:5 1.4703 msgid "Managing releases and branchy development" 1.4704 @@ -8152,17 +8575,17 @@ 1.4705 "revision once you discover your error." 1.4706 msgstr "" 1.4707 1.4708 -# 1.4709 #. type: Content of: <book><chapter><sect1><para> 1.4710 #: ../en/ch07-branch.xml:129 1.4711 msgid "" 1.4712 "Mercurial stores tags in a normal revision-controlled file in your " 1.4713 -"repository. If you've created any tags, you'll find them in a file named " 1.4714 -"<filename role=\"special\">.hgtags</filename>. When you run the <command " 1.4715 -"role=\"hg-cmd\">hg tag</command> command, Mercurial modifies this file, then " 1.4716 -"automatically commits the change to it. This means that every time you run " 1.4717 -"<command role=\"hg-cmd\">hg tag</command>, you'll see a corresponding " 1.4718 -"changeset in the output of <command role=\"hg-cmd\">hg log</command>." 1.4719 +"repository. If you've created any tags, you'll find them in a file in the " 1.4720 +"root of your repository named <filename role=\"special\">.hgtags</filename>. " 1.4721 +"When you run the <command role=\"hg-cmd\">hg tag</command> command, Mercurial " 1.4722 +"modifies this file, then automatically commits the change to it. This means " 1.4723 +"that every time you run <command role=\"hg-cmd\">hg tag</command>, you'll see " 1.4724 +"a corresponding changeset in the output of <command role=\"hg-cmd\">hg log</" 1.4725 +"command>." 1.4726 msgstr "" 1.4727 1.4728 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4729 @@ -8532,7 +8955,7 @@ 1.4730 #. type: Content of: <book><chapter><sect1><para> 1.4731 #: ../en/ch07-branch.xml:427 1.4732 msgid "" 1.4733 -"This behaviour is a little subtle, so let's see it in action. First, let's " 1.4734 +"This behavior is a little subtle, so let's see it in action. First, let's " 1.4735 "remind ourselves what branch we're currently on, and what branches are in our " 1.4736 "repository." 1.4737 msgstr "" 1.4738 @@ -8847,7 +9270,7 @@ 1.4739 "Mercurial stores exactly one transaction in its transaction log; that " 1.4740 "transaction is the most recent one that occurred in the repository. This " 1.4741 "means that you can only roll back one transaction. If you expect to be able " 1.4742 -"to roll back one transaction, then its predecessor, this is not the behaviour " 1.4743 +"to roll back one transaction, then its predecessor, this is not the behavior " 1.4744 "you will get." 1.4745 msgstr "" 1.4746 1.4747 @@ -9547,12 +9970,11 @@ 1.4748 #: ../en/ch08-undo.xml:689 1.4749 msgid "" 1.4750 "The idea behind the <command role=\"hg-cmd\">hg bisect</command> command is " 1.4751 -"that a changeset has introduced some change of behaviour that you can " 1.4752 -"identify with a simple binary test. You don't know which piece of code " 1.4753 -"introduced the change, but you know how to test for the presence of the bug. " 1.4754 -"The <command role=\"hg-cmd\">hg bisect</command> command uses your test to " 1.4755 -"direct its search for the changeset that introduced the code that caused the " 1.4756 -"bug." 1.4757 +"that a changeset has introduced some change of behavior that you can identify " 1.4758 +"with a simple binary test. You don't know which piece of code introduced the " 1.4759 +"change, but you know how to test for the presence of the bug. The <command " 1.4760 +"role=\"hg-cmd\">hg bisect</command> command uses your test to direct its " 1.4761 +"search for the changeset that introduced the code that caused the bug." 1.4762 msgstr "" 1.4763 1.4764 #. type: Content of: <book><chapter><sect1><para> 1.4765 @@ -10049,7 +10471,7 @@ 1.4766 "Even if you end up <quote>early</quote> by thousands of changesets or months " 1.4767 "of history, you will only add a handful of tests to the total number that " 1.4768 "<command role=\"hg-cmd\">hg bisect</command> must perform, thanks to its " 1.4769 -"logarithmic behaviour." 1.4770 +"logarithmic behavior." 1.4771 msgstr "" 1.4772 1.4773 #. type: Content of: <book><chapter><title> 1.4774 @@ -10303,7 +10725,7 @@ 1.4775 msgid "" 1.4776 "Mercurial allows you to override a hook definition by redefining the hook. " 1.4777 "You can disable it by setting its value to the empty string, or change its " 1.4778 -"behaviour as you wish." 1.4779 +"behavior as you wish." 1.4780 msgstr "" 1.4781 1.4782 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4783 @@ -11296,7 +11718,7 @@ 1.4784 "You can configure the text that this hook adds as a comment; you specify it " 1.4785 "in the form of a Mercurial template. Several <filename role=\"special\">~/." 1.4786 "hgrc</filename> entries (still in the <literal role=\"rc-bugzilla\">bugzilla</" 1.4787 -"literal> section) control this behaviour." 1.4788 +"literal> section) control this behavior." 1.4789 msgstr "" 1.4790 1.4791 #. type: Content of: <book><chapter><sect1><sect2><sect3><itemizedlist><listitem><para> 1.4792 @@ -13385,7 +13807,7 @@ 1.4793 #: ../en/ch11-mq.xml:67 1.4794 msgid "" 1.4795 "During the late 1990s, several Linux kernel developers started to maintain " 1.4796 -"<quote>patch series</quote> that modified the behaviour of the Linux kernel. " 1.4797 +"<quote>patch series</quote> that modified the behavior of the Linux kernel. " 1.4798 "Some of these series were focused on stability, some on feature coverage, and " 1.4799 "others were more speculative." 1.4800 msgstr "" 1.4801 @@ -13465,8 +13887,7 @@ 1.4802 #: ../en/ch11-mq.xml:126 1.4803 msgid "" 1.4804 "In mid-2005, Chris Mason took the features of quilt and wrote an extension " 1.4805 -"that he called Mercurial Queues, which added quilt-like behaviour to " 1.4806 -"Mercurial." 1.4807 +"that he called Mercurial Queues, which added quilt-like behavior to Mercurial." 1.4808 msgstr "" 1.4809 1.4810 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4811 @@ -14758,7 +15179,7 @@ 1.4812 "Whether you are working on a patch series to submit to a free software or " 1.4813 "open source project, or a series that you intend to treat as a sequence of " 1.4814 "regular changesets when you're done, you can use some simple techniques to " 1.4815 -"keep your work well organised." 1.4816 +"keep your work well organized." 1.4817 msgstr "" 1.4818 1.4819 #. type: Content of: <book><chapter><sect1><para> 1.4820 @@ -15615,7 +16036,7 @@ 1.4821 msgstr "" 1.4822 1.4823 # 1.4824 -#. &example.hg-interdiff; 1.4825 +#. &example.hg-interdiff; 1.4826 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4827 #: ../en/ch12-mq-collab.xml:466 1.4828 msgid "" 1.4829 @@ -15804,7 +16225,7 @@ 1.4830 "cmd\">hg status</command> commands. The extension has two components. A " 1.4831 "daemon sits in the background and receives notifications from the " 1.4832 "<literal>inotify</literal> subsystem. It also listens for connections from a " 1.4833 -"regular Mercurial command. The extension modifies Mercurial's behaviour so " 1.4834 +"regular Mercurial command. The extension modifies Mercurial's behavior so " 1.4835 "that instead of scanning the filesystem, it queries the daemon. Since the " 1.4836 "daemon has perfect information about the state of the repository, it can " 1.4837 "respond with a result instantaneously, avoiding the need to scan every " 1.4838 @@ -16000,7 +16421,7 @@ 1.4839 msgid "" 1.4840 "When you're using the <literal role=\"hg-ext\">inotify</literal> extension, " 1.4841 "you should notice <emphasis>no difference at all</emphasis> in Mercurial's " 1.4842 -"behaviour, with the sole exception of status-related commands running a whole " 1.4843 +"behavior, with the sole exception of status-related commands running a whole " 1.4844 "lot faster than they used to. You should specifically expect that commands " 1.4845 "will not print different output; neither should they give different results. " 1.4846 "If either of these situations occurs, please report a bug." 1.4847 @@ -16300,7 +16721,8 @@ 1.4848 1.4849 #. type: Content of: <book><chapter><sect1><sect2><title> 1.4850 #: ../en/ch13-hgext.xml:484 1.4851 -msgid "Changing the behaviour of patchbombs" 1.4852 +#, fuzzy 1.4853 +msgid "Changing the behavior of patchbombs" 1.4854 msgstr "修改 patchbomb 的行为" 1.4855 1.4856 #. type: Content of: <book><chapter><sect1><sect2><para> 1.4857 @@ -16330,7 +16752,7 @@ 1.4858 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 1.4859 #: ../en/ch13-hgext.xml:504 1.4860 msgid "" 1.4861 -"The default behaviour is to send unified diffs (see <xref linkend=\"sec:mq:" 1.4862 +"The default behavior is to send unified diffs (see <xref linkend=\"sec:mq:" 1.4863 "patch\"/> for a description of the format), one per message. You can send a " 1.4864 "binary bundle instead with the <option role=\"hg-ext-patchbomb-cmd-email-opt" 1.4865 "\">hg -b</option> option."