hgbook

changeset 653:6b1577ef5135

Update Chinese translation
author Dongsheng Song <dongsheng.song@gmail.com>
date Fri Mar 20 17:17:55 2009 +0800 (2009-03-20)
parents 751ee9bf2e8d
children 1c13ed2130a7
files po/zh.po
line diff
     1.1 --- a/po/zh.po	Fri Mar 20 16:59:07 2009 +0800
     1.2 +++ b/po/zh.po	Fri Mar 20 17:17:55 2009 +0800
     1.3 @@ -41,8 +41,8 @@
     1.4  msgid ""
     1.5  msgstr ""
     1.6  "Project-Id-Version: hgbook 1.2\n"
     1.7 -"POT-Creation-Date: 2009-03-20 15:47+0800\n"
     1.8 -"PO-Revision-Date: 2009-03-18 19:50+0800\n"
     1.9 +"POT-Creation-Date: 2009-03-20 17:12+0800\n"
    1.10 +"PO-Revision-Date: 2009-03-20 17:12+0800\n"
    1.11  "Last-Translator: \n"
    1.12  "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n"
    1.13  "MIME-Version: 1.0\n"
    1.14 @@ -477,11 +477,12 @@
    1.15  
    1.16  #. type: Content of: <book><appendix><sect1><sect2><title>
    1.17  #: ../en/appB-mq-ref.xml:43
    1.18 -#, fuzzy
    1.19  msgid ""
    1.20  "<command role=\"hg-ext-mq\">qdelete</command>&emdash;delete a patch from the "
    1.21 -"<filename role=\"special\">series</filename> file}"
    1.22 -msgstr "<command role=\"hg-ext-mq\">qseries</command>&emdash;显示补丁序列"
    1.23 +"<filename role=\"special\">series</filename> file"
    1.24 +msgstr ""
    1.25 +"<command role=\"hg-ext-mq\">qdelete</command>&emdash;从文件 <filename role="
    1.26 +"\"special\">series</filename> 中删除补丁"
    1.27  
    1.28  #. type: Content of: <book><appendix><sect1><sect2><para>
    1.29  #: ../en/appB-mq-ref.xml:48
    1.30 @@ -1519,6 +1520,1037 @@
    1.31  "license reference or copy."
    1.32  msgstr ""
    1.33  
    1.34 +#. type: Content of: <book><preface><title>
    1.35 +#: ../en/ch00-preface.xml:5
    1.36 +msgid "Preface"
    1.37 +msgstr "序言"
    1.38 +
    1.39 +#. type: Content of: <book><preface><sect1><title>
    1.40 +#: ../en/ch00-preface.xml:8
    1.41 +msgid "Why revision control? Why Mercurial?"
    1.42 +msgstr "为什么使用版本控制? 为什么使用 Mercurial?"
    1.43 +
    1.44 +#. type: Content of: <book><preface><sect1><para>
    1.45 +#: ../en/ch00-preface.xml:10
    1.46 +msgid ""
    1.47 +"Revision control is the process of managing multiple versions of a piece of "
    1.48 +"information.  In its simplest form, this is something that many people do by "
    1.49 +"hand: every time you modify a file, save it under a new name that contains a "
    1.50 +"number, each one higher than the number of the preceding version."
    1.51 +msgstr ""
    1.52 +
    1.53 +#. type: Content of: <book><preface><sect1><para>
    1.54 +#: ../en/ch00-preface.xml:16
    1.55 +msgid ""
    1.56 +"Manually managing multiple versions of even a single file is an error-prone "
    1.57 +"task, though, so software tools to help automate this process have long been "
    1.58 +"available.  The earliest automated revision control tools were intended to "
    1.59 +"help a single user to manage revisions of a single file.  Over the past few "
    1.60 +"decades, the scope of revision control tools has expanded greatly; they now "
    1.61 +"manage multiple files, and help multiple people to work together.  The best "
    1.62 +"modern revision control tools have no problem coping with thousands of people "
    1.63 +"working together on projects that consist of hundreds of thousands of files."
    1.64 +msgstr ""
    1.65 +
    1.66 +#. type: Content of: <book><preface><sect1><para>
    1.67 +#: ../en/ch00-preface.xml:27
    1.68 +msgid ""
    1.69 +"The arrival of distributed revision control is relatively recent, and so far "
    1.70 +"this new field has grown due to people's willingness to explore ill-charted "
    1.71 +"territory."
    1.72 +msgstr ""
    1.73 +
    1.74 +#. type: Content of: <book><preface><sect1><para>
    1.75 +#: ../en/ch00-preface.xml:31
    1.76 +msgid ""
    1.77 +"I am writing a book about distributed revision control because I believe that "
    1.78 +"it is an important subject that deserves a field guide. I chose to write "
    1.79 +"about Mercurial because it is the easiest tool to learn the terrain with, and "
    1.80 +"yet it scales to the demands of real, challenging environments where many "
    1.81 +"other revision control tools buckle."
    1.82 +msgstr ""
    1.83 +
    1.84 +#. type: Content of: <book><preface><sect1><sect2><title>
    1.85 +#: ../en/ch00-preface.xml:39
    1.86 +msgid "Why use revision control?"
    1.87 +msgstr "为什么使用版本控制?"
    1.88 +
    1.89 +#. type: Content of: <book><preface><sect1><sect2><para>
    1.90 +#: ../en/ch00-preface.xml:41
    1.91 +msgid ""
    1.92 +"There are a number of reasons why you or your team might want to use an "
    1.93 +"automated revision control tool for a project."
    1.94 +msgstr ""
    1.95 +
    1.96 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
    1.97 +#: ../en/ch00-preface.xml:46
    1.98 +msgid ""
    1.99 +"It will track the history and evolution of your project, so you don't have "
   1.100 +"to.  For every change, you'll have a log of <emphasis>who</emphasis> made it; "
   1.101 +"<emphasis>why</emphasis> they made it; <emphasis>when</emphasis> they made "
   1.102 +"it; and <emphasis>what</emphasis> the change was."
   1.103 +msgstr ""
   1.104 +
   1.105 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.106 +#: ../en/ch00-preface.xml:53
   1.107 +msgid ""
   1.108 +"When you're working with other people, revision control software makes it "
   1.109 +"easier for you to collaborate.  For example, when people more or less "
   1.110 +"simultaneously make potentially incompatible changes, the software will help "
   1.111 +"you to identify and resolve those conflicts."
   1.112 +msgstr ""
   1.113 +
   1.114 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.115 +#: ../en/ch00-preface.xml:59
   1.116 +msgid ""
   1.117 +"It can help you to recover from mistakes.  If you make a change that later "
   1.118 +"turns out to be in error, you can revert to an earlier version of one or more "
   1.119 +"files.  In fact, a <emphasis>really</emphasis> good revision control tool "
   1.120 +"will even help you to efficiently figure out exactly when a problem was "
   1.121 +"introduced (see section <xref linkend=\"sec.undo.bisect\"/> for details)."
   1.122 +msgstr ""
   1.123 +
   1.124 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.125 +#: ../en/ch00-preface.xml:66
   1.126 +msgid ""
   1.127 +"It will help you to work simultaneously on, and manage the drift between, "
   1.128 +"multiple versions of your project."
   1.129 +msgstr ""
   1.130 +
   1.131 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.132 +#: ../en/ch00-preface.xml:71
   1.133 +msgid ""
   1.134 +"Most of these reasons are equally valid---at least in theory---whether you're "
   1.135 +"working on a project by yourself, or with a hundred other people."
   1.136 +msgstr ""
   1.137 +
   1.138 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.139 +#: ../en/ch00-preface.xml:75
   1.140 +msgid ""
   1.141 +"A key question about the practicality of revision control at these two "
   1.142 +"different scales (<quote>lone hacker</quote> and <quote>huge team</quote>) is "
   1.143 +"how its <emphasis>benefits</emphasis> compare to its <emphasis>costs</"
   1.144 +"emphasis>.  A revision control tool that's difficult to understand or use is "
   1.145 +"going to impose a high cost."
   1.146 +msgstr ""
   1.147 +
   1.148 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.149 +#: ../en/ch00-preface.xml:83
   1.150 +msgid ""
   1.151 +"A five-hundred-person project is likely to collapse under its own weight "
   1.152 +"almost immediately without a revision control tool and process. In this case, "
   1.153 +"the cost of using revision control might hardly seem worth considering, since "
   1.154 +"<emphasis>without</emphasis> it, failure is almost guaranteed."
   1.155 +msgstr ""
   1.156 +
   1.157 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.158 +#: ../en/ch00-preface.xml:90
   1.159 +msgid ""
   1.160 +"On the other hand, a one-person <quote>quick hack</quote> might seem like a "
   1.161 +"poor place to use a revision control tool, because surely the cost of using "
   1.162 +"one must be close to the overall cost of the project.  Right?"
   1.163 +msgstr ""
   1.164 +
   1.165 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.166 +#: ../en/ch00-preface.xml:95
   1.167 +msgid ""
   1.168 +"Mercurial uniquely supports <emphasis>both</emphasis> of these scales of "
   1.169 +"development.  You can learn the basics in just a few minutes, and due to its "
   1.170 +"low overhead, you can apply revision control to the smallest of projects with "
   1.171 +"ease.  Its simplicity means you won't have a lot of abstruse concepts or "
   1.172 +"command sequences competing for mental space with whatever you're "
   1.173 +"<emphasis>really</emphasis> trying to do.  At the same time, Mercurial's high "
   1.174 +"performance and peer-to-peer nature let you scale painlessly to handle large "
   1.175 +"projects."
   1.176 +msgstr ""
   1.177 +
   1.178 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.179 +#: ../en/ch00-preface.xml:105
   1.180 +msgid ""
   1.181 +"No revision control tool can rescue a poorly run project, but a good choice "
   1.182 +"of tools can make a huge difference to the fluidity with which you can work "
   1.183 +"on a project."
   1.184 +msgstr ""
   1.185 +
   1.186 +#. type: Content of: <book><preface><sect1><sect2><title>
   1.187 +#: ../en/ch00-preface.xml:112
   1.188 +msgid "The many names of revision control"
   1.189 +msgstr "版本控制的别名"
   1.190 +
   1.191 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.192 +#: ../en/ch00-preface.xml:114
   1.193 +msgid ""
   1.194 +"Revision control is a diverse field, so much so that it is referred to by "
   1.195 +"many names and acronyms.  Here are a few of the more common variations you'll "
   1.196 +"encounter:"
   1.197 +msgstr ""
   1.198 +
   1.199 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.200 +#: ../en/ch00-preface.xml:118
   1.201 +msgid "Revision control (RCS)"
   1.202 +msgstr "版本控制(RCS)"
   1.203 +
   1.204 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.205 +#: ../en/ch00-preface.xml:119
   1.206 +msgid "Software configuration management (SCM), or configuration management"
   1.207 +msgstr "软件配置管理(SCM),或配置管理"
   1.208 +
   1.209 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.210 +#: ../en/ch00-preface.xml:121
   1.211 +msgid "Source code management"
   1.212 +msgstr "源代码管理"
   1.213 +
   1.214 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.215 +#: ../en/ch00-preface.xml:122
   1.216 +msgid "Source code control, or source control"
   1.217 +msgstr "源代码控制,或源控制"
   1.218 +
   1.219 +#. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para>
   1.220 +#: ../en/ch00-preface.xml:124
   1.221 +msgid "Version control (VCS)"
   1.222 +msgstr "版本控制(VCS)"
   1.223 +
   1.224 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.225 +#: ../en/ch00-preface.xml:126
   1.226 +msgid ""
   1.227 +"Some people claim that these terms actually have different meanings, but in "
   1.228 +"practice they overlap so much that there's no agreed or even useful way to "
   1.229 +"tease them apart."
   1.230 +msgstr ""
   1.231 +
   1.232 +#. type: Content of: <book><preface><sect1><title>
   1.233 +#: ../en/ch00-preface.xml:134
   1.234 +msgid "This book is a work in progress"
   1.235 +msgstr "本书正在编写中"
   1.236 +
   1.237 +#. type: Content of: <book><preface><sect1><para>
   1.238 +#: ../en/ch00-preface.xml:136
   1.239 +msgid ""
   1.240 +"I am releasing this book while I am still writing it, in the hope that it "
   1.241 +"will prove useful to others.  I am writing under an open license in the hope "
   1.242 +"that you, my readers, will contribute feedback and perhaps content of your "
   1.243 +"own."
   1.244 +msgstr ""
   1.245 +
   1.246 +#. type: Content of: <book><preface><sect1><title>
   1.247 +#: ../en/ch00-preface.xml:143
   1.248 +msgid "About the examples in this book"
   1.249 +msgstr "本书的例子"
   1.250 +
   1.251 +#. type: Content of: <book><preface><sect1><para>
   1.252 +#: ../en/ch00-preface.xml:145
   1.253 +msgid ""
   1.254 +"This book takes an unusual approach to code samples.  Every example is "
   1.255 +"<quote>live</quote>---each one is actually the result of a shell script that "
   1.256 +"executes the Mercurial commands you see.  Every time an image of the book is "
   1.257 +"built from its sources, all the example scripts are automatically run, and "
   1.258 +"their current results compared against their expected results."
   1.259 +msgstr ""
   1.260 +
   1.261 +#. type: Content of: <book><preface><sect1><para>
   1.262 +#: ../en/ch00-preface.xml:152
   1.263 +msgid ""
   1.264 +"The advantage of this approach is that the examples are always accurate; they "
   1.265 +"describe <emphasis>exactly</emphasis> the behaviour of the version of "
   1.266 +"Mercurial that's mentioned at the front of the book.  If I update the version "
   1.267 +"of Mercurial that I'm documenting, and the output of some command changes, "
   1.268 +"the build fails."
   1.269 +msgstr ""
   1.270 +
   1.271 +#. type: Content of: <book><preface><sect1><para>
   1.272 +#: ../en/ch00-preface.xml:159
   1.273 +msgid ""
   1.274 +"There is a small disadvantage to this approach, which is that the dates and "
   1.275 +"times you'll see in examples tend to be <quote>squashed</quote> together in a "
   1.276 +"way that they wouldn't be if the same commands were being typed by a human.  "
   1.277 +"Where a human can issue no more than one command every few seconds, with any "
   1.278 +"resulting timestamps correspondingly spread out, my automated example scripts "
   1.279 +"run many commands in one second."
   1.280 +msgstr ""
   1.281 +
   1.282 +#. type: Content of: <book><preface><sect1><para>
   1.283 +#: ../en/ch00-preface.xml:167
   1.284 +msgid ""
   1.285 +"As an instance of this, several consecutive commits in an example can show up "
   1.286 +"as having occurred during the same second.  You can see this occur in the "
   1.287 +"<literal role=\"hg-ext\">bisect</literal> example in section <xref linkend="
   1.288 +"\"sec.undo.bisect\"/>, for instance."
   1.289 +msgstr ""
   1.290 +
   1.291 +#. type: Content of: <book><preface><sect1><para>
   1.292 +#: ../en/ch00-preface.xml:173
   1.293 +msgid ""
   1.294 +"So when you're reading examples, don't place too much weight on the dates or "
   1.295 +"times you see in the output of commands.  But <emphasis>do</emphasis> be "
   1.296 +"confident that the behaviour you're seeing is consistent and reproducible."
   1.297 +msgstr ""
   1.298 +
   1.299 +#. type: Content of: <book><preface><sect1><title>
   1.300 +#: ../en/ch00-preface.xml:181
   1.301 +msgid "Trends in the field"
   1.302 +msgstr "版本控制的发展趋势"
   1.303 +
   1.304 +#. type: Content of: <book><preface><sect1><para>
   1.305 +#: ../en/ch00-preface.xml:183
   1.306 +msgid ""
   1.307 +"There has been an unmistakable trend in the development and use of revision "
   1.308 +"control tools over the past four decades, as people have become familiar with "
   1.309 +"the capabilities of their tools and constrained by their limitations."
   1.310 +msgstr ""
   1.311 +
   1.312 +#. type: Content of: <book><preface><sect1><para>
   1.313 +#: ../en/ch00-preface.xml:188
   1.314 +msgid ""
   1.315 +"The first generation began by managing single files on individual computers.  "
   1.316 +"Although these tools represented a huge advance over ad-hoc manual revision "
   1.317 +"control, their locking model and reliance on a single computer limited them "
   1.318 +"to small, tightly-knit teams."
   1.319 +msgstr ""
   1.320 +
   1.321 +#. type: Content of: <book><preface><sect1><para>
   1.322 +#: ../en/ch00-preface.xml:194
   1.323 +msgid ""
   1.324 +"The second generation loosened these constraints by moving to network-"
   1.325 +"centered architectures, and managing entire projects at a time.  As projects "
   1.326 +"grew larger, they ran into new problems.  With clients needing to talk to "
   1.327 +"servers very frequently, server scaling became an issue for large projects.  "
   1.328 +"An unreliable network connection could prevent remote users from being able "
   1.329 +"to talk to the server at all.  As open source projects started making read-"
   1.330 +"only access available anonymously to anyone, people without commit privileges "
   1.331 +"found that they could not use the tools to interact with a project in a "
   1.332 +"natural way, as they could not record their changes."
   1.333 +msgstr ""
   1.334 +
   1.335 +#. type: Content of: <book><preface><sect1><para>
   1.336 +#: ../en/ch00-preface.xml:206
   1.337 +msgid ""
   1.338 +"The current generation of revision control tools is peer-to-peer in nature.  "
   1.339 +"All of these systems have dropped the dependency on a single central server, "
   1.340 +"and allow people to distribute their revision control data to where it's "
   1.341 +"actually needed.  Collaboration over the Internet has moved from constrained "
   1.342 +"by technology to a matter of choice and consensus.  Modern tools can operate "
   1.343 +"offline indefinitely and autonomously, with a network connection only needed "
   1.344 +"when syncing changes with another repository."
   1.345 +msgstr ""
   1.346 +
   1.347 +#. type: Content of: <book><preface><sect1><title>
   1.348 +#: ../en/ch00-preface.xml:218
   1.349 +msgid "A few of the advantages of distributed revision control"
   1.350 +msgstr "分布版本控制的优点"
   1.351 +
   1.352 +#. type: Content of: <book><preface><sect1><para>
   1.353 +#: ../en/ch00-preface.xml:221
   1.354 +msgid ""
   1.355 +"Even though distributed revision control tools have for several years been as "
   1.356 +"robust and usable as their previous-generation counterparts, people using "
   1.357 +"older tools have not yet necessarily woken up to their advantages.  There are "
   1.358 +"a number of ways in which distributed tools shine relative to centralised "
   1.359 +"ones."
   1.360 +msgstr ""
   1.361 +
   1.362 +#. type: Content of: <book><preface><sect1><para>
   1.363 +#: ../en/ch00-preface.xml:228
   1.364 +msgid ""
   1.365 +"For an individual developer, distributed tools are almost always much faster "
   1.366 +"than centralised tools.  This is for a simple reason: a centralised tool "
   1.367 +"needs to talk over the network for many common operations, because most "
   1.368 +"metadata is stored in a single copy on the central server.  A distributed "
   1.369 +"tool stores all of its metadata locally.  All else being equal, talking over "
   1.370 +"the network adds overhead to a centralised tool.  Don't underestimate the "
   1.371 +"value of a snappy, responsive tool: you're going to spend a lot of time "
   1.372 +"interacting with your revision control software."
   1.373 +msgstr ""
   1.374 +
   1.375 +#. type: Content of: <book><preface><sect1><para>
   1.376 +#: ../en/ch00-preface.xml:239
   1.377 +msgid ""
   1.378 +"Distributed tools are indifferent to the vagaries of your server "
   1.379 +"infrastructure, again because they replicate metadata to so many locations.  "
   1.380 +"If you use a centralised system and your server catches fire, you'd better "
   1.381 +"hope that your backup media are reliable, and that your last backup was "
   1.382 +"recent and actually worked.  With a distributed tool, you have many backups "
   1.383 +"available on every contributor's computer."
   1.384 +msgstr ""
   1.385 +
   1.386 +#. type: Content of: <book><preface><sect1><para>
   1.387 +#: ../en/ch00-preface.xml:247
   1.388 +msgid ""
   1.389 +"The reliability of your network will affect distributed tools far less than "
   1.390 +"it will centralised tools.  You can't even use a centralised tool without a "
   1.391 +"network connection, except for a few highly constrained commands.  With a "
   1.392 +"distributed tool, if your network connection goes down while you're working, "
   1.393 +"you may not even notice.  The only thing you won't be able to do is talk to "
   1.394 +"repositories on other computers, something that is relatively rare compared "
   1.395 +"with local operations.  If you have a far-flung team of collaborators, this "
   1.396 +"may be significant."
   1.397 +msgstr ""
   1.398 +
   1.399 +#. type: Content of: <book><preface><sect1><sect2><title>
   1.400 +#: ../en/ch00-preface.xml:258
   1.401 +msgid "Advantages for open source projects"
   1.402 +msgstr "开源项目的优点"
   1.403 +
   1.404 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.405 +#: ../en/ch00-preface.xml:260
   1.406 +msgid ""
   1.407 +"If you take a shine to an open source project and decide that you would like "
   1.408 +"to start hacking on it, and that project uses a distributed revision control "
   1.409 +"tool, you are at once a peer with the people who consider themselves the "
   1.410 +"<quote>core</quote> of that project.  If they publish their repositories, you "
   1.411 +"can immediately copy their project history, start making changes, and record "
   1.412 +"your work, using the same tools in the same ways as insiders.  By contrast, "
   1.413 +"with a centralised tool, you must use the software in a <quote>read only</"
   1.414 +"quote> mode unless someone grants you permission to commit changes to their "
   1.415 +"central server.  Until then, you won't be able to record changes, and your "
   1.416 +"local modifications will be at risk of corruption any time you try to update "
   1.417 +"your client's view of the repository."
   1.418 +msgstr ""
   1.419 +
   1.420 +#. type: Content of: <book><preface><sect1><sect2><sect3><title>
   1.421 +#: ../en/ch00-preface.xml:276
   1.422 +msgid "The forking non-problem"
   1.423 +msgstr ""
   1.424 +
   1.425 +#. type: Content of: <book><preface><sect1><sect2><sect3><para>
   1.426 +#: ../en/ch00-preface.xml:278
   1.427 +msgid ""
   1.428 +"It has been suggested that distributed revision control tools pose some sort "
   1.429 +"of risk to open source projects because they make it easy to <quote>fork</"
   1.430 +"quote> the development of a project.  A fork happens when there are "
   1.431 +"differences in opinion or attitude between groups of developers that cause "
   1.432 +"them to decide that they can't work together any longer.  Each side takes a "
   1.433 +"more or less complete copy of the project's source code, and goes off in its "
   1.434 +"own direction."
   1.435 +msgstr ""
   1.436 +
   1.437 +#. type: Content of: <book><preface><sect1><sect2><sect3><para>
   1.438 +#: ../en/ch00-preface.xml:288
   1.439 +msgid ""
   1.440 +"Sometimes the camps in a fork decide to reconcile their differences. With a "
   1.441 +"centralised revision control system, the <emphasis>technical</emphasis> "
   1.442 +"process of reconciliation is painful, and has to be performed largely by "
   1.443 +"hand.  You have to decide whose revision history is going to <quote>win</"
   1.444 +"quote>, and graft the other team's changes into the tree somehow. This "
   1.445 +"usually loses some or all of one side's revision history."
   1.446 +msgstr ""
   1.447 +
   1.448 +#. type: Content of: <book><preface><sect1><sect2><sect3><para>
   1.449 +#: ../en/ch00-preface.xml:297
   1.450 +msgid ""
   1.451 +"What distributed tools do with respect to forking is they make forking the "
   1.452 +"<emphasis>only</emphasis> way to develop a project.  Every single change that "
   1.453 +"you make is potentially a fork point.  The great strength of this approach is "
   1.454 +"that a distributed revision control tool has to be really good at "
   1.455 +"<emphasis>merging</emphasis> forks, because forks are absolutely fundamental: "
   1.456 +"they happen all the time."
   1.457 +msgstr ""
   1.458 +
   1.459 +#. type: Content of: <book><preface><sect1><sect2><sect3><para>
   1.460 +#: ../en/ch00-preface.xml:306
   1.461 +msgid ""
   1.462 +"If every piece of work that everybody does, all the time, is framed in terms "
   1.463 +"of forking and merging, then what the open source world refers to as a "
   1.464 +"<quote>fork</quote> becomes <emphasis>purely</emphasis> a social issue.  If "
   1.465 +"anything, distributed tools <emphasis>lower</emphasis> the likelihood of a "
   1.466 +"fork:"
   1.467 +msgstr ""
   1.468 +
   1.469 +#. type: Content of: <book><preface><sect1><sect2><sect3><itemizedlist><listitem><para>
   1.470 +#: ../en/ch00-preface.xml:313
   1.471 +msgid ""
   1.472 +"They eliminate the social distinction that centralised tools impose: that "
   1.473 +"between insiders (people with commit access) and outsiders (people without)."
   1.474 +msgstr ""
   1.475 +
   1.476 +#. type: Content of: <book><preface><sect1><sect2><sect3><itemizedlist><listitem><para>
   1.477 +#: ../en/ch00-preface.xml:317
   1.478 +msgid ""
   1.479 +"They make it easier to reconcile after a social fork, because all that's "
   1.480 +"involved from the perspective of the revision control software is just "
   1.481 +"another merge."
   1.482 +msgstr ""
   1.483 +
   1.484 +#. type: Content of: <book><preface><sect1><sect2><sect3><para>
   1.485 +#: ../en/ch00-preface.xml:322
   1.486 +msgid ""
   1.487 +"Some people resist distributed tools because they want to retain tight "
   1.488 +"control over their projects, and they believe that centralised tools give "
   1.489 +"them this control.  However, if you're of this belief, and you publish your "
   1.490 +"CVS or Subversion repositories publicly, there are plenty of tools available "
   1.491 +"that can pull out your entire project's history (albeit slowly) and recreate "
   1.492 +"it somewhere that you don't control.  So while your control in this case is "
   1.493 +"illusory, you are forgoing the ability to fluidly collaborate with whatever "
   1.494 +"people feel compelled to mirror and fork your history."
   1.495 +msgstr ""
   1.496 +
   1.497 +#. type: Content of: <book><preface><sect1><sect2><title>
   1.498 +#: ../en/ch00-preface.xml:337
   1.499 +msgid "Advantages for commercial projects"
   1.500 +msgstr "商业项目的优点"
   1.501 +
   1.502 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.503 +#: ../en/ch00-preface.xml:339
   1.504 +msgid ""
   1.505 +"Many commercial projects are undertaken by teams that are scattered across "
   1.506 +"the globe.  Contributors who are far from a central server will see slower "
   1.507 +"command execution and perhaps less reliability.  Commercial revision control "
   1.508 +"systems attempt to ameliorate these problems with remote-site replication add-"
   1.509 +"ons that are typically expensive to buy and cantankerous to administer.  A "
   1.510 +"distributed system doesn't suffer from these problems in the first place.  "
   1.511 +"Better yet, you can easily set up multiple authoritative servers, say one per "
   1.512 +"site, so that there's no redundant communication between repositories over "
   1.513 +"expensive long-haul network links."
   1.514 +msgstr ""
   1.515 +
   1.516 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.517 +#: ../en/ch00-preface.xml:351
   1.518 +msgid ""
   1.519 +"Centralised revision control systems tend to have relatively low "
   1.520 +"scalability.  It's not unusual for an expensive centralised system to fall "
   1.521 +"over under the combined load of just a few dozen concurrent users.  Once "
   1.522 +"again, the typical response tends to be an expensive and clunky replication "
   1.523 +"facility.  Since the load on a central server---if you have one at all---is "
   1.524 +"many times lower with a distributed tool (because all of the data is "
   1.525 +"replicated everywhere), a single cheap server can handle the needs of a much "
   1.526 +"larger team, and replication to balance load becomes a simple matter of "
   1.527 +"scripting."
   1.528 +msgstr ""
   1.529 +
   1.530 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.531 +#: ../en/ch00-preface.xml:363
   1.532 +msgid ""
   1.533 +"If you have an employee in the field, troubleshooting a problem at a "
   1.534 +"customer's site, they'll benefit from distributed revision control. The tool "
   1.535 +"will let them generate custom builds, try different fixes in isolation from "
   1.536 +"each other, and search efficiently through history for the sources of bugs "
   1.537 +"and regressions in the customer's environment, all without needing to connect "
   1.538 +"to your company's network."
   1.539 +msgstr ""
   1.540 +
   1.541 +#. type: Content of: <book><preface><sect1><title>
   1.542 +#: ../en/ch00-preface.xml:374
   1.543 +msgid "Why choose Mercurial?"
   1.544 +msgstr "为什么选择 Mercurial?"
   1.545 +
   1.546 +#. type: Content of: <book><preface><sect1><para>
   1.547 +#: ../en/ch00-preface.xml:376
   1.548 +msgid ""
   1.549 +"Mercurial has a unique set of properties that make it a particularly good "
   1.550 +"choice as a revision control system."
   1.551 +msgstr ""
   1.552 +
   1.553 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.554 +#: ../en/ch00-preface.xml:379
   1.555 +msgid "It is easy to learn and use."
   1.556 +msgstr ""
   1.557 +
   1.558 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.559 +#: ../en/ch00-preface.xml:380
   1.560 +msgid "It is lightweight."
   1.561 +msgstr ""
   1.562 +
   1.563 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.564 +#: ../en/ch00-preface.xml:381
   1.565 +msgid "It scales excellently."
   1.566 +msgstr ""
   1.567 +
   1.568 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.569 +#: ../en/ch00-preface.xml:382
   1.570 +msgid "It is easy to customise."
   1.571 +msgstr ""
   1.572 +
   1.573 +#. type: Content of: <book><preface><sect1><para>
   1.574 +#: ../en/ch00-preface.xml:385
   1.575 +msgid ""
   1.576 +"If you are at all familiar with revision control systems, you should be able "
   1.577 +"to get up and running with Mercurial in less than five minutes.  Even if not, "
   1.578 +"it will take no more than a few minutes longer.  Mercurial's command and "
   1.579 +"feature sets are generally uniform and consistent, so you can keep track of a "
   1.580 +"few general rules instead of a host of exceptions."
   1.581 +msgstr ""
   1.582 +
   1.583 +#. type: Content of: <book><preface><sect1><para>
   1.584 +#: ../en/ch00-preface.xml:392
   1.585 +msgid ""
   1.586 +"On a small project, you can start working with Mercurial in moments. Creating "
   1.587 +"new changes and branches; transferring changes around (whether locally or "
   1.588 +"over a network); and history and status operations are all fast.  Mercurial "
   1.589 +"attempts to stay nimble and largely out of your way by combining low "
   1.590 +"cognitive overhead with blazingly fast operations."
   1.591 +msgstr ""
   1.592 +
   1.593 +#. type: Content of: <book><preface><sect1><para>
   1.594 +#: ../en/ch00-preface.xml:399
   1.595 +msgid ""
   1.596 +"The usefulness of Mercurial is not limited to small projects: it is used by "
   1.597 +"projects with hundreds to thousands of contributors, each containing tens of "
   1.598 +"thousands of files and hundreds of megabytes of source code."
   1.599 +msgstr ""
   1.600 +
   1.601 +#. type: Content of: <book><preface><sect1><para>
   1.602 +#: ../en/ch00-preface.xml:404
   1.603 +msgid ""
   1.604 +"If the core functionality of Mercurial is not enough for you, it's easy to "
   1.605 +"build on.  Mercurial is well suited to scripting tasks, and its clean "
   1.606 +"internals and implementation in Python make it easy to add features in the "
   1.607 +"form of extensions.  There are a number of popular and useful extensions "
   1.608 +"already available, ranging from helping to identify bugs to improving "
   1.609 +"performance."
   1.610 +msgstr ""
   1.611 +
   1.612 +#. type: Content of: <book><preface><sect1><title>
   1.613 +#: ../en/ch00-preface.xml:414
   1.614 +msgid "Mercurial compared with other tools"
   1.615 +msgstr "Mercurial 与其它工具的比较"
   1.616 +
   1.617 +#. type: Content of: <book><preface><sect1><para>
   1.618 +#: ../en/ch00-preface.xml:416
   1.619 +msgid ""
   1.620 +"Before you read on, please understand that this section necessarily reflects "
   1.621 +"my own experiences, interests, and (dare I say it) biases.  I have used every "
   1.622 +"one of the revision control tools listed below, in most cases for several "
   1.623 +"years at a time."
   1.624 +msgstr ""
   1.625 +
   1.626 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.627 +#: ../en/ch00-preface.xml:424 ../en/ch00-preface.xml:635
   1.628 +msgid "Subversion"
   1.629 +msgstr ""
   1.630 +
   1.631 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.632 +#: ../en/ch00-preface.xml:426
   1.633 +msgid ""
   1.634 +"Subversion is a popular revision control tool, developed to replace CVS.  It "
   1.635 +"has a centralised client/server architecture."
   1.636 +msgstr ""
   1.637 +
   1.638 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.639 +#: ../en/ch00-preface.xml:430
   1.640 +msgid ""
   1.641 +"Subversion and Mercurial have similarly named commands for performing the "
   1.642 +"same operations, so if you're familiar with one, it is easy to learn to use "
   1.643 +"the other.  Both tools are portable to all popular operating systems."
   1.644 +msgstr ""
   1.645 +
   1.646 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.647 +#: ../en/ch00-preface.xml:435
   1.648 +msgid ""
   1.649 +"Prior to version 1.5, Subversion had no useful support for merges. At the "
   1.650 +"time of writing, its merge tracking capability is new, and known to be <ulink "
   1.651 +"url=\"http://svnbook.red-bean.com/nightly/en/svn.branchmerge.advanced."
   1.652 +"html#svn.branchmerge.advanced.finalword\">complicated and buggy</ulink>."
   1.653 +msgstr ""
   1.654 +
   1.655 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.656 +#: ../en/ch00-preface.xml:441
   1.657 +msgid ""
   1.658 +"Mercurial has a substantial performance advantage over Subversion on every "
   1.659 +"revision control operation I have benchmarked.  I have measured its advantage "
   1.660 +"as ranging from a factor of two to a factor of six when compared with "
   1.661 +"Subversion 1.4.3's <emphasis>ra_local</emphasis> file store, which is the "
   1.662 +"fastest access method available.  In more realistic deployments involving a "
   1.663 +"network-based store, Subversion will be at a substantially larger "
   1.664 +"disadvantage.  Because many Subversion commands must talk to the server and "
   1.665 +"Subversion does not have useful replication facilities, server capacity and "
   1.666 +"network bandwidth become bottlenecks for modestly large projects."
   1.667 +msgstr ""
   1.668 +
   1.669 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.670 +#: ../en/ch00-preface.xml:454
   1.671 +msgid ""
   1.672 +"Additionally, Subversion incurs substantial storage overhead to avoid network "
   1.673 +"transactions for a few common operations, such as finding modified files "
   1.674 +"(<literal>status</literal>) and displaying modifications against the current "
   1.675 +"revision (<literal>diff</literal>).  As a result, a Subversion working copy "
   1.676 +"is often the same size as, or larger than, a Mercurial repository and working "
   1.677 +"directory, even though the Mercurial repository contains a complete history "
   1.678 +"of the project."
   1.679 +msgstr ""
   1.680 +
   1.681 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.682 +#: ../en/ch00-preface.xml:464
   1.683 +msgid ""
   1.684 +"Subversion is widely supported by third party tools.  Mercurial currently "
   1.685 +"lags considerably in this area.  This gap is closing, however, and indeed "
   1.686 +"some of Mercurial's GUI tools now outshine their Subversion equivalents.  "
   1.687 +"Like Mercurial, Subversion has an excellent user manual."
   1.688 +msgstr ""
   1.689 +
   1.690 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.691 +#: ../en/ch00-preface.xml:470
   1.692 +msgid ""
   1.693 +"Because Subversion doesn't store revision history on the client, it is well "
   1.694 +"suited to managing projects that deal with lots of large, opaque binary "
   1.695 +"files.  If you check in fifty revisions to an incompressible 10MB file, "
   1.696 +"Subversion's client-side space usage stays constant The space used by any "
   1.697 +"distributed SCM will grow rapidly in proportion to the number of revisions, "
   1.698 +"because the differences between each revision are large."
   1.699 +msgstr ""
   1.700 +
   1.701 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.702 +#: ../en/ch00-preface.xml:479
   1.703 +msgid ""
   1.704 +"In addition, it's often difficult or, more usually, impossible to merge "
   1.705 +"different versions of a binary file.  Subversion's ability to let a user lock "
   1.706 +"a file, so that they temporarily have the exclusive right to commit changes "
   1.707 +"to it, can be a significant advantage to a project where binary files are "
   1.708 +"widely used."
   1.709 +msgstr ""
   1.710 +
   1.711 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.712 +#: ../en/ch00-preface.xml:486
   1.713 +msgid ""
   1.714 +"Mercurial can import revision history from a Subversion repository. It can "
   1.715 +"also export revision history to a Subversion repository.  This makes it easy "
   1.716 +"to <quote>test the waters</quote> and use Mercurial and Subversion in "
   1.717 +"parallel before deciding to switch.  History conversion is incremental, so "
   1.718 +"you can perform an initial conversion, then small additional conversions "
   1.719 +"afterwards to bring in new changes."
   1.720 +msgstr ""
   1.721 +
   1.722 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.723 +#: ../en/ch00-preface.xml:498 ../en/ch00-preface.xml:637
   1.724 +msgid "Git"
   1.725 +msgstr ""
   1.726 +
   1.727 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.728 +#: ../en/ch00-preface.xml:500
   1.729 +msgid ""
   1.730 +"Git is a distributed revision control tool that was developed for managing "
   1.731 +"the Linux kernel source tree.  Like Mercurial, its early design was somewhat "
   1.732 +"influenced by Monotone."
   1.733 +msgstr ""
   1.734 +
   1.735 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.736 +#: ../en/ch00-preface.xml:505
   1.737 +msgid ""
   1.738 +"Git has a very large command set, with version 1.5.0 providing 139 individual "
   1.739 +"commands.  It has something of a reputation for being difficult to learn.  "
   1.740 +"Compared to Git, Mercurial has a strong focus on simplicity."
   1.741 +msgstr ""
   1.742 +
   1.743 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.744 +#: ../en/ch00-preface.xml:510
   1.745 +msgid ""
   1.746 +"In terms of performance, Git is extremely fast.  In several cases, it is "
   1.747 +"faster than Mercurial, at least on Linux, while Mercurial performs better on "
   1.748 +"other operations.  However, on Windows, the performance and general level of "
   1.749 +"support that Git provides is, at the time of writing, far behind that of "
   1.750 +"Mercurial."
   1.751 +msgstr ""
   1.752 +
   1.753 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.754 +#: ../en/ch00-preface.xml:517
   1.755 +msgid ""
   1.756 +"While a Mercurial repository needs no maintenance, a Git repository requires "
   1.757 +"frequent manual <quote>repacks</quote> of its metadata.  Without these, "
   1.758 +"performance degrades, while space usage grows rapidly.  A server that "
   1.759 +"contains many Git repositories that are not rigorously and frequently "
   1.760 +"repacked will become heavily disk-bound during backups, and there have been "
   1.761 +"instances of daily backups taking far longer than 24 hours as a result.  A "
   1.762 +"freshly packed Git repository is slightly smaller than a Mercurial "
   1.763 +"repository, but an unpacked repository is several orders of magnitude larger."
   1.764 +msgstr ""
   1.765 +
   1.766 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.767 +#: ../en/ch00-preface.xml:528
   1.768 +msgid ""
   1.769 +"The core of Git is written in C.  Many Git commands are implemented as shell "
   1.770 +"or Perl scripts, and the quality of these scripts varies widely. I have "
   1.771 +"encountered several instances where scripts charged along blindly in the "
   1.772 +"presence of errors that should have been fatal."
   1.773 +msgstr ""
   1.774 +
   1.775 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.776 +#: ../en/ch00-preface.xml:534
   1.777 +msgid "Mercurial can import revision history from a Git repository."
   1.778 +msgstr ""
   1.779 +
   1.780 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.781 +#: ../en/ch00-preface.xml:540 ../en/ch00-preface.xml:636
   1.782 +msgid "CVS"
   1.783 +msgstr ""
   1.784 +
   1.785 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.786 +#: ../en/ch00-preface.xml:542
   1.787 +msgid ""
   1.788 +"CVS is probably the most widely used revision control tool in the world.  Due "
   1.789 +"to its age and internal untidiness, it has been only lightly maintained for "
   1.790 +"many years."
   1.791 +msgstr ""
   1.792 +
   1.793 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.794 +#: ../en/ch00-preface.xml:546
   1.795 +msgid ""
   1.796 +"It has a centralised client/server architecture.  It does not group related "
   1.797 +"file changes into atomic commits, making it easy for people to <quote>break "
   1.798 +"the build</quote>: one person can successfully commit part of a change and "
   1.799 +"then be blocked by the need for a merge, causing other people to see only a "
   1.800 +"portion of the work they intended to do.  This also affects how you work with "
   1.801 +"project history.  If you want to see all of the modifications someone made as "
   1.802 +"part of a task, you will need to manually inspect the descriptions and "
   1.803 +"timestamps of the changes made to each file involved (if you even know what "
   1.804 +"those files were)."
   1.805 +msgstr ""
   1.806 +
   1.807 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.808 +#: ../en/ch00-preface.xml:558
   1.809 +msgid ""
   1.810 +"CVS has a muddled notion of tags and branches that I will not attempt to even "
   1.811 +"describe.  It does not support renaming of files or directories well, making "
   1.812 +"it easy to corrupt a repository.  It has almost no internal consistency "
   1.813 +"checking capabilities, so it is usually not even possible to tell whether or "
   1.814 +"how a repository is corrupt.  I would not recommend CVS for any project, "
   1.815 +"existing or new."
   1.816 +msgstr ""
   1.817 +
   1.818 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.819 +#: ../en/ch00-preface.xml:566
   1.820 +msgid ""
   1.821 +"Mercurial can import CVS revision history.  However, there are a few caveats "
   1.822 +"that apply; these are true of every other revision control tool's CVS "
   1.823 +"importer, too.  Due to CVS's lack of atomic changes and unversioned "
   1.824 +"filesystem hierarchy, it is not possible to reconstruct CVS history "
   1.825 +"completely accurately; some guesswork is involved, and renames will usually "
   1.826 +"not show up.  Because a lot of advanced CVS administration has to be done by "
   1.827 +"hand and is hence error-prone, it's common for CVS importers to run into "
   1.828 +"multiple problems with corrupted repositories (completely bogus revision "
   1.829 +"timestamps and files that have remained locked for over a decade are just two "
   1.830 +"of the less interesting problems I can recall from personal experience)."
   1.831 +msgstr ""
   1.832 +
   1.833 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.834 +#: ../en/ch00-preface.xml:580
   1.835 +msgid "Mercurial can import revision history from a CVS repository."
   1.836 +msgstr ""
   1.837 +
   1.838 +#. type: Content of: <book><preface><sect1><sect2><title>
   1.839 +#: ../en/ch00-preface.xml:586
   1.840 +msgid "Commercial tools"
   1.841 +msgstr "商业工具"
   1.842 +
   1.843 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.844 +#: ../en/ch00-preface.xml:588
   1.845 +msgid ""
   1.846 +"Perforce has a centralised client/server architecture, with no client-side "
   1.847 +"caching of any data.  Unlike modern revision control tools, Perforce requires "
   1.848 +"that a user run a command to inform the server about every file they intend "
   1.849 +"to edit."
   1.850 +msgstr ""
   1.851 +
   1.852 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.853 +#: ../en/ch00-preface.xml:594
   1.854 +msgid ""
   1.855 +"The performance of Perforce is quite good for small teams, but it falls off "
   1.856 +"rapidly as the number of users grows beyond a few dozen. Modestly large "
   1.857 +"Perforce installations require the deployment of proxies to cope with the "
   1.858 +"load their users generate."
   1.859 +msgstr ""
   1.860 +
   1.861 +#. type: Content of: <book><preface><sect1><sect2><title>
   1.862 +#: ../en/ch00-preface.xml:603
   1.863 +msgid "Choosing a revision control tool"
   1.864 +msgstr "选择版本控制工具"
   1.865 +
   1.866 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.867 +#: ../en/ch00-preface.xml:605
   1.868 +msgid ""
   1.869 +"With the exception of CVS, all of the tools listed above have unique "
   1.870 +"strengths that suit them to particular styles of work.  There is no single "
   1.871 +"revision control tool that is best in all situations."
   1.872 +msgstr ""
   1.873 +
   1.874 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.875 +#: ../en/ch00-preface.xml:610
   1.876 +msgid ""
   1.877 +"As an example, Subversion is a good choice for working with frequently edited "
   1.878 +"binary files, due to its centralised nature and support for file locking."
   1.879 +msgstr ""
   1.880 +
   1.881 +#. type: Content of: <book><preface><sect1><sect2><para>
   1.882 +#: ../en/ch00-preface.xml:614
   1.883 +msgid ""
   1.884 +"I personally find Mercurial's properties of simplicity, performance, and good "
   1.885 +"merge support to be a compelling combination that has served me well for "
   1.886 +"several years."
   1.887 +msgstr ""
   1.888 +
   1.889 +#. type: Content of: <book><preface><sect1><title>
   1.890 +#: ../en/ch00-preface.xml:622
   1.891 +msgid "Switching from another tool to Mercurial"
   1.892 +msgstr "从其它工具切换到 Mercurial"
   1.893 +
   1.894 +#. type: Content of: <book><preface><sect1><para>
   1.895 +#: ../en/ch00-preface.xml:624
   1.896 +msgid ""
   1.897 +"Mercurial is bundled with an extension named <literal role=\"hg-ext"
   1.898 +"\">convert</literal>, which can incrementally import revision history from "
   1.899 +"several other revision control tools.  By <quote>incremental</quote>, I mean "
   1.900 +"that you can convert all of a project's history to date in one go, then rerun "
   1.901 +"the conversion later to obtain new changes that happened after the initial "
   1.902 +"conversion."
   1.903 +msgstr ""
   1.904 +
   1.905 +#. type: Content of: <book><preface><sect1><para>
   1.906 +#: ../en/ch00-preface.xml:632
   1.907 +msgid ""
   1.908 +"The revision control tools supported by <literal role=\"hg-ext\">convert</"
   1.909 +"literal> are as follows:"
   1.910 +msgstr "<literal role=\"hg-ext\">convert</literal> 支持的版本控制工具有:"
   1.911 +
   1.912 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para>
   1.913 +#: ../en/ch00-preface.xml:638
   1.914 +msgid "Darcs"
   1.915 +msgstr ""
   1.916 +
   1.917 +#. type: Content of: <book><preface><sect1><para>
   1.918 +#: ../en/ch00-preface.xml:640
   1.919 +msgid ""
   1.920 +"In addition, <literal role=\"hg-ext\">convert</literal> can export changes "
   1.921 +"from Mercurial to Subversion.  This makes it possible to try Subversion and "
   1.922 +"Mercurial in parallel before committing to a switchover, without risking the "
   1.923 +"loss of any work."
   1.924 +msgstr ""
   1.925 +
   1.926 +#. type: Content of: <book><preface><sect1><para>
   1.927 +#: ../en/ch00-preface.xml:646
   1.928 +msgid ""
   1.929 +"The <command role=\"hg-ext-convert\">convert</command> command is easy to "
   1.930 +"use.  Simply point it at the path or URL of the source repository, optionally "
   1.931 +"give it the name of the destination repository, and it will start working.  "
   1.932 +"After the initial conversion, just run the same command again to import new "
   1.933 +"changes."
   1.934 +msgstr ""
   1.935 +
   1.936 +#. type: Content of: <book><preface><sect1><title>
   1.937 +#: ../en/ch00-preface.xml:655
   1.938 +msgid "A short history of revision control"
   1.939 +msgstr "版本控制简史"
   1.940 +
   1.941 +#. type: Content of: <book><preface><sect1><para>
   1.942 +#: ../en/ch00-preface.xml:657
   1.943 +msgid ""
   1.944 +"The best known of the old-time revision control tools is SCCS (Source Code "
   1.945 +"Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s.  "
   1.946 +"SCCS operated on individual files, and required every person working on a "
   1.947 +"project to have access to a shared workspace on a single system.  Only one "
   1.948 +"person could modify a file at any time; arbitration for access to files was "
   1.949 +"via locks.  It was common for people to lock files, and later forget to "
   1.950 +"unlock them, preventing anyone else from modifying those files without the "
   1.951 +"help of an administrator."
   1.952 +msgstr ""
   1.953 +
   1.954 +#. type: Content of: <book><preface><sect1><para>
   1.955 +#: ../en/ch00-preface.xml:668
   1.956 +msgid ""
   1.957 +"Walter Tichy developed a free alternative to SCCS in the early 1980s; he "
   1.958 +"called his program RCS (Revision Control System).  Like SCCS, RCS required "
   1.959 +"developers to work in a single shared workspace, and to lock files to prevent "
   1.960 +"multiple people from modifying them simultaneously."
   1.961 +msgstr ""
   1.962 +
   1.963 +#. type: Content of: <book><preface><sect1><para>
   1.964 +#: ../en/ch00-preface.xml:674
   1.965 +msgid ""
   1.966 +"Later in the 1980s, Dick Grune used RCS as a building block for a set of "
   1.967 +"shell scripts he initially called cmt, but then renamed to CVS (Concurrent "
   1.968 +"Versions System).  The big innovation of CVS was that it let developers work "
   1.969 +"simultaneously and somewhat independently in their own personal workspaces.  "
   1.970 +"The personal workspaces prevented developers from stepping on each other's "
   1.971 +"toes all the time, as was common with SCCS and RCS. Each developer had a copy "
   1.972 +"of every project file, and could modify their copies independently.  They had "
   1.973 +"to merge their edits prior to committing changes to the central repository."
   1.974 +msgstr ""
   1.975 +
   1.976 +#. type: Content of: <book><preface><sect1><para>
   1.977 +#: ../en/ch00-preface.xml:685
   1.978 +msgid ""
   1.979 +"Brian Berliner took Grune's original scripts and rewrote them in C, releasing "
   1.980 +"in 1989 the code that has since developed into the modern version of CVS.  "
   1.981 +"CVS subsequently acquired the ability to operate over a network connection, "
   1.982 +"giving it a client/server architecture.  CVS's architecture is centralised; "
   1.983 +"only the server has a copy of the history of the project. Client workspaces "
   1.984 +"just contain copies of recent versions of the project's files, and a little "
   1.985 +"metadata to tell them where the server is.  CVS has been enormously "
   1.986 +"successful; it is probably the world's most widely used revision control "
   1.987 +"system."
   1.988 +msgstr ""
   1.989 +
   1.990 +#. type: Content of: <book><preface><sect1><para>
   1.991 +#: ../en/ch00-preface.xml:696
   1.992 +msgid ""
   1.993 +"In the early 1990s, Sun Microsystems developed an early distributed revision "
   1.994 +"control system, called TeamWare.  A TeamWare workspace contains a complete "
   1.995 +"copy of the project's history.  TeamWare has no notion of a central "
   1.996 +"repository.  (CVS relied upon RCS for its history storage; TeamWare used "
   1.997 +"SCCS.)"
   1.998 +msgstr ""
   1.999 +
  1.1000 +#. type: Content of: <book><preface><sect1><para>
  1.1001 +#: ../en/ch00-preface.xml:703
  1.1002 +msgid ""
  1.1003 +"As the 1990s progressed, awareness grew of a number of problems with CVS.  It "
  1.1004 +"records simultaneous changes to multiple files individually, instead of "
  1.1005 +"grouping them together as a single logically atomic operation.  It does not "
  1.1006 +"manage its file hierarchy well; it is easy to make a mess of a repository by "
  1.1007 +"renaming files and directories.  Worse, its source code is difficult to read "
  1.1008 +"and maintain, which made the <quote>pain level</quote> of fixing these "
  1.1009 +"architectural problems prohibitive."
  1.1010 +msgstr ""
  1.1011 +
  1.1012 +#. type: Content of: <book><preface><sect1><para>
  1.1013 +#: ../en/ch00-preface.xml:713
  1.1014 +msgid ""
  1.1015 +"In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, "
  1.1016 +"started a project to replace it with a tool that would have a better "
  1.1017 +"architecture and cleaner code.  The result, Subversion, does not stray from "
  1.1018 +"CVS's centralised client/server model, but it adds multi-file atomic commits, "
  1.1019 +"better namespace management, and a number of other features that make it a "
  1.1020 +"generally better tool than CVS. Since its initial release, it has rapidly "
  1.1021 +"grown in popularity."
  1.1022 +msgstr ""
  1.1023 +
  1.1024 +#. type: Content of: <book><preface><sect1><para>
  1.1025 +#: ../en/ch00-preface.xml:722
  1.1026 +msgid ""
  1.1027 +"More or less simultaneously, Graydon Hoare began working on an ambitious "
  1.1028 +"distributed revision control system that he named Monotone. While Monotone "
  1.1029 +"addresses many of CVS's design flaws and has a peer-to-peer architecture, it "
  1.1030 +"goes beyond earlier (and subsequent) revision control tools in a number of "
  1.1031 +"innovative ways.  It uses cryptographic hashes as identifiers, and has an "
  1.1032 +"integral notion of <quote>trust</quote> for code from different sources."
  1.1033 +msgstr ""
  1.1034 +
  1.1035 +#. type: Content of: <book><preface><sect1><para>
  1.1036 +#: ../en/ch00-preface.xml:731
  1.1037 +msgid ""
  1.1038 +"Mercurial began life in 2005.  While a few aspects of its design are "
  1.1039 +"influenced by Monotone, Mercurial focuses on ease of use, high performance, "
  1.1040 +"and scalability to very large projects."
  1.1041 +msgstr ""
  1.1042 +
  1.1043 +#. type: Content of: <book><preface><sect1><title>
  1.1044 +#: ../en/ch00-preface.xml:739
  1.1045 +msgid "Colophon&emdash;this book is Free"
  1.1046 +msgstr "后记&emdash;本书是自由的!"
  1.1047 +
  1.1048 +#. type: Content of: <book><preface><sect1><para>
  1.1049 +#: ../en/ch00-preface.xml:741
  1.1050 +msgid ""
  1.1051 +"This book is licensed under the Open Publication License, and is produced "
  1.1052 +"entirely using Free Software tools.  It is typeset with DocBook XML.  "
  1.1053 +"Illustrations are drawn and rendered with <ulink url=\"http://www.inkscape."
  1.1054 +"org/\">Inkscape</ulink>."
  1.1055 +msgstr ""
  1.1056 +
  1.1057 +#. type: Content of: <book><preface><sect1><para>
  1.1058 +#: ../en/ch00-preface.xml:746
  1.1059 +msgid ""
  1.1060 +"The complete source code for this book is published as a Mercurial "
  1.1061 +"repository, at <ulink url=\"http://hg.serpentine.com/mercurial/book\">http://"
  1.1062 +"hg.serpentine.com/mercurial/book</ulink>."
  1.1063 +msgstr ""
  1.1064 +
  1.1065  #. type: Content of: <book><chapter><title>
  1.1066  #: ../en/ch01-tour-basic.xml:5
  1.1067  msgid "A tour of Mercurial: the basics"
  1.1068 @@ -6639,12 +7671,11 @@
  1.1069  
  1.1070  #. type: Content of: <book><chapter><sect1><sect2><sect3><title>
  1.1071  #: ../en/ch05-collab.xml:1405
  1.1072 -#, fuzzy
  1.1073  msgid ""
  1.1074  "Choosing the right <filename role=\"special\">~/.hgrc</filename> file to add "
  1.1075  "<literal role=\"rc-web\">web</literal> items to"
  1.1076  msgstr ""
  1.1077 -"选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal "
  1.1078 +"选择正确的 <filename role=\"special\"> ~/.hgrc</filename> 文件增加到 <literal "
  1.1079  "role=\"rc-web\">web</literal> 条目"
  1.1080  
  1.1081  #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
  1.1082 @@ -10391,14 +11422,11 @@
  1.1083  
  1.1084  #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
  1.1085  #: ../en/ch09-hook.xml:897
  1.1086 -#, fuzzy
  1.1087  msgid ""
  1.1088  "You should configure this hook in your server's <filename role=\"special\">~/."
  1.1089  "hgrc</filename> as an <literal role=\"hook\">incoming</literal> hook, for "
  1.1090  "example as follows:"
  1.1091  msgstr ""
  1.1092 -"选择正确的 <filename role=\"special\"> /.hgrc</filename> 文件增加到 <literal "
  1.1093 -"role=\"rc-web\">web</literal> 条目"
  1.1094  
  1.1095  #. type: Content of: <book><chapter><sect1><sect2><sect3><para>
  1.1096  #: ../en/ch09-hook.xml:905
  1.1097 @@ -15638,60 +16666,3 @@
  1.1098  "the number of lines affected, and a histogram showing how much each file is "
  1.1099  "modified.  This gives readers a qualitative glance at how complex a patch is."
  1.1100  msgstr ""
  1.1101 -
  1.1102 -#~ msgid "Introduction"
  1.1103 -#~ msgstr "简介"
  1.1104 -
  1.1105 -#~ msgid "About revision control"
  1.1106 -#~ msgstr "关于版本控制"
  1.1107 -
  1.1108 -#~ msgid "Why use revision control?"
  1.1109 -#~ msgstr "为什么使用版本控制?"
  1.1110 -
  1.1111 -#~ msgid "The many names of revision control"
  1.1112 -#~ msgstr "版本控制的别名"
  1.1113 -
  1.1114 -#~ msgid "Revision control (RCS)"
  1.1115 -#~ msgstr "版本控制(RCS)"
  1.1116 -
  1.1117 -#~ msgid "Software configuration management (SCM), or configuration management"
  1.1118 -#~ msgstr "软件配置管理(SCM),或配置管理"
  1.1119 -
  1.1120 -#~ msgid "Source code management"
  1.1121 -#~ msgstr "源代码管理"
  1.1122 -
  1.1123 -#~ msgid "Source code control, or source control"
  1.1124 -#~ msgstr "源代码控制,或源控制"
  1.1125 -
  1.1126 -#~ msgid "Version control (VCS)"
  1.1127 -#~ msgstr "版本控制(VCS)"
  1.1128 -
  1.1129 -#~ msgid "A short history of revision control"
  1.1130 -#~ msgstr "版本控制简史"
  1.1131 -
  1.1132 -#~ msgid "Trends in revision control"
  1.1133 -#~ msgstr "版本控制的发展趋势"
  1.1134 -
  1.1135 -#~ msgid "A few of the advantages of distributed revision control"
  1.1136 -#~ msgstr "分布版本控制的优点"
  1.1137 -
  1.1138 -#~ msgid "Advantages for open source projects"
  1.1139 -#~ msgstr "开源项目的优点"
  1.1140 -
  1.1141 -#~ msgid "Advantages for commercial projects"
  1.1142 -#~ msgstr "商业项目的优点"
  1.1143 -
  1.1144 -#~ msgid "Why choose Mercurial?"
  1.1145 -#~ msgstr "为什么选择 Mercurial?"
  1.1146 -
  1.1147 -#~ msgid "Mercurial compared with other tools"
  1.1148 -#~ msgstr "Mercurial 与其它工具的比较"
  1.1149 -
  1.1150 -#~ msgid "Commercial tools"
  1.1151 -#~ msgstr "商业工具"
  1.1152 -
  1.1153 -#~ msgid "Choosing a revision control tool"
  1.1154 -#~ msgstr "选择版本控制工具"
  1.1155 -
  1.1156 -#~ msgid "Switching from another tool to Mercurial"
  1.1157 -#~ msgstr "从其它工具切换到 Mercurial"