hgbook
changeset 667:3b33dd6aba87
Merge with http://hg.serpentine.com/mercurial/book
author | Dongsheng Song <songdongsheng@live.cn> |
---|---|
date | Thu Apr 02 09:24:36 2009 +0800 (2009-04-02) |
parents | d8c85d831fb4 2b193ab0df9a |
children | 55e2953f82d6 |
files | .hgignore en/00book.xml en/Makefile en/ch00-preface.xml en/ch01-tour-basic.xml en/examples/auto-snippets.xml po/zh.po |
line diff
1.1 --- a/.hgignore Tue Mar 31 21:17:59 2009 +0800 1.2 +++ b/.hgignore Thu Apr 02 09:24:36 2009 +0800 1.3 @@ -16,6 +16,8 @@ 1.4 .run 1.5 .validated-00book.xml 1.6 en/all-ids.dat 1.7 +en/complete.xml 1.8 +en/svn 1.9 web/hgbook/.database.sqlite3 1.10 web/hgbook/secrets.py 1.11 web/index-read.html.in
2.1 --- a/en/00book.xml Tue Mar 31 21:17:59 2009 +0800 2.2 +++ b/en/00book.xml Thu Apr 02 09:24:36 2009 +0800 2.3 @@ -45,6 +45,8 @@ 2.4 --> 2.5 <subtitle>Compiled from $rev_id$</subtitle> 2.6 <bookinfo> 2.7 + <edition>1</edition> 2.8 + <isbn>9780596800673</isbn> 2.9 <authorgroup> 2.10 <author> 2.11 <firstname>Bryan</firstname> 2.12 @@ -66,22 +68,40 @@ 2.13 </copyright> 2.14 </bookinfo> 2.15 2.16 + <!-- BEGIN ch00 --> 2.17 &ch00; 2.18 + <!-- BEGIN ch01 --> 2.19 &ch01; 2.20 + <!-- BEGIN ch02 --> 2.21 &ch02; 2.22 + <!-- BEGIN ch03 --> 2.23 &ch03; 2.24 + <!-- BEGIN ch04 --> 2.25 &ch04; 2.26 + <!-- BEGIN ch05 --> 2.27 &ch05; 2.28 + <!-- BEGIN ch06 --> 2.29 &ch06; 2.30 + <!-- BEGIN ch07 --> 2.31 &ch07; 2.32 + <!-- BEGIN ch08 --> 2.33 &ch08; 2.34 + <!-- BEGIN ch09 --> 2.35 &ch09; 2.36 + <!-- BEGIN ch10 --> 2.37 &ch10; 2.38 + <!-- BEGIN ch11 --> 2.39 &ch11; 2.40 + <!-- BEGIN ch12 --> 2.41 &ch12; 2.42 + <!-- BEGIN ch13 --> 2.43 &ch13; 2.44 + <!-- BEGIN appA --> 2.45 <!-- &appA; --> 2.46 + <!-- BEGIN appB --> 2.47 &appB; 2.48 + <!-- BEGIN appC --> 2.49 &appC; 2.50 + <!-- BEGIN appD --> 2.51 &appD; 2.52 </book>
3.1 --- a/en/Makefile Tue Mar 31 21:17:59 2009 +0800 3.2 +++ b/en/Makefile Thu Apr 02 09:24:36 2009 +0800 3.3 @@ -110,7 +110,7 @@ 3.4 hg-version = $(shell hg version -q | \ 3.5 sed 's,.*(version \(unknown\|[a-f0-9+]*\)),\1,') 3.6 3.7 -all: web 3.8 +all: web complete.xml 3.9 3.10 ../stylesheets/system-xsl: $(system-xsl-dir) 3.11 ln -s $< $@ 3.12 @@ -120,7 +120,7 @@ 3.13 html: $(obj-web-read)/index.html 3.14 3.15 ../web/index-read.html.in: ../web/genindex.py $(xml-src-files) 3.16 - $< 3.17 + cd ../web && ./genindex.py 3.18 3.19 $(obj-web-read)/index.html: ../stylesheets/system-xsl .validated-00book.xml ../web/index-read.html.in 3.20 xsltproc $(xsltproc-opts) -o $(obj-web-read)/x ../stylesheets/chunk-stylesheet.xsl 00book.xml 3.21 @@ -134,6 +134,9 @@ 3.22 cp ../stylesheets/system-xsl/images/*.png $(obj-websup)/figs 3.23 cp -f ../web/icons/*.png $(obj-websup)/figs 3.24 3.25 +complete.xml: .validated-00book.xml 3.26 + $(xsltproc) $(xsltproc-opts) -o $@ ../stylesheets/dtd-profile.xsl 00book.xml 3.27 + 3.28 all-ids.dat: ../stylesheets/all-ids.xsl $(xml-src-files) 3.29 $(xsltproc) $(xsltproc-opts) -o $@ ../stylesheets/all-ids.xsl 00book.xml 3.30 3.31 @@ -141,7 +144,7 @@ 3.32 3.33 valid: .validated-00book.xml 3.34 3.35 -.validated-00book.xml: $(xml-src-files) 3.36 +.validated-00book.xml: $(xml-src-files) examples/.run 3.37 $(xmllint) --path '$(dtd-dir):$(xml-path)' $(xmllint-opts) $< 3.38 touch $@ 3.39 3.40 @@ -172,7 +175,7 @@ 3.41 examples: $(example-prereqs) examples/.run 3.42 3.43 examples/.run: $(example-sources) 3.44 - cd examples && ./run-example 3.45 + cd examples && ./run-example -a 3.46 3.47 examples/%.run: examples/% examples/run-example 3.48
4.1 --- a/en/ch00-preface.xml Tue Mar 31 21:17:59 2009 +0800 4.2 +++ b/en/ch00-preface.xml Thu Apr 02 09:24:36 2009 +0800 4.3 @@ -68,9 +68,10 @@ 4.4 project.</para></listitem> 4.5 </itemizedlist> 4.6 4.7 - <para id="x_76">Most of these reasons are equally valid---at least in 4.8 - theory---whether you're working on a project by yourself, or 4.9 - with a hundred other people.</para> 4.10 + <para id="x_76">Most of these reasons are equally 4.11 + valid&emdash;at least in theory&emdash;whether you're working 4.12 + on a project by yourself, or with a hundred other 4.13 + people.</para> 4.14 4.15 <para id="x_77">A key question about the practicality of revision control 4.16 at these two different scales (<quote>lone hacker</quote> and 4.17 @@ -143,7 +144,7 @@ 4.18 <title>About the examples in this book</title> 4.19 4.20 <para id="x_84">This book takes an unusual approach to code samples. Every 4.21 - example is <quote>live</quote>---each one is actually the result 4.22 + example is <quote>live</quote>&emdash;each one is actually the result 4.23 of a shell script that executes the Mercurial commands you see. 4.24 Every time an image of the book is built from its sources, all 4.25 the example scripts are automatically run, and their current 4.26 @@ -353,8 +354,8 @@ 4.27 centralised system to fall over under the combined load of 4.28 just a few dozen concurrent users. Once again, the typical 4.29 response tends to be an expensive and clunky replication 4.30 - facility. Since the load on a central server---if you have 4.31 - one at all---is many times lower with a distributed tool 4.32 + facility. Since the load on a central server&emdash;if you have 4.33 + one at all&emdash;is many times lower with a distributed tool 4.34 (because all of the data is replicated everywhere), a single 4.35 cheap server can handle the needs of a much larger team, and 4.36 replication to balance load becomes a simple matter of
5.1 --- a/en/ch01-tour-basic.xml Tue Mar 31 21:17:59 2009 +0800 5.2 +++ b/en/ch01-tour-basic.xml Thu Apr 02 09:24:36 2009 +0800 5.3 @@ -12,6 +12,26 @@ 5.4 using Mercurial on your computer immediately.</para> 5.5 5.6 <sect2> 5.7 + <title>Windows</title> 5.8 + 5.9 + <para id="x_c">The best version of Mercurial for Windows is 5.10 + TortoiseHg, which can be found at <ulink 5.11 + url="http://bitbucket.org/tortoisehg/stable/wiki/Home">http://bitbucket.org/tortoisehg/stable/wiki/Home</ulink>. 5.12 + This package has no external dependencies; it <quote>just 5.13 + works</quote>. It provides both command line and graphical 5.14 + user interfaces.</para> 5.15 + 5.16 + </sect2> 5.17 + 5.18 + <sect2> 5.19 + <title>Mac OS X</title> 5.20 + 5.21 + <para id="x_a">Lee Cantey publishes an installer of Mercurial 5.22 + for Mac OS X at <ulink 5.23 + url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>.</para> 5.24 + </sect2> 5.25 + 5.26 + <sect2> 5.27 <title>Linux</title> 5.28 5.29 <para id="x_2">Because each Linux distribution has its own packaging 5.30 @@ -29,18 +49,12 @@ 5.31 <literal>mercurial</literal>.</para> 5.32 5.33 <itemizedlist> 5.34 - <listitem><para id="x_4">Debian:</para> 5.35 + <listitem><para id="x_4">Ubuntu and Debian:</para> 5.36 <programlisting>apt-get install mercurial</programlisting></listitem> 5.37 - <listitem><para id="x_5">Fedora Core:</para> 5.38 + <listitem><para id="x_5">Fedora and OpenSUSE:</para> 5.39 <programlisting>yum install mercurial</programlisting></listitem> 5.40 <listitem><para id="x_6">Gentoo:</para> 5.41 <programlisting>emerge mercurial</programlisting></listitem> 5.42 - <listitem><para id="x_7">OpenSUSE:</para> 5.43 - <programlisting>yum install mercurial</programlisting></listitem> 5.44 - <listitem><para id="x_8">Ubuntu: Ubuntu's Mercurial package is based on 5.45 - Debian's. To install it, run the following 5.46 - command.</para> 5.47 - <programlisting>apt-get install mercurial</programlisting></listitem> 5.48 </itemizedlist> 5.49 5.50 </sect2> 5.51 @@ -49,49 +63,12 @@ 5.52 5.53 <para id="x_9">SunFreeWare, at <ulink 5.54 url="http://www.sunfreeware.com">http://www.sunfreeware.com</ulink>, 5.55 - is a good source for a large number of pre-built Solaris 5.56 - packages for 32 and 64 bit Intel and Sparc architectures, 5.57 - including current versions of Mercurial.</para> 5.58 - 5.59 - </sect2> 5.60 - <sect2> 5.61 - <title>Mac OS X</title> 5.62 - 5.63 - <para id="x_a">Lee Cantey publishes an installer of Mercurial for Mac OS 5.64 - X at <ulink 5.65 - url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>. 5.66 - This package works on both Intel- and Power-based Macs. Before 5.67 - you can use it, you must install a compatible version of 5.68 - Universal MacPython <citation>web:macpython</citation>. This 5.69 - is easy to do; simply follow the instructions on Lee's 5.70 - site.</para> 5.71 - 5.72 - <para id="x_b">It's also possible to install Mercurial using Fink or 5.73 - MacPorts, two popular free package managers for Mac OS X. If 5.74 - you have Fink, use <command>sudo apt-get install 5.75 - mercurial-py25</command>. If MacPorts, <command>sudo port 5.76 - install mercurial</command>.</para> 5.77 - 5.78 - </sect2> 5.79 - <sect2> 5.80 - <title>Windows</title> 5.81 - 5.82 - <para id="x_c">Lee Cantey publishes an installer of Mercurial for Windows 5.83 - at <ulink 5.84 - url="http://mercurial.berkwood.com">http://mercurial.berkwood.com</ulink>. 5.85 - This package has no external dependencies; it <quote>just 5.86 - works</quote>.</para> 5.87 - 5.88 - <note> 5.89 - <para id="x_d"> The Windows version of Mercurial does not 5.90 - automatically convert line endings between Windows and Unix 5.91 - styles. If you want to share work with Unix users, you must 5.92 - do a little additional configuration work. XXX Flesh this 5.93 - out.</para> 5.94 - </note> 5.95 - 5.96 - </sect2> 5.97 + provides prebuilt packages of Mercurial.</para> 5.98 + 5.99 + </sect2> 5.100 + 5.101 </sect1> 5.102 + 5.103 <sect1> 5.104 <title>Getting started</title> 5.105 5.106 @@ -150,10 +127,16 @@ 5.107 command to make a copy of a repository, it's best to use a 5.108 built-in command that Mercurial provides. This command is 5.109 called <command role="hg-cmd">hg clone</command>, because it 5.110 - creates an identical copy of an existing repository.</para> 5.111 + makes an identical copy of an existing repository.</para> 5.112 5.113 &interaction.tour.clone; 5.114 5.115 + <para>One advantage of using <command role="hg-cmd">hg 5.116 + clone</command> is that, as we can see above, it lets us clone 5.117 + repositories over the network. Another is that it remembers 5.118 + where we cloned from, which we'll find useful soon when we 5.119 + want to fetch new changes from another repository.</para> 5.120 + 5.121 <para id="x_14">If our clone succeeded, we should now have a local 5.122 directory called <filename class="directory">hello</filename>. 5.123 This directory will contain some files.</para> 5.124 @@ -163,12 +146,12 @@ 5.125 <para id="x_15">These files have the same contents and history in our 5.126 repository as they do in the repository we cloned.</para> 5.127 5.128 - <para id="x_16">Every Mercurial repository is complete, self-contained, 5.129 - and independent. It contains its own private copy of a 5.130 - project's files and history. A cloned repository remembers 5.131 - the location of the repository it was cloned from, but it does 5.132 - not communicate with that repository, or any other, unless you 5.133 - tell it to.</para> 5.134 + <para id="x_16">Every Mercurial repository is complete, 5.135 + self-contained, and independent. It contains its own private 5.136 + copy of a project's files and history. As we just mentioned, 5.137 + a cloned repository remembers the location of the repository 5.138 + it was cloned from, but Mercurial will not communicate with 5.139 + that repository, or any other, unless you tell it to.</para> 5.140 5.141 <para id="x_17">What this means for now is that we're free to experiment 5.142 with our repository, safe in the knowledge that it's a private 5.143 @@ -211,7 +194,7 @@ 5.144 <para id="x_1b">One of the first things we might want to do with a new, 5.145 unfamiliar repository is understand its history. The <command 5.146 role="hg-cmd">hg log</command> command gives us a view of 5.147 - history.</para> 5.148 + the history of changes in the repository.</para> 5.149 5.150 &interaction.tour.log; 5.151 5.152 @@ -223,13 +206,20 @@ 5.153 5.154 <para id="x_1d">The fields in a record of output from <command 5.155 role="hg-cmd">hg log</command> are as follows.</para> 5.156 + 5.157 <itemizedlist> 5.158 - <listitem><para id="x_1e"><literal>changeset</literal>: This field has the 5.159 - format of a number, followed by a colon, followed by a 5.160 - hexadecimal string. These are 5.161 - <emphasis>identifiers</emphasis> for the changeset. There 5.162 - are two identifiers because the number is shorter and easier 5.163 - to type than the hex string.</para></listitem> 5.164 + <listitem><para id="x_1e"><literal>changeset</literal>: This 5.165 + field has the format of a number, followed by a colon, 5.166 + followed by a hexadecimal (or <emphasis>hex</emphasis>) 5.167 + string. These are <emphasis>identifiers</emphasis> for the 5.168 + changeset. The hex string is a unique identifier: the same 5.169 + hex string will always refer to the same changeset. The 5.170 + number is shorter and easier to type than the hex string, 5.171 + but it isn't unique: the same number in two different clones 5.172 + of a repository may identify different changesets. Why 5.173 + provide the number at all, then? For local 5.174 + convenience.</para> 5.175 + </listitem> 5.176 <listitem><para id="x_1f"><literal>user</literal>: The identity of the 5.177 person who created the changeset. This is a free-form 5.178 field, but it most often contains a person's name and email 5.179 @@ -241,10 +231,19 @@ 5.180 person who created the changeset.)</para></listitem> 5.181 <listitem><para id="x_21"><literal>summary</literal>: The first line of 5.182 the text message that the creator of the changeset entered 5.183 - to describe the changeset.</para></listitem></itemizedlist> 5.184 - <para id="x_22">The default output printed by <command role="hg-cmd">hg 5.185 - log</command> is purely a summary; it is missing a lot of 5.186 - detail.</para> 5.187 + to describe the changeset.</para></listitem> 5.188 + <listitem> 5.189 + <para>Some changesets, such as the first in the list above, 5.190 + have a <literal>tag</literal> field. A tag is another way 5.191 + to identify a changeset, by giving it an easy-to-remember 5.192 + name. (The tag named <literal>tip</literal> is special: it 5.193 + always refers to the newest change in a repository.)</para> 5.194 + </listitem> 5.195 + </itemizedlist> 5.196 + 5.197 + <para id="x_22">The default output printed by <command 5.198 + role="hg-cmd">hg log</command> is purely a summary; it is 5.199 + missing a lot of detail.</para> 5.200 5.201 <para id="x_23"><xref linkend="fig:tour-basic:history"/> provides 5.202 a graphical representation of the history of the <filename 5.203 @@ -286,22 +285,26 @@ 5.204 log</command> identifies a changeset using both a number and 5.205 a hexadecimal string.</para> 5.206 <itemizedlist> 5.207 - <listitem><para id="x_27">The revision number is <emphasis>only valid in 5.208 - that repository</emphasis>,</para></listitem> 5.209 - <listitem><para id="x_28">while the hex string is the 5.210 + <listitem><para id="x_27">The revision number is a handy 5.211 + notation that is <emphasis>only valid in that 5.212 + repository</emphasis>.</para></listitem> 5.213 + <listitem><para id="x_28">The hexadecimal string is the 5.214 <emphasis>permanent, unchanging identifier</emphasis> that 5.215 will always identify that exact changeset in 5.216 <emphasis>every</emphasis> copy of the 5.217 repository.</para></listitem></itemizedlist> 5.218 - <para id="x_29">This distinction is important. If you send someone an 5.219 - email talking about <quote>revision 33</quote>, there's a high 5.220 - likelihood that their revision 33 will <emphasis>not be the 5.221 - same</emphasis> as yours. The reason for this is that a 5.222 - revision number depends on the order in which changes arrived 5.223 - in a repository, and there is no guarantee that the same 5.224 - changes will happen in the same order in different 5.225 - repositories. Three changes $a,b,c$ can easily appear in one 5.226 - repository as $0,1,2$, while in another as $1,0,2$.</para> 5.227 + 5.228 + <para id="x_29">This distinction is important. If you send 5.229 + someone an email talking about <quote>revision 33</quote>, 5.230 + there's a high likelihood that their revision 33 will 5.231 + <emphasis>not be the same</emphasis> as yours. The reason for 5.232 + this is that a revision number depends on the order in which 5.233 + changes arrived in a repository, and there is no guarantee 5.234 + that the same changes will happen in the same order in 5.235 + different repositories. Three changes <literal>a,b,c</literal> 5.236 + can easily appear in one repository as 5.237 + <literal>0,1,2</literal>, while in another as 5.238 + <literal>0,2,1</literal>.</para> 5.239 5.240 <para id="x_2a">Mercurial uses revision numbers purely as a convenient 5.241 shorthand. If you need to discuss a changeset with someone, 5.242 @@ -317,7 +320,7 @@ 5.243 log</command> down to a single revision, use the <option 5.244 role="hg-opt-log">-r</option> (or <option 5.245 role="hg-opt-log">--rev</option>) option. You can use 5.246 - either a revision number or a long-form changeset identifier, 5.247 + either a revision number or a hexadecimal identifier, 5.248 and you can provide as many revisions as you want.</para> 5.249 5.250 &interaction.tour.log-r; 5.251 @@ -361,8 +364,12 @@ 5.252 5.253 &interaction.tour.log-vp; 5.254 5.255 + <para>The <option role="hg-opt-log">-p</option> option is 5.256 + tremendously useful, so it's well worth remembering.</para> 5.257 + 5.258 </sect2> 5.259 </sect1> 5.260 + 5.261 <sect1> 5.262 <title>All about command options</title> 5.263 5.264 @@ -374,26 +381,42 @@ 5.265 dealing with the options that you can pass to commands. It 5.266 follows the conventions for options that are common to modern 5.267 Linux and Unix systems.</para> 5.268 + 5.269 <itemizedlist> 5.270 - <listitem><para id="x_32">Every option has a long name. For example, as 5.271 + <listitem> 5.272 + <para id="x_32">Every option has a long name. For example, as 5.273 we've already seen, the <command role="hg-cmd">hg 5.274 log</command> command accepts a <option 5.275 - role="hg-opt-log">--rev</option> option.</para></listitem> 5.276 - <listitem><para id="x_33">Most options have short names, too. Instead of 5.277 - <option role="hg-opt-log">--rev</option>, we can use <option 5.278 - role="hg-opt-log">-r</option>. (The reason that some 5.279 - options don't have short names is that the options in 5.280 - question are rarely used.)</para></listitem> 5.281 - <listitem><para id="x_34">Long options start with two dashes (e.g. <option 5.282 - role="hg-opt-log">--rev</option>), while short options 5.283 - start with one (e.g. <option 5.284 - role="hg-opt-log">-r</option>).</para></listitem> 5.285 - <listitem><para id="x_35">Option naming and usage is consistent across 5.286 + role="hg-opt-log">--rev</option> option.</para> 5.287 + </listitem> 5.288 + <listitem> 5.289 + <para id="x_33">Most options have short names, too. Instead 5.290 + of <option role="hg-opt-log">--rev</option>, we can use 5.291 + <option role="hg-opt-log">-r</option>. (The reason that 5.292 + some options don't have short names is that the options in 5.293 + question are rarely used.)</para> 5.294 + </listitem> 5.295 + <listitem> 5.296 + <para id="x_34">Long options start with two dashes (e.g. 5.297 + <option role="hg-opt-log">--rev</option>), while short 5.298 + options start with one (e.g. <option 5.299 + role="hg-opt-log">-r</option>).</para> 5.300 + </listitem> 5.301 + <listitem> 5.302 + <para id="x_35">Option naming and usage is consistent across 5.303 commands. For example, every command that lets you specify 5.304 a changeset ID or revision number accepts both <option 5.305 role="hg-opt-log">-r</option> and <option 5.306 - role="hg-opt-log">--rev</option> 5.307 - arguments.</para></listitem></itemizedlist> 5.308 + role="hg-opt-log">--rev</option> arguments.</para> 5.309 + </listitem> 5.310 + <listitem> 5.311 + <para>If you are using short options, you can save typing by 5.312 + running them together. For example, the command <command 5.313 + role="hg-cmd">hg log -v -p -r 2</command> can be written 5.314 + as <command role="hg-cmd">hg log -vpr2</command>.</para> 5.315 + </listitem> 5.316 + </itemizedlist> 5.317 + 5.318 <para id="x_36">In the examples throughout this book, I use short options 5.319 instead of long. This just reflects my own preference, so don't 5.320 read anything significant into it.</para> 5.321 @@ -404,6 +427,18 @@ 5.322 less when passed <option role="hg-opt-global">-q</option> (or 5.323 <option role="hg-opt-global">--quiet</option>).</para> 5.324 5.325 + <note> 5.326 + <title>Option naming consistency</title> 5.327 + 5.328 + <para>Almost always, Mercurial commands use consistent option 5.329 + names to refer to the same concepts. For instance, if a 5.330 + command deals with changesets, you'll always identify them 5.331 + with <option role="hg-opt-log">--rev</option> or <option 5.332 + role="hg-opt-log">-r</option>. This consistent use of 5.333 + option names makes it easier to remember what options a 5.334 + particular command takes.</para> 5.335 + </note> 5.336 + 5.337 </sect1> 5.338 <sect1> 5.339 <title>Making and reviewing changes</title> 5.340 @@ -418,7 +453,14 @@ 5.341 the remote repository. Since we already have a copy of it 5.342 locally, we can just clone that instead. This is much faster 5.343 than cloning over the network, and cloning a local repository 5.344 - uses less disk space in most cases, too.</para> 5.345 + uses less disk space in most cases, too<footnote> 5.346 + <para>The saving of space arises when source and destination 5.347 + repositories are on the same filesystem, in which case 5.348 + Mercurial will use hardlinks to do copy-on-write sharing of 5.349 + its internal metadata. If that explanation meant nothing to 5.350 + you, don't worry: everything happens transparently and 5.351 + automatically, and you don't need to understand it.</para> 5.352 + </footnote>.</para> 5.353 5.354 &interaction.tour.reclone; 5.355 5.356 @@ -433,16 +475,14 @@ 5.357 5.358 <para id="x_3b">In our <filename class="directory">my-hello</filename> 5.359 repository, we have a file <filename>hello.c</filename> that 5.360 - contains the classic <quote>hello, world</quote> program. Let's 5.361 - use the ancient and venerable <command>sed</command> command to 5.362 - edit this file so that it prints a second line of output. (I'm 5.363 - only using <command>sed</command> to do this because it's easy 5.364 - to write a scripted example this way. Since you're not under 5.365 - the same constraint, you probably won't want to use 5.366 - <command>sed</command>; simply use your preferred text editor to 5.367 - do the same thing.)</para> 5.368 - 5.369 - &interaction.tour.sed; 5.370 + contains the classic <quote>hello, world</quote> program.</para> 5.371 + 5.372 + &interaction.tour.cat1; 5.373 + 5.374 + <para>Let's edit this file so that it prints a second line of 5.375 + output.</para> 5.376 + 5.377 + &interaction.tour.cat2; 5.378 5.379 <para id="x_3c">Mercurial's <command role="hg-cmd">hg status</command> 5.380 command will tell us what Mercurial knows about the files in the 5.381 @@ -465,7 +505,7 @@ 5.382 file after we were done; it was able to figure this out 5.383 itself.</para> 5.384 5.385 - <para id="x_3f">It's a little bit helpful to know that we've modified 5.386 + <para id="x_3f">It's somewhat helpful to know that we've modified 5.387 <filename>hello.c</filename>, but we might prefer to know 5.388 exactly <emphasis>what</emphasis> changes we've made to it. To 5.389 do this, we use the <command role="hg-cmd">hg diff</command> 5.390 @@ -473,6 +513,13 @@ 5.391 5.392 &interaction.tour.diff; 5.393 5.394 + <tip> 5.395 + <title>Understanding patches</title> 5.396 + 5.397 + <para>Remember to take a look at <xref 5.398 + linkend="sec:mq:patch"/> if you don't know how to read 5.399 + output above.</para> 5.400 + </tip> 5.401 </sect1> 5.402 <sect1> 5.403 <title>Recording changes in a new changeset</title> 5.404 @@ -549,10 +596,13 @@ 5.405 configuration settings. The initial contents of your 5.406 <filename role="special">.hgrc</filename> should look like 5.407 this.</para> 5.408 + 5.409 + <remark>Figure out what the appropriate directory is on 5.410 + Windows.</remark> 5.411 + 5.412 <programlisting># This is a Mercurial configuration file. 5.413 [ui] 5.414 -username = Firstname Lastname 5.415 -<email.address@domain.net></programlisting> 5.416 +username = Firstname Lastname <email.address@domain.net></programlisting> 5.417 5.418 <para id="x_4b">The <quote><literal>[ui]</literal></quote> line begins a 5.419 <emphasis>section</emphasis> of the config file, so you can 5.420 @@ -571,8 +621,8 @@ 5.421 5.422 <para id="x_4c">You can use any text you like as the value of 5.423 the <literal>username</literal> config item, since this 5.424 - information is for reading by other people, but for 5.425 - interpreting by Mercurial. The convention that most 5.426 + information is for reading by other people, but will not be 5.427 + interpreted by Mercurial. The convention that most 5.428 people follow is to use their name and email address, as 5.429 in the example above.</para> 5.430 <note> 5.431 @@ -600,10 +650,17 @@ 5.432 5.433 <para id="x_4f">The editor that the <command role="hg-cmd">hg 5.434 commit</command> command drops us into will contain an 5.435 - empty line, followed by a number of lines starting with 5.436 + empty line or two, followed by a number of lines starting with 5.437 <quote><literal>HG:</literal></quote>.</para> 5.438 5.439 - <programlisting>XXX fix this XXX</programlisting> 5.440 + <programlisting> 5.441 +This is where I type my commit comment. 5.442 + 5.443 +HG: Enter commit message. Lines beginning with 'HG:' are removed. 5.444 +HG: -- 5.445 +HG: user: Bryan O'Sullivan <bos@serpentine.com> 5.446 +HG: branch 'default' 5.447 +HG: changed hello.c</programlisting> 5.448 5.449 <para id="x_50">Mercurial ignores the lines that start with 5.450 <quote><literal>HG:</literal></quote>; it uses them only to 5.451 @@ -665,9 +722,18 @@ 5.452 5.453 &interaction.tour.tip; 5.454 5.455 - <para id="x_57">We refer to 5.456 - the newest revision in the repository as the tip revision, 5.457 - or simply the tip.</para> 5.458 + <para id="x_57">We refer to the newest revision in the 5.459 + repository as the <emphasis>tip revision</emphasis>, or simply 5.460 + the <emphasis>tip</emphasis>.</para> 5.461 + 5.462 + <para>By the way, the <command role="hg-cmd">hg tip</command> 5.463 + command accepts many of the same options as <command 5.464 + role="hg-cmd">hg log</command>, so <option 5.465 + role="hg-opt-global">-v</option> above indicates <quote>be 5.466 + verbose</quote>, <option role="hg-opt-tip">-p</option> 5.467 + specifies <quote>print a patch</quote>. The use of <option 5.468 + role="hg-opt-tip">-p</option> to print patches is another 5.469 + example of the consistent naming we mentioned earlier.</para> 5.470 </sect2> 5.471 </sect1> 5.472 5.473 @@ -704,12 +770,13 @@ 5.474 5.475 &interaction.tour.incoming; 5.476 5.477 - <para id="x_5b">(Of course, someone could 5.478 - cause more changesets to appear in the repository that we 5.479 - ran <command role="hg-cmd">hg incoming</command> in, before 5.480 - we get a chance to <command role="hg-cmd">hg pull</command> 5.481 - the changes, so that we could end up pulling changes that we 5.482 - didn't expect.)</para> 5.483 + <para id="x_5b">Suppose you're pulling changes from a repository 5.484 + on the network somewhere. While you are looking at the <command 5.485 + role="hg-cmd">hg incoming</command> output, and before you 5.486 + pull those changes, someone might have committed something in 5.487 + the remote repository. This means that it's possible to pull 5.488 + more changes than you saw when using <command 5.489 + role="hg-cmd">hg incoming</command>.</para> 5.490 5.491 <para id="x_5c">Bringing changes into a repository is a simple 5.492 matter of running the <command role="hg-cmd">hg 5.493 @@ -746,8 +813,8 @@ 5.494 can use <command role="hg-cmd">hg update</command> to update 5.495 the working directory to the state it was in at <emphasis>any 5.496 revision</emphasis> in the history of the repository. If 5.497 - you had the working directory updated to an old revision---to 5.498 - hunt down the origin of a bug, say---and ran a <command 5.499 + you had the working directory updated to an old revision&emdash;to 5.500 + hunt down the origin of a bug, say&emdash;and ran a <command 5.501 role="hg-cmd">hg pull</command> which automatically updated 5.502 the working directory to a new revision, you might not be 5.503 terribly happy.</para> 5.504 @@ -817,14 +884,17 @@ 5.505 5.506 &interaction.tour.push; 5.507 5.508 - <para id="x_69">As with 5.509 - <command role="hg-cmd">hg pull</command>, the <command 5.510 - role="hg-cmd">hg push</command> command does not update 5.511 - the working directory in the repository that it's pushing 5.512 - changes into. (Unlike <command role="hg-cmd">hg 5.513 - pull</command>, <command role="hg-cmd">hg push</command> 5.514 - does not provide a <literal>-u</literal> option that updates 5.515 - the other repository's working directory.)</para> 5.516 + <para id="x_69">As with <command role="hg-cmd">hg 5.517 + pull</command>, the <command role="hg-cmd">hg push</command> 5.518 + command does not update the working directory in the 5.519 + repository that it's pushing changes into. Unlike <command 5.520 + role="hg-cmd">hg pull</command>, <command role="hg-cmd">hg 5.521 + push</command> does not provide a <literal>-u</literal> 5.522 + option that updates the other repository's working directory. 5.523 + This asymmetry is deliberate: the repository we're pushing to 5.524 + might be on a remote server and shared between several people. 5.525 + If we were to update its working directory while someone was 5.526 + working in it, their work would be disrupted.</para> 5.527 5.528 <para id="x_6a">What happens if we try to pull or push changes 5.529 and the receiving repository already has those changes?
6.1 --- a/en/examples/auto-snippets.xml Tue Mar 31 21:17:59 2009 +0800 6.2 +++ b/en/examples/auto-snippets.xml Thu Apr 02 09:24:36 2009 +0800 6.3 @@ -180,6 +180,8 @@ 6.4 <!ENTITY interaction.tour-merge-conflict.pull SYSTEM "results/tour-merge-conflict.pull.lxo"> 6.5 <!ENTITY interaction.tour-merge-conflict.son SYSTEM "results/tour-merge-conflict.son.lxo"> 6.6 <!ENTITY interaction.tour-merge-conflict.wife SYSTEM "results/tour-merge-conflict.wife.lxo"> 6.7 +<!ENTITY interaction.tour.cat1 SYSTEM "results/tour.cat1.lxo"> 6.8 +<!ENTITY interaction.tour.cat2 SYSTEM "results/tour.cat2.lxo"> 6.9 <!ENTITY interaction.tour.clone SYSTEM "results/tour.clone.lxo"> 6.10 <!ENTITY interaction.tour.clone-pull SYSTEM "results/tour.clone-pull.lxo"> 6.11 <!ENTITY interaction.tour.clone-push SYSTEM "results/tour.clone-push.lxo">
7.1 --- a/en/examples/run-example Tue Mar 31 21:17:59 2009 +0800 7.2 +++ b/en/examples/run-example Thu Apr 02 09:24:36 2009 +0800 7.3 @@ -127,9 +127,11 @@ 7.4 s = open(self.name).read().rstrip() 7.5 s = s.replace('&', '&').replace('<', '<').replace('>', '>') 7.6 ofp = wopen(result_name(self.name + '.tmp')) 7.7 + ofp.write('<!-- BEGIN %s -->\n' % self.name) 7.8 ofp.write('<programlisting>') 7.9 ofp.write(s) 7.10 ofp.write('</programlisting>\n') 7.11 + ofp.write('<!-- END %s -->\n' % self.name) 7.12 ofp.close() 7.13 self.rename_output(self.name) 7.14 norm = self.name.replace(os.sep, '-') 7.15 @@ -309,6 +311,7 @@ 7.16 assert os.sep not in out 7.17 if ofp is not None: 7.18 ofp.write('</screen>\n') 7.19 + ofp.write('<!-- END %s -->\n' % ofp_basename) 7.20 ofp.close() 7.21 err |= self.rename_output(ofp_basename, ignore) 7.22 if out: 7.23 @@ -320,6 +323,7 @@ 7.24 % (norm, norm)] = 1 7.25 read_hint = ofp_basename + ' ' 7.26 ofp = wopen(result_name(ofp_basename + '.tmp')) 7.27 + ofp.write('<!-- BEGIN %s -->\n' % ofp_basename) 7.28 ofp.write('<screen>') 7.29 else: 7.30 ofp = None 7.31 @@ -333,7 +337,8 @@ 7.32 # first, print the command we ran 7.33 if not hunk.startswith('#'): 7.34 nl = hunk.endswith('\n') 7.35 - hunk = ('<prompt>%s</prompt> <userinput>%s</userinput>' % 7.36 + hunk = ('<prompt>%s</prompt> ' 7.37 + '<userinput>%s</userinput>' % 7.38 (prompts[ps], 7.39 xml_escape(hunk.rstrip('\n')))) 7.40 if nl: hunk += '\n' 7.41 @@ -353,6 +358,7 @@ 7.42 if ofp is not None: 7.43 ofp.write(output) 7.44 ofp.write('</screen>\n') 7.45 + ofp.write('<!-- END %s -->\n' % ofp_basename) 7.46 ofp.close() 7.47 err |= self.rename_output(ofp_basename, ignore) 7.48 os.close(self.cfd) 7.49 @@ -379,7 +385,7 @@ 7.50 print >> sys.stderr, 'Options:' 7.51 print >> sys.stderr, ' -a --all run all examples in this directory' 7.52 print >> sys.stderr, ' -h --help print this help message' 7.53 - print >> sys.stderr, ' --help keep new output as desired output' 7.54 + print >> sys.stderr, ' --keep keep new output as desired output' 7.55 print >> sys.stderr, ' -v --verbose display extra debug output' 7.56 sys.exit(exit) 7.57
8.1 --- a/en/examples/tour Tue Mar 31 21:17:59 2009 +0800 8.2 +++ b/en/examples/tour Thu Apr 02 09:24:36 2009 +0800 8.3 @@ -52,10 +52,17 @@ 8.4 hg clone hello my-hello 8.5 cd my-hello 8.6 8.7 -#$ name: sed 8.8 +#$ name: cat1 8.9 +cat hello.c 8.10 + 8.11 +#$ name: 8.12 8.13 sed -i '/printf/a\\tprintf("hello again!\\n");' hello.c 8.14 8.15 +#$ name: cat2 8.16 +# ... edit edit edit ... 8.17 +cat hello.c 8.18 + 8.19 #$ name: status 8.20 8.21 ls
9.1 --- a/po/zh.po Tue Mar 31 21:17:59 2009 +0800 9.2 +++ b/po/zh.po Thu Apr 02 09:24:36 2009 +0800 9.3 @@ -41,7 +41,7 @@ 9.4 msgid "" 9.5 msgstr "" 9.6 "Project-Id-Version: hgbook 1.2\n" 9.7 -"POT-Creation-Date: 2009-03-31 10:46+0800\n" 9.8 +"POT-Creation-Date: 2009-04-02 09:21+0800\n" 9.9 "PO-Revision-Date: 2009-03-31 10:12+0800\n" 9.10 "Last-Translator: \n" 9.11 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n" 9.12 @@ -62,18 +62,23 @@ 9.13 msgid "Compiled from $rev_id$" 9.14 msgstr "编译自 $rev_id$" 9.15 9.16 +#. type: Content of: <book><bookinfo> 9.17 +#: ../en/00book.xml:48 9.18 +msgid "<edition>1</edition> <isbn>9780596800673</isbn>" 9.19 +msgstr "" 9.20 + 9.21 #. type: Content of: <book><bookinfo><authorgroup><author><firstname> 9.22 -#: ../en/00book.xml:50 9.23 +#: ../en/00book.xml:52 9.24 msgid "Bryan" 9.25 msgstr "Bryan" 9.26 9.27 #. type: Content of: <book><bookinfo><authorgroup><author><surname> 9.28 -#: ../en/00book.xml:51 9.29 +#: ../en/00book.xml:53 9.30 msgid "O'Sullivan" 9.31 msgstr "O'Sullivan" 9.32 9.33 #. type: Content of: <book><bookinfo> 9.34 -#: ../en/00book.xml:55 9.35 +#: ../en/00book.xml:57 9.36 msgid "" 9.37 "<editor> <firstname>Mike</firstname> <surname>Loukides</surname> </editor> " 9.38 "<copyright> <year>2006</year> <year>2007</year> <year>2008</year> <year>2009</" 9.39 @@ -436,6 +441,7 @@ 9.40 9.41 #. type: Content of: <book><appendix><sect1><sect2><title> 9.42 #: ../en/appB-mq-ref.xml:14 9.43 +#, fuzzy 9.44 msgid "<command role=\"hg-ext-mq\">qapplied</command>—print applied patches" 9.45 msgstr "<command role=\"hg-ext-mq\">qapplied</command>—显示已应用的补丁" 9.46 9.47 @@ -449,6 +455,7 @@ 9.48 9.49 #. type: Content of: <book><appendix><sect1><sect2><title> 9.50 #: ../en/appB-mq-ref.xml:24 9.51 +#, fuzzy 9.52 msgid "" 9.53 "<command role=\"hg-ext-mq\">qcommit</command>—commit changes in the queue " 9.54 "repository" 9.55 @@ -476,6 +483,7 @@ 9.56 9.57 #. type: Content of: <book><appendix><sect1><sect2><title> 9.58 #: ../en/appB-mq-ref.xml:43 9.59 +#, fuzzy 9.60 msgid "" 9.61 "<command role=\"hg-ext-mq\">qdelete</command>—delete a patch from the " 9.62 "<filename role=\"special\">series</filename> file" 9.63 @@ -510,6 +518,7 @@ 9.64 9.65 #. type: Content of: <book><appendix><sect1><sect2><title> 9.66 #: ../en/appB-mq-ref.xml:66 9.67 +#, fuzzy 9.68 msgid "" 9.69 "<command role=\"hg-ext-mq\">qdiff</command>—print a diff of the topmost " 9.70 "applied patch" 9.71 @@ -525,6 +534,7 @@ 9.72 9.73 #. type: Content of: <book><appendix><sect1><sect2><title> 9.74 #: ../en/appB-mq-ref.xml:75 9.75 +#, fuzzy 9.76 msgid "" 9.77 "<command role=\"hg-ext-mq\">qfold</command>—merge (<quote>fold</quote>) " 9.78 "several patches into one" 9.79 @@ -584,6 +594,7 @@ 9.80 9.81 #. type: Content of: <book><appendix><sect1><sect2><title> 9.82 #: ../en/appB-mq-ref.xml:119 9.83 +#, fuzzy 9.84 msgid "" 9.85 "<command role=\"hg-ext-mq\">qheader</command>—display the header/description " 9.86 "of a patch" 9.87 @@ -599,6 +610,7 @@ 9.88 9.89 #. type: Content of: <book><appendix><sect1><sect2><title> 9.90 #: ../en/appB-mq-ref.xml:130 9.91 +#, fuzzy 9.92 msgid "" 9.93 "<command role=\"hg-ext-mq\">qimport</command>—import a third-party patch into " 9.94 "the queue" 9.95 @@ -625,6 +637,7 @@ 9.96 9.97 #. type: Content of: <book><appendix><sect1><sect2><title> 9.98 #: ../en/appB-mq-ref.xml:149 9.99 +#, fuzzy 9.100 msgid "" 9.101 "<command role=\"hg-ext-mq\">qinit</command>—prepare a repository to work with " 9.102 "MQ" 9.103 @@ -658,6 +671,7 @@ 9.104 9.105 #. type: Content of: <book><appendix><sect1><sect2><title> 9.106 #: ../en/appB-mq-ref.xml:178 9.107 +#, fuzzy 9.108 msgid "<command role=\"hg-ext-mq\">qnew</command>—create a new patch" 9.109 msgstr "<command role=\"hg-ext-mq\">qnew</command>—创建新补丁" 9.110 9.111 @@ -700,6 +714,7 @@ 9.112 9.113 #. type: Content of: <book><appendix><sect1><sect2><title> 9.114 #: ../en/appB-mq-ref.xml:215 9.115 +#, fuzzy 9.116 msgid "" 9.117 "<command role=\"hg-ext-mq\">qnext</command>—print the name of the next patch" 9.118 msgstr "<command role=\"hg-ext-mq\">qnext</command>—显示下个补丁的名称" 9.119 @@ -715,6 +730,7 @@ 9.120 9.121 #. type: Content of: <book><appendix><sect1><sect2><title> 9.122 #: ../en/appB-mq-ref.xml:227 9.123 +#, fuzzy 9.124 msgid "<command role=\"hg-ext-mq\">qpop</command>—pop patches off the stack" 9.125 msgstr "<command role=\"hg-ext-mq\">qpop</command>—删除堆栈顶部的补丁" 9.126 9.127 @@ -798,6 +814,7 @@ 9.128 9.129 #. type: Content of: <book><appendix><sect1><sect2><title> 9.130 #: ../en/appB-mq-ref.xml:288 9.131 +#, fuzzy 9.132 msgid "" 9.133 "<command role=\"hg-ext-mq\">qprev</command>—print the name of the previous " 9.134 "patch" 9.135 @@ -814,6 +831,7 @@ 9.136 9.137 #. type: Content of: <book><appendix><sect1><sect2><title> 9.138 #: ../en/appB-mq-ref.xml:300 9.139 +#, fuzzy 9.140 msgid "<command role=\"hg-ext-mq\">qpush</command>—push patches onto the stack" 9.141 msgstr "<command role=\"hg-ext-mq\">qpush</command>—增加补丁到堆栈" 9.142 9.143 @@ -911,6 +929,7 @@ 9.144 9.145 #. type: Content of: <book><appendix><sect1><sect2><title> 9.146 #: ../en/appB-mq-ref.xml:368 9.147 +#, fuzzy 9.148 msgid "" 9.149 "<command role=\"hg-ext-mq\">qrefresh</command>—update the topmost applied " 9.150 "patch" 9.151 @@ -988,6 +1007,7 @@ 9.152 9.153 #. type: Content of: <book><appendix><sect1><sect2><title> 9.154 #: ../en/appB-mq-ref.xml:424 9.155 +#, fuzzy 9.156 msgid "<command role=\"hg-ext-mq\">qrename</command>—rename a patch" 9.157 msgstr "<command role=\"hg-ext-mq\">qrename</command>—改名补丁" 9.158 9.159 @@ -1009,6 +1029,7 @@ 9.160 9.161 #. type: Content of: <book><appendix><sect1><sect2><title> 9.162 #: ../en/appB-mq-ref.xml:438 9.163 +#, fuzzy 9.164 msgid "<command role=\"hg-ext-mq\">qrestore</command>—restore saved queue state" 9.165 msgstr "<command role=\"hg-ext-mq\">qrestore</command>—恢复保存的队列" 9.166 9.167 @@ -1019,6 +1040,7 @@ 9.168 9.169 #. type: Content of: <book><appendix><sect1><sect2><title> 9.170 #: ../en/appB-mq-ref.xml:446 9.171 +#, fuzzy 9.172 msgid "<command role=\"hg-ext-mq\">qsave</command>—save current queue state" 9.173 msgstr "<command role=\"hg-ext-mq\">qsave</command>—保存当前的队列状态" 9.174 9.175 @@ -1029,6 +1051,7 @@ 9.176 9.177 #. type: Content of: <book><appendix><sect1><sect2><title> 9.178 #: ../en/appB-mq-ref.xml:453 9.179 +#, fuzzy 9.180 msgid "" 9.181 "<command role=\"hg-ext-mq\">qseries</command>—print the entire patch series" 9.182 msgstr "<command role=\"hg-ext-mq\">qseries</command>—显示补丁序列" 9.183 @@ -1044,6 +1067,7 @@ 9.184 9.185 #. type: Content of: <book><appendix><sect1><sect2><title> 9.186 #: ../en/appB-mq-ref.xml:464 9.187 +#, fuzzy 9.188 msgid "" 9.189 "<command role=\"hg-ext-mq\">qtop</command>—print the name of the current patch" 9.190 msgstr "<command role=\"hg-ext-mq\">qtop</command>—显示当前补丁的名称" 9.191 @@ -1057,6 +1081,7 @@ 9.192 9.193 #. type: Content of: <book><appendix><sect1><sect2><title> 9.194 #: ../en/appB-mq-ref.xml:472 9.195 +#, fuzzy 9.196 msgid "" 9.197 "<command role=\"hg-ext-mq\">qunapplied</command>—print patches not yet applied" 9.198 msgstr "<command role=\"hg-ext-mq\">qunapplied</command>—显示尚未应用的补丁" 9.199 @@ -1072,6 +1097,7 @@ 9.200 9.201 #. type: Content of: <book><appendix><sect1><sect2><title> 9.202 #: ../en/appB-mq-ref.xml:484 9.203 +#, fuzzy 9.204 msgid "" 9.205 "<command role=\"hg-cmd\">hg strip</command>—remove a revision and descendants" 9.206 msgstr "<command role=\"hg-cmd\">hg strip</command>—删除一个版本及其后继" 9.207 @@ -1606,12 +1632,12 @@ 9.208 #. type: Content of: <book><preface><sect1><sect2><para> 9.209 #: ../en/ch00-preface.xml:71 9.210 msgid "" 9.211 -"Most of these reasons are equally valid---at least in theory---whether you're " 9.212 -"working on a project by yourself, or with a hundred other people." 9.213 +"Most of these reasons are equally valid—at least in theory&emdash;whether " 9.214 +"you're working on a project by yourself, or with a hundred other people." 9.215 msgstr "" 9.216 9.217 #. type: Content of: <book><preface><sect1><sect2><para> 9.218 -#: ../en/ch00-preface.xml:75 9.219 +#: ../en/ch00-preface.xml:76 9.220 msgid "" 9.221 "A key question about the practicality of revision control at these two " 9.222 "different scales (<quote>lone hacker</quote> and <quote>huge team</quote>) is " 9.223 @@ -1621,7 +1647,7 @@ 9.224 msgstr "" 9.225 9.226 #. type: Content of: <book><preface><sect1><sect2><para> 9.227 -#: ../en/ch00-preface.xml:83 9.228 +#: ../en/ch00-preface.xml:84 9.229 msgid "" 9.230 "A five-hundred-person project is likely to collapse under its own weight " 9.231 "almost immediately without a revision control tool and process. In this case, " 9.232 @@ -1630,7 +1656,7 @@ 9.233 msgstr "" 9.234 9.235 #. type: Content of: <book><preface><sect1><sect2><para> 9.236 -#: ../en/ch00-preface.xml:90 9.237 +#: ../en/ch00-preface.xml:91 9.238 msgid "" 9.239 "On the other hand, a one-person <quote>quick hack</quote> might seem like a " 9.240 "poor place to use a revision control tool, because surely the cost of using " 9.241 @@ -1638,7 +1664,7 @@ 9.242 msgstr "" 9.243 9.244 #. type: Content of: <book><preface><sect1><sect2><para> 9.245 -#: ../en/ch00-preface.xml:95 9.246 +#: ../en/ch00-preface.xml:96 9.247 msgid "" 9.248 "Mercurial uniquely supports <emphasis>both</emphasis> of these scales of " 9.249 "development. You can learn the basics in just a few minutes, and due to its " 9.250 @@ -1651,7 +1677,7 @@ 9.251 msgstr "" 9.252 9.253 #. type: Content of: <book><preface><sect1><sect2><para> 9.254 -#: ../en/ch00-preface.xml:105 9.255 +#: ../en/ch00-preface.xml:106 9.256 msgid "" 9.257 "No revision control tool can rescue a poorly run project, but a good choice " 9.258 "of tools can make a huge difference to the fluidity with which you can work " 9.259 @@ -1659,12 +1685,12 @@ 9.260 msgstr "" 9.261 9.262 #. type: Content of: <book><preface><sect1><sect2><title> 9.263 -#: ../en/ch00-preface.xml:112 9.264 +#: ../en/ch00-preface.xml:113 9.265 msgid "The many names of revision control" 9.266 msgstr "版本控制的别名" 9.267 9.268 #. type: Content of: <book><preface><sect1><sect2><para> 9.269 -#: ../en/ch00-preface.xml:114 9.270 +#: ../en/ch00-preface.xml:115 9.271 msgid "" 9.272 "Revision control is a diverse field, so much so that it is referred to by " 9.273 "many names and acronyms. Here are a few of the more common variations you'll " 9.274 @@ -1672,32 +1698,32 @@ 9.275 msgstr "" 9.276 9.277 #. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para> 9.278 -#: ../en/ch00-preface.xml:118 9.279 +#: ../en/ch00-preface.xml:119 9.280 msgid "Revision control (RCS)" 9.281 msgstr "版本控制(RCS)" 9.282 9.283 #. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para> 9.284 -#: ../en/ch00-preface.xml:119 9.285 +#: ../en/ch00-preface.xml:120 9.286 msgid "Software configuration management (SCM), or configuration management" 9.287 msgstr "软件配置管理(SCM),或配置管理" 9.288 9.289 #. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para> 9.290 -#: ../en/ch00-preface.xml:121 9.291 +#: ../en/ch00-preface.xml:122 9.292 msgid "Source code management" 9.293 msgstr "源代码管理" 9.294 9.295 #. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para> 9.296 -#: ../en/ch00-preface.xml:122 9.297 +#: ../en/ch00-preface.xml:123 9.298 msgid "Source code control, or source control" 9.299 msgstr "源代码控制,或源控制" 9.300 9.301 #. type: Content of: <book><preface><sect1><sect2><itemizedlist><listitem><para> 9.302 -#: ../en/ch00-preface.xml:124 9.303 +#: ../en/ch00-preface.xml:125 9.304 msgid "Version control (VCS)" 9.305 msgstr "版本控制(VCS)" 9.306 9.307 #. type: Content of: <book><preface><sect1><sect2><para> 9.308 -#: ../en/ch00-preface.xml:126 9.309 +#: ../en/ch00-preface.xml:127 9.310 msgid "" 9.311 "Some people claim that these terms actually have different meanings, but in " 9.312 "practice they overlap so much that there's no agreed or even useful way to " 9.313 @@ -1705,12 +1731,12 @@ 9.314 msgstr "" 9.315 9.316 #. type: Content of: <book><preface><sect1><title> 9.317 -#: ../en/ch00-preface.xml:134 9.318 +#: ../en/ch00-preface.xml:135 9.319 msgid "This book is a work in progress" 9.320 msgstr "本书正在编写中" 9.321 9.322 #. type: Content of: <book><preface><sect1><para> 9.323 -#: ../en/ch00-preface.xml:136 9.324 +#: ../en/ch00-preface.xml:137 9.325 msgid "" 9.326 "I am releasing this book while I am still writing it, in the hope that it " 9.327 "will prove useful to others. I am writing under an open license in the hope " 9.328 @@ -1719,22 +1745,22 @@ 9.329 msgstr "" 9.330 9.331 #. type: Content of: <book><preface><sect1><title> 9.332 -#: ../en/ch00-preface.xml:143 9.333 +#: ../en/ch00-preface.xml:144 9.334 msgid "About the examples in this book" 9.335 msgstr "本书的例子" 9.336 9.337 #. type: Content of: <book><preface><sect1><para> 9.338 -#: ../en/ch00-preface.xml:145 9.339 +#: ../en/ch00-preface.xml:146 9.340 msgid "" 9.341 "This book takes an unusual approach to code samples. Every example is " 9.342 -"<quote>live</quote>---each one is actually the result of a shell script that " 9.343 +"<quote>live</quote>—each one is actually the result of a shell script that " 9.344 "executes the Mercurial commands you see. Every time an image of the book is " 9.345 "built from its sources, all the example scripts are automatically run, and " 9.346 "their current results compared against their expected results." 9.347 msgstr "" 9.348 9.349 #. type: Content of: <book><preface><sect1><para> 9.350 -#: ../en/ch00-preface.xml:152 9.351 +#: ../en/ch00-preface.xml:153 9.352 msgid "" 9.353 "The advantage of this approach is that the examples are always accurate; they " 9.354 "describe <emphasis>exactly</emphasis> the behaviour of the version of " 9.355 @@ -1744,7 +1770,7 @@ 9.356 msgstr "" 9.357 9.358 #. type: Content of: <book><preface><sect1><para> 9.359 -#: ../en/ch00-preface.xml:159 9.360 +#: ../en/ch00-preface.xml:160 9.361 msgid "" 9.362 "There is a small disadvantage to this approach, which is that the dates and " 9.363 "times you'll see in examples tend to be <quote>squashed</quote> together in a " 9.364 @@ -1755,7 +1781,7 @@ 9.365 msgstr "" 9.366 9.367 #. type: Content of: <book><preface><sect1><para> 9.368 -#: ../en/ch00-preface.xml:167 9.369 +#: ../en/ch00-preface.xml:168 9.370 msgid "" 9.371 "As an instance of this, several consecutive commits in an example can show up " 9.372 "as having occurred during the same second. You can see this occur in the " 9.373 @@ -1764,7 +1790,7 @@ 9.374 msgstr "" 9.375 9.376 #. type: Content of: <book><preface><sect1><para> 9.377 -#: ../en/ch00-preface.xml:173 9.378 +#: ../en/ch00-preface.xml:174 9.379 msgid "" 9.380 "So when you're reading examples, don't place too much weight on the dates or " 9.381 "times you see in the output of commands. But <emphasis>do</emphasis> be " 9.382 @@ -1772,12 +1798,12 @@ 9.383 msgstr "" 9.384 9.385 #. type: Content of: <book><preface><sect1><title> 9.386 -#: ../en/ch00-preface.xml:181 9.387 +#: ../en/ch00-preface.xml:182 9.388 msgid "Trends in the field" 9.389 msgstr "版本控制的发展趋势" 9.390 9.391 #. type: Content of: <book><preface><sect1><para> 9.392 -#: ../en/ch00-preface.xml:183 9.393 +#: ../en/ch00-preface.xml:184 9.394 msgid "" 9.395 "There has been an unmistakable trend in the development and use of revision " 9.396 "control tools over the past four decades, as people have become familiar with " 9.397 @@ -1785,7 +1811,7 @@ 9.398 msgstr "" 9.399 9.400 #. type: Content of: <book><preface><sect1><para> 9.401 -#: ../en/ch00-preface.xml:188 9.402 +#: ../en/ch00-preface.xml:189 9.403 msgid "" 9.404 "The first generation began by managing single files on individual computers. " 9.405 "Although these tools represented a huge advance over ad-hoc manual revision " 9.406 @@ -1794,7 +1820,7 @@ 9.407 msgstr "" 9.408 9.409 #. type: Content of: <book><preface><sect1><para> 9.410 -#: ../en/ch00-preface.xml:194 9.411 +#: ../en/ch00-preface.xml:195 9.412 msgid "" 9.413 "The second generation loosened these constraints by moving to network-" 9.414 "centered architectures, and managing entire projects at a time. As projects " 9.415 @@ -1808,7 +1834,7 @@ 9.416 msgstr "" 9.417 9.418 #. type: Content of: <book><preface><sect1><para> 9.419 -#: ../en/ch00-preface.xml:206 9.420 +#: ../en/ch00-preface.xml:207 9.421 msgid "" 9.422 "The current generation of revision control tools is peer-to-peer in nature. " 9.423 "All of these systems have dropped the dependency on a single central server, " 9.424 @@ -1820,12 +1846,12 @@ 9.425 msgstr "" 9.426 9.427 #. type: Content of: <book><preface><sect1><title> 9.428 -#: ../en/ch00-preface.xml:218 9.429 +#: ../en/ch00-preface.xml:219 9.430 msgid "A few of the advantages of distributed revision control" 9.431 msgstr "分布版本控制的优点" 9.432 9.433 #. type: Content of: <book><preface><sect1><para> 9.434 -#: ../en/ch00-preface.xml:221 9.435 +#: ../en/ch00-preface.xml:222 9.436 msgid "" 9.437 "Even though distributed revision control tools have for several years been as " 9.438 "robust and usable as their previous-generation counterparts, people using " 9.439 @@ -1835,7 +1861,7 @@ 9.440 msgstr "" 9.441 9.442 #. type: Content of: <book><preface><sect1><para> 9.443 -#: ../en/ch00-preface.xml:228 9.444 +#: ../en/ch00-preface.xml:229 9.445 msgid "" 9.446 "For an individual developer, distributed tools are almost always much faster " 9.447 "than centralised tools. This is for a simple reason: a centralised tool " 9.448 @@ -1848,7 +1874,7 @@ 9.449 msgstr "" 9.450 9.451 #. type: Content of: <book><preface><sect1><para> 9.452 -#: ../en/ch00-preface.xml:239 9.453 +#: ../en/ch00-preface.xml:240 9.454 msgid "" 9.455 "Distributed tools are indifferent to the vagaries of your server " 9.456 "infrastructure, again because they replicate metadata to so many locations. " 9.457 @@ -1859,7 +1885,7 @@ 9.458 msgstr "" 9.459 9.460 #. type: Content of: <book><preface><sect1><para> 9.461 -#: ../en/ch00-preface.xml:247 9.462 +#: ../en/ch00-preface.xml:248 9.463 msgid "" 9.464 "The reliability of your network will affect distributed tools far less than " 9.465 "it will centralised tools. You can't even use a centralised tool without a " 9.466 @@ -1872,12 +1898,12 @@ 9.467 msgstr "" 9.468 9.469 #. type: Content of: <book><preface><sect1><sect2><title> 9.470 -#: ../en/ch00-preface.xml:258 9.471 +#: ../en/ch00-preface.xml:259 9.472 msgid "Advantages for open source projects" 9.473 msgstr "开源项目的优点" 9.474 9.475 #. type: Content of: <book><preface><sect1><sect2><para> 9.476 -#: ../en/ch00-preface.xml:260 9.477 +#: ../en/ch00-preface.xml:261 9.478 msgid "" 9.479 "If you take a shine to an open source project and decide that you would like " 9.480 "to start hacking on it, and that project uses a distributed revision control " 9.481 @@ -1893,12 +1919,12 @@ 9.482 msgstr "" 9.483 9.484 #. type: Content of: <book><preface><sect1><sect2><sect3><title> 9.485 -#: ../en/ch00-preface.xml:276 9.486 +#: ../en/ch00-preface.xml:277 9.487 msgid "The forking non-problem" 9.488 msgstr "分叉不是问题" 9.489 9.490 #. type: Content of: <book><preface><sect1><sect2><sect3><para> 9.491 -#: ../en/ch00-preface.xml:278 9.492 +#: ../en/ch00-preface.xml:279 9.493 msgid "" 9.494 "It has been suggested that distributed revision control tools pose some sort " 9.495 "of risk to open source projects because they make it easy to <quote>fork</" 9.496 @@ -1910,7 +1936,7 @@ 9.497 msgstr "" 9.498 9.499 #. type: Content of: <book><preface><sect1><sect2><sect3><para> 9.500 -#: ../en/ch00-preface.xml:288 9.501 +#: ../en/ch00-preface.xml:289 9.502 msgid "" 9.503 "Sometimes the camps in a fork decide to reconcile their differences. With a " 9.504 "centralised revision control system, the <emphasis>technical</emphasis> " 9.505 @@ -1921,7 +1947,7 @@ 9.506 msgstr "" 9.507 9.508 #. type: Content of: <book><preface><sect1><sect2><sect3><para> 9.509 -#: ../en/ch00-preface.xml:297 9.510 +#: ../en/ch00-preface.xml:298 9.511 msgid "" 9.512 "What distributed tools do with respect to forking is they make forking the " 9.513 "<emphasis>only</emphasis> way to develop a project. Every single change that " 9.514 @@ -1932,7 +1958,7 @@ 9.515 msgstr "" 9.516 9.517 #. type: Content of: <book><preface><sect1><sect2><sect3><para> 9.518 -#: ../en/ch00-preface.xml:306 9.519 +#: ../en/ch00-preface.xml:307 9.520 msgid "" 9.521 "If every piece of work that everybody does, all the time, is framed in terms " 9.522 "of forking and merging, then what the open source world refers to as a " 9.523 @@ -1942,14 +1968,14 @@ 9.524 msgstr "" 9.525 9.526 #. type: Content of: <book><preface><sect1><sect2><sect3><itemizedlist><listitem><para> 9.527 -#: ../en/ch00-preface.xml:313 9.528 +#: ../en/ch00-preface.xml:314 9.529 msgid "" 9.530 "They eliminate the social distinction that centralised tools impose: that " 9.531 "between insiders (people with commit access) and outsiders (people without)." 9.532 msgstr "" 9.533 9.534 #. type: Content of: <book><preface><sect1><sect2><sect3><itemizedlist><listitem><para> 9.535 -#: ../en/ch00-preface.xml:317 9.536 +#: ../en/ch00-preface.xml:318 9.537 msgid "" 9.538 "They make it easier to reconcile after a social fork, because all that's " 9.539 "involved from the perspective of the revision control software is just " 9.540 @@ -1957,7 +1983,7 @@ 9.541 msgstr "" 9.542 9.543 #. type: Content of: <book><preface><sect1><sect2><sect3><para> 9.544 -#: ../en/ch00-preface.xml:322 9.545 +#: ../en/ch00-preface.xml:323 9.546 msgid "" 9.547 "Some people resist distributed tools because they want to retain tight " 9.548 "control over their projects, and they believe that centralised tools give " 9.549 @@ -1970,12 +1996,12 @@ 9.550 msgstr "" 9.551 9.552 #. type: Content of: <book><preface><sect1><sect2><title> 9.553 -#: ../en/ch00-preface.xml:337 9.554 +#: ../en/ch00-preface.xml:338 9.555 msgid "Advantages for commercial projects" 9.556 msgstr "商业项目的优点" 9.557 9.558 #. type: Content of: <book><preface><sect1><sect2><para> 9.559 -#: ../en/ch00-preface.xml:339 9.560 +#: ../en/ch00-preface.xml:340 9.561 msgid "" 9.562 "Many commercial projects are undertaken by teams that are scattered across " 9.563 "the globe. Contributors who are far from a central server will see slower " 9.564 @@ -1989,21 +2015,20 @@ 9.565 msgstr "" 9.566 9.567 #. type: Content of: <book><preface><sect1><sect2><para> 9.568 -#: ../en/ch00-preface.xml:351 9.569 +#: ../en/ch00-preface.xml:352 9.570 msgid "" 9.571 "Centralised revision control systems tend to have relatively low " 9.572 "scalability. It's not unusual for an expensive centralised system to fall " 9.573 "over under the combined load of just a few dozen concurrent users. Once " 9.574 "again, the typical response tends to be an expensive and clunky replication " 9.575 -"facility. Since the load on a central server---if you have one at all---is " 9.576 -"many times lower with a distributed tool (because all of the data is " 9.577 -"replicated everywhere), a single cheap server can handle the needs of a much " 9.578 -"larger team, and replication to balance load becomes a simple matter of " 9.579 -"scripting." 9.580 +"facility. Since the load on a central server—if you have one at all—is many " 9.581 +"times lower with a distributed tool (because all of the data is replicated " 9.582 +"everywhere), a single cheap server can handle the needs of a much larger " 9.583 +"team, and replication to balance load becomes a simple matter of scripting." 9.584 msgstr "" 9.585 9.586 #. type: Content of: <book><preface><sect1><sect2><para> 9.587 -#: ../en/ch00-preface.xml:363 9.588 +#: ../en/ch00-preface.xml:364 9.589 msgid "" 9.590 "If you have an employee in the field, troubleshooting a problem at a " 9.591 "customer's site, they'll benefit from distributed revision control. The tool " 9.592 @@ -2014,39 +2039,39 @@ 9.593 msgstr "" 9.594 9.595 #. type: Content of: <book><preface><sect1><title> 9.596 -#: ../en/ch00-preface.xml:374 9.597 +#: ../en/ch00-preface.xml:375 9.598 msgid "Why choose Mercurial?" 9.599 msgstr "为什么选择 Mercurial?" 9.600 9.601 #. type: Content of: <book><preface><sect1><para> 9.602 -#: ../en/ch00-preface.xml:376 9.603 +#: ../en/ch00-preface.xml:377 9.604 msgid "" 9.605 "Mercurial has a unique set of properties that make it a particularly good " 9.606 "choice as a revision control system." 9.607 msgstr "" 9.608 9.609 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.610 -#: ../en/ch00-preface.xml:379 9.611 +#: ../en/ch00-preface.xml:380 9.612 msgid "It is easy to learn and use." 9.613 msgstr "" 9.614 9.615 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.616 -#: ../en/ch00-preface.xml:380 9.617 -msgid "It is lightweight." 9.618 -msgstr "" 9.619 - 9.620 -#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.621 #: ../en/ch00-preface.xml:381 9.622 -msgid "It scales excellently." 9.623 +msgid "It is lightweight." 9.624 msgstr "" 9.625 9.626 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.627 #: ../en/ch00-preface.xml:382 9.628 +msgid "It scales excellently." 9.629 +msgstr "" 9.630 + 9.631 +#. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.632 +#: ../en/ch00-preface.xml:383 9.633 msgid "It is easy to customise." 9.634 msgstr "" 9.635 9.636 #. type: Content of: <book><preface><sect1><para> 9.637 -#: ../en/ch00-preface.xml:385 9.638 +#: ../en/ch00-preface.xml:386 9.639 msgid "" 9.640 "If you are at all familiar with revision control systems, you should be able " 9.641 "to get up and running with Mercurial in less than five minutes. Even if not, " 9.642 @@ -2056,7 +2081,7 @@ 9.643 msgstr "" 9.644 9.645 #. type: Content of: <book><preface><sect1><para> 9.646 -#: ../en/ch00-preface.xml:392 9.647 +#: ../en/ch00-preface.xml:393 9.648 msgid "" 9.649 "On a small project, you can start working with Mercurial in moments. Creating " 9.650 "new changes and branches; transferring changes around (whether locally or " 9.651 @@ -2066,7 +2091,7 @@ 9.652 msgstr "" 9.653 9.654 #. type: Content of: <book><preface><sect1><para> 9.655 -#: ../en/ch00-preface.xml:399 9.656 +#: ../en/ch00-preface.xml:400 9.657 msgid "" 9.658 "The usefulness of Mercurial is not limited to small projects: it is used by " 9.659 "projects with hundreds to thousands of contributors, each containing tens of " 9.660 @@ -2074,7 +2099,7 @@ 9.661 msgstr "" 9.662 9.663 #. type: Content of: <book><preface><sect1><para> 9.664 -#: ../en/ch00-preface.xml:404 9.665 +#: ../en/ch00-preface.xml:405 9.666 msgid "" 9.667 "If the core functionality of Mercurial is not enough for you, it's easy to " 9.668 "build on. Mercurial is well suited to scripting tasks, and its clean " 9.669 @@ -2085,12 +2110,12 @@ 9.670 msgstr "" 9.671 9.672 #. type: Content of: <book><preface><sect1><title> 9.673 -#: ../en/ch00-preface.xml:414 9.674 +#: ../en/ch00-preface.xml:415 9.675 msgid "Mercurial compared with other tools" 9.676 msgstr "Mercurial 与其它工具的比较" 9.677 9.678 #. type: Content of: <book><preface><sect1><para> 9.679 -#: ../en/ch00-preface.xml:416 9.680 +#: ../en/ch00-preface.xml:417 9.681 msgid "" 9.682 "Before you read on, please understand that this section necessarily reflects " 9.683 "my own experiences, interests, and (dare I say it) biases. I have used every " 9.684 @@ -2099,19 +2124,19 @@ 9.685 msgstr "" 9.686 9.687 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.688 -#: ../en/ch00-preface.xml:424 ../en/ch00-preface.xml:635 9.689 +#: ../en/ch00-preface.xml:425 ../en/ch00-preface.xml:636 9.690 msgid "Subversion" 9.691 msgstr "" 9.692 9.693 #. type: Content of: <book><preface><sect1><sect2><para> 9.694 -#: ../en/ch00-preface.xml:426 9.695 +#: ../en/ch00-preface.xml:427 9.696 msgid "" 9.697 "Subversion is a popular revision control tool, developed to replace CVS. It " 9.698 "has a centralised client/server architecture." 9.699 msgstr "" 9.700 9.701 #. type: Content of: <book><preface><sect1><sect2><para> 9.702 -#: ../en/ch00-preface.xml:430 9.703 +#: ../en/ch00-preface.xml:431 9.704 msgid "" 9.705 "Subversion and Mercurial have similarly named commands for performing the " 9.706 "same operations, so if you're familiar with one, it is easy to learn to use " 9.707 @@ -2119,7 +2144,7 @@ 9.708 msgstr "" 9.709 9.710 #. type: Content of: <book><preface><sect1><sect2><para> 9.711 -#: ../en/ch00-preface.xml:435 9.712 +#: ../en/ch00-preface.xml:436 9.713 msgid "" 9.714 "Prior to version 1.5, Subversion had no useful support for merges. At the " 9.715 "time of writing, its merge tracking capability is new, and known to be <ulink " 9.716 @@ -2128,7 +2153,7 @@ 9.717 msgstr "" 9.718 9.719 #. type: Content of: <book><preface><sect1><sect2><para> 9.720 -#: ../en/ch00-preface.xml:441 9.721 +#: ../en/ch00-preface.xml:442 9.722 msgid "" 9.723 "Mercurial has a substantial performance advantage over Subversion on every " 9.724 "revision control operation I have benchmarked. I have measured its advantage " 9.725 @@ -2142,7 +2167,7 @@ 9.726 msgstr "" 9.727 9.728 #. type: Content of: <book><preface><sect1><sect2><para> 9.729 -#: ../en/ch00-preface.xml:454 9.730 +#: ../en/ch00-preface.xml:455 9.731 msgid "" 9.732 "Additionally, Subversion incurs substantial storage overhead to avoid network " 9.733 "transactions for a few common operations, such as finding modified files " 9.734 @@ -2154,7 +2179,7 @@ 9.735 msgstr "" 9.736 9.737 #. type: Content of: <book><preface><sect1><sect2><para> 9.738 -#: ../en/ch00-preface.xml:464 9.739 +#: ../en/ch00-preface.xml:465 9.740 msgid "" 9.741 "Subversion is widely supported by third party tools. Mercurial currently " 9.742 "lags considerably in this area. This gap is closing, however, and indeed " 9.743 @@ -2163,7 +2188,7 @@ 9.744 msgstr "" 9.745 9.746 #. type: Content of: <book><preface><sect1><sect2><para> 9.747 -#: ../en/ch00-preface.xml:470 9.748 +#: ../en/ch00-preface.xml:471 9.749 msgid "" 9.750 "Because Subversion doesn't store revision history on the client, it is well " 9.751 "suited to managing projects that deal with lots of large, opaque binary " 9.752 @@ -2174,7 +2199,7 @@ 9.753 msgstr "" 9.754 9.755 #. type: Content of: <book><preface><sect1><sect2><para> 9.756 -#: ../en/ch00-preface.xml:479 9.757 +#: ../en/ch00-preface.xml:480 9.758 msgid "" 9.759 "In addition, it's often difficult or, more usually, impossible to merge " 9.760 "different versions of a binary file. Subversion's ability to let a user lock " 9.761 @@ -2184,7 +2209,7 @@ 9.762 msgstr "" 9.763 9.764 #. type: Content of: <book><preface><sect1><sect2><para> 9.765 -#: ../en/ch00-preface.xml:486 9.766 +#: ../en/ch00-preface.xml:487 9.767 msgid "" 9.768 "Mercurial can import revision history from a Subversion repository. It can " 9.769 "also export revision history to a Subversion repository. This makes it easy " 9.770 @@ -2195,12 +2220,12 @@ 9.771 msgstr "" 9.772 9.773 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.774 -#: ../en/ch00-preface.xml:498 ../en/ch00-preface.xml:637 9.775 +#: ../en/ch00-preface.xml:499 ../en/ch00-preface.xml:638 9.776 msgid "Git" 9.777 msgstr "" 9.778 9.779 #. type: Content of: <book><preface><sect1><sect2><para> 9.780 -#: ../en/ch00-preface.xml:500 9.781 +#: ../en/ch00-preface.xml:501 9.782 msgid "" 9.783 "Git is a distributed revision control tool that was developed for managing " 9.784 "the Linux kernel source tree. Like Mercurial, its early design was somewhat " 9.785 @@ -2208,7 +2233,7 @@ 9.786 msgstr "" 9.787 9.788 #. type: Content of: <book><preface><sect1><sect2><para> 9.789 -#: ../en/ch00-preface.xml:505 9.790 +#: ../en/ch00-preface.xml:506 9.791 msgid "" 9.792 "Git has a very large command set, with version 1.5.0 providing 139 individual " 9.793 "commands. It has something of a reputation for being difficult to learn. " 9.794 @@ -2216,7 +2241,7 @@ 9.795 msgstr "" 9.796 9.797 #. type: Content of: <book><preface><sect1><sect2><para> 9.798 -#: ../en/ch00-preface.xml:510 9.799 +#: ../en/ch00-preface.xml:511 9.800 msgid "" 9.801 "In terms of performance, Git is extremely fast. In several cases, it is " 9.802 "faster than Mercurial, at least on Linux, while Mercurial performs better on " 9.803 @@ -2226,7 +2251,7 @@ 9.804 msgstr "" 9.805 9.806 #. type: Content of: <book><preface><sect1><sect2><para> 9.807 -#: ../en/ch00-preface.xml:517 9.808 +#: ../en/ch00-preface.xml:518 9.809 msgid "" 9.810 "While a Mercurial repository needs no maintenance, a Git repository requires " 9.811 "frequent manual <quote>repacks</quote> of its metadata. Without these, " 9.812 @@ -2239,7 +2264,7 @@ 9.813 msgstr "" 9.814 9.815 #. type: Content of: <book><preface><sect1><sect2><para> 9.816 -#: ../en/ch00-preface.xml:528 9.817 +#: ../en/ch00-preface.xml:529 9.818 msgid "" 9.819 "The core of Git is written in C. Many Git commands are implemented as shell " 9.820 "or Perl scripts, and the quality of these scripts varies widely. I have " 9.821 @@ -2248,17 +2273,17 @@ 9.822 msgstr "" 9.823 9.824 #. type: Content of: <book><preface><sect1><sect2><para> 9.825 -#: ../en/ch00-preface.xml:534 9.826 +#: ../en/ch00-preface.xml:535 9.827 msgid "Mercurial can import revision history from a Git repository." 9.828 msgstr "" 9.829 9.830 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.831 -#: ../en/ch00-preface.xml:540 ../en/ch00-preface.xml:636 9.832 +#: ../en/ch00-preface.xml:541 ../en/ch00-preface.xml:637 9.833 msgid "CVS" 9.834 msgstr "" 9.835 9.836 #. type: Content of: <book><preface><sect1><sect2><para> 9.837 -#: ../en/ch00-preface.xml:542 9.838 +#: ../en/ch00-preface.xml:543 9.839 msgid "" 9.840 "CVS is probably the most widely used revision control tool in the world. Due " 9.841 "to its age and internal untidiness, it has been only lightly maintained for " 9.842 @@ -2266,7 +2291,7 @@ 9.843 msgstr "" 9.844 9.845 #. type: Content of: <book><preface><sect1><sect2><para> 9.846 -#: ../en/ch00-preface.xml:546 9.847 +#: ../en/ch00-preface.xml:547 9.848 msgid "" 9.849 "It has a centralised client/server architecture. It does not group related " 9.850 "file changes into atomic commits, making it easy for people to <quote>break " 9.851 @@ -2280,7 +2305,7 @@ 9.852 msgstr "" 9.853 9.854 #. type: Content of: <book><preface><sect1><sect2><para> 9.855 -#: ../en/ch00-preface.xml:558 9.856 +#: ../en/ch00-preface.xml:559 9.857 msgid "" 9.858 "CVS has a muddled notion of tags and branches that I will not attempt to even " 9.859 "describe. It does not support renaming of files or directories well, making " 9.860 @@ -2291,7 +2316,7 @@ 9.861 msgstr "" 9.862 9.863 #. type: Content of: <book><preface><sect1><sect2><para> 9.864 -#: ../en/ch00-preface.xml:566 9.865 +#: ../en/ch00-preface.xml:567 9.866 msgid "" 9.867 "Mercurial can import CVS revision history. However, there are a few caveats " 9.868 "that apply; these are true of every other revision control tool's CVS " 9.869 @@ -2306,17 +2331,17 @@ 9.870 msgstr "" 9.871 9.872 #. type: Content of: <book><preface><sect1><sect2><para> 9.873 -#: ../en/ch00-preface.xml:580 9.874 +#: ../en/ch00-preface.xml:581 9.875 msgid "Mercurial can import revision history from a CVS repository." 9.876 msgstr "" 9.877 9.878 #. type: Content of: <book><preface><sect1><sect2><title> 9.879 -#: ../en/ch00-preface.xml:586 9.880 +#: ../en/ch00-preface.xml:587 9.881 msgid "Commercial tools" 9.882 msgstr "商业工具" 9.883 9.884 #. type: Content of: <book><preface><sect1><sect2><para> 9.885 -#: ../en/ch00-preface.xml:588 9.886 +#: ../en/ch00-preface.xml:589 9.887 msgid "" 9.888 "Perforce has a centralised client/server architecture, with no client-side " 9.889 "caching of any data. Unlike modern revision control tools, Perforce requires " 9.890 @@ -2325,7 +2350,7 @@ 9.891 msgstr "" 9.892 9.893 #. type: Content of: <book><preface><sect1><sect2><para> 9.894 -#: ../en/ch00-preface.xml:594 9.895 +#: ../en/ch00-preface.xml:595 9.896 msgid "" 9.897 "The performance of Perforce is quite good for small teams, but it falls off " 9.898 "rapidly as the number of users grows beyond a few dozen. Modestly large " 9.899 @@ -2334,12 +2359,12 @@ 9.900 msgstr "" 9.901 9.902 #. type: Content of: <book><preface><sect1><sect2><title> 9.903 -#: ../en/ch00-preface.xml:603 9.904 +#: ../en/ch00-preface.xml:604 9.905 msgid "Choosing a revision control tool" 9.906 msgstr "选择版本控制工具" 9.907 9.908 #. type: Content of: <book><preface><sect1><sect2><para> 9.909 -#: ../en/ch00-preface.xml:605 9.910 +#: ../en/ch00-preface.xml:606 9.911 msgid "" 9.912 "With the exception of CVS, all of the tools listed above have unique " 9.913 "strengths that suit them to particular styles of work. There is no single " 9.914 @@ -2347,14 +2372,14 @@ 9.915 msgstr "" 9.916 9.917 #. type: Content of: <book><preface><sect1><sect2><para> 9.918 -#: ../en/ch00-preface.xml:610 9.919 +#: ../en/ch00-preface.xml:611 9.920 msgid "" 9.921 "As an example, Subversion is a good choice for working with frequently edited " 9.922 "binary files, due to its centralised nature and support for file locking." 9.923 msgstr "" 9.924 9.925 #. type: Content of: <book><preface><sect1><sect2><para> 9.926 -#: ../en/ch00-preface.xml:614 9.927 +#: ../en/ch00-preface.xml:615 9.928 msgid "" 9.929 "I personally find Mercurial's properties of simplicity, performance, and good " 9.930 "merge support to be a compelling combination that has served me well for " 9.931 @@ -2362,12 +2387,12 @@ 9.932 msgstr "" 9.933 9.934 #. type: Content of: <book><preface><sect1><title> 9.935 -#: ../en/ch00-preface.xml:622 9.936 +#: ../en/ch00-preface.xml:623 9.937 msgid "Switching from another tool to Mercurial" 9.938 msgstr "从其它工具切换到 Mercurial" 9.939 9.940 #. type: Content of: <book><preface><sect1><para> 9.941 -#: ../en/ch00-preface.xml:624 9.942 +#: ../en/ch00-preface.xml:625 9.943 msgid "" 9.944 "Mercurial is bundled with an extension named <literal role=\"hg-ext" 9.945 "\">convert</literal>, which can incrementally import revision history from " 9.946 @@ -2378,19 +2403,19 @@ 9.947 msgstr "" 9.948 9.949 #. type: Content of: <book><preface><sect1><para> 9.950 -#: ../en/ch00-preface.xml:632 9.951 +#: ../en/ch00-preface.xml:633 9.952 msgid "" 9.953 "The revision control tools supported by <literal role=\"hg-ext\">convert</" 9.954 "literal> are as follows:" 9.955 msgstr "<literal role=\"hg-ext\">convert</literal> 支持的版本控制工具有:" 9.956 9.957 #. type: Content of: <book><preface><sect1><itemizedlist><listitem><para> 9.958 -#: ../en/ch00-preface.xml:638 9.959 +#: ../en/ch00-preface.xml:639 9.960 msgid "Darcs" 9.961 msgstr "" 9.962 9.963 #. type: Content of: <book><preface><sect1><para> 9.964 -#: ../en/ch00-preface.xml:640 9.965 +#: ../en/ch00-preface.xml:641 9.966 msgid "" 9.967 "In addition, <literal role=\"hg-ext\">convert</literal> can export changes " 9.968 "from Mercurial to Subversion. This makes it possible to try Subversion and " 9.969 @@ -2399,7 +2424,7 @@ 9.970 msgstr "" 9.971 9.972 #. type: Content of: <book><preface><sect1><para> 9.973 -#: ../en/ch00-preface.xml:646 9.974 +#: ../en/ch00-preface.xml:647 9.975 msgid "" 9.976 "The <command role=\"hg-ext-convert\">convert</command> command is easy to " 9.977 "use. Simply point it at the path or URL of the source repository, optionally " 9.978 @@ -2409,12 +2434,12 @@ 9.979 msgstr "" 9.980 9.981 #. type: Content of: <book><preface><sect1><title> 9.982 -#: ../en/ch00-preface.xml:655 9.983 +#: ../en/ch00-preface.xml:656 9.984 msgid "A short history of revision control" 9.985 msgstr "版本控制简史" 9.986 9.987 #. type: Content of: <book><preface><sect1><para> 9.988 -#: ../en/ch00-preface.xml:657 9.989 +#: ../en/ch00-preface.xml:658 9.990 msgid "" 9.991 "The best known of the old-time revision control tools is SCCS (Source Code " 9.992 "Control System), which Marc Rochkind wrote at Bell Labs, in the early 1970s. " 9.993 @@ -2427,7 +2452,7 @@ 9.994 msgstr "" 9.995 9.996 #. type: Content of: <book><preface><sect1><para> 9.997 -#: ../en/ch00-preface.xml:668 9.998 +#: ../en/ch00-preface.xml:669 9.999 msgid "" 9.1000 "Walter Tichy developed a free alternative to SCCS in the early 1980s; he " 9.1001 "called his program RCS (Revision Control System). Like SCCS, RCS required " 9.1002 @@ -2436,7 +2461,7 @@ 9.1003 msgstr "" 9.1004 9.1005 #. type: Content of: <book><preface><sect1><para> 9.1006 -#: ../en/ch00-preface.xml:674 9.1007 +#: ../en/ch00-preface.xml:675 9.1008 msgid "" 9.1009 "Later in the 1980s, Dick Grune used RCS as a building block for a set of " 9.1010 "shell scripts he initially called cmt, but then renamed to CVS (Concurrent " 9.1011 @@ -2449,7 +2474,7 @@ 9.1012 msgstr "" 9.1013 9.1014 #. type: Content of: <book><preface><sect1><para> 9.1015 -#: ../en/ch00-preface.xml:685 9.1016 +#: ../en/ch00-preface.xml:686 9.1017 msgid "" 9.1018 "Brian Berliner took Grune's original scripts and rewrote them in C, releasing " 9.1019 "in 1989 the code that has since developed into the modern version of CVS. " 9.1020 @@ -2463,7 +2488,7 @@ 9.1021 msgstr "" 9.1022 9.1023 #. type: Content of: <book><preface><sect1><para> 9.1024 -#: ../en/ch00-preface.xml:696 9.1025 +#: ../en/ch00-preface.xml:697 9.1026 msgid "" 9.1027 "In the early 1990s, Sun Microsystems developed an early distributed revision " 9.1028 "control system, called TeamWare. A TeamWare workspace contains a complete " 9.1029 @@ -2473,7 +2498,7 @@ 9.1030 msgstr "" 9.1031 9.1032 #. type: Content of: <book><preface><sect1><para> 9.1033 -#: ../en/ch00-preface.xml:703 9.1034 +#: ../en/ch00-preface.xml:704 9.1035 msgid "" 9.1036 "As the 1990s progressed, awareness grew of a number of problems with CVS. It " 9.1037 "records simultaneous changes to multiple files individually, instead of " 9.1038 @@ -2485,7 +2510,7 @@ 9.1039 msgstr "" 9.1040 9.1041 #. type: Content of: <book><preface><sect1><para> 9.1042 -#: ../en/ch00-preface.xml:713 9.1043 +#: ../en/ch00-preface.xml:714 9.1044 msgid "" 9.1045 "In 2001, Jim Blandy and Karl Fogel, two developers who had worked on CVS, " 9.1046 "started a project to replace it with a tool that would have a better " 9.1047 @@ -2497,7 +2522,7 @@ 9.1048 msgstr "" 9.1049 9.1050 #. type: Content of: <book><preface><sect1><para> 9.1051 -#: ../en/ch00-preface.xml:722 9.1052 +#: ../en/ch00-preface.xml:723 9.1053 msgid "" 9.1054 "More or less simultaneously, Graydon Hoare began working on an ambitious " 9.1055 "distributed revision control system that he named Monotone. While Monotone " 9.1056 @@ -2508,7 +2533,7 @@ 9.1057 msgstr "" 9.1058 9.1059 #. type: Content of: <book><preface><sect1><para> 9.1060 -#: ../en/ch00-preface.xml:731 9.1061 +#: ../en/ch00-preface.xml:732 9.1062 msgid "" 9.1063 "Mercurial began life in 2005. While a few aspects of its design are " 9.1064 "influenced by Monotone, Mercurial focuses on ease of use, high performance, " 9.1065 @@ -2516,12 +2541,13 @@ 9.1066 msgstr "" 9.1067 9.1068 #. type: Content of: <book><preface><sect1><title> 9.1069 -#: ../en/ch00-preface.xml:739 9.1070 +#: ../en/ch00-preface.xml:740 9.1071 +#, fuzzy 9.1072 msgid "Colophon—this book is Free" 9.1073 msgstr "后记—本书是自由的!" 9.1074 9.1075 #. type: Content of: <book><preface><sect1><para> 9.1076 -#: ../en/ch00-preface.xml:741 9.1077 +#: ../en/ch00-preface.xml:742 9.1078 msgid "" 9.1079 "This book is licensed under the Open Publication License, and is produced " 9.1080 "entirely using Free Software tools. It is typeset with DocBook XML. " 9.1081 @@ -2530,7 +2556,7 @@ 9.1082 msgstr "" 9.1083 9.1084 #. type: Content of: <book><preface><sect1><para> 9.1085 -#: ../en/ch00-preface.xml:746 9.1086 +#: ../en/ch00-preface.xml:747 9.1087 msgid "" 9.1088 "The complete source code for this book is published as a Mercurial " 9.1089 "repository, at <ulink url=\"http://hg.serpentine.com/mercurial/book\">http://" 9.1090 @@ -2559,11 +2585,38 @@ 9.1091 9.1092 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1093 #: ../en/ch01-tour-basic.xml:15 9.1094 +msgid "Windows" 9.1095 +msgstr "" 9.1096 + 9.1097 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1098 +#: ../en/ch01-tour-basic.xml:17 9.1099 +msgid "" 9.1100 +"The best version of Mercurial for Windows is TortoiseHg, which can be found " 9.1101 +"at <ulink url=\"http://bitbucket.org/tortoisehg/stable/wiki/Home\">http://" 9.1102 +"bitbucket.org/tortoisehg/stable/wiki/Home</ulink>. This package has no " 9.1103 +"external dependencies; it <quote>just works</quote>. It provides both " 9.1104 +"command line and graphical user interfaces." 9.1105 +msgstr "" 9.1106 + 9.1107 +#. type: Content of: <book><chapter><sect1><sect2><title> 9.1108 +#: ../en/ch01-tour-basic.xml:27 9.1109 +msgid "Mac OS X" 9.1110 +msgstr "Mac OS X" 9.1111 + 9.1112 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1113 +#: ../en/ch01-tour-basic.xml:29 9.1114 +msgid "" 9.1115 +"Lee Cantey publishes an installer of Mercurial for Mac OS X at <ulink url=" 9.1116 +"\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>." 9.1117 +msgstr "" 9.1118 + 9.1119 +#. type: Content of: <book><chapter><sect1><sect2><title> 9.1120 +#: ../en/ch01-tour-basic.xml:35 9.1121 msgid "Linux" 9.1122 msgstr "Linux" 9.1123 9.1124 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1125 -#: ../en/ch01-tour-basic.xml:17 9.1126 +#: ../en/ch01-tour-basic.xml:37 9.1127 msgid "" 9.1128 "Because each Linux distribution has its own packaging tools, policies, and " 9.1129 "rate of development, it's difficult to give a comprehensive set of " 9.1130 @@ -2576,7 +2629,7 @@ 9.1131 "使用的发行版的 Mercurial 维护者的活跃程度。" 9.1132 9.1133 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1134 -#: ../en/ch01-tour-basic.xml:24 9.1135 +#: ../en/ch01-tour-basic.xml:44 9.1136 msgid "" 9.1137 "To keep things simple, I will focus on installing Mercurial from the command " 9.1138 "line under the most popular Linux distributions. Most of these distributions " 9.1139 @@ -2588,102 +2641,44 @@ 9.1140 "Mercurial;寻找的包名称是 <literal>mercurial</literal>。" 9.1141 9.1142 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1143 -#: ../en/ch01-tour-basic.xml:32 9.1144 -msgid "Debian:" 9.1145 -msgstr "Debian:" 9.1146 +#: ../en/ch01-tour-basic.xml:52 9.1147 +msgid "Ubuntu and Debian:" 9.1148 +msgstr "" 9.1149 9.1150 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1151 -#: ../en/ch01-tour-basic.xml:34 9.1152 -msgid "Fedora Core:" 9.1153 -msgstr "Fedora Core:" 9.1154 +#: ../en/ch01-tour-basic.xml:54 9.1155 +#, fuzzy 9.1156 +msgid "Fedora and OpenSUSE:" 9.1157 +msgstr "OpenSUSE:" 9.1158 9.1159 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1160 -#: ../en/ch01-tour-basic.xml:36 9.1161 +#: ../en/ch01-tour-basic.xml:56 9.1162 msgid "Gentoo:" 9.1163 msgstr "Gentoo:" 9.1164 9.1165 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1166 -#: ../en/ch01-tour-basic.xml:38 9.1167 -msgid "OpenSUSE:" 9.1168 -msgstr "OpenSUSE:" 9.1169 - 9.1170 -#. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1171 -#: ../en/ch01-tour-basic.xml:40 9.1172 -msgid "" 9.1173 -"Ubuntu: Ubuntu's Mercurial package is based on Debian's. To install it, run " 9.1174 -"the following command." 9.1175 -msgstr "Ubuntu: Ubuntu 的 Mercurial 包基于 Debian。安装时,使用如下命令:" 9.1176 - 9.1177 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1178 -#: ../en/ch01-tour-basic.xml:48 9.1179 +#: ../en/ch01-tour-basic.xml:62 9.1180 msgid "Solaris" 9.1181 msgstr "Solaris" 9.1182 9.1183 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1184 -#: ../en/ch01-tour-basic.xml:50 9.1185 +#: ../en/ch01-tour-basic.xml:64 9.1186 +#, fuzzy 9.1187 msgid "" 9.1188 "SunFreeWare, at <ulink url=\"http://www.sunfreeware.com\">http://www." 9.1189 -"sunfreeware.com</ulink>, is a good source for a large number of pre-built " 9.1190 -"Solaris packages for 32 and 64 bit Intel and Sparc architectures, including " 9.1191 -"current versions of Mercurial." 9.1192 +"sunfreeware.com</ulink>, provides prebuilt packages of Mercurial." 9.1193 msgstr "" 9.1194 "位于 <ulink url=\"http://www.sunfreeware.com\">http://www.sunfreeware.com</" 9.1195 "ulink> 的 SunFreeWare 是很好的二进制安装源,它包含 Intel 和 Sparc 架构的 32 位" 9.1196 "和 64 位包,包含 Mercurial 的当前版本。" 9.1197 9.1198 -#. type: Content of: <book><chapter><sect1><sect2><title> 9.1199 -#: ../en/ch01-tour-basic.xml:58 9.1200 -msgid "Mac OS X" 9.1201 -msgstr "Mac OS X" 9.1202 - 9.1203 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1204 -#: ../en/ch01-tour-basic.xml:60 9.1205 -msgid "" 9.1206 -"Lee Cantey publishes an installer of Mercurial for Mac OS X at <ulink url=" 9.1207 -"\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " 9.1208 -"This package works on both Intel- and Power-based Macs. Before you can use " 9.1209 -"it, you must install a compatible version of Universal MacPython " 9.1210 -"<citation>web:macpython</citation>. This is easy to do; simply follow the " 9.1211 -"instructions on Lee's site." 9.1212 -msgstr "" 9.1213 - 9.1214 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1215 -#: ../en/ch01-tour-basic.xml:69 9.1216 -msgid "" 9.1217 -"It's also possible to install Mercurial using Fink or MacPorts, two popular " 9.1218 -"free package managers for Mac OS X. If you have Fink, use <command>sudo apt-" 9.1219 -"get install mercurial-py25</command>. If MacPorts, <command>sudo port " 9.1220 -"install mercurial</command>." 9.1221 -msgstr "" 9.1222 - 9.1223 -#. type: Content of: <book><chapter><sect1><sect2><title> 9.1224 -#: ../en/ch01-tour-basic.xml:77 9.1225 -msgid "Windows" 9.1226 -msgstr "" 9.1227 - 9.1228 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1229 -#: ../en/ch01-tour-basic.xml:79 9.1230 -msgid "" 9.1231 -"Lee Cantey publishes an installer of Mercurial for Windows at <ulink url=" 9.1232 -"\"http://mercurial.berkwood.com\">http://mercurial.berkwood.com</ulink>. " 9.1233 -"This package has no external dependencies; it <quote>just works</quote>." 9.1234 -msgstr "" 9.1235 - 9.1236 -#. type: Content of: <book><chapter><sect1><sect2><note><para> 9.1237 -#: ../en/ch01-tour-basic.xml:86 9.1238 -msgid "" 9.1239 -"The Windows version of Mercurial does not automatically convert line endings " 9.1240 -"between Windows and Unix styles. If you want to share work with Unix users, " 9.1241 -"you must do a little additional configuration work. XXX Flesh this out." 9.1242 -msgstr "" 9.1243 - 9.1244 #. type: Content of: <book><chapter><sect1><title> 9.1245 -#: ../en/ch01-tour-basic.xml:96 9.1246 +#: ../en/ch01-tour-basic.xml:73 9.1247 msgid "Getting started" 9.1248 msgstr "开始" 9.1249 9.1250 #. type: Content of: <book><chapter><sect1><para> 9.1251 -#: ../en/ch01-tour-basic.xml:98 9.1252 +#: ../en/ch01-tour-basic.xml:75 9.1253 msgid "" 9.1254 "To begin, we'll use the <command role=\"hg-cmd\">hg version</command> command " 9.1255 "to find out whether Mercurial is actually installed properly. The actual " 9.1256 @@ -2692,12 +2687,12 @@ 9.1257 msgstr "" 9.1258 9.1259 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1260 -#: ../en/ch01-tour-basic.xml:107 9.1261 +#: ../en/ch01-tour-basic.xml:84 9.1262 msgid "Built-in help" 9.1263 msgstr "内置帮助" 9.1264 9.1265 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1266 -#: ../en/ch01-tour-basic.xml:109 9.1267 +#: ../en/ch01-tour-basic.xml:86 9.1268 msgid "" 9.1269 "Mercurial provides a built-in help system. This is invaluable for those " 9.1270 "times when you find yourself stuck trying to remember how to run a command. " 9.1271 @@ -2708,7 +2703,7 @@ 9.1272 msgstr "" 9.1273 9.1274 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1275 -#: ../en/ch01-tour-basic.xml:120 9.1276 +#: ../en/ch01-tour-basic.xml:97 9.1277 msgid "" 9.1278 "For a more impressive level of detail (which you won't usually need) run " 9.1279 "<command role=\"hg-cmd\">hg help <option role=\"hg-opt-global\">-v</option></" 9.1280 @@ -2718,12 +2713,12 @@ 9.1281 msgstr "" 9.1282 9.1283 #. type: Content of: <book><chapter><sect1><title> 9.1284 -#: ../en/ch01-tour-basic.xml:131 9.1285 +#: ../en/ch01-tour-basic.xml:108 9.1286 msgid "Working with a repository" 9.1287 msgstr "使用版本库" 9.1288 9.1289 #. type: Content of: <book><chapter><sect1><para> 9.1290 -#: ../en/ch01-tour-basic.xml:133 9.1291 +#: ../en/ch01-tour-basic.xml:110 9.1292 msgid "" 9.1293 "In Mercurial, everything happens inside a <emphasis>repository</emphasis>. " 9.1294 "The repository for a project contains all of the files that <quote>belong to</" 9.1295 @@ -2731,7 +2726,7 @@ 9.1296 msgstr "" 9.1297 9.1298 #. type: Content of: <book><chapter><sect1><para> 9.1299 -#: ../en/ch01-tour-basic.xml:139 9.1300 +#: ../en/ch01-tour-basic.xml:116 9.1301 msgid "" 9.1302 "There's nothing particularly magical about a repository; it is simply a " 9.1303 "directory tree in your filesystem that Mercurial treats as special. You can " 9.1304 @@ -2740,46 +2735,55 @@ 9.1305 msgstr "" 9.1306 9.1307 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1308 -#: ../en/ch01-tour-basic.xml:146 9.1309 +#: ../en/ch01-tour-basic.xml:123 9.1310 msgid "Making a local copy of a repository" 9.1311 msgstr "创建版本库的工作副本" 9.1312 9.1313 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1314 -#: ../en/ch01-tour-basic.xml:148 9.1315 +#: ../en/ch01-tour-basic.xml:125 9.1316 msgid "" 9.1317 "<emphasis>Copying</emphasis> a repository is just a little bit special. " 9.1318 "While you could use a normal file copying command to make a copy of a " 9.1319 "repository, it's best to use a built-in command that Mercurial provides. " 9.1320 "This command is called <command role=\"hg-cmd\">hg clone</command>, because " 9.1321 -"it creates an identical copy of an existing repository." 9.1322 -msgstr "" 9.1323 - 9.1324 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1325 -#: ../en/ch01-tour-basic.xml:157 9.1326 +"it makes an identical copy of an existing repository." 9.1327 +msgstr "" 9.1328 + 9.1329 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1330 +#: ../en/ch01-tour-basic.xml:134 9.1331 +msgid "" 9.1332 +"One advantage of using <command role=\"hg-cmd\">hg clone</command> is that, " 9.1333 +"as we can see above, it lets us clone repositories over the network. Another " 9.1334 +"is that it remembers where we cloned from, which we'll find useful soon when " 9.1335 +"we want to fetch new changes from another repository." 9.1336 +msgstr "" 9.1337 + 9.1338 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1339 +#: ../en/ch01-tour-basic.xml:140 9.1340 msgid "" 9.1341 "If our clone succeeded, we should now have a local directory called <filename " 9.1342 "class=\"directory\">hello</filename>. This directory will contain some files." 9.1343 msgstr "" 9.1344 9.1345 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1346 -#: ../en/ch01-tour-basic.xml:163 9.1347 +#: ../en/ch01-tour-basic.xml:146 9.1348 msgid "" 9.1349 "These files have the same contents and history in our repository as they do " 9.1350 "in the repository we cloned." 9.1351 msgstr "" 9.1352 9.1353 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1354 -#: ../en/ch01-tour-basic.xml:166 9.1355 +#: ../en/ch01-tour-basic.xml:149 9.1356 msgid "" 9.1357 "Every Mercurial repository is complete, self-contained, and independent. It " 9.1358 -"contains its own private copy of a project's files and history. A cloned " 9.1359 -"repository remembers the location of the repository it was cloned from, but " 9.1360 -"it does not communicate with that repository, or any other, unless you tell " 9.1361 -"it to." 9.1362 -msgstr "" 9.1363 - 9.1364 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1365 -#: ../en/ch01-tour-basic.xml:173 9.1366 +"contains its own private copy of a project's files and history. As we just " 9.1367 +"mentioned, a cloned repository remembers the location of the repository it " 9.1368 +"was cloned from, but Mercurial will not communicate with that repository, or " 9.1369 +"any other, unless you tell it to." 9.1370 +msgstr "" 9.1371 + 9.1372 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1373 +#: ../en/ch01-tour-basic.xml:156 9.1374 msgid "" 9.1375 "What this means for now is that we're free to experiment with our repository, " 9.1376 "safe in the knowledge that it's a private <quote>sandbox</quote> that won't " 9.1377 @@ -2787,12 +2791,12 @@ 9.1378 msgstr "" 9.1379 9.1380 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1381 -#: ../en/ch01-tour-basic.xml:179 9.1382 +#: ../en/ch01-tour-basic.xml:162 9.1383 msgid "What's in a repository?" 9.1384 msgstr "什么是版本库?" 9.1385 9.1386 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1387 -#: ../en/ch01-tour-basic.xml:181 9.1388 +#: ../en/ch01-tour-basic.xml:164 9.1389 msgid "" 9.1390 "When we take a more detailed look inside a repository, we can see that it " 9.1391 "contains a directory named <filename class=\"directory\">.hg</filename>. " 9.1392 @@ -2800,7 +2804,7 @@ 9.1393 msgstr "" 9.1394 9.1395 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1396 -#: ../en/ch01-tour-basic.xml:188 9.1397 +#: ../en/ch01-tour-basic.xml:171 9.1398 msgid "" 9.1399 "The contents of the <filename class=\"directory\">.hg</filename> directory " 9.1400 "and its subdirectories are private to Mercurial. Every other file and " 9.1401 @@ -2808,7 +2812,7 @@ 9.1402 msgstr "" 9.1403 9.1404 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1405 -#: ../en/ch01-tour-basic.xml:194 9.1406 +#: ../en/ch01-tour-basic.xml:177 9.1407 msgid "" 9.1408 "To introduce a little terminology, the <filename class=\"directory\">.hg</" 9.1409 "filename> directory is the <quote>real</quote> repository, and all of the " 9.1410 @@ -2821,20 +2825,20 @@ 9.1411 msgstr "" 9.1412 9.1413 #. type: Content of: <book><chapter><sect1><title> 9.1414 -#: ../en/ch01-tour-basic.xml:209 9.1415 +#: ../en/ch01-tour-basic.xml:192 9.1416 msgid "A tour through history" 9.1417 msgstr "回溯历史" 9.1418 9.1419 #. type: Content of: <book><chapter><sect1><para> 9.1420 -#: ../en/ch01-tour-basic.xml:211 9.1421 +#: ../en/ch01-tour-basic.xml:194 9.1422 msgid "" 9.1423 "One of the first things we might want to do with a new, unfamiliar repository " 9.1424 "is understand its history. The <command role=\"hg-cmd\">hg log</command> " 9.1425 -"command gives us a view of history." 9.1426 -msgstr "" 9.1427 - 9.1428 -#. type: Content of: <book><chapter><sect1><para> 9.1429 -#: ../en/ch01-tour-basic.xml:218 9.1430 +"command gives us a view of the history of changes in the repository." 9.1431 +msgstr "" 9.1432 + 9.1433 +#. type: Content of: <book><chapter><sect1><para> 9.1434 +#: ../en/ch01-tour-basic.xml:201 9.1435 msgid "" 9.1436 "By default, this command prints a brief paragraph of output for each change " 9.1437 "to the project that was recorded. In Mercurial terminology, we call each of " 9.1438 @@ -2843,24 +2847,27 @@ 9.1439 msgstr "" 9.1440 9.1441 #. type: Content of: <book><chapter><sect1><para> 9.1442 -#: ../en/ch01-tour-basic.xml:224 9.1443 +#: ../en/ch01-tour-basic.xml:207 9.1444 msgid "" 9.1445 "The fields in a record of output from <command role=\"hg-cmd\">hg log</" 9.1446 "command> are as follows." 9.1447 msgstr "" 9.1448 9.1449 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1450 -#: ../en/ch01-tour-basic.xml:227 9.1451 +#: ../en/ch01-tour-basic.xml:211 9.1452 msgid "" 9.1453 "<literal>changeset</literal>: This field has the format of a number, followed " 9.1454 -"by a colon, followed by a hexadecimal string. These are " 9.1455 -"<emphasis>identifiers</emphasis> for the changeset. There are two " 9.1456 -"identifiers because the number is shorter and easier to type than the hex " 9.1457 -"string." 9.1458 +"by a colon, followed by a hexadecimal (or <emphasis>hex</emphasis>) string. " 9.1459 +"These are <emphasis>identifiers</emphasis> for the changeset. The hex string " 9.1460 +"is a unique identifier: the same hex string will always refer to the same " 9.1461 +"changeset. The number is shorter and easier to type than the hex string, but " 9.1462 +"it isn't unique: the same number in two different clones of a repository may " 9.1463 +"identify different changesets. Why provide the number at all, then? For " 9.1464 +"local convenience." 9.1465 msgstr "" 9.1466 9.1467 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1468 -#: ../en/ch01-tour-basic.xml:233 9.1469 +#: ../en/ch01-tour-basic.xml:223 9.1470 msgid "" 9.1471 "<literal>user</literal>: The identity of the person who created the " 9.1472 "changeset. This is a free-form field, but it most often contains a person's " 9.1473 @@ -2868,7 +2875,7 @@ 9.1474 msgstr "" 9.1475 9.1476 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1477 -#: ../en/ch01-tour-basic.xml:237 9.1478 +#: ../en/ch01-tour-basic.xml:227 9.1479 msgid "" 9.1480 "<literal>date</literal>: The date and time on which the changeset was " 9.1481 "created, and the timezone in which it was created. (The date and time are " 9.1482 @@ -2877,21 +2884,30 @@ 9.1483 msgstr "" 9.1484 9.1485 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1486 -#: ../en/ch01-tour-basic.xml:242 9.1487 +#: ../en/ch01-tour-basic.xml:232 9.1488 msgid "" 9.1489 "<literal>summary</literal>: The first line of the text message that the " 9.1490 "creator of the changeset entered to describe the changeset." 9.1491 msgstr "" 9.1492 9.1493 -#. type: Content of: <book><chapter><sect1><para> 9.1494 -#: ../en/ch01-tour-basic.xml:245 9.1495 +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1496 +#: ../en/ch01-tour-basic.xml:236 9.1497 +msgid "" 9.1498 +"Some changesets, such as the first in the list above, have a <literal>tag</" 9.1499 +"literal> field. A tag is another way to identify a changeset, by giving it " 9.1500 +"an easy-to-remember name. (The tag named <literal>tip</literal> is special: " 9.1501 +"it always refers to the newest change in a repository.)" 9.1502 +msgstr "" 9.1503 + 9.1504 +#. type: Content of: <book><chapter><sect1><para> 9.1505 +#: ../en/ch01-tour-basic.xml:244 9.1506 msgid "" 9.1507 "The default output printed by <command role=\"hg-cmd\">hg log</command> is " 9.1508 "purely a summary; it is missing a lot of detail." 9.1509 msgstr "" 9.1510 9.1511 #. type: Content of: <book><chapter><sect1><para> 9.1512 -#: ../en/ch01-tour-basic.xml:249 9.1513 +#: ../en/ch01-tour-basic.xml:248 9.1514 msgid "" 9.1515 "<xref linkend=\"fig:tour-basic:history\"/> provides a graphical " 9.1516 "representation of the history of the <filename class=\"directory\">hello</" 9.1517 @@ -2901,26 +2917,26 @@ 9.1518 msgstr "" 9.1519 9.1520 #. type: Content of: <book><chapter><sect1><figure><title> 9.1521 -#: ../en/ch01-tour-basic.xml:258 9.1522 +#: ../en/ch01-tour-basic.xml:257 9.1523 msgid "" 9.1524 "Graphical history of the <filename class=\"directory\">hello</filename> " 9.1525 "repository" 9.1526 msgstr "版本库 <filename class=\"directory\">hello</filename> 的历史图" 9.1527 9.1528 #. type: Content of: <book><chapter><sect1><figure> 9.1529 -#: ../en/ch01-tour-basic.xml:260 ../en/ch02-tour-merge.xml:50 9.1530 +#: ../en/ch01-tour-basic.xml:259 ../en/ch02-tour-merge.xml:50 9.1531 #: ../en/ch02-tour-merge.xml:181 ../en/ch03-concepts.xml:293 9.1532 msgid "<placeholder type=\"mediaobject\" id=\"0\"/>" 9.1533 msgstr "" 9.1534 9.1535 #. type: Content of: <book><chapter><sect1><figure><mediaobject> 9.1536 -#: ../en/ch01-tour-basic.xml:261 9.1537 +#: ../en/ch01-tour-basic.xml:260 9.1538 msgid "" 9.1539 "<imageobject><imagedata fileref=\"figs/tour-history.png\"/></imageobject>" 9.1540 msgstr "" 9.1541 9.1542 #. type: Content of: <book><chapter><sect1><sect2><figure><mediaobject><textobject><phrase> 9.1543 -#: ../en/ch01-tour-basic.xml:262 ../en/ch02-tour-merge.xml:52 9.1544 +#: ../en/ch01-tour-basic.xml:261 ../en/ch02-tour-merge.xml:52 9.1545 #: ../en/ch02-tour-merge.xml:82 ../en/ch02-tour-merge.xml:129 9.1546 #: ../en/ch02-tour-merge.xml:183 ../en/ch02-tour-merge.xml:254 9.1547 #: ../en/ch03-concepts.xml:57 ../en/ch03-concepts.xml:106 9.1548 @@ -2934,12 +2950,12 @@ 9.1549 msgstr "" 9.1550 9.1551 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1552 -#: ../en/ch01-tour-basic.xml:267 9.1553 +#: ../en/ch01-tour-basic.xml:266 9.1554 msgid "Changesets, revisions, and talking to other people" 9.1555 msgstr "修改集,版本,与其它用户交互" 9.1556 9.1557 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1558 -#: ../en/ch01-tour-basic.xml:270 9.1559 +#: ../en/ch01-tour-basic.xml:269 9.1560 msgid "" 9.1561 "As English is a notoriously sloppy language, and computer science has a " 9.1562 "hallowed history of terminological confusion (why use one term when four will " 9.1563 @@ -2951,7 +2967,7 @@ 9.1564 msgstr "" 9.1565 9.1566 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1567 -#: ../en/ch01-tour-basic.xml:280 9.1568 +#: ../en/ch01-tour-basic.xml:279 9.1569 msgid "" 9.1570 "While it doesn't matter what <emphasis>word</emphasis> you use to refer to " 9.1571 "the concept of <quote>a changeset</quote>, the <emphasis>identifier</" 9.1572 @@ -2962,33 +2978,35 @@ 9.1573 msgstr "" 9.1574 9.1575 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1576 -#: ../en/ch01-tour-basic.xml:289 9.1577 -msgid "" 9.1578 -"The revision number is <emphasis>only valid in that repository</emphasis>," 9.1579 +#: ../en/ch01-tour-basic.xml:288 9.1580 +msgid "" 9.1581 +"The revision number is a handy notation that is <emphasis>only valid in that " 9.1582 +"repository</emphasis>." 9.1583 msgstr "" 9.1584 9.1585 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para> 9.1586 #: ../en/ch01-tour-basic.xml:291 9.1587 msgid "" 9.1588 -"while the hex string is the <emphasis>permanent, unchanging identifier</" 9.1589 +"The hexadecimal string is the <emphasis>permanent, unchanging identifier</" 9.1590 "emphasis> that will always identify that exact changeset in <emphasis>every</" 9.1591 "emphasis> copy of the repository." 9.1592 msgstr "" 9.1593 9.1594 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1595 -#: ../en/ch01-tour-basic.xml:296 9.1596 +#: ../en/ch01-tour-basic.xml:297 9.1597 msgid "" 9.1598 "This distinction is important. If you send someone an email talking about " 9.1599 "<quote>revision 33</quote>, there's a high likelihood that their revision 33 " 9.1600 "will <emphasis>not be the same</emphasis> as yours. The reason for this is " 9.1601 "that a revision number depends on the order in which changes arrived in a " 9.1602 "repository, and there is no guarantee that the same changes will happen in " 9.1603 -"the same order in different repositories. Three changes $a,b,c$ can easily " 9.1604 -"appear in one repository as $0,1,2$, while in another as $1,0,2$." 9.1605 -msgstr "" 9.1606 - 9.1607 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1608 -#: ../en/ch01-tour-basic.xml:306 9.1609 +"the same order in different repositories. Three changes <literal>a,b,c</" 9.1610 +"literal> can easily appear in one repository as <literal>0,1,2</literal>, " 9.1611 +"while in another as <literal>0,2,1</literal>." 9.1612 +msgstr "" 9.1613 + 9.1614 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1615 +#: ../en/ch01-tour-basic.xml:309 9.1616 msgid "" 9.1617 "Mercurial uses revision numbers purely as a convenient shorthand. If you " 9.1618 "need to discuss a changeset with someone, or make a record of a changeset for " 9.1619 @@ -2997,22 +3015,22 @@ 9.1620 msgstr "" 9.1621 9.1622 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1623 -#: ../en/ch01-tour-basic.xml:314 9.1624 +#: ../en/ch01-tour-basic.xml:317 9.1625 msgid "Viewing specific revisions" 9.1626 msgstr "察看指定版本" 9.1627 9.1628 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1629 -#: ../en/ch01-tour-basic.xml:316 9.1630 +#: ../en/ch01-tour-basic.xml:319 9.1631 msgid "" 9.1632 "To narrow the output of <command role=\"hg-cmd\">hg log</command> down to a " 9.1633 "single revision, use the <option role=\"hg-opt-log\">-r</option> (or <option " 9.1634 "role=\"hg-opt-log\">--rev</option>) option. You can use either a revision " 9.1635 -"number or a long-form changeset identifier, and you can provide as many " 9.1636 -"revisions as you want." 9.1637 -msgstr "" 9.1638 - 9.1639 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.1640 -#: ../en/ch01-tour-basic.xml:325 9.1641 +"number or a hexadecimal identifier, and you can provide as many revisions as " 9.1642 +"you want." 9.1643 +msgstr "" 9.1644 + 9.1645 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1646 +#: ../en/ch01-tour-basic.xml:328 9.1647 msgid "" 9.1648 "If you want to see the history of several revisions without having to list " 9.1649 "each one, you can use <emphasis>range notation</emphasis>; this lets you " 9.1650 @@ -3021,7 +3039,7 @@ 9.1651 msgstr "" 9.1652 9.1653 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1654 -#: ../en/ch01-tour-basic.xml:333 9.1655 +#: ../en/ch01-tour-basic.xml:336 9.1656 msgid "" 9.1657 "Mercurial also honours the order in which you specify revisions, so <command " 9.1658 "role=\"hg-cmd\">hg log -r 2:4</command> prints 2, 3, and 4. while <command " 9.1659 @@ -3029,12 +3047,12 @@ 9.1660 msgstr "" 9.1661 9.1662 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1663 -#: ../en/ch01-tour-basic.xml:340 9.1664 +#: ../en/ch01-tour-basic.xml:343 9.1665 msgid "More detailed information" 9.1666 msgstr "更详细的信息" 9.1667 9.1668 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1669 -#: ../en/ch01-tour-basic.xml:342 9.1670 +#: ../en/ch01-tour-basic.xml:345 9.1671 msgid "" 9.1672 "While the summary information printed by <command role=\"hg-cmd\">hg log</" 9.1673 "command> is useful if you already know what you're looking for, you may need " 9.1674 @@ -3046,7 +3064,7 @@ 9.1675 msgstr "" 9.1676 9.1677 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1678 -#: ../en/ch01-tour-basic.xml:354 9.1679 +#: ../en/ch01-tour-basic.xml:357 9.1680 msgid "" 9.1681 "If you want to see both the description and content of a change, add the " 9.1682 "<option role=\"hg-opt-log\">-p</option> (or <option role=\"hg-opt-log\">--" 9.1683 @@ -3055,13 +3073,20 @@ 9.1684 "before, see <xref linkend=\"sec:mq:patch\"/> for an overview)." 9.1685 msgstr "" 9.1686 9.1687 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.1688 +#: ../en/ch01-tour-basic.xml:367 9.1689 +msgid "" 9.1690 +"The <option role=\"hg-opt-log\">-p</option> option is tremendously useful, so " 9.1691 +"it's well worth remembering." 9.1692 +msgstr "" 9.1693 + 9.1694 #. type: Content of: <book><chapter><sect1><title> 9.1695 -#: ../en/ch01-tour-basic.xml:367 9.1696 +#: ../en/ch01-tour-basic.xml:374 9.1697 msgid "All about command options" 9.1698 msgstr "命令选项" 9.1699 9.1700 #. type: Content of: <book><chapter><sect1><para> 9.1701 -#: ../en/ch01-tour-basic.xml:369 9.1702 +#: ../en/ch01-tour-basic.xml:376 9.1703 msgid "" 9.1704 "Let's take a brief break from exploring Mercurial commands to discuss a " 9.1705 "pattern in the way that they work; you may find this useful to keep in mind " 9.1706 @@ -3069,7 +3094,7 @@ 9.1707 msgstr "" 9.1708 9.1709 #. type: Content of: <book><chapter><sect1><para> 9.1710 -#: ../en/ch01-tour-basic.xml:373 9.1711 +#: ../en/ch01-tour-basic.xml:380 9.1712 msgid "" 9.1713 "Mercurial has a consistent and straightforward approach to dealing with the " 9.1714 "options that you can pass to commands. It follows the conventions for " 9.1715 @@ -3077,7 +3102,7 @@ 9.1716 msgstr "" 9.1717 9.1718 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1719 -#: ../en/ch01-tour-basic.xml:378 9.1720 +#: ../en/ch01-tour-basic.xml:387 9.1721 msgid "" 9.1722 "Every option has a long name. For example, as we've already seen, the " 9.1723 "<command role=\"hg-cmd\">hg log</command> command accepts a <option role=\"hg-" 9.1724 @@ -3085,7 +3110,7 @@ 9.1725 msgstr "" 9.1726 9.1727 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1728 -#: ../en/ch01-tour-basic.xml:382 9.1729 +#: ../en/ch01-tour-basic.xml:393 9.1730 msgid "" 9.1731 "Most options have short names, too. Instead of <option role=\"hg-opt-log\">--" 9.1732 "rev</option>, we can use <option role=\"hg-opt-log\">-r</option>. (The " 9.1733 @@ -3094,15 +3119,15 @@ 9.1734 msgstr "" 9.1735 9.1736 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1737 -#: ../en/ch01-tour-basic.xml:387 9.1738 -msgid "" 9.1739 -"Long options start with two dashes (e.g. <option role=\"hg-opt-log\">--rev</" 9.1740 +#: ../en/ch01-tour-basic.xml:400 9.1741 +msgid "" 9.1742 +"Long options start with two dashes (e.g. <option role=\"hg-opt-log\">--rev</" 9.1743 "option>), while short options start with one (e.g. <option role=\"hg-opt-log" 9.1744 "\">-r</option>)." 9.1745 msgstr "" 9.1746 9.1747 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1748 -#: ../en/ch01-tour-basic.xml:391 9.1749 +#: ../en/ch01-tour-basic.xml:406 9.1750 msgid "" 9.1751 "Option naming and usage is consistent across commands. For example, every " 9.1752 "command that lets you specify a changeset ID or revision number accepts both " 9.1753 @@ -3110,8 +3135,16 @@ 9.1754 "rev</option> arguments." 9.1755 msgstr "" 9.1756 9.1757 -#. type: Content of: <book><chapter><sect1><para> 9.1758 -#: ../en/ch01-tour-basic.xml:397 9.1759 +#. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para> 9.1760 +#: ../en/ch01-tour-basic.xml:413 9.1761 +msgid "" 9.1762 +"If you are using short options, you can save typing by running them together. " 9.1763 +"For example, the command <command role=\"hg-cmd\">hg log -v -p -r 2</command> " 9.1764 +"can be written as <command role=\"hg-cmd\">hg log -vpr2</command>." 9.1765 +msgstr "" 9.1766 + 9.1767 +#. type: Content of: <book><chapter><sect1><para> 9.1768 +#: ../en/ch01-tour-basic.xml:420 9.1769 msgid "" 9.1770 "In the examples throughout this book, I use short options instead of long. " 9.1771 "This just reflects my own preference, so don't read anything significant into " 9.1772 @@ -3119,7 +3152,7 @@ 9.1773 msgstr "" 9.1774 9.1775 #. type: Content of: <book><chapter><sect1><para> 9.1776 -#: ../en/ch01-tour-basic.xml:401 9.1777 +#: ../en/ch01-tour-basic.xml:424 9.1778 msgid "" 9.1779 "Most commands that print output of some kind will print more output when " 9.1780 "passed a <option role=\"hg-opt-global\">-v</option> (or <option role=\"hg-opt-" 9.1781 @@ -3127,31 +3160,56 @@ 9.1782 "opt-global\">-q</option> (or <option role=\"hg-opt-global\">--quiet</option>)." 9.1783 msgstr "" 9.1784 9.1785 +#. type: Content of: <book><chapter><sect1><note><title> 9.1786 +#: ../en/ch01-tour-basic.xml:431 9.1787 +msgid "Option naming consistency" 9.1788 +msgstr "" 9.1789 + 9.1790 +#. type: Content of: <book><chapter><sect1><note><para> 9.1791 +#: ../en/ch01-tour-basic.xml:433 9.1792 +msgid "" 9.1793 +"Almost always, Mercurial commands use consistent option names to refer to the " 9.1794 +"same concepts. For instance, if a command deals with changesets, you'll " 9.1795 +"always identify them with <option role=\"hg-opt-log\">--rev</option> or " 9.1796 +"<option role=\"hg-opt-log\">-r</option>. This consistent use of option names " 9.1797 +"makes it easier to remember what options a particular command takes." 9.1798 +msgstr "" 9.1799 + 9.1800 #. type: Content of: <book><chapter><sect1><title> 9.1801 -#: ../en/ch01-tour-basic.xml:409 9.1802 +#: ../en/ch01-tour-basic.xml:444 9.1803 msgid "Making and reviewing changes" 9.1804 msgstr "创建和复审修改" 9.1805 9.1806 #. type: Content of: <book><chapter><sect1><para> 9.1807 -#: ../en/ch01-tour-basic.xml:411 9.1808 +#: ../en/ch01-tour-basic.xml:446 9.1809 msgid "" 9.1810 "Now that we have a grasp of viewing history in Mercurial, let's take a look " 9.1811 "at making some changes and examining them." 9.1812 msgstr "" 9.1813 9.1814 #. type: Content of: <book><chapter><sect1><para> 9.1815 -#: ../en/ch01-tour-basic.xml:415 9.1816 +#: ../en/ch01-tour-basic.xml:450 9.1817 msgid "" 9.1818 "The first thing we'll do is isolate our experiment in a repository of its " 9.1819 "own. We use the <command role=\"hg-cmd\">hg clone</command> command, but we " 9.1820 "don't need to clone a copy of the remote repository. Since we already have a " 9.1821 "copy of it locally, we can just clone that instead. This is much faster than " 9.1822 "cloning over the network, and cloning a local repository uses less disk space " 9.1823 -"in most cases, too." 9.1824 -msgstr "" 9.1825 - 9.1826 -#. type: Content of: <book><chapter><sect1><para> 9.1827 -#: ../en/ch01-tour-basic.xml:425 9.1828 +"in most cases, too<placeholder type=\"footnote\" id=\"0\"/>." 9.1829 +msgstr "" 9.1830 + 9.1831 +#. type: Content of: <book><chapter><sect1><para><footnote><para> 9.1832 +#: ../en/ch01-tour-basic.xml:457 9.1833 +msgid "" 9.1834 +"The saving of space arises when source and destination repositories are on " 9.1835 +"the same filesystem, in which case Mercurial will use hardlinks to do copy-on-" 9.1836 +"write sharing of its internal metadata. If that explanation meant nothing to " 9.1837 +"you, don't worry: everything happens transparently and automatically, and you " 9.1838 +"don't need to understand it." 9.1839 +msgstr "" 9.1840 + 9.1841 +#. type: Content of: <book><chapter><sect1><para> 9.1842 +#: ../en/ch01-tour-basic.xml:467 9.1843 msgid "" 9.1844 "As an aside, it's often good practice to keep a <quote>pristine</quote> copy " 9.1845 "of a remote repository around, which you can then make temporary clones of to " 9.1846 @@ -3163,27 +3221,27 @@ 9.1847 msgstr "" 9.1848 9.1849 #. type: Content of: <book><chapter><sect1><para> 9.1850 -#: ../en/ch01-tour-basic.xml:434 9.1851 +#: ../en/ch01-tour-basic.xml:476 9.1852 msgid "" 9.1853 "In our <filename class=\"directory\">my-hello</filename> repository, we have " 9.1854 "a file <filename>hello.c</filename> that contains the classic <quote>hello, " 9.1855 -"world</quote> program. Let's use the ancient and venerable <command>sed</" 9.1856 -"command> command to edit this file so that it prints a second line of " 9.1857 -"output. (I'm only using <command>sed</command> to do this because it's easy " 9.1858 -"to write a scripted example this way. Since you're not under the same " 9.1859 -"constraint, you probably won't want to use <command>sed</command>; simply use " 9.1860 -"your preferred text editor to do the same thing.)" 9.1861 -msgstr "" 9.1862 - 9.1863 -#. type: Content of: <book><chapter><sect1><para> 9.1864 -#: ../en/ch01-tour-basic.xml:447 9.1865 +"world</quote> program." 9.1866 +msgstr "" 9.1867 + 9.1868 +#. type: Content of: <book><chapter><sect1><para> 9.1869 +#: ../en/ch01-tour-basic.xml:482 9.1870 +msgid "Let's edit this file so that it prints a second line of output." 9.1871 +msgstr "" 9.1872 + 9.1873 +#. type: Content of: <book><chapter><sect1><para> 9.1874 +#: ../en/ch01-tour-basic.xml:487 9.1875 msgid "" 9.1876 "Mercurial's <command role=\"hg-cmd\">hg status</command> command will tell us " 9.1877 "what Mercurial knows about the files in the repository." 9.1878 msgstr "" 9.1879 9.1880 #. type: Content of: <book><chapter><sect1><para> 9.1881 -#: ../en/ch01-tour-basic.xml:453 9.1882 +#: ../en/ch01-tour-basic.xml:493 9.1883 msgid "" 9.1884 "The <command role=\"hg-cmd\">hg status</command> command prints no output for " 9.1885 "some files, but a line starting with <quote><literal>M</literal></quote> for " 9.1886 @@ -3193,7 +3251,7 @@ 9.1887 msgstr "" 9.1888 9.1889 #. type: Content of: <book><chapter><sect1><para> 9.1890 -#: ../en/ch01-tour-basic.xml:460 9.1891 +#: ../en/ch01-tour-basic.xml:500 9.1892 msgid "" 9.1893 "The <quote><literal>M</literal></quote> indicates that Mercurial has noticed " 9.1894 "that we modified <filename>hello.c</filename>. We didn't need to " 9.1895 @@ -3203,21 +3261,33 @@ 9.1896 msgstr "" 9.1897 9.1898 #. type: Content of: <book><chapter><sect1><para> 9.1899 -#: ../en/ch01-tour-basic.xml:468 9.1900 -msgid "" 9.1901 -"It's a little bit helpful to know that we've modified <filename>hello.c</" 9.1902 +#: ../en/ch01-tour-basic.xml:508 9.1903 +msgid "" 9.1904 +"It's somewhat helpful to know that we've modified <filename>hello.c</" 9.1905 "filename>, but we might prefer to know exactly <emphasis>what</emphasis> " 9.1906 "changes we've made to it. To do this, we use the <command role=\"hg-cmd\">hg " 9.1907 "diff</command> command." 9.1908 msgstr "" 9.1909 9.1910 #. type: Content of: <book><chapter><sect1><title> 9.1911 -#: ../en/ch01-tour-basic.xml:478 9.1912 +#: ../en/ch01-tour-basic.xml:517 ../en/ch11-mq.xml:187 9.1913 +msgid "Understanding patches" 9.1914 +msgstr "理解补丁" 9.1915 + 9.1916 +#. type: Content of: <book><chapter><sect1><tip><para> 9.1917 +#: ../en/ch01-tour-basic.xml:519 9.1918 +msgid "" 9.1919 +"Remember to take a look at <xref linkend=\"sec:mq:patch\"/> if you don't know " 9.1920 +"how to read output above." 9.1921 +msgstr "" 9.1922 + 9.1923 +#. type: Content of: <book><chapter><sect1><title> 9.1924 +#: ../en/ch01-tour-basic.xml:525 9.1925 msgid "Recording changes in a new changeset" 9.1926 msgstr "在新修改集中记录修改" 9.1927 9.1928 #. type: Content of: <book><chapter><sect1><para> 9.1929 -#: ../en/ch01-tour-basic.xml:480 9.1930 +#: ../en/ch01-tour-basic.xml:527 9.1931 msgid "" 9.1932 "We can modify files, build and test our changes, and use <command role=\"hg-" 9.1933 "cmd\">hg status</command> and <command role=\"hg-cmd\">hg diff</command> to " 9.1934 @@ -3226,7 +3296,7 @@ 9.1935 msgstr "" 9.1936 9.1937 #. type: Content of: <book><chapter><sect1><para> 9.1938 -#: ../en/ch01-tour-basic.xml:487 9.1939 +#: ../en/ch01-tour-basic.xml:534 9.1940 msgid "" 9.1941 "The <command role=\"hg-cmd\">hg commit</command> command lets us create a new " 9.1942 "changeset; we'll usually refer to this as <quote>making a commit</quote> or " 9.1943 @@ -3234,12 +3304,12 @@ 9.1944 msgstr "" 9.1945 9.1946 #. type: Content of: <book><chapter><sect1><sect2><title> 9.1947 -#: ../en/ch01-tour-basic.xml:493 9.1948 +#: ../en/ch01-tour-basic.xml:540 9.1949 msgid "Setting up a username" 9.1950 msgstr "配置用户名称" 9.1951 9.1952 #. type: Content of: <book><chapter><sect1><sect2><para> 9.1953 -#: ../en/ch01-tour-basic.xml:495 9.1954 +#: ../en/ch01-tour-basic.xml:542 9.1955 msgid "" 9.1956 "When you try to run <command role=\"hg-cmd\">hg commit</command> for the " 9.1957 "first time, it is not guaranteed to succeed. Mercurial records your name and " 9.1958 @@ -3250,7 +3320,7 @@ 9.1959 msgstr "" 9.1960 9.1961 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 9.1962 -#: ../en/ch01-tour-basic.xml:504 9.1963 +#: ../en/ch01-tour-basic.xml:551 9.1964 msgid "" 9.1965 "If you specify a <option role=\"hg-opt-commit\">-u</option> option to the " 9.1966 "<command role=\"hg-cmd\">hg commit</command> command on the command line, " 9.1967 @@ -3258,14 +3328,14 @@ 9.1968 msgstr "" 9.1969 9.1970 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 9.1971 -#: ../en/ch01-tour-basic.xml:509 9.1972 +#: ../en/ch01-tour-basic.xml:556 9.1973 msgid "" 9.1974 "If you have set the <envar>HGUSER</envar> environment variable, this is " 9.1975 "checked next." 9.1976 msgstr "" 9.1977 9.1978 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 9.1979 -#: ../en/ch01-tour-basic.xml:512 9.1980 +#: ../en/ch01-tour-basic.xml:559 9.1981 msgid "" 9.1982 "If you create a file in your home directory called <filename role=\"special" 9.1983 "\">.hgrc</filename>, with a <envar role=\"rc-item-ui\">username</envar> " 9.1984 @@ -3274,14 +3344,14 @@ 9.1985 msgstr "" 9.1986 9.1987 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 9.1988 -#: ../en/ch01-tour-basic.xml:520 9.1989 +#: ../en/ch01-tour-basic.xml:567 9.1990 msgid "" 9.1991 "If you have set the <envar>EMAIL</envar> environment variable, this will be " 9.1992 "used next." 9.1993 msgstr "" 9.1994 9.1995 #. type: Content of: <book><chapter><sect1><sect2><orderedlist><listitem><para> 9.1996 -#: ../en/ch01-tour-basic.xml:523 9.1997 +#: ../en/ch01-tour-basic.xml:570 9.1998 msgid "" 9.1999 "Mercurial will query your system to find out your local user name and host " 9.2000 "name, and construct a username from these components. Since this often " 9.2001 @@ -3290,7 +3360,7 @@ 9.2002 msgstr "" 9.2003 9.2004 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2005 -#: ../en/ch01-tour-basic.xml:530 9.2006 +#: ../en/ch01-tour-basic.xml:577 9.2007 msgid "" 9.2008 "If all of these mechanisms fail, Mercurial will fail, printing an error " 9.2009 "message. In this case, it will not let you commit until you set up a " 9.2010 @@ -3298,7 +3368,7 @@ 9.2011 msgstr "" 9.2012 9.2013 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2014 -#: ../en/ch01-tour-basic.xml:534 9.2015 +#: ../en/ch01-tour-basic.xml:581 9.2016 msgid "" 9.2017 "You should think of the <envar>HGUSER</envar> environment variable and the " 9.2018 "<option role=\"hg-opt-commit\">-u</option> option to the <command role=\"hg-" 9.2019 @@ -3309,12 +3379,12 @@ 9.2020 msgstr "" 9.2021 9.2022 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 9.2023 -#: ../en/ch01-tour-basic.xml:543 9.2024 +#: ../en/ch01-tour-basic.xml:590 9.2025 msgid "Creating a Mercurial configuration file" 9.2026 msgstr "创建 Mercurial 的配置文件" 9.2027 9.2028 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 9.2029 -#: ../en/ch01-tour-basic.xml:545 9.2030 +#: ../en/ch01-tour-basic.xml:592 9.2031 msgid "" 9.2032 "To set a user name, use your favourite editor to create a file called " 9.2033 "<filename role=\"special\">.hgrc</filename> in your home directory. " 9.2034 @@ -3323,8 +3393,13 @@ 9.2035 "filename> should look like this." 9.2036 msgstr "" 9.2037 9.2038 +#. type: Content of: <book><chapter><sect1><sect2><sect3><remark> 9.2039 +#: ../en/ch01-tour-basic.xml:600 9.2040 +msgid "Figure out what the appropriate directory is on Windows." 9.2041 +msgstr "" 9.2042 + 9.2043 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 9.2044 -#: ../en/ch01-tour-basic.xml:557 9.2045 +#: ../en/ch01-tour-basic.xml:607 9.2046 msgid "" 9.2047 "The <quote><literal>[ui]</literal></quote> line begins a <emphasis>section</" 9.2048 "emphasis> of the config file, so you can read the <quote><literal>username " 9.2049 @@ -3336,21 +3411,21 @@ 9.2050 msgstr "" 9.2051 9.2052 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 9.2053 -#: ../en/ch01-tour-basic.xml:570 9.2054 +#: ../en/ch01-tour-basic.xml:620 9.2055 msgid "Choosing a user name" 9.2056 msgstr "选择用户名称" 9.2057 9.2058 #. type: Content of: <book><chapter><sect1><sect2><sect3><para> 9.2059 -#: ../en/ch01-tour-basic.xml:572 9.2060 +#: ../en/ch01-tour-basic.xml:622 9.2061 msgid "" 9.2062 "You can use any text you like as the value of the <literal>username</literal> " 9.2063 -"config item, since this information is for reading by other people, but for " 9.2064 -"interpreting by Mercurial. The convention that most people follow is to use " 9.2065 -"their name and email address, as in the example above." 9.2066 +"config item, since this information is for reading by other people, but will " 9.2067 +"not be interpreted by Mercurial. The convention that most people follow is " 9.2068 +"to use their name and email address, as in the example above." 9.2069 msgstr "" 9.2070 9.2071 #. type: Content of: <book><chapter><sect1><sect2><sect3><note><para> 9.2072 -#: ../en/ch01-tour-basic.xml:579 9.2073 +#: ../en/ch01-tour-basic.xml:629 9.2074 msgid "" 9.2075 "Mercurial's built-in web server obfuscates email addresses, to make it more " 9.2076 "difficult for the email harvesting tools that spammers use. This reduces the " 9.2077 @@ -3359,12 +3434,12 @@ 9.2078 msgstr "" 9.2079 9.2080 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2081 -#: ../en/ch01-tour-basic.xml:589 9.2082 +#: ../en/ch01-tour-basic.xml:639 9.2083 msgid "Writing a commit message" 9.2084 msgstr "写提交日志" 9.2085 9.2086 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2087 -#: ../en/ch01-tour-basic.xml:591 9.2088 +#: ../en/ch01-tour-basic.xml:641 9.2089 msgid "" 9.2090 "When we commit a change, Mercurial drops us into a text editor, to enter a " 9.2091 "message that will describe the modifications we've made in this changeset. " 9.2092 @@ -3374,15 +3449,15 @@ 9.2093 msgstr "" 9.2094 9.2095 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2096 -#: ../en/ch01-tour-basic.xml:601 9.2097 +#: ../en/ch01-tour-basic.xml:651 9.2098 msgid "" 9.2099 "The editor that the <command role=\"hg-cmd\">hg commit</command> command " 9.2100 -"drops us into will contain an empty line, followed by a number of lines " 9.2101 -"starting with <quote><literal>HG:</literal></quote>." 9.2102 -msgstr "" 9.2103 - 9.2104 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.2105 -#: ../en/ch01-tour-basic.xml:608 9.2106 +"drops us into will contain an empty line or two, followed by a number of " 9.2107 +"lines starting with <quote><literal>HG:</literal></quote>." 9.2108 +msgstr "" 9.2109 + 9.2110 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.2111 +#: ../en/ch01-tour-basic.xml:665 9.2112 msgid "" 9.2113 "Mercurial ignores the lines that start with <quote><literal>HG:</literal></" 9.2114 "quote>; it uses them only to tell us which files it's recording changes to. " 9.2115 @@ -3390,12 +3465,12 @@ 9.2116 msgstr "" 9.2117 9.2118 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2119 -#: ../en/ch01-tour-basic.xml:614 9.2120 +#: ../en/ch01-tour-basic.xml:671 9.2121 msgid "Writing a good commit message" 9.2122 msgstr "写好提交日志" 9.2123 9.2124 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2125 -#: ../en/ch01-tour-basic.xml:616 9.2126 +#: ../en/ch01-tour-basic.xml:673 9.2127 msgid "" 9.2128 "Since <command role=\"hg-cmd\">hg log</command> only prints the first line of " 9.2129 "a commit message by default, it's best to write a commit message whose first " 9.2130 @@ -3405,7 +3480,7 @@ 9.2131 msgstr "" 9.2132 9.2133 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2134 -#: ../en/ch01-tour-basic.xml:630 9.2135 +#: ../en/ch01-tour-basic.xml:687 9.2136 msgid "" 9.2137 "As far as the remainder of the contents of the commit message are concerned, " 9.2138 "there are no hard-and-fast rules. Mercurial itself doesn't interpret or care " 9.2139 @@ -3414,7 +3489,7 @@ 9.2140 msgstr "" 9.2141 9.2142 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2143 -#: ../en/ch01-tour-basic.xml:636 9.2144 +#: ../en/ch01-tour-basic.xml:693 9.2145 msgid "" 9.2146 "My personal preference is for short, but informative, commit messages that " 9.2147 "tell me something that I can't figure out with a quick glance at the output " 9.2148 @@ -3422,12 +3497,12 @@ 9.2149 msgstr "" 9.2150 9.2151 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2152 -#: ../en/ch01-tour-basic.xml:643 9.2153 +#: ../en/ch01-tour-basic.xml:700 9.2154 msgid "Aborting a commit" 9.2155 msgstr "终止提交" 9.2156 9.2157 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2158 -#: ../en/ch01-tour-basic.xml:645 9.2159 +#: ../en/ch01-tour-basic.xml:702 9.2160 msgid "" 9.2161 "If you decide that you don't want to commit while in the middle of editing a " 9.2162 "commit message, simply exit from your editor without saving the file that " 9.2163 @@ -3436,7 +3511,7 @@ 9.2164 msgstr "" 9.2165 9.2166 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2167 -#: ../en/ch01-tour-basic.xml:650 9.2168 +#: ../en/ch01-tour-basic.xml:707 9.2169 msgid "" 9.2170 "If we run the <command role=\"hg-cmd\">hg commit</command> command without " 9.2171 "any arguments, it records all of the changes we've made, as reported by " 9.2172 @@ -3445,12 +3520,12 @@ 9.2173 msgstr "" 9.2174 9.2175 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2176 -#: ../en/ch01-tour-basic.xml:657 9.2177 +#: ../en/ch01-tour-basic.xml:714 9.2178 msgid "Admiring our new handiwork" 9.2179 msgstr "欣赏我们的成果" 9.2180 9.2181 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2182 -#: ../en/ch01-tour-basic.xml:659 9.2183 +#: ../en/ch01-tour-basic.xml:716 9.2184 msgid "" 9.2185 "Once we've finished the commit, we can use the <command role=\"hg-cmd\">hg " 9.2186 "tip</command> command to display the changeset we just created. This command " 9.2187 @@ -3459,19 +3534,30 @@ 9.2188 msgstr "" 9.2189 9.2190 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2191 -#: ../en/ch01-tour-basic.xml:668 9.2192 -msgid "" 9.2193 -"We refer to the newest revision in the repository as the tip revision, or " 9.2194 -"simply the tip." 9.2195 +#: ../en/ch01-tour-basic.xml:725 9.2196 +msgid "" 9.2197 +"We refer to the newest revision in the repository as the <emphasis>tip " 9.2198 +"revision</emphasis>, or simply the <emphasis>tip</emphasis>." 9.2199 +msgstr "" 9.2200 + 9.2201 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.2202 +#: ../en/ch01-tour-basic.xml:729 9.2203 +msgid "" 9.2204 +"By the way, the <command role=\"hg-cmd\">hg tip</command> command accepts " 9.2205 +"many of the same options as <command role=\"hg-cmd\">hg log</command>, so " 9.2206 +"<option role=\"hg-opt-global\">-v</option> above indicates <quote>be verbose</" 9.2207 +"quote>, <option role=\"hg-opt-tip\">-p</option> specifies <quote>print a " 9.2208 +"patch</quote>. The use of <option role=\"hg-opt-tip\">-p</option> to print " 9.2209 +"patches is another example of the consistent naming we mentioned earlier." 9.2210 msgstr "" 9.2211 9.2212 #. type: Content of: <book><chapter><sect1><title> 9.2213 -#: ../en/ch01-tour-basic.xml:675 9.2214 +#: ../en/ch01-tour-basic.xml:741 9.2215 msgid "Sharing changes" 9.2216 msgstr "共享修改" 9.2217 9.2218 #. type: Content of: <book><chapter><sect1><para> 9.2219 -#: ../en/ch01-tour-basic.xml:677 9.2220 +#: ../en/ch01-tour-basic.xml:743 9.2221 msgid "" 9.2222 "We mentioned earlier that repositories in Mercurial are self-contained. This " 9.2223 "means that the changeset we just created exists only in our <filename class=" 9.2224 @@ -3480,12 +3566,12 @@ 9.2225 msgstr "" 9.2226 9.2227 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2228 -#: ../en/ch01-tour-basic.xml:685 9.2229 +#: ../en/ch01-tour-basic.xml:751 9.2230 msgid "Pulling changes from another repository" 9.2231 msgstr "从其它版本库取得修改" 9.2232 9.2233 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2234 -#: ../en/ch01-tour-basic.xml:686 9.2235 +#: ../en/ch01-tour-basic.xml:752 9.2236 msgid "" 9.2237 "To get started, let's clone our original <filename class=\"directory\">hello</" 9.2238 "filename> repository, which does not contain the change we just committed. " 9.2239 @@ -3494,7 +3580,7 @@ 9.2240 msgstr "" 9.2241 9.2242 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2243 -#: ../en/ch01-tour-basic.xml:694 9.2244 +#: ../en/ch01-tour-basic.xml:760 9.2245 msgid "" 9.2246 "We'll use the <command role=\"hg-cmd\">hg pull</command> command to bring " 9.2247 "changes from <filename class=\"directory\">my-hello</filename> into <filename " 9.2248 @@ -3507,16 +3593,18 @@ 9.2249 msgstr "" 9.2250 9.2251 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2252 -#: ../en/ch01-tour-basic.xml:707 9.2253 -msgid "" 9.2254 -"(Of course, someone could cause more changesets to appear in the repository " 9.2255 -"that we ran <command role=\"hg-cmd\">hg incoming</command> in, before we get " 9.2256 -"a chance to <command role=\"hg-cmd\">hg pull</command> the changes, so that " 9.2257 -"we could end up pulling changes that we didn't expect.)" 9.2258 -msgstr "" 9.2259 - 9.2260 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.2261 -#: ../en/ch01-tour-basic.xml:714 9.2262 +#: ../en/ch01-tour-basic.xml:773 9.2263 +msgid "" 9.2264 +"Suppose you're pulling changes from a repository on the network somewhere. " 9.2265 +"While you are looking at the <command role=\"hg-cmd\">hg incoming</command> " 9.2266 +"output, and before you pull those changes, someone might have committed " 9.2267 +"something in the remote repository. This means that it's possible to pull " 9.2268 +"more changes than you saw when using <command role=\"hg-cmd\">hg incoming</" 9.2269 +"command>." 9.2270 +msgstr "" 9.2271 + 9.2272 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.2273 +#: ../en/ch01-tour-basic.xml:781 9.2274 msgid "" 9.2275 "Bringing changes into a repository is a simple matter of running the <command " 9.2276 "role=\"hg-cmd\">hg pull</command> command, and telling it which repository to " 9.2277 @@ -3524,7 +3612,7 @@ 9.2278 msgstr "" 9.2279 9.2280 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2281 -#: ../en/ch01-tour-basic.xml:721 9.2282 +#: ../en/ch01-tour-basic.xml:788 9.2283 msgid "" 9.2284 "As you can see from the before-and-after output of <command role=\"hg-cmd" 9.2285 "\">hg tip</command>, we have successfully pulled changes into our " 9.2286 @@ -3533,12 +3621,12 @@ 9.2287 msgstr "" 9.2288 9.2289 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2290 -#: ../en/ch01-tour-basic.xml:729 9.2291 +#: ../en/ch01-tour-basic.xml:796 9.2292 msgid "Updating the working directory" 9.2293 msgstr "更新工作目录" 9.2294 9.2295 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2296 -#: ../en/ch01-tour-basic.xml:731 9.2297 +#: ../en/ch01-tour-basic.xml:798 9.2298 msgid "" 9.2299 "We have so far glossed over the relationship between a repository and its " 9.2300 "working directory. The <command role=\"hg-cmd\">hg pull</command> command " 9.2301 @@ -3550,21 +3638,21 @@ 9.2302 msgstr "" 9.2303 9.2304 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2305 -#: ../en/ch01-tour-basic.xml:743 9.2306 +#: ../en/ch01-tour-basic.xml:810 9.2307 msgid "" 9.2308 "It might seem a bit strange that <command role=\"hg-cmd\">hg pull</command> " 9.2309 "doesn't update the working directory automatically. There's actually a good " 9.2310 "reason for this: you can use <command role=\"hg-cmd\">hg update</command> to " 9.2311 "update the working directory to the state it was in at <emphasis>any " 9.2312 "revision</emphasis> in the history of the repository. If you had the working " 9.2313 -"directory updated to an old revision---to hunt down the origin of a bug, " 9.2314 -"say---and ran a <command role=\"hg-cmd\">hg pull</command> which " 9.2315 -"automatically updated the working directory to a new revision, you might not " 9.2316 -"be terribly happy." 9.2317 -msgstr "" 9.2318 - 9.2319 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.2320 -#: ../en/ch01-tour-basic.xml:754 9.2321 +"directory updated to an old revision—to hunt down the origin of a bug, say—" 9.2322 +"and ran a <command role=\"hg-cmd\">hg pull</command> which automatically " 9.2323 +"updated the working directory to a new revision, you might not be terribly " 9.2324 +"happy." 9.2325 +msgstr "" 9.2326 + 9.2327 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.2328 +#: ../en/ch01-tour-basic.xml:821 9.2329 msgid "" 9.2330 "However, since pull-then-update is such a common thing to do, Mercurial lets " 9.2331 "you combine the two by passing the <option role=\"hg-opt-pull\">-u</option> " 9.2332 @@ -3572,7 +3660,7 @@ 9.2333 msgstr "" 9.2334 9.2335 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2336 -#: ../en/ch01-tour-basic.xml:759 9.2337 +#: ../en/ch01-tour-basic.xml:826 9.2338 msgid "" 9.2339 "If you look back at the output of <command role=\"hg-cmd\">hg pull</command> " 9.2340 "in <xref linkend=\"sec:tour:pull\"/> when we ran it without <option role=\"hg-" 9.2341 @@ -3581,14 +3669,14 @@ 9.2342 msgstr "" 9.2343 9.2344 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2345 -#: ../en/ch01-tour-basic.xml:768 9.2346 +#: ../en/ch01-tour-basic.xml:835 9.2347 msgid "" 9.2348 "To find out what revision the working directory is at, use the <command role=" 9.2349 "\"hg-cmd\">hg parents</command> command." 9.2350 msgstr "" 9.2351 9.2352 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2353 -#: ../en/ch01-tour-basic.xml:774 9.2354 +#: ../en/ch01-tour-basic.xml:841 9.2355 msgid "" 9.2356 "If you look back at <xref linkend=\"fig:tour-basic:history\"/>, you'll see " 9.2357 "arrows connecting each changeset. The node that the arrow leads " 9.2358 @@ -3599,7 +3687,7 @@ 9.2359 msgstr "" 9.2360 9.2361 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2362 -#: ../en/ch01-tour-basic.xml:783 9.2363 +#: ../en/ch01-tour-basic.xml:850 9.2364 msgid "" 9.2365 "To update the working directory to a particular revision, give a revision " 9.2366 "number or changeset ID to the <command role=\"hg-cmd\">hg update</command> " 9.2367 @@ -3607,7 +3695,7 @@ 9.2368 msgstr "" 9.2369 9.2370 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2371 -#: ../en/ch01-tour-basic.xml:790 9.2372 +#: ../en/ch01-tour-basic.xml:857 9.2373 msgid "" 9.2374 "If you omit an explicit revision, <command role=\"hg-cmd\">hg update</" 9.2375 "command> will update to the tip revision, as shown by the second call to " 9.2376 @@ -3615,12 +3703,12 @@ 9.2377 msgstr "" 9.2378 9.2379 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2380 -#: ../en/ch01-tour-basic.xml:798 9.2381 +#: ../en/ch01-tour-basic.xml:865 9.2382 msgid "Pushing changes to another repository" 9.2383 msgstr "发布修改到其它版本库" 9.2384 9.2385 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2386 -#: ../en/ch01-tour-basic.xml:800 9.2387 +#: ../en/ch01-tour-basic.xml:867 9.2388 msgid "" 9.2389 "Mercurial lets us push changes to another repository, from the repository " 9.2390 "we're currently visiting. As with the example of <command role=\"hg-cmd\">hg " 9.2391 @@ -3629,44 +3717,47 @@ 9.2392 msgstr "" 9.2393 9.2394 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2395 -#: ../en/ch01-tour-basic.xml:808 9.2396 +#: ../en/ch01-tour-basic.xml:875 9.2397 msgid "" 9.2398 "The <command role=\"hg-cmd\">hg outgoing</command> command tells us what " 9.2399 "changes would be pushed into another repository." 9.2400 msgstr "" 9.2401 9.2402 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2403 -#: ../en/ch01-tour-basic.xml:814 9.2404 +#: ../en/ch01-tour-basic.xml:881 9.2405 msgid "" 9.2406 "And the <command role=\"hg-cmd\">hg push</command> command does the actual " 9.2407 "push." 9.2408 msgstr "" 9.2409 9.2410 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2411 -#: ../en/ch01-tour-basic.xml:820 9.2412 +#: ../en/ch01-tour-basic.xml:887 9.2413 msgid "" 9.2414 "As with <command role=\"hg-cmd\">hg pull</command>, the <command role=\"hg-cmd" 9.2415 "\">hg push</command> command does not update the working directory in the " 9.2416 -"repository that it's pushing changes into. (Unlike <command role=\"hg-cmd" 9.2417 -"\">hg pull</command>, <command role=\"hg-cmd\">hg push</command> does not " 9.2418 -"provide a <literal>-u</literal> option that updates the other repository's " 9.2419 -"working directory.)" 9.2420 -msgstr "" 9.2421 - 9.2422 -#. type: Content of: <book><chapter><sect1><sect2><para> 9.2423 -#: ../en/ch01-tour-basic.xml:829 9.2424 +"repository that it's pushing changes into. Unlike <command role=\"hg-cmd\">hg " 9.2425 +"pull</command>, <command role=\"hg-cmd\">hg push</command> does not provide a " 9.2426 +"<literal>-u</literal> option that updates the other repository's working " 9.2427 +"directory. This asymmetry is deliberate: the repository we're pushing to " 9.2428 +"might be on a remote server and shared between several people. If we were to " 9.2429 +"update its working directory while someone was working in it, their work " 9.2430 +"would be disrupted." 9.2431 +msgstr "" 9.2432 + 9.2433 +#. type: Content of: <book><chapter><sect1><sect2><para> 9.2434 +#: ../en/ch01-tour-basic.xml:899 9.2435 msgid "" 9.2436 "What happens if we try to pull or push changes and the receiving repository " 9.2437 "already has those changes? Nothing too exciting." 9.2438 msgstr "" 9.2439 9.2440 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2441 -#: ../en/ch01-tour-basic.xml:836 9.2442 +#: ../en/ch01-tour-basic.xml:906 9.2443 msgid "Sharing changes over a network" 9.2444 msgstr "通过网络共享修改" 9.2445 9.2446 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2447 -#: ../en/ch01-tour-basic.xml:838 9.2448 +#: ../en/ch01-tour-basic.xml:908 9.2449 msgid "" 9.2450 "The commands we have covered in the previous few sections are not limited to " 9.2451 "working with local repositories. Each works in exactly the same fashion over " 9.2452 @@ -3674,7 +3765,7 @@ 9.2453 msgstr "" 9.2454 9.2455 #. type: Content of: <book><chapter><sect1><sect2><para> 9.2456 -#: ../en/ch01-tour-basic.xml:846 9.2457 +#: ../en/ch01-tour-basic.xml:916 9.2458 msgid "" 9.2459 "In this example, we can see what changes we could push to the remote " 9.2460 "repository, but the repository is understandably not set up to let anonymous " 9.2461 @@ -5393,6 +5484,7 @@ 9.2462 9.2463 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2464 #: ../en/ch04-daily.xml:198 9.2465 +#, fuzzy 9.2466 msgid "Useful shorthand—adding and removing files in one step" 9.2467 msgstr "有用的速记—一个步骤添加和删除文件" 9.2468 9.2469 @@ -8521,6 +8613,7 @@ 9.2470 9.2471 #. type: Content of: <book><chapter><sect1><title> 9.2472 #: ../en/ch07-branch.xml:228 9.2473 +#, fuzzy 9.2474 msgid "The flow of changes—big picture vs. little" 9.2475 msgstr "修改流程—宏观与微观" 9.2476 9.2477 @@ -11185,6 +11278,7 @@ 9.2478 9.2479 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2480 #: ../en/ch09-hook.xml:716 9.2481 +#, fuzzy 9.2482 msgid "" 9.2483 "<literal role=\"hg-ext\">acl</literal>—access control for parts of a " 9.2484 "repository" 9.2485 @@ -11333,6 +11427,7 @@ 9.2486 9.2487 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2488 #: ../en/ch09-hook.xml:844 9.2489 +#, fuzzy 9.2490 msgid "<literal role=\"hg-ext\">bugzilla</literal>—integration with Bugzilla" 9.2491 msgstr "<literal role=\"hg-ext\">bugzilla</literal>—与 Bugzilla 的集成" 9.2492 9.2493 @@ -11665,6 +11760,7 @@ 9.2494 9.2495 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2496 #: ../en/ch09-hook.xml:1150 9.2497 +#, fuzzy 9.2498 msgid "<literal role=\"hg-ext\">notify</literal>—send email notifications" 9.2499 msgstr "<literal role=\"hg-ext\">notify</literal>—邮件通知" 9.2500 9.2501 @@ -11989,6 +12085,7 @@ 9.2502 9.2503 #. type: Content of: <book><chapter><sect1><sect2><sect3><title> 9.2504 #: ../en/ch09-hook.xml:1431 9.2505 +#, fuzzy 9.2506 msgid "Where changes are going—remote repository URLs" 9.2507 msgstr "修改集要到哪里—远程版本库的地址" 9.2508 9.2509 @@ -12038,6 +12135,7 @@ 9.2510 9.2511 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2512 #: ../en/ch09-hook.xml:1473 9.2513 +#, fuzzy 9.2514 msgid "" 9.2515 "<literal role=\"hook\">changegroup</literal>—after remote changesets added" 9.2516 msgstr "<literal role=\"hook\">changegroup</literal>—增加远程修改集之后" 9.2517 @@ -12106,6 +12204,7 @@ 9.2518 9.2519 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2520 #: ../en/ch09-hook.xml:1526 9.2521 +#, fuzzy 9.2522 msgid "<literal role=\"hook\">commit</literal>—after a new changeset is created" 9.2523 msgstr "<literal role=\"hook\">commit</literal>—创建新修改集之后" 9.2524 9.2525 @@ -12145,6 +12244,7 @@ 9.2526 9.2527 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2528 #: ../en/ch09-hook.xml:1559 9.2529 +#, fuzzy 9.2530 msgid "" 9.2531 "<literal role=\"hook\">incoming</literal>—after one remote changeset is added" 9.2532 msgstr "<literal role=\"hook\">incoming</literal>—增加远程修改集之后" 9.2533 @@ -12185,6 +12285,7 @@ 9.2534 9.2535 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2536 #: ../en/ch09-hook.xml:1605 9.2537 +#, fuzzy 9.2538 msgid "" 9.2539 "<literal role=\"hook\">outgoing</literal>—after changesets are propagated" 9.2540 msgstr "<literal role=\"hook\">outgoing</literal>—传播修改集之后" 9.2541 @@ -12232,6 +12333,7 @@ 9.2542 9.2543 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2544 #: ../en/ch09-hook.xml:1652 9.2545 +#, fuzzy 9.2546 msgid "" 9.2547 "<literal role=\"hook\">prechangegroup</literal>—before starting to add remote " 9.2548 "changesets" 9.2549 @@ -12272,6 +12374,7 @@ 9.2550 9.2551 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2552 #: ../en/ch09-hook.xml:1698 9.2553 +#, fuzzy 9.2554 msgid "" 9.2555 "<literal role=\"hook\">precommit</literal>—before starting to commit a " 9.2556 "changeset" 9.2557 @@ -12324,6 +12427,7 @@ 9.2558 9.2559 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2560 #: ../en/ch09-hook.xml:1738 9.2561 +#, fuzzy 9.2562 msgid "" 9.2563 "<literal role=\"hook\">preoutgoing</literal>—before starting to propagate " 9.2564 "changesets" 9.2565 @@ -12362,6 +12466,7 @@ 9.2566 9.2567 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2568 #: ../en/ch09-hook.xml:1775 9.2569 +#, fuzzy 9.2570 msgid "<literal role=\"hook\">pretag</literal>—before tagging a changeset" 9.2571 msgstr "<literal role=\"hook\">pretag</literal>—创建标签之前" 9.2572 9.2573 @@ -12411,6 +12516,7 @@ 9.2574 9.2575 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2576 #: ../en/ch09-hook.xml:1815 9.2577 +#, fuzzy 9.2578 msgid "" 9.2579 "<literal role=\"hook\">pretxnchangegroup</literal>—before completing addition " 9.2580 "of remote changesets" 9.2581 @@ -12463,6 +12569,7 @@ 9.2582 9.2583 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2584 #: ../en/ch09-hook.xml:1881 9.2585 +#, fuzzy 9.2586 msgid "" 9.2587 "<literal role=\"hook\">pretxncommit</literal>—before completing commit of new " 9.2588 "changeset" 9.2589 @@ -12505,6 +12612,7 @@ 9.2590 9.2591 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2592 #: ../en/ch09-hook.xml:1929 9.2593 +#, fuzzy 9.2594 msgid "" 9.2595 "<literal role=\"hook\">preupdate</literal>—before updating or merging working " 9.2596 "directory" 9.2597 @@ -12544,6 +12652,7 @@ 9.2598 9.2599 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2600 #: ../en/ch09-hook.xml:1961 9.2601 +#, fuzzy 9.2602 msgid "<literal role=\"hook\">tag</literal>—after tagging a changeset" 9.2603 msgstr "<literal role=\"hook\">tag</literal>—创建标签之后" 9.2604 9.2605 @@ -12592,6 +12701,7 @@ 9.2606 9.2607 #. type: Content of: <book><chapter><sect1><sect2><title> 9.2608 #: ../en/ch09-hook.xml:1998 9.2609 +#, fuzzy 9.2610 msgid "" 9.2611 "<literal role=\"hook\">update</literal>—after updating or merging working " 9.2612 "directory" 9.2613 @@ -13787,11 +13897,6 @@ 9.2614 "particular line of a source file. And so on." 9.2615 msgstr "" 9.2616 9.2617 -#. type: Content of: <book><chapter><sect1><title> 9.2618 -#: ../en/ch11-mq.xml:187 9.2619 -msgid "Understanding patches" 9.2620 -msgstr "理解补丁" 9.2621 - 9.2622 #. type: Content of: <book><chapter><sect1><para> 9.2623 #: ../en/ch11-mq.xml:189 9.2624 msgid ""
10.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 10.2 +++ b/web/hgbook/admin.py Thu Apr 02 09:24:36 2009 +0800 10.3 @@ -0,0 +1,23 @@ 10.4 +from django.contrib import admin 10.5 +from hgbook.comments.models import Comment, Element 10.6 + 10.7 +class CommentAdmin(admin.ModelAdmin): 10.8 + list_display = ['element', 'submitter_name', 'comment', 'reviewed', 10.9 + 'hidden', 'date'] 10.10 + search_fields = ['comment'] 10.11 + date_hierarchy = 'date' 10.12 + list_filter = ['date', 'submitter_name'] 10.13 + search_fields = ['title', 'submitter_name', 'submitter_url'] 10.14 + fields = ( 10.15 + (None, {'fields': ('submitter_name', 'element', 'comment')}), 10.16 + ('Review and presentation state', 10.17 + {'fields': ('reviewed', 'hidden')}), 10.18 + ('Other info', {'fields': ('date', 'submitter_url', 'ip')}), 10.19 + ) 10.20 + 10.21 +class ElementAdmin(admin.ModelAdmin): 10.22 + search_fields = ['id', 'chapter'] 10.23 + list_filter = ['chapter', 'title'] 10.24 + 10.25 +admin.site.register(Comment, CommentAdmin) 10.26 +admin.site.register(Element, ElementAdmin)
11.1 --- a/web/hgbook/comments/models.py Tue Mar 31 21:17:59 2009 +0800 11.2 +++ b/web/hgbook/comments/models.py Thu Apr 02 09:24:36 2009 +0800 11.3 @@ -4,10 +4,6 @@ 11.4 mutable = True 11.5 11.6 class Element(models.Model): 11.7 - class Admin: 11.8 - search_fields = ['id', 'chapter'] 11.9 - list_filter = ['chapter', 'title'] 11.10 - 11.11 id = models.CharField('ID attribute', max_length=64, editable=False, 11.12 primary_key=True) 11.13 chapter = models.CharField('Chapter ID', max_length=64, editable=False, 11.14 @@ -18,20 +14,6 @@ 11.15 return self.id 11.16 11.17 class Comment(models.Model): 11.18 - class Admin: 11.19 - list_display = ['element', 'submitter_name', 'comment', 'reviewed', 11.20 - 'hidden', 'date'] 11.21 - search_fields = ['comment'] 11.22 - date_hierarchy = 'date' 11.23 - list_filter = ['date', 'submitter_name'] 11.24 - search_fields = ['title', 'submitter_name', 'submitter_url'] 11.25 - fields = ( 11.26 - (None, {'fields': ('submitter_name', 'element', 'comment')}), 11.27 - ('Review and presentation state', 11.28 - {'fields': ('reviewed', 'hidden')}), 11.29 - ('Other info', {'fields': ('date', 'submitter_url', 'ip')}), 11.30 - ) 11.31 - 11.32 element = models.ForeignKey(Element, 11.33 help_text='ID of paragraph that was commented on') 11.34 comment = models.TextField(editable=mutable,
12.1 --- a/web/hgbook/urls.py Tue Mar 31 21:17:59 2009 +0800 12.2 +++ b/web/hgbook/urls.py Thu Apr 02 09:24:36 2009 +0800 12.3 @@ -1,6 +1,9 @@ 12.4 import os 12.5 from django.conf.urls.defaults import * 12.6 import hgbook.comments.feeds as feeds 12.7 +from django.contrib import admin 12.8 + 12.9 +admin.autodiscover() 12.10 12.11 feeds = { 12.12 'comments': feeds.Comments, 12.13 @@ -18,5 +21,5 @@ 12.14 # sys.modules[__name__].__file__) + '/../../en/html'), 12.15 12.16 # Uncomment this for admin: 12.17 - (r'^admin/', include('django.contrib.admin.urls')), 12.18 + (r'^admin/(.*)', admin.site.root), 12.19 )