Commits

Bryan O'Sullivan committed 8767e1a Merge

Merge with Dongsheng

Comments (0)

Files changed (9)

 FORMATS=html html-single pdf epub
 
 PO_LANGUAGES := zh
-DBK_LANGUAGES := en it fr
+DBK_LANGUAGES := en fr it
 LANGUAGES := $(DBK_LANGUAGES) $(PO_LANGUAGES)
 
 UPDATEPO = PERLLIB=$(PO4A_LIB) $(PO4A_HOME)/po4a-updatepo -M UTF-8 \
 images-gen += $(wildcard en/figs/*-tmp.svg)
 
 help:
-	@echo "  make epub         [LINGUA=en|it|zh|...]"
-	@echo "  make html         [LINGUA=en|it|zh|...]"
-	@echo "  make html-single  [LINGUA=en|it|zh|...]"
-	@echo "  make pdf          [LINGUA=en|it|zh|...]"
-	@echo "  make validate     [LINGUA=en|it|zh|...] # always before commit!"
+	@echo "  make epub         [LINGUA=en|fr|it|zh|...]"
+	@echo "  make html         [LINGUA=en|fr|it|zh|...]"
+	@echo "  make html-single  [LINGUA=en|fr|it|zh|...]"
+	@echo "  make pdf          [LINGUA=en|fr|it|zh|...]"
+	@echo "  make validate     [LINGUA=en|fr|it|zh|...] # always before commit!"
 	@echo "  make tidypo       [LINGUA=zh|...]    # always before commit!"
 	@echo "  make updatepo     [LINGUA=zh|...]    # update po files."
-	@echo "  make all          [LINGUA=en|it|zh|...]"
+	@echo "  make all          [LINGUA=en|fr|it|zh|...]"
 	@echo "  make stat         # print statistics about po files."
 	@echo "  make clean        # Remove the build files."
 
 
 	if test -r $(FOP_HOME)/conf/userconfig.xml ; then \
 		FOP_CONFIG=" -c $(FOP_HOME)/conf/userconfig.xml"; \
-	fi 
+    else \
+        echo "Waring: file $(FOP_HOME)/conf/userconfig.xml does not exist"; \
+    fi
 
 	(cd build/$(LINGUA)/source && $(FOP_HOME)/fop.sh ${FOP_CONFIG} hgbook.fo ../pdf/hgbook.pdf)
 endif
 
-$(LINGUA)/figs/%.png: $(LINGUA)/figs/%.svg 
+$(LINGUA)/figs/%.png: $(LINGUA)/figs/%.svg
 	if test -x $(LINGUA)/fixsvg; then \
 	  $(LINGUA)/fixsvg $<; \
 	  inkscape -D -d 120 -e $@ $<-tmp.svg; \

contrib/hg-package

 #
 
 build_dir=`dirname "$0"`/../build
-rev_id=`hg parents --template '{date|shortdate}' | sed 's/-//g'`
+rev_id=`hg parents --template '{date|shortdate}' | sed 's/-//g'`-`hg parents --template '{node|short}'`
 
-for l in en zh it; do
+for l in en fr it zh; do
   (
   if [ ! -d "${build_dir}/${l}" ] ; then
     continue
 
   if [ -f "epub/hgbook.epub" ] ; then
      cp epub/hgbook.epub ../hgbook-${l}-${rev_id}.epub
+     gzip -f9 ../hgbook-${l}-${rev_id}.epub
   fi
   )
 done
 # echo "upload_pass: ${upload_pass}"
 # echo "upload_user: ${upload_user}"
 
-if [ "${upload_user}x" == "x" ]; then
-  upload_user="dongsheng.song"
-fi
-
-if [ "${upload_pass}x" != "x" ]; then
+if [ "${upload_pass}x" != "x" ] && [ "${upload_user}x" != "x" ]; then
   (
   cd ${build_dir}
   curl -s -O http://support.googlecode.com/svn/trunk/scripts/googlecode_upload.py
     exit 1
   fi
 
-  for l in en zh; do
-    if [ -f "hgbook-${l}-${rev_id}.epub" ] ; then
+  for l in en fr it zh; do
+    if [ -f "hgbook-${l}-${rev_id}.epub.gz" ] ; then
       python googlecode_upload.py --user="${upload_user}" --password="${upload_pass}" \
           -p "i18n-zh" -l "Type-Docs,book,hgbook,hg,mercurial,ebook" \
           -s "Distributed revision control with Mercurial - ${l} - ePub" \
-          hgbook-${l}-${rev_id}.epub
+          hgbook-${l}-${rev_id}.epub.gz
     fi
 
     if [ -f "hgbook-${l}-${rev_id}.pdf.gz" ] ; then
 
 for i in 0 1 2 3 4
 do
-  export REV$i=$(hg --cwd hello log -r $i --template '{node|short}' | cut -c1-4)
+  export REV$i=$(hg --cwd hello log -r $i --template '{node|short}' | head  -1 | cut -c1-4)
 done
 export REV_my_hello=$(cat /tmp/REV5.my-hello)
 export REV_my_new_hello=$(cat /tmp/REV5.my-new-hello)

fr/ch03-tour-merge.xml

            class="directory">my-new-hello</filename></title>
          <mediaobject>
            <imageobject>
-             <imagedata fileref="tour-merge-pull"/>
+             <imagedata fileref="figs/tour-merge-pull.png"/>
            </imageobject>
            <textobject><phrase>XXX ajoute un texte</phrase></textobject>
          </mediaobject>
     <figure id="fig:tour-merge:conflict">
       <title>Modifications en conflit dans un document</title>
       <mediaobject>
-        <imageobject><imagedata fileref="tour-merge-conflict"/></imageobject>
+        <imageobject><imagedata fileref="figs/tour-merge-conflict.png"/></imageobject>
         <textobject><phrase>XXX ajoute texte</phrase></textobject>
       </mediaobject>
     </figure>
            dépôt <filename class="directory" moreinfo="none">my-hello</filename> vers le dépôt <filename class="directory" moreinfo="none">my-new-hello</filename></title>
          <mediaobject>
            <imageobject>
-             <imagedata fileref="tour-merge-pull"/>
+             <imagedata fileref="figs/tour-merge-pull.png"/>
            </imageobject>
            <textobject><phrase>XXX ajoute un texte</phrase></textobject>
          </mediaobject>
     <figure id="fig:tour-merge:conflict" float="0">
       <title>Modifications en conflits dans un document</title>
       <mediaobject>
-        <imageobject><imagedata fileref="tour-merge-conflict"/></imageobject>
+        <imageobject><imagedata fileref="figs/tour-merge-conflict.png"/></imageobject>
         <textobject><phrase>XXX ajoute texte</phrase></textobject>
       </mediaobject>
     </figure>
 
 for i in 0 1 2 3 4
 do
-  export REV$i=$(hg --cwd hello log -r $i --template '{node|short}' | cut -c1-4)
+  export REV$i=$(hg --cwd hello log -r $i --template '{node|short}' | head  -1 | cut -c1-4)
 done
 export REV_my_hello=$(cat /tmp/REV5.my-hello)
 export REV_my_new_hello=$(cat /tmp/REV5.my-new-hello)
 # This file is distributed under the same license as the hgbook.
 #
 # Authors:
-# Dongsheng Song <dongsheng.song@gmail.com>, 2009
+# Dongsheng Song <dongsheng.song@gmail.com>, 2009, 2010, 2011
+# Zhaoping Sun <zhaopingsun@gmail.com>, 2009, 2010
 #
 # Check translation:
 #    msgfmt --statistics -c -o zh.mo zh.po
 # patchset          补丁集
 # pushing to        推到
 # pulling from      拉自,抓取
-# rename            
+# rename            重命
 # repository        版本库
 # revert            恢复
 # revision          版本
 # versioned         受版本控制
 # working copy      工作副本
 # identifiers	    标识符
+# head revision	    领头版本
 # ...
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: hgbook 1.2\n"
-"POT-Creation-Date: 2009-11-04 14:06+0800\n"
-"PO-Revision-Date: 2009-10-21 16:42+0800\n"
+"POT-Creation-Date: 2011-03-17 14:01+0800\n"
+"PO-Revision-Date: 2011-03-17 13:31+0800\n"
 "Last-Translator: 宋冬生 <songdonogsheng@live.cn>\n"
 "Language-Team: Simplified Chinese <i18n-zh@googlegroups.com >\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Sargent, Gokberk Hamurcu, Matthijs van der Vleuten, Michael Chermside, John "
 "Mulligan, Jordi Fita, Jon Parise."
 msgstr ""
+"Martin Geisler,Damien Cassou,Alexey Bakhirkin,Till Plewe,Dan Himes,Paul "
+"Sargent,Gokberk Hamurcu,Matthijs van der Vleuten,Michael Chermside,John "
+"Mulligan,Jordi Fita,Jon Parise。"
 
 #. type: Content of: <book><preface><sect1><para>
 #: ../en/ch00-preface.xml:80
 msgstr ""
 "本书的目的是帮助你完成工作。基本上,你可以将书中的代码用于你的程序或文档。无需"
 "取得我们的许可,除非你直接复制大量的代码。举例来说,在程序中使用几段书中的代码"
-"无需许可。出售或发布含有O'Reilly书中示例的CD-ROM则需经许可。引用本书中的叙述或"
-"示例代码来回答问题无需许可。将书中的大量代码合并到你的产品文档中则需经许可。"
+"无需许可。出售或发布含有 O'Reilly 书中示例的 CD-ROM 则需经许可。引用本书中的叙"
+"述或示例代码来回答问题无需许可。将书中的大量代码合并到你的产品文档中则需经许"
+"可。"
 
 #. type: Content of: <book><preface><sect1><para>
 #: ../en/ch00-preface.xml:181
 msgid ""
 "We appreciate, but do not require, attribution. An attribution usually "
 "includes the title, author, publisher, and ISBN. For example: “<emphasis>Book "
-"Title</emphasis> by Some Author. Copyright 2008 O’Reilly Media, Inc., 978-0-"
-"596-xxxx-x.”"
+"Title</emphasis> by Some Author. Copyright 2008 O’Reilly Media, Inc., "
+"978-0-596-xxxx-x.”"
 msgstr ""
 "虽然我们并不要求在引用本书的时候做版权归属声明,但如果你这样做了,我们将非常感"
-"激。版权归属声明通常包含标题,作者,发行者和ISBN。例如: “<emphasis>书名</"
-"emphasis> 某人著。 版权所有 2008 O’Reilly Media,Inc., 978-0-596-xxxx-x。”"
+"激。版权归属声明通常包含标题,作者,发行者和 ISBN。例如:“<emphasis>书名</"
+"emphasis>,某人著。 版权所有 2008 O’Reilly Media,Inc., 978-0-596-xxxx-x。”"
 
 #. type: Content of: <book><preface><sect1><para>
 #: ../en/ch00-preface.xml:187
 "technology book, that means the book is available online through the O’Reilly "
 "Network Safari Bookshelf."
 msgstr ""
-"如果你在喜欢的技术图书的封面上看见Safari® Books Online的图标,这表示你你可以通"
-"过O'Reilly Network Safari Bookshelf在网上使用此书。"
+"如果你在喜欢的技术图书的封面上看见 Safari® Books Online 的图标,这表示你可以通"
+"过 O'Reilly Network Safari Bookshelf 在网上使用此书。"
 
 #. type: Content of: <book><preface><sect1><para>
 #: ../en/ch00-preface.xml:202
 #: ../en/ch02-tour-basic.xml:17
 msgid ""
 "The best version of Mercurial for Windows is TortoiseHg, which can be found "
-"at <ulink url=\"http://bitbucket.org/tortoisehg/stable/wiki/Home\">http://"
-"bitbucket.org/tortoisehg/stable/wiki/Home</ulink>.  This package has no "
-"external dependencies; it <quote>just works</quote>.  It provides both "
-"command line and graphical user interfaces."
-msgstr ""
-"Windows 中最好的 Mercurial 版本是TortoiseHg,它的主页地址是 <ulink url="
-"\"http://bitbucket.org/tortoisehg/stable/wiki/Home\">http://bitbucket.org/"
-"tortoisehg/stable/wiki/Home</ulink>。这个软件没有外部依赖,它可以<quote>独立工"
-"作</quote>,同时提供了命令行和图形用户界面。"
+"at <ulink url=\"http://tortoisehg.org\">http://tortoisehg.org</ulink>.  This "
+"package has no external dependencies; it <quote>just works</quote>.  It "
+"provides both command line and graphical user interfaces."
+msgstr ""
+"Windows 中最好的 Mercurial 版本是 TortoiseHg,它的主页地址是 <ulink url="
+"\"http://tortoisehg.org\">http://tortoisehg.org</ulink>。这个软件没有外部依赖"
+"关系,它可以<quote>独立工作</quote>。它同时提供了命令行和图形用户界面。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch02-tour-basic.xml:27
 "option>), while short options start with one (e.g. <option role=\"hg-opt-log"
 "\">-r</option>)."
 msgstr ""
+"长选项的前缀是两个破折号(例如 <option role=\"hg-opt-log\">--rev</option>),而"
+"短选项的前缀是一个破折号(例如 <option role=\"hg-opt-log\">-r</option>)。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch02-tour-basic.xml:407
 "<option role=\"hg-opt-log\">-r</option> and <option role=\"hg-opt-log\">--"
 "rev</option> arguments."
 msgstr ""
+"选项的名称与用法在所有命令中始终一致。例如每个让你指定修改集标识或版本号的命令"
+"都接受 <option role=\"hg-opt-log\">-r</option> 和 <option role=\"hg-opt-log"
+"\">--rev</option> 参数。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch02-tour-basic.xml:414
 "global\">--verbose</option>) option, and less when passed <option role=\"hg-"
 "opt-global\">-q</option> (or <option role=\"hg-opt-global\">--quiet</option>)."
 msgstr ""
+"对于大多数有打印输出的命令,当使用 <option role=\"hg-opt-global\">-v</option> "
+"(或 <option role=\"hg-opt-global\">--verbose</option>) 选项时输出更多,而使用 "
+"<option role=\"hg-opt-global\">-q</option> (或 <option role=\"hg-opt-global"
+"\">--quiet</option>) 选项时输出更少。"
 
 #. type: Content of: <book><chapter><sect1><note><title>
 #: ../en/ch02-tour-basic.xml:432
 "<option role=\"hg-opt-log\">-r</option>.  This consistent use of option names "
 "makes it easier to remember what options a particular command takes."
 msgstr ""
+"Mercurial 命令几乎总是使用一致的选项引用同样的概念。例如,对于处理修改集的命"
+"令,你总是可以用 <option role=\"hg-opt-log\">--rev</option> 或 <option role="
+"\"hg-opt-log\">-r</option> 来标识。这种一致性让你更容易记着命令接受的参数。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch02-tour-basic.xml:445
 "We can tell that <filename>myproject</filename> is a Mercurial repository, "
 "because it contains a <filename>.hg</filename> directory."
 msgstr ""
-"我们确信<filename>myproject</filename>是一个Mercurial版本库, 因为它包含了"
+"我们认为<filename>myproject</filename>是一个Mercurial版本库, 因为它包含了"
 "<filename>.hg</filename>目录。"
 
 #. type: Content of: <book><chapter><sect1><para>
 "pulling or pushing changes from one repository into another.  Our next step "
 "is <emphasis>merging</emphasis> changes from separate repositories."
 msgstr ""
+"我们已经介绍了如何克隆版本库,如何进行修改,从一个版本库向另外一个版本库拉或者"
+"推送变更。下面我们要介绍的是如何从不同的版本库<emphasis>合并</emphasis>变更。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch03-tour-merge.xml:13
 "Merging is a fundamental part of working with a distributed revision control "
 "tool.  Here are a few cases in which the need to merge work arises."
 msgstr ""
+"在使用分布式版本控制工具中,合并是非常重要的。以下是几种需要进行合并的情形。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch03-tour-merge.xml:20
 "feature in his.  They want the shared repository to contain both the bug fix "
 "and the new feature."
 msgstr ""
+"在一个合作的项目中,Alice和Bob都有一个项目版本库的私有拷贝。Alice修复了在她的"
+"库中的一个bug;Bob则在他的版本库中增加了一个新功能。他们希望分享版本库,每个人"
+"都得到新的功能,同时又修复了bug。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch03-tour-merge.xml:27
 "once, each safely isolated in its own repository. Working this way means that "
 "she often needs to merge one piece of her own work with another."
 msgstr ""
+"Cynthia同时在一个项目上进行几个不同的任务,每个任务都是孤立的。以这种方式工作"
+"意味着她经常需要将不同部分的工作进行合并。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:35
 "through a merge.  We'll begin by cloning yet another repository (see how "
 "often they spring up?)  and making a change in it."
 msgstr ""
+"因为我们经常需要合并,Mercurial使得这个过程很简单。下面我们演示一下合并的过"
+"程。我们仍然从克隆另外一个版本库开始(看看它出现的多么频繁),并在它上面作更"
+"改。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:42
 "illustrated in <xref linkend=\"fig:tour-merge:sep-repos\"/>.  Here is a copy "
 "of our file from one repository."
 msgstr ""
+"现在<filename>hello.c</filename>有了内容不尽相同的两份拷贝。 两个版本库的历史"
+"也出现差异,就像在<xref linkend=\"fig:tour-merge:sep-repos\"/>中显示的那样。下"
+"面是文件在一个版本库中的拷贝。 "
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:51
 msgid "And here is our slightly different version from the other repository."
-msgstr ""
+msgstr "下面是该文件在另外一个版本库中稍微不同的版本。"
 
 #. type: Content of: <book><chapter><sect1><figure><title>
 #: ../en/ch03-tour-merge.xml:57
 "\">my-hello</filename> repository will have no effect on the working "
 "directory."
 msgstr ""
+"我们已经知道,从我们的<filename class=\"directory\">my-hello</filename>版本库"
+"推送变更对工作目录没有任何影响。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:73
 "However, the <command role=\"hg-cmd\">hg pull</command> command says "
 "something about <quote>heads</quote>."
 msgstr ""
+"但是,<command role=\"hg-cmd\">hg pull</command>命令还是输出了一些关于 "
+"<quote>heads</quote>的信息。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch03-tour-merge.xml:77
 "the newest revision in a repository doesn't have any children.  There are "
 "times when a repository can contain more than one head."
 msgstr ""
+"记住Mercurial记录了每个变更的父版本。如果一个变更有父版本,我们称之为其父版本"
+"的孩子或者后裔。领头版本是一个没有孩子的版本。顶点版就是这样一个领头版本,因为"
+"版本库中的最新版没有任何孩子。有时候一个版本库中会有多个领头版本"
 
 #. type: Content of: <book><chapter><sect1><sect2><figure><title>
 #: ../en/ch03-tour-merge.xml:88
 "view the heads in a repository using the <command role=\"hg-cmd\">hg heads</"
 "command> command."
 msgstr ""
+"在<xref linkend=\"fig:tour-merge:pull\"/>中,你可以看到将变更从<filename "
+"class=\"directory\">my-hello</filename>拖到<filename class=\"directory\">my-"
+"new-hello</filename>之后的效果。<filename class=\"directory\">my-new-hello</"
+"filename>中已有的版本历史没有发生任何变化,但是增加了一个新的版本。从<xref "
+"linkend=\"fig:tour-merge:sep-repos\"/>中,我们可以发现<emphasis>变更集标识符</"
+"emphasis>在新的版本库中保持不变,但是<emphasis>版本号</emphasis>变了。  (顺便"
+"说一句,这个例子很好的解释了为什么在讨论变更集的时候版本号是不安全的。我们可以"
+"使用<command role=\"hg-cmd\">hg heads</command>命令查看版本库中的领头版本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch03-tour-merge.xml:118
 "What happens if we try to use the normal <command role=\"hg-cmd\">hg update</"
 "command> command to update to the new tip?"
 msgstr ""
+"如果我们使用常用的<command role=\"hg-cmd\">hg update</command>命令来更新到新的"
+"顶点,会发生什么事情呢?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:126
 "(Incidentally, forcing the update with <command>hg update -C</command> would "
 "revert any uncommitted changes in the working directory.)"
 msgstr ""
+"Mercurial告诉我们<command role=\"hg-cmd\">hg update</command>不能进行合并;当"
+"它认为我们可能需要进行合并的时候,它不会更工作目录。除非我们强制它这样做。(附"
+"带说一下,使用<command>hg update -C</command>命令强制更新会丢掉当前目录没有提"
+"交的变更。)"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:134
 "To start a merge between the two heads, we use the <command role=\"hg-cmd"
 "\">hg merge</command> command."
 msgstr ""
-"我们使用 <command role=\"hg-cmd\">hg merge</command> 命令来合并两个顶点。"
+"我们使用 <command role=\"hg-cmd\">hg merge</command> 命令来合并两个领头版本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:139
 "heads, which is reflected in both the output of <command role=\"hg-cmd\">hg "
 "parents</command> and the contents of <filename>hello.c</filename>."
 msgstr ""
+"我们解析了<filename>hello.c</filename>的内容。这个操作更新了工作目录,使其包含"
+"了<emphasis>两个</emphasis>领头版本的变更,这反映在<command role=\"hg-cmd"
+"\">hg parents</command>的输出和<filename>hello.c</filename>的内容上。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch03-tour-merge.xml:151
 "will display two parents until we <command role=\"hg-cmd\">hg commit</"
 "command> the results of the merge."
 msgstr ""
+"当我们完成合并,并通过<command role=\"hg-cmd\">hg commit</command>提交合并的结"
+"果之前,<command role=\"hg-cmd\">hg parents</command>命令都会显示当前版本有两"
+"个父版本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:160
 "of our former heads as its parents.  These are the same revisions that were "
 "previously displayed by <command role=\"hg-cmd\">hg parents</command>."
 msgstr ""
+"现在我们有了一个新的顶点版本;注意先前的领头版本<emphasis>都</emphasis>是它的"
+"父版本。这和刚才我们用 <command role=\"hg-cmd\">hg parents</command>显示的版本"
+"一致。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:167
 "directory has two parent changesets, and these become the parents of the new "
 "changeset."
 msgstr ""
+"图<xref linkend=\"fig:tour-merge:merge\"/>显示了在合并过程中,工作目录中发生了"
+"什么,还有当提交发生的时候,它是如何影响版本库的。在合并过程中,当前目录有两个"
+"父变更集,他们都成为新的变更集的父版本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><figure><title>
 #: ../en/ch03-tour-merge.xml:176
 "directory was at e.g. revision 5 before we began a merge, that revision will "
 "become the left side of the merge."
 msgstr ""
+"我们有时候说合并有<emphasis>两边</emphasis>:左边是<command role=\"hg-cmd"
+"\">hg parents</command>命令输出的第一个父版本,右边是第二个。如上例所示,如果"
+"在合并前版本号是5,那么它就会成为合并的左边。 "
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch03-tour-merge.xml:196
 msgid "Merging conflicting changes"
-msgstr "合并有冲突的变"
+msgstr "合并有冲突的变"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:198
 "emphasis>, where you have to decide how to reconcile the different changes "
 "into something coherent."
 msgstr ""
+"大多数合并都很简单,但有时候你会发现待合并的不同变更修改了同一文件的相同部分。"
+"除非修改完全一致,否则合并会出现<emphasis>冲突</emphasis>,这时候你就要决定如"
+"何在不同的变更中取舍,最后形成一致的结果。"
 
 #. type: Content of: <book><chapter><sect1><figure><title>
 #: ../en/ch03-tour-merge.xml:206
 "the same text.  Our task in resolving the conflicting changes is to decide "
 "what the file should look like."
 msgstr ""
+"<xref linkend=\"fig:tour-merge:conflict\"/>是一个文档变更相互冲突的的实例。我"
+"们从文件的一个版本开始,做了一些修改;但别人也在相同的地方作了不同的修改。我们"
+"解决冲突的目的就是要决定文件到底应该是什么样子。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:220
 "succeed (because the resolution process requires human guidance) or aren't "
 "present, it tries a few different graphical merging tools."
 msgstr ""
+"Mercurial没有内建的工具处理冲突。相反,它会运行外部程序,通常是一个能够以图形"
+"化显示冲突的软件。缺省情况下,Mercurial会试着从有可能在你系统上安装的几个合并"
+"工具中挑选一个。它首先会尝试几个全自动的合并工具;如果不成功(因为解决冲突需要"
+"人工干预)或者找不到,它会尝试其他不同的图形化合并工具。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:230
 "setting the <envar>HGMERGE</envar> environment variable to the name of your "
 "preferred program."
 msgstr ""
+"如果将环境变量<envar>HGMERGE</envar>传给你的程序,还可以让Mercurial运行特定的"
+"程序或者脚本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch03-tour-merge.xml:236
 "are three different versions of the file of interest to us.  The tool thus "
 "splits the upper portion of the window into three panes:"
 msgstr ""
+"我比较喜欢的图形化的合并工具是<command>kdiff3</command>。我会用它来描述图形化"
+"合并工具的一般特征。你可以在<xref linkend=\"fig:tour-merge:kdiff3\"/>看到正在"
+"使用中的<command>kdiff3</command>的截图. 它正在进行的这种合并叫<emphasis>三路"
+"合并</emphasis>。因为我们感兴趣的文件有三种不同的版本。所以它把窗口的上半部分"
+"为3格。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch03-tour-merge.xml:248
 "most recent version from which the two versions we're trying to merge are "
 "descended."
 msgstr ""
+"左边是文件的<emphasis>基</emphasis>版本,也就是我们合并的两个版本的最新的父版"
+"本。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch03-tour-merge.xml:253
 msgid ""
 "In the middle is <quote>our</quote> version of the file, with the contents "
 "that we modified."
-msgstr ""
+msgstr "中间是<quote>我们的</quote>版本,其内容已经被我们修改。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch03-tour-merge.xml:256
 msgid ""
 "On the right is <quote>their</quote> version of the file, the one that from "
 "the changeset that we're trying to merge with."
-msgstr ""
+msgstr "右边是<quote>他们的</quote>版本,就是从我们试图进行合并的变更集。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:260
 "conflicts, with some sensible merger of the <quote>ours</quote> and "
 "<quote>theirs</quote> versions of the file."
 msgstr ""
+"它们下面的方格是合并的当前<emphasis>结果</emphasis>。我们任务就是替换所有的红"
+"色文字,它们标志着未解决的冲突,我们必须在<quote>我们的</quote>和<quote>他们的"
+"</quote>版本中进行合理的合并。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:267
 "scroll vertically or horizontally in any of them, the others are updated to "
 "display the corresponding sections of their respective files."
 msgstr ""
+"这四格都是<emphasis>关联</emphasis>的,如果我们将其中任意一个垂直或水平滚动,"
+"其他的格也会更新对应文件的相关部分的显示。"
 
 #. type: Content of: <book><chapter><sect1><sect2><figure><title>
 #: ../en/ch03-tour-merge.xml:273
 "theirs.  We can also manually edit the merged file at any time, in case we "
 "need to make further modifications."
 msgstr ""
+"对于文件的每个冲突,我们可以用基版本,我们的版本或者他们的版本的一些文字的组合"
+"来解决冲突。也可以在任何时候手工编辑合并后的文件。这种情况下我们需要进一步的修"
+"改。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:290
 "containing plain text, while a few are aimed at specialised file formats "
 "(generally XML)."
 msgstr ""
+"有<emphasis>许多</emphasis>可以选择的合并工具,篇幅有限,这里就不多介绍了。他"
+"们适应于不同的平台,各有其优点和缺点。大多数软件都是针对合并纯文本文件优化的,"
+"另外一些则是针对特殊的格式(通常是XML)进行了优化。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch03-tour-merge.xml:299
 "linkend=\"fig:tour-merge:conflict\"/> above.  Let's begin by creating a "
 "repository with a base version of our document."
 msgstr ""
+"在本例中,我们将重建<xref linkend=\"fig:tour-merge:conflict\"/>的修改历史。我"
+"们从创建文档基版本的版本库开始。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:308
 msgid "We'll clone the repository and make a change to the file."
-msgstr ""
+msgstr "我们克隆版本库并且修改文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:313
 "when you isolate tasks in separate repositories, and indeed to find and "
 "resolve conflicts while doing so.)"
 msgstr ""
+"让另外一个克隆去模拟别人修改文件(这意味着当你利用不同的版本库处理不同任务的时"
+"候,常常需要和自己合并,实际上也就是找到并解决冲突。)"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:321
 msgid ""
 "Having created two different versions of the file, we'll set up an "
 "environment suitable for running our merge."
-msgstr ""
+msgstr "这个文件已经有了两个不同的版本,我们来设置适合进行合并的环境。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:327
 "bother setting <envar>HGMERGE</envar>.  You'll get dropped into a GUI file "
 "merge tool instead, which is much preferable.)"
 msgstr ""
+"在本例中,我们设置<envar>HGMERGE</envar>告诉MERCURIAL用非交互式的<command>合并"
+"</command>命令。许多类似Unix系统都有这个功能。(如果你在电脑上,不必设置"
+"<envar>HGMERGE</envar>,直接使用GUI会更好)"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:337
 "indicating which lines have conflicts, and whether they came from our version "
 "of the file or theirs."
 msgstr ""
+"由于合并解决不了冲突的变更,所以冲突文件会有标记,表明哪些行存在冲突,他们来自"
+"我们的文件还是他们的文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:343
 "we were running a graphical merge tool and quit because we were confused or "
 "realised we had made a mistake."
 msgstr ""
+"Mercurial能根据<command>merge</command>命令的退出状态判断出合并失败,所以它会"
+"告诉我们如果我们想重新执行合并操作的时候需要运行什么命令。这可能很有用,例如,"
+"我们运行了一个图形化合并工具然后发现不知所措或者意识到犯了错误然后退出。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch03-tour-merge.xml:350
 "<quote>fixing up</quote> the affected files ourselves, and committing the "
 "results of our merge:"
 msgstr ""
+"如果自动化或者手动合并失败,那么我们只好自己<quote>修复</quote>受影响文件,然"
+"后提交合并的结果。"
 
 #. type: Content of: <book><chapter><sect1><sect2><note><title>
 #: ../en/ch03-tour-merge.xml:357
 "strongly consider upgrading to a newer version before trying to tackle "
 "complicated merges."
 msgstr ""
+"Mercurial 1.1版于2008年发布,从这个版本开始引入了<command>hg resolve</command>"
+"命令。如果你还在使用更老的版本(可以运行<command>hg version</command>命令查"
+"看),这个命令还不存在。如果你的Mercurial的版本比1.1还旧,那么我强烈建议你在尝"
+"试解决复杂的合并之前升级到新的版本。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch03-tour-merge.xml:371
 msgid ""
 "The process of merging changes as outlined above is straightforward, but "
 "requires running three commands in sequence."
-msgstr ""
+msgstr "上面讨论的合并变更的过程非常简单,但是需要按照顺序允许三个命令"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:379
 "In the case of the final commit, you also need to enter a commit message, "
 "which is almost always going to be a piece of uninteresting "
 "<quote>boilerplate</quote> text."
-msgstr ""
+msgstr "在最后提交的时候,你需要输入一条提交信息,这通常并不怎么有趣。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:383
 "possible.  Indeed, Mercurial is distributed with an extension called <literal "
 "role=\"hg-ext\">fetch</literal> that does just this."
 msgstr ""
+"如果有可能的话,最好能够减少需要的步骤。实际上,Mercurial发布的时候有一个扩展"
+"叫做<literal role=\"hg-ext\">fetch</literal>可以完成这个工作。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:388
 "line, while others work <quote>behind the scenes,</quote> for example adding "
 "capabilities to Mercurial's built-in server mode."
 msgstr ""
+"Mercurial提供了灵活的扩展机制,人们可以利用它扩展它的功能,同时保持Mercurial的"
+"核心很小并且容易管理。有些扩展增加了新的命令,你可以通过命令行使用它们,而其它"
+"的都是<quote>幕后工作</quote>,比如增加了Mercurial内建服务器模式的能力。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:395
 "automatically-generated commit message.  If no new heads were added, it "
 "updates the working directory to the new tip changeset."
 msgstr ""
+"<literal role=\"hg-ext\">fetch</literal>扩展增加了一个新的命令,毫无疑问,它叫"
+"做<command role=\"hg-cmd\">hg fetch</command>。这个扩展的功能像<command role="
+"\"hg-cmd\">hg pull -u</command>, <command role=\"hg-cmd\">hg merge</command>和"
+"<command role=\"hg-cmd\">hg commit</command>的组合。 它首先从其他版本库将变更"
+"拖入当前版本库。如果它发现变更向版本库添加了新的领头版本,它会更新到新的领头版"
+"本,开始合并然后(如果合并成功)提交合并的结果和一条自动产生的提交信息。如果没"
+"有新的领头版本,它仅仅会将当前目录更新到新的顶点。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:409
 "literal> section. Then add a line that simply reads <quote><literal>fetch=</"
 "literal></quote>."
 msgstr ""
+"使用<literal role=\"hg-ext\">fetch</literal>扩展非常容易。编辑你的家目录的"
+"<filename role=\"special\">.hgrc</filename>文件,找到<literal role=\"rc-"
+"extensions\">扩展</literal>段或者创建一个<literal role=\"rc-extensions\">扩展"
+"</literal>段。然后增加一行<quote><literal>fetch=</literal></quote>。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:421
 "ext\">fetch</literal> extension is in the standard distribution, Mercurial "
 "knows where to search for it.)"
 msgstr ""
+"(一般情况下,<quote><literal>=</literal></quote>的右边应该表示如何找到扩展,"
+"但是因为<literal role=\"hg-ext\">fetch</literal>扩展是在标准的发布版中, "
+"Mercurial知道哪里能找到它。)"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch03-tour-merge.xml:429
 msgid "Renaming, copying, and merging"
-msgstr "名,复制与合并"
+msgstr "重命名,复制与合并"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:431
 "files and directories. This can be as simple as renaming a single file, or as "
 "complex as restructuring the entire hierarchy of files within the project."
 msgstr ""
+"在一个项目的生命里,我们经常需要更改它的文件和目录的布局。这可能很简单,仅仅是"
+"对文件改名,或者非常复杂,像对整个项目的文件层次重新规划。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:436
 "<command>hg rename</command><placeholder type=\"footnote\" id=\"0\"/> command "
 "to rename it, so that Mercurial can do the right thing later when we merge."
 msgstr ""
+"Mercurial对这种复杂的变更支持的很好,只要你告诉它你想干什么就可以了。如果你想"
+"要给一个文件改名,只要用<command>hg rename</command><placeholder type="
+"\"footnote\" id=\"0\"/>给它改名就可以了,在以后需要合并的时候,Mercurial知道该"
+"怎么做。"
 
 #. type: Content of: <book><chapter><sect1><para><footnote><para>
 #: ../en/ch03-tour-merge.xml:439
 "If you're a Unix user, you'll be glad to know that the <command>hg rename</"
 "command> command can be abbreviated as <command>hg mv</command>."
 msgstr ""
+"如果你是一个Unix用户,你会很高兴的发现<command>hg rename</command>可以简写为"
+"<command>hg mv</command>。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch03-tour-merge.xml:445
 msgid ""
 "We will cover the use of these commands in more detail in <xref linkend="
 "\"chap:daily.copy\"/>."
-msgstr ""
+msgstr "我们将在<xref linkend=\"chap:daily.copy\"/>中详细介绍这些命令的使用。"
 
 #. type: Content of: <book><chapter><title>
 #: ../en/ch04-concepts.xml:5
 "one</quote> relationship between revisions in the changelog, manifest, or "
 "filelog. If a file that Mercurial tracks hasn't changed between two "
 "changesets, the entry for that file in the two revisions of the manifest will "
-"point to the same revision of its filelog<placeholder type=\"footnote\" id=\"0"
-"\"/>."
+"point to the same revision of its filelog<placeholder type=\"footnote\" id="
+"\"0\"/>."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><para><footnote><para>
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch04-concepts.xml:529
 msgid "Merging and renames"
-msgstr "合并与名"
+msgstr "合并与重命名"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch04-concepts.xml:531
 "tell you which files Mercurial doesn't know about; it uses a <quote><literal>?"
 "</literal></quote> to display such files."
 msgstr ""
+"Mercurial 并不会管理你的版本库中的文件,除非你命令它去做。<command role=\"hg-"
+"cmd\">hg status</command> 命令会告诉你哪些文件 Mercurial 没有跟踪;它用 "
+"<quote><literal>?</literal></quote> 来标识这样的文件"
 
 #
 #. type: Content of: <book><chapter><sect1><para>
 "<command role=\"hg-cmd\">hg status</command> for that file changes from "
 "<quote><literal>?</literal></quote> to <quote><literal>A</literal></quote>."
 msgstr ""
+"使用<command role=\"hg-cmd\">hg add</command>命令来让Mercurial跟踪一个文件。  "
+"一旦添加了一个文件,该文件的<command role=\"hg-cmd\">hg status</command>的输出"
+"就从<quote><literal>?</literal></quote>变成了<quote><literal>A</literal></"
+"quote>."
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:26
 "is tracking, but that have not changed.  (You can still get this information; "
 "we'll return to this later.)"
 msgstr ""
+"在运行<command role=\"hg-cmd\">hg commit</command>之后,你在提交之前添加的文件"
+"将不会再出现在<command role=\"hg-cmd\">hg status</command>命令的输出中。原因在"
+"于,在缺省情况下,<command role=\"hg-cmd\">hg status</command>仅仅告诉你那些你"
+"可能<quote>感兴趣</quote>的文件&emdash;那些你已经(比如)修改,删除,改名的文"
+"件。如果你的版本库中包含几千个文件,你基本上不会想知道Mercurial跟踪了哪些文"
+"件,如果这些文件并没有被更改的话。(你还是可以得到这一信息的,以后我们还会讨论"
+"它。)"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:38
 "perform a commit.  It will then continue to track the changes you make to the "
 "file every time you commit, until you remove the file."
 msgstr ""
+"添加一个文件之后,Mercurial并不会马上对它做任何操作。相反,在下次你提交的时"
+"候 ,它会给这个文件作一个快照。并且在你以后每次提交的时候继续跟踪这个文件,直"
+"到你删除它。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:45
 "want to operate on every file in this directory and its subdirectories</"
 "quote>."
 msgstr ""
+"Mercurial一个有用的特征是如果你将一个目录名传递给一个命令,任何一个Mercurial命"
+"令都会作如下处理<quote>我要在这个目录和它的子目录中的所有文件上执行操作</"
+"quote>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:54
 "added, whereas it didn't do so when we added the file named <filename>myfile."
 "txt</filename> in the earlier example."
 msgstr ""
+"注意在这个上面这个例子中,Mercurial输出了它添加的文件的名字,然而在前面的例子"
+"中当我们添加文件<filename>myfile.txt</filename>的时候,它没有输出任何东西。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:59
 "add on the command line.  The assumption that Mercurial makes in such cases "
 "is that we know what we are doing, and it doesn't print any output."
 msgstr ""
+"在先前的那个例子中,我们在命令中明确的给出了要添加的文件。在这种情况下,"
+"Mercurial假设我们知道我们在做什么,所以它不输出任何东西。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:64
 "happening, and reduces the likelihood of a silent and nasty surprise.  This "
 "behavior is common to most Mercurial commands."
 msgstr ""
+"然而,当我们通过目录<emphasis>隐含</emphasis>地指定文件的时候,Mercurial会将其"
+"操作的每个文件的文件名都输出。这样会更清晰,同时减少可能意外情况。大多数"
+"Mercurial命令都有这样的行为。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:73
 "distinction, but it has one minor practical consequence: it is not possible "
 "to represent a completely empty directory in Mercurial."
 msgstr ""
+"Mercurial并不跟踪目录信息。相反,它会跟踪文件的路径。在创建一个文件之前,它首"
+"先会创建该文件路径中缺少的目录。在删除文件之后,它会删除在被删除文件路径上的任"
+"何空目录。这看起来区别不大,但是却导致这样的结果:Mercurial不可能管理一个完全"
+"为空的目录。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:84
 "Mercurial thus felt that the complexity that would be required to manage "
 "empty directories was not worth the limited benefit this feature would bring."
 msgstr ""
+"空目录基本上没有什么用,而且你可以用其他的方法达到相同的效果。因此Mercurial的"
+"开发者认为管理空目录带来的复杂性超过它带来的好处。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:91
 "literal></quote>) is treated as hidden by most commands and GUI tools.  This "
 "approach is illustrated below."
 msgstr ""
+"如果你真的希望在版本中包含空目录,有几种方法。其一是创建一个目录,然后用"
+"<command role=\"hg-cmd\">hg add</command>命令在目录中添加一个<quote>隐藏</"
+"quote>文件。比如在UNIX类似系统上,大多数命令和GUI工具都认为文件名以点"
+"(<quote><literal>.</literal></quote>) 开头的文件是隐藏文件。这种方法如下。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:102
 msgid ""
 "Another way to tackle a need for an empty directory is to simply create one "
 "in your automated build scripts before they will need it."
-msgstr ""
+msgstr "另外一种方法是在使用自动化创建脚本,在需要空目录的时候创建。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:109
 "commit).  A removed file is represented in the output of <command role=\"hg-"
 "cmd\">hg status</command> with a <quote><literal>R</literal></quote>."
 msgstr ""
+"一旦你决定要将一个文件从版本库中删除,使用 <command role=\"hg-cmd\">hg "
+"remove</command>命令。它会删除该文件,同时通知Mercurial停止跟踪它(下次提交的"
+"时候生效)。已被删除的文件在<command role=\"hg-cmd\">hg status</command>的输出"
+"中以<quote><literal>R</literal></quote>标识。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:121
 "\">hg add</command> it. Mercurial will know that the newly added file is not "
 "related to the old file of the same name."
 msgstr ""
+"在你使用<command role=\"hg-cmd\">hg remove</command>删除一个文件之后,"
+"Mercurial不再跟踪这个文件的变化,即使你在工作目录以同样的名字重新创建了一个文"
+"件。如果你以相同的名字重新创建了一个文件,并且希望Mercurial跟踪新的文件,只要"
+"用<command role=\"hg-cmd\">hg add</command>添加它就可以了。Mercurial会知道这个"
+"新加的文件虽然和以前的文件名字相同,但是毫无关系。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:130
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:132
 msgid "It is important to understand that removing a file has only two effects."
-msgstr ""
+msgstr "要理解删除一个文件仅仅两个方面的影响,这非常重要。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:135
 msgid "It removes the current version of the file from the working directory."
-msgstr ""
+msgstr "文件的当前版本从工作目录中删除。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:138
 msgid ""
 "It stops Mercurial from tracking changes to the file, from the time of the "
 "next commit."
-msgstr ""
+msgstr "从下次提交开始,Mercurial将不会在跟踪这个文件的变化。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:141
 "Removing a file <emphasis>does not</emphasis> in any way alter the "
 "<emphasis>history</emphasis> of the file."
 msgstr ""
+"删除一个文件<emphasis>不会</emphasis>以任何方式修改这个文件的<emphasis>历史</"
+"emphasis>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:144
 "which the file had been removed, Mercurial will once again remove the file "
 "from the working directory."
 msgstr ""
+"如果你在某一版本中将一个文件删除,而后将工作目录更新到以前的某个版本,那时这个"
+"文件还没有被删除,那么这个文件会重新在工作目录中出现,其内容和你提交那个变更集"
+"的内容相同。然后如果你更新到比较新的版本,这时这个文件已经被删除了,那么"
+"Mercurial会再次将这个文件从工作目录中删除。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:155
 "quote> in the output of <command role=\"hg-cmd\">hg status</command>.  "
 "Mercurial commands will not generally do anything with missing files."
 msgstr ""
+"如果一个文件被删除了,但是不是用<command role=\"hg-cmd\">hg remove</command>命"
+"令删除的,Mercurial认为它<emphasis>丢失</emphasis>了。 丢失的文件在<command "
+"role=\"hg-cmd\">hg status</command>的输出中以<quote><literal>!</literal></"
+"quote>标识。一般情况下Mercurial命令不会对丢失的文件作任何处理。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:167
 "option></command> at any time later on, to tell Mercurial that you really did "
 "mean to remove the file."
 msgstr ""
+"如果<command role=\"hg-cmd\">hg status</command>报告版本库中的一个文件丢失了,"
+"而且你确实不需要这个文件了,你可以在以后的任何时间运行<command role=\"hg-cmd"
+"\">hg remove <option role=\"hg-opt-remove\">--after</option></command>命令,告"
+"诉Mercurial你希望删除这个文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:177
 "role=\"hg-cmd\">hg revert</command> the name of the file to recover.  It will "
 "reappear, in unmodified form."
 msgstr ""
+"另一方面,如果你是不小心把那个文件删掉的,可以用<command role=\"hg-cmd\">hg "
+"revert</command>命令加上要恢复的文件名。它会将文件恢复到未修改前的状态。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:186
 "command>, and stop tracking the file.  In practice, this made it too easy to "
 "accidentally remove a file without noticing."
 msgstr ""
+"你可能奇怪为什么Mercurial要求你明确的告诉它要删除一个文件。在Mercurial开发的早"
+"期,只要你喜欢就可以删掉文件;Mercurial会自动的注意到文件不在了,当你下一次运"
+"行<command role=\"hg-cmd\">hg commit</command>的时候,它就会停止跟踪这个文件。"
+"实际上,这很导致没有注意到的误删。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:200
 msgid "Useful shorthand&emdash;adding and removing files in one step"
-msgstr "有用的速记—一个步骤添加和删除文件"
+msgstr "有用的技巧&emdash;一个步骤添加和删除文件"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:203
 "addremove</command>, that adds untracked files and marks missing files as "
 "removed."
 msgstr ""
+"Mercurial提供一个组合命令, <command role=\"hg-cmd\">hg addremove</command>,"
+"它会添加未跟踪的文件,同时将丢失的文件标志为删除。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:209
 "<option role=\"hg-opt-commit\">-A</option> option that performs this same add-"
 "and-remove, immediately followed by a commit."
 msgstr ""
+"<command role=\"hg-cmd\">hg commit</command>命令同样也提供一个<option role="
+"\"hg-opt-commit\">-A</option>选项,在提交之后进行相同的添加删除。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:219
 msgid "Copying files"
-msgstr "复制文件"
+msgstr "拷贝文件"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:221
 "original file.  It treats these copied files specially when you merge your "
 "work with someone else's."
 msgstr ""
+"Mercurial提供了一个<command role=\"hg-cmd\">hg copy</command>命令,可以用来拷"
+"贝文件。当你用这个命令拷贝文件时,Mercurial会记录下这个文件是由原来的文件拷贝"
+"而来的。以后在你把工作和其他人的工作合并的时候,它会对这些拷贝的文件进行特殊处"
+"理。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:229
 msgid "The results of copying during a merge"
-msgstr "合并期间的复制结果"
+msgstr "合并后拷贝文件的内容"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:231
 "best illustrate what this means, let's create an example.  We'll start with "
 "the usual tiny repository that contains a single file."
 msgstr ""
+"在合并过程中,变更会<quote>传递</quote>给拷贝。为了更好的解释它,我们创建一个"
+"例子。我们从一个仅仅包含一个文件的小版本库开始。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:238
 msgid ""
 "We need to do some work in parallel, so that we'll have something to merge.  "
 "So let's clone our repository."
-msgstr ""
+msgstr "我们需要并行的工作,所以我们要进行合并。所以我们将版本库克隆。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:244
 "Back in our initial repository, let's use the <command role=\"hg-cmd\">hg "
 "copy</command> command to make a copy of the first file we created."
 msgstr ""
+"回到初始的版本库,我们用<command role=\"hg-cmd\">hg copy</command>命令创建我们"
+"开始时建立的文件的拷贝。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:250
 "If we look at the output of the <command role=\"hg-cmd\">hg status</command> "
 "command afterwards, the copied file looks just like a normal added file."
 msgstr ""
+"然后如果我们看一下<command role=\"hg-cmd\">hg status</command>的输出,发现拷贝"
+"的文件看起来像普通的新添加的文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:256
 "output: this is the file that our newly-added file was copied <emphasis>from</"
 "emphasis>."
 msgstr ""
+"当时如果我们给<command role=\"hg-cmd\">hg status</command>加上<option role="
+"\"hg-opt-status\">-C</option>选项,它会输出另外一行:新添加的文件是从那个文件"
+"拷贝<emphasis>而来</emphasis>的。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:264
 "Now, back in the repository we cloned, let's make a change in parallel.  "
 "We'll add a line of content to the original file that we created."
 msgstr ""
+"现在,回到我们克隆的那个版本库,我们并行的作一点改动,给我们最开始创建的文件添"
+"加一行。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:270
 "Mercurial will propagate the changes that we made locally to <filename>file</"
 "filename> into its copy, <filename>new-file</filename>."
 msgstr ""
+"现在版本库里面有了修改过的文件。我们从第一个版本库拖变更,并且合并两个顶版本,"
+"Mercurial会将变更从我们修改的文件<filename>file</filename>传递给它的拷贝,"
+"<filename>new-file</filename>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:280
 msgid "Why should changes follow copies?"
-msgstr "为什么复制后需要后续修改?"
+msgstr "为什么要传递变更?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:282
 "This behavior&emdash;of changes to a file propagating out to copies of the "
 "file&emdash;might seem esoteric, but in most cases it's highly desirable."
 msgstr ""
+"这一行为&emdash;文件的变更会传递到它的拷贝中&emdash; 可能看起来难以理解, 但在"
+"大多数情况下,它很受欢迎。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:286
 "a file, and subsequently modify the original file during the normal course of "
 "your work, nothing will happen."
 msgstr ""
+"首先要记住这种传播<emphasis>仅仅</emphasis>发生在合并的时候。所以如果你用"
+"<command role=\"hg-cmd\">hg copy</command>拷贝了一个文件,此后在工作过程这原文"
+"件进行了修改,这时什么也不会发生。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:292
 "copy as long as the changeset that you're merging changes from "
 "<emphasis>hasn't yet seen</emphasis> the copy."
 msgstr ""
+"其次要了解的是,只有当你在合并的变更<emphasis>还没有看到</emphasis>这个拷贝的"
+"时候,修改才会通过拷贝传播。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:297
 "repository, without knowing about the bug or having seen the fix, and you "
 "have started hacking on your copy of the file."
 msgstr ""
+"Mercurial这样设计的原因如下。假设我们在源代码中修正了一个重要的bug,然后提交了"
+"变更。与此同时,你决定用<command role=\"hg-cmd\">hg copy</command>命令在你的版"
+"本库中拷贝这个文件,但你并不知到这个bug也没有发现它已经被修复了,并且你已经开"
+"始在你的拷贝上进行修改了。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:304
 "contain the bug, and unless you knew to propagate the bug fix by hand, the "
 "bug would <emphasis>remain</emphasis> in your copy of the file."
 msgstr ""
+"如果你把我的变更拖进来并且合并,但Mercurial<emphasis>不会</emphasis>将变更传递"
+"给拷贝,那么你的新代码文件将仍然包含那个bug,除非你知道并且手动修复那个它,这"
+"个bug会一直<emphasis>保留</emphasis>在你的拷贝里面。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:310
 "Mercurial is the <emphasis>only</emphasis> revision control system that "
 "propagates changes across copies like this."
 msgstr ""
+"Mercurial将修复了bug的变更从原始文件自动的传播到拷贝,从而避免了这样的问题。据"
+"我了解,Mercurial是<emphasis>唯一</emphasis>的像这样在拷贝间传播变更的版本控制"
+"系统。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:316
 "original file to the copied file, and that's why Mercurial only propagates "
 "changes across copies at the first merge, and not afterwards."
 msgstr ""
+"一旦你的变更历史中有了拷贝和随后的合并记录,通常再次将变更从原始文件传递到拷贝"
+"文件,这就是Mercurial仅仅在第一次合并的时候在拷贝间传递变更的原因,而不是此"
+"后。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:324
 msgid "How to make changes <emphasis>not</emphasis> follow a copy"
-msgstr "如何让复制后<emphasis></emphasis>修改?"
+msgstr "如何<emphasis>禁止</emphasis>变更传递?"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:327
 "\"sec:daily:why-copy\"/>, and make an informed decision that this behavior is "
 "not appropriate to your specific case."
 msgstr ""
+"如果出于某种原因,你觉得这种自动在拷贝间传递变更的方式不适合你,那么你可以使用"
+"系统的拷贝命令(在类Unix系统上就是<command>cp</command>命令)来复制文件,然后"
+"使用<command role=\"hg-cmd\">hg add</command>手动添加拷贝的文件。在你这么作之"
+"前,请重新阅读<xref linkend=\"sec:daily:why-copy\"/>,确认这一功能是不是真的不"
+"适合你的情况,然后作出正确的决定。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:340
 msgid "Behavior of the <command role=\"hg-cmd\">hg copy</command> command"
-msgstr "命令 <command role=\"hg-cmd\">hg copy</command> 的特性"
+msgstr "命令<command role=\"hg-cmd\">hg copy</command>的行为"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:343
 "have made up until that point.  (I find this behavior a little "
 "counterintuitive, which is why I mention it here.)"
 msgstr ""
+"在使用<command role=\"hg-cmd\">hg copy</command>命令的时候,Mercurial会复制工"
+"作目录中当前的文件。也就是说,如果你对文件作了修改,并且没有提交,那么"
+"<command role=\"hg-cmd\">hg copy</command>生成的新的文件将包含这些修改。(我觉"
+"得这样有点不合常理,所以在这里提一下。)"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:353
 "arguments, of which the last is treated as the <emphasis>destination</"
 "emphasis>, and all others are <emphasis>sources</emphasis>."
 msgstr ""
+"<command role=\"hg-cmd\">hg copy</command>命令和Unix的<command>cp</command>命"
+"令功能类似(如果你喜欢,可以用<command role=\"hg-cmd\">hg cp</command>作为它的"
+"别名)。我们必须提供两个或者两个以上参数, 其中最后一个为<emphasis>目标</"
+"emphasis>,其他的是<emphasis>源</emphasis>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:361
 "source, and the destination does not exist, it creates a new file with that "
 "name."
 msgstr ""
+"如果你传给<command role=\"hg-cmd\">hg copy</command>一个文件作为源,而目标文件"
+"不存在,它创建该文件。 "
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:367
 msgid ""
 "If the destination is a directory, Mercurial copies its sources into that "
 "directory."
-msgstr ""
+msgstr "如果目标是一个目录,Mercurial会将所有的源文件拷贝到目标目录。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:372
 msgid ""
 "Copying a directory is recursive, and preserves the directory structure of "
 "the source."
-msgstr ""
+msgstr "目录拷贝是递归的,保留源目录的结构。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:378
 msgid ""
 "If the source and destination are both directories, the source tree is "
 "recreated in the destination directory."
-msgstr ""
+msgstr "如果源和目标都是目录,源目录的结构会在目标目录中重建。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:383
 "simply use the <option role=\"hg-opt-copy\">--after</option> option to "
 "<command role=\"hg-cmd\">hg copy</command>."
 msgstr ""
+"和<command role=\"hg-cmd\">hg remove</command>命令一样,如果你手动拷贝了一个文"
+"件并且希望Mercurial知道你拷贝了这个文件,可以给<command role=\"hg-cmd\">hg "
+"copy</command>命令加上<option role=\"hg-opt-copy\">--after</option>选项。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:394
 msgid "Renaming files"
-msgstr "名文件"
+msgstr "重命名文件"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:396
 "essentially the same way as a copy.  Therefore, knowing what Mercurial does "
 "when you copy a file tells you what to expect when you rename a file."
 msgstr ""
+"与拷贝文件比起来,重命名文件使用频率更高。我在讨论重命名文件之前讨论<command "
+"role=\"hg-cmd\">hg copy</command>命令是因为Mercurial对于拷贝和重命名的处理方式"
+"相同。因此知道了Mercurial怎么处理拷贝文件也就知道了Mercurial怎么处理重命名文"
+"件。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:404
 "Mercurial makes a copy of each source file, then deletes it and marks the "
 "file as removed."
 msgstr ""
+"在你运行<command role=\"hg-cmd\">hg rename</command>命令的时候,Mercurial 首先"
+"对每个源文件都做一份拷贝,然后删除它,并将其标识为删除。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:410
 "The <command role=\"hg-cmd\">hg status</command> command shows the newly "
 "copied file as added, and the copied-from file as removed."
 msgstr ""
+"<command role=\"hg-cmd\">hg status</command>命令显示新拷贝的文件的状态是添加,"
+"拷贝的那个文件的状态是删除。 "
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:416
 "\"hg-cmd\">hg status</command> to see that the added file is really being "
 "tracked by Mercurial as a copy of the original, now removed, file."
 msgstr ""
+"和<command role=\"hg-cmd\">hg copy</command>命令的结果一样,我们必须给"
+"<command role=\"hg-cmd\">hg status</command>命令加上<option role=\"hg-opt-"
+"status\">-C</option>选项才能看到Mercurial是将新加的文件是作为原始文件的拷贝进"
+"行管理的,同时原始文件已经删除。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:425
 "command> command, and the options it accepts, are similar to the <command "
 "role=\"hg-cmd\">hg copy</command> command."
 msgstr ""
+"<command role=\"hg-cmd\">hg remove</command>和<command role=\"hg-cmd\">hg "
+"copy</command>命令一样,你在事后可以使用<option role=\"hg-opt-rename\">--"
+"after</option>选项告诉Mercurial改名。大多数情况下,<command role=\"hg-cmd"
+"\">hg rename</command>和<command role=\"hg-cmd\">hg copy</command>的行为和接受"
+"的选项都是相似的。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:434
 "<command role=\"hg-cmd\">hg rename</command> command can be invoked as "
 "<command role=\"hg-cmd\">hg mv</command>."
 msgstr ""
+"如果你熟悉Unix命令行,那么告诉你一个好消息,可以用<command role=\"hg-cmd\">hg "
+"mv</command>替代<command role=\"hg-cmd\">hg rename</command>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:440
 msgid "Renaming files and merging changes"
-msgstr "名文件与合并修改"
+msgstr "重命名文件与合并变更"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:442
 "Since Mercurial's rename is implemented as copy-and-remove, the same "
 "propagation of changes happens when you merge after a rename as after a copy."
 msgstr ""
+"因为Mercurial的重命名是以拷贝删除的方式实现的,如果拷贝了一个文件,然后又将其"
+"重命名,变更还是会从原来的文件传播到更名后的文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:446
 "expect to <quote>simply work,</quote> but not all revision control systems "
 "actually do this.)"
 msgstr ""
+"如果我修改了一个文件,同时你又将其更名,然后我们合并相关变更,那么我在原始文件"
+"名下作的修改将会传播到你的新文件中去。(这个功能你可能认为<quote>很简单,</"
+"quote>但是不是所有的版本控制系统都有这个功能。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:453
 "it would simply be too easy for changes to become orphaned when files are "
 "renamed."
 msgstr ""
+"对于变更会跟随拷贝这个功能,你可能不以为意地说 <quote>好吧,这个可能会有用</"
+"quote> 这里要说明让变更跟随重命名非常重要。 如果没有这个功能,那么在文件重命名"
+"之后,变更很容易被丢进黑洞。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:462
 msgid "Divergent renames and merging"
-msgstr "名与合并的分歧"
+msgstr "分歧的更名与合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:464
 "file&emdash;let's call it <filename>foo</filename>&emdash;in their respective "
 "repositories."
 msgstr ""
+"分歧更名是这样的情况,假设两个开发者的版本库中有一个文件&emdash;文件名为"
+"<filename>foo</filename>。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:471
 msgid "Anne renames the file to <filename>bar</filename>."
-msgstr ""
+msgstr "Anne将文件改名为<filename>bar</filename>."
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:475
 "<command role=\"hg-cmd\">hg mv</command> is an alias for <command role=\"hg-"
 "cmd\">hg rename</command>.)"
 msgstr ""
+"同时, Bob将它改名为<filename>quux</filename>。(记住<command role=\"hg-cmd"
+"\">hg mv</command>是<command role=\"hg-cmd\">hg rename</command>的别名。)"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:482
 msgid ""
 "I like to think of this as a conflict because each developer has expressed "
 "different intentions about what the file ought to be named."
-msgstr ""
+msgstr "我认为这是一个冲突,因为开发者对这个文件应该如何命名有了不同的意见。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:486
 "actual behavior is that it always preserves <emphasis>both</emphasis> names "
 "when it merges changesets that contain divergent renames."
 msgstr ""
+"你觉得他们合并的时候会发生什么呢?在合并包含分歧更名的变更集的时候,Mercurial"
+"实际上会将<emphasis>两</emphasis>个文件都保留。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:493
 "Notice that while Mercurial warns about the divergent renames, it leaves it "
 "up to you to do something about the divergence after the merge."
 msgstr ""
+"注意虽然Mercurial会对分歧更名产生警告,但是由你来决定在合并后如何解决分歧。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:499
 msgid "Convergent renames and merging"
-msgstr "收敛名与合并"
+msgstr "收敛重命名与合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:501
 "<emphasis>destination</emphasis>. In this case, Mercurial runs its normal "
 "merge machinery, and lets you guide it to a suitable resolution."
 msgstr ""
+"另一种更名冲突是两个人将不同的<emphasis>源</emphasis>文件改名为相同的"
+"<emphasis>目标</emphasis>文件。这种情况下,Mercurial会执行正常的合并过程,然后"
+"让你帮助他找到合适的解决方案。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:509
 msgid "Other name-related corner cases"
-msgstr "其它名称相关的角落"
+msgstr "其它名称相关的信息"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:511
 "same name.  This is documented as <ulink role=\"hg-bug\" url=\"http://www."
 "selenic.com/mercurial/bts/issue29\">issue 29</ulink>."
 msgstr ""
+"Mercurial一直都有一个bug,如果它在进行合并的时候发现一边有一个文件,而另外一边"
+"有一个相同名称的目录,那么合并就会失败。这个问题记录在<ulink role=\"hg-bug\" "
+"url=\"http://www.selenic.com/mercurial/bts/issue29\">issue 29</ulink>。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:524
 msgid ""
 "Mercurial has some useful commands that will help you to recover from some "
 "common mistakes."
-msgstr ""
+msgstr "Mercurial提供了一些有用的命令,它们可以帮助你从一些常见的错误中恢复。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:529
 "for adding by Mercurial any longer, either.  You can also use <command role="
 "\"hg-cmd\">hg revert</command> to get rid of erroneous changes to a file."
 msgstr ""
+"可以<command role=\"hg-cmd\">hg revert</command>命令取消对工作目录做的变更。比"
+"如,你不小心用<command role=\"hg-cmd\">hg add</command>命令添加了一个文件,只"
+"要运行<command role=\"hg-cmd\">hg revert</command>加上你添加的文件的文件名就可"
+"以了,文件的内容不会有任何改变,仅仅是Mercurial不再跟踪它了。你也可以用"
+"<command role=\"hg-cmd\">hg revert</command>消除对文件作出的错误的更改。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:539
 "you've committed a change, if you decide it was a mistake, you can still do "
 "something about it, though your options may be more limited."
 msgstr ""
+"要记住<command role=\"hg-cmd\">hg revert</command>命令仅仅适用于你的变更还没有"
+"提交的时候。一旦你提交了变更,然后发现这是个错误,你仍然有机会修正,虽然能做的"
+"很有限。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:546
 "command, and details about how to deal with changes you have already "
 "committed, see <xref linkend=\"chap:undo\"/>."
 msgstr ""
+"关于<command role=\"hg-cmd\">hg revert</command>命令的更多信息,还有如何处理已"
+"经提交的变更,请参考<xref linkend=\"chap:undo\"/>。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:553
 "inevitably going to result in conflicts, some of which can take a few tries "
 "to sort out."
 msgstr ""
+"在庞大而且复杂的项目中,两个变更集的合并常常让人头痛。假设有关大的源文件,合并"
+"的两边都作了很多修改:这不可避免的会导致很多冲突,有些要试几次才能解决。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:562
 "Let's develop a simple case of this and see how to deal with it.  We'll start "
 "off with a repository containing one file, and clone it twice."
 msgstr ""
+"我们用一个简单的例子看看如何处理这种情况。我们将包含一个文件的版本库克隆两次。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:568
 msgid "In one clone, we'll modify the file in one way."
-msgstr ""
+msgstr "在第一个克隆中,我们将文件修改成这样。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:572
 msgid "In another, we'll modify the file differently."
-msgstr ""
+msgstr "在另外一个克隆中,我们做完全不同的修改。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:576
 msgid "Next, we'll pull each set of changes into our original repo."
-msgstr ""
+msgstr "接下来,我们将两个变更集都推到原始的版本库。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:581
 msgid "We expect our repository to now contain two heads."
-msgstr ""
+msgstr "我们希望版本库现在有两个头版本。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:585
 "things for presentation here, we'd like the merge to fail immediately "
 "instead.  Here's one way we can do so."
 msgstr ""
+"正常情况下,如果这时我们运行<command role=\"hg-cmd\">hg merge</command>。它会"
+"运行一个GUI程序,让我们解决<filename>myfile.txt</filename>的冲突。但是,为了简"
+"化这里的演示,我们希望合并失败。我们可以按照下面的方法做。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:594
 "command> (which, as we desire, fails immediately) if it detects a merge that "
 "it can't sort out automatically."
 msgstr ""
+"我们告诉Mercurial的合并状态机,如果它检测到不能自己解决的冲突的话,就运行命令"
+"<command>false</command>(像我们希望的一样,立即失败返回)。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:599
 "If we now fire up <command role=\"hg-cmd\">hg merge</command>, it should "
 "grind to a halt and report a failure."
 msgstr ""
+"如果现在我们运行<command role=\"hg-cmd\">hg merge</command>,他会停止运行同时"
+"报告一条错误。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:605
 "Even if we don't notice that the merge failed, Mercurial will prevent us from "
 "accidentally committing the result of a failed merge."
 msgstr ""
+"即使我们没有注意到合并失败,Mercurial也会阻止我们意外地提交失败的合并结果。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:611
 "command> command.  As usual, <command role=\"hg-cmd\">hg help resolve</"
 "command> will print a helpful synopsis."
 msgstr ""
+"这种情况下,<command role=\"hg-cmd\">hg commit</command>失败的时候,它建议我们"
+"使用陌生的<command role=\"hg-cmd\">hg resolve</command>命令。和以前一样, "
+"<command role=\"hg-cmd\">hg help resolve</command>会输出帮助的摘要。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:618
 "When a merge occurs, most files will usually remain unmodified.  For each "
 "file where Mercurial has to do something, it tracks the state of the file."
 msgstr ""
+"合并发生时,大多数文件没有任何变化。Mercurial对于每个需要进行操作的文件,都会"
+"跟踪它的状态。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:626
 "A <emphasis>resolved</emphasis> file has been successfully merged, either "
 "automatically by Mercurial or manually with human intervention."
 msgstr ""
+"<emphasis>resolved</emphasis>表示文件已经成功合并,不管是Mercurial自动完成的还"
+"是手工修改完成的。"
 
 #. type: Content of: <book><chapter><sect1><sect2><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:631
 msgid ""
 "An <emphasis>unresolved</emphasis> file was not merged successfully, and "
 "needs more attention."
-msgstr ""
+msgstr "<emphasis>unresolved</emphasis>表示文件没有成功的合并,需要特别注意。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:636
 "a merge, it considers the merge to have failed.  Fortunately, we do not need "
 "to restart the entire merge from scratch."
 msgstr ""
+"如果Mercurial在合并后发现<emphasis>任何</emphasis>文件处于未解决状态,它会认为"
+"这次合并失败。幸运的是,我们不需要再次从头开始进行合并。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:641
 "resolve\">-l</option> option to <command role=\"hg-cmd\">hg resolve</command> "
 "prints out the state of each merged file."
 msgstr ""
+"<command role=\"hg-cmd\">hg resolve</command>的<option role=\"hg-opt-resolve"
+"\">--list</option>或者<option role=\"hg-opt-resolve\">-l</option>选项会打印出"
+"每个合并过的文件的状态。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:648
 "literal>, we know that an attempt to commit the results of the merge will "
 "fail."
 msgstr ""
+"在<command role=\"hg-cmd\">hg resolve</command>的输出中,已经解决的文件标识为"
+"<literal>R</literal>,而未解决文件标识为<literal>U</literal>。  如果有任何文件"
+"被标识为<literal>U</literal>,那么我们就不能提交合并的结果。"
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
 #: ../en/ch05-daily.xml:657
 msgid "Resolving a file merge"
-msgstr "合并文件"
+msgstr "解决文件合并"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:659
 "<option role=\"hg-opt-resolve\">-a</option> option, which will retry the "
 "merges of <emphasis>all</emphasis> unresolved files."
 msgstr ""
+"我们有几种方法将文件从未解决状态变成解决状态。至今为止最常用的命令是重新运行"
+"<command role=\"hg-cmd\">hg resolve</command>。如果我们将文件名或者目录名传递"
+"给它,那么它会重新在给定为止合并任何未解决的文件。如果我们将<option role=\"hg-"
+"opt-resolve\">--all</option>或者<option role=\"hg-opt-resolve\">-a</option>选"
+"项传给它,那么它会重新合并<emphasis>所有的</emphasis>未解决文件。"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch05-daily.xml:669
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:680
 msgid "More useful diffs"
-msgstr "更有用的差异"
+msgstr "差异的更多技巧"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:682
 "is backwards compatible with the regular <command>diff</command> command, but "
 "this has some drawbacks."
 msgstr ""
+"缺省情况下,<command role=\"hg-cmd\">hg diff</command>命令的输出与普通的"
+"<command>diff</command>命令兼容,但是这样有缺点。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:687
 "Consider the case where we use <command role=\"hg-cmd\">hg rename</command> "
 "to rename a file."
 msgstr ""
-"设想我们使用 <command role=\"hg-cmd\">hg rename</command> 命令来名文件。"
+"设想我们使用 <command role=\"hg-cmd\">hg rename</command> 命令来重命名文件。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:692
 "option>, to use a newer diff format that displays such information in a more "
 "readable form."
 msgstr ""
+"我们给一个文件改名,而<command role=\"hg-cmd\">hg diff</command>的输出却掩盖了"
+"事实。<command role=\"hg-cmd\">hg diff</command>命令可以接受选项<option>--"
+"git</option>或者<option>-g</option>,使用新的差异格式以更加可读的方式显示这些"
+"信息。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:701
 "command>, but for which <command role=\"hg-cmd\">hg diff</command> prints "
 "nothing. This situation can arise if we change the file's execute permissions."
 msgstr ""
+"这个选项在以下情况下十分有用,否则就很令人费解:一个文件如果用<command role="
+"\"hg-cmd\">hg status</command>查看,显示的状态是被修改了,但是如果用<command "
+"role=\"hg-cmd\">hg diff</command>检查,却什么输出也没有。如果我们修改了文件的"
+"执行属性就会出现这种情况。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:710
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:720
 msgid "Which files to manage, and which to avoid"
-msgstr "需要管理哪些文件,应该避免的事情"
+msgstr "哪些文件需要管理,那些不需要"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:722
 "from one revision to the next.  Some centralized revision control systems can "
 "also deal tolerably well with binary files, such as bitmap images."
 msgstr ""
+"版本控制系统最擅长管理人们书写的文本文件,例如源代码,不同的版本间文件的改动不"
+"会很大。集中式版本控制系统可以很好的出来二进制文件,例如位图文件。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:728
 "code and all of its binary assets (e.g. geometry data, textures, map layouts) "
 "in a revision control system."
 msgstr ""
+"例如,一个典型的游戏开发团队不仅要在版本控制系统中管理源代码,还要管理二进制财"
+"产(像地理数据,贴图,地图布局)。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:733
 "allow a user to say <quote>I am the only person who can edit this file</"
 "quote>."
 msgstr ""
+"因为一般不可能合并两个冲突的二进制文件,集中式系统通常提供文件锁机制来解决这个"
+"问题。它允许一个用户说 <quote> 我是唯一能修改这个文件的人</quote>。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:739
 "changes some of the factors that guide decisions over which files to manage "
 "and how."
 msgstr ""
+"和集中式系统相比,在分布式版本控制系统中,决定要管理那些文件和怎么管理的指导思"
+"路发生了变化。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:743
 "may not be a good idea to use Mercurial&emdash;or any other distributed "
 "revision control system&emdash;to manage those files."
 msgstr ""
+"例如,在本质上,一个分布式版本控制系统不能提供文件锁定机制。没有内建的机制可以"
+"防止两个人对一个二进制文件作相互冲突的修改。如果在你的团队中,有些人要频繁的编"
+"辑二进制文件,那么这时就不适合使用Mercurial&emdash;或者任何其他的分布式版本控"
+"制系统&emdash;来管理这些文件。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:751
 "efficiently.  This can affect both local storage needs and the amount of time "
 "it takes to clone a repository."
 msgstr ""
+"在存储文件的变更的时候,Mercurial通常只会保存当前版本和上一个版本之间的差异。"
+"对于大多数文本文件而言,这时非常高效的。但是有些文件(特别是二进制文件)而言,"
+"对于文件逻辑内容上的很小的改动,可能导致文件中很多或者绝大多数字节发生变化。例"
+"如,压缩文件就会这样。如果一个文件连续的版本之间的差异总是很大,Mercurial就不"
+"能有效的存储文件的版本历史。这会影响本地的存储需求和克隆版本库需要的时间。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:764
 "friendly to Mercurial's storage assumptions can easily have an outsized "
 "effect on the size of the repository."
 msgstr ""
+"要了解在这实际的使用中的影响,假设你准备用Mercurial管理一个OpenOffice文档。"
+"OpenOffice使用zip压缩的格式存储文件。即使你的文档在OpenOffice中仅仅修改了一个"
+"字符,在你存档的时候几乎文件中的每个字节都发生了变化。现在假设文件大小为2MB。"
+"因为每次你存档的时候文件中大部分都发生了变化,Mercurial不得不在你每次提交的时"
+"候都存储所有2MB的文件,即使是从你的角度来说,每次的变化只有几个单词。一个不符"
+"合Mercurial存储假设的频繁编辑的文件,将很快使版本库的膨胀。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:777
 "even a good way to tell what the differences are between your respective "
 "changes."
 msgstr ""
+"更加糟糕的是,如果你和其他人都在编辑一个OpenOffice文档,没有什么办法合并你的工"
+"作。实际上,也没有办法告诉你不同变更之间的差异。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:782
 msgid ""
 "There are thus a few clear recommendations about specific kinds of files to "
 "be very careful with."
-msgstr ""
+msgstr "下面是应该小心处理的几种特殊类型文件的一些建议。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:787
 "Files that are very large and incompressible, e.g. ISO CD-ROM images, will by "
 "virtue of sheer size make clones over a network very slow."
 msgstr ""
+"非常大而且不能压缩的文件,如ISO CD-ROM映像,会使版本库大小从而剧增导致通过网络"
+"的克隆非常缓慢。"
 
 #. type: Content of: <book><chapter><sect1><itemizedlist><listitem><para>
 #: ../en/ch05-daily.xml:792
 "store if you edit them frequently, and conflicts due to concurrent edits may "
 "be difficult to resolve."
 msgstr ""
+"不同版本间变化很多,如果频繁编辑会耗费很多空间,同时并行编辑导致的冲突很难解决"
+"的文件。"
 
 #. type: Content of: <book><chapter><sect1><title>
 #: ../en/ch05-daily.xml:801
 "of the repository from one contributor, and pulling any changes they may not "
 "have seen from others."
 msgstr ""
+"因为Mercurial在每个克隆中都含有完整的历史拷贝,所以在一个项目中,每个使用"
+"Mercurial进行协作的人都可以在灾难发生的时候成为备份。如果中央版本库发生故障,"
+"你可以从一个贡献者那里克隆版本库作为替代,然后可以拖出其他版本库没有的变更。"
 
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch05-daily.xml:811
 msgstr ""
 
 #
-#. &example.hg-interdiff;
+#. 	&example.hg-interdiff;
 #. type: Content of: <book><chapter><sect1><sect2><para>
 #: ../en/ch13-mq-collab.xml:473
 msgid ""
 #. type: Content of: <book><chapter><sect1><para>
 #: ../en/ch14-hgext.xml:141
 msgid ""
-"The <literal role=\"hg-ext\">inotify</literal> extension is not yet shipped "
-"with Mercurial as of May 2007, so it's a little more involved to set up than "
-"other extensions.  But the performance improvement is worth it!"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:146
-msgid ""
-"The extension currently comes in two parts: a set of patches to the Mercurial "
-"source code, and a library of Python bindings to the <literal>inotify</"
-"literal> subsystem."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch14-hgext.xml:150
-msgid ""
-"There are <emphasis>two</emphasis> Python <literal>inotify</literal> binding "
-"libraries.  One of them is called <literal>pyinotify</literal>, and is "
-"packaged by some Linux distributions as <literal>python-inotify</literal>.  "
-"This is <emphasis>not</emphasis> the one you'll need, as it is too buggy and "
-"inefficient to be practical."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:157
-msgid ""
-"To get going, it's best to already have a functioning copy of Mercurial "
-"installed."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><note><para>
-#: ../en/ch14-hgext.xml:160
-msgid ""
-"If you follow the instructions below, you'll be <emphasis>replacing</"
-"emphasis> and overwriting any existing installation of Mercurial that you "
-"might already have, using the latest <quote>bleeding edge</quote> Mercurial "
-"code. Don't say you weren't warned!"
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:167
-msgid ""
-"Clone the Python <literal>inotify</literal> binding repository.  Build and "
-"install it."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:174
-msgid ""
-"Clone the <filename class=\"directory\">crew</filename> Mercurial "
-"repository.  Clone the <literal role=\"hg-ext\">inotify</literal> patch "
-"repository so that Mercurial Queues will be able to apply patches to your "
-"cope of the <filename class=\"directory\">crew</filename> repository."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:184
-msgid ""
-"Make sure that you have the Mercurial Queues extension, <literal role=\"hg-ext"
-"\">mq</literal>, enabled.  If you've never used MQ, read <xref linkend=\"sec:"
-"mq:start\"/> to get started quickly."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:190
-msgid ""
-"Go into the <filename class=\"directory\">inotify</filename> repo, and apply "
-"all of the <literal role=\"hg-ext\">inotify</literal> patches using the "
-"<option role=\"hg-ext-mq-cmd-qpush-opt\">hg -a</option> option to the "
-"<command role=\"hg-ext-mq\">qpush</command> command."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:199
-msgid ""
-"If you get an error message from <command role=\"hg-ext-mq\">qpush</command>, "
-"you should not continue.  Instead, ask for help."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><orderedlist><listitem><para>
-#: ../en/ch14-hgext.xml:203
-msgid "Build and install the patched version of Mercurial."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:209
-msgid ""
-"Once you've build a suitably patched version of Mercurial, all you need to do "
-"to enable the <literal role=\"hg-ext\">inotify</literal> extension is add an "
-"entry to your <filename role=\"special\">~/.hgrc</filename>."
-msgstr ""
-
-#. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:214
+"The <literal role=\"hg-ext\">inotify</literal> extension is shipped with "
+"Mercurial since 1.0.  All you need to do to enable the <literal role=\"hg-ext"
+"\">inotify</literal> extension is add an entry to your <filename role="
+"\"special\">~/.hgrc</filename>."
+msgstr ""
+
+#. type: Content of: <book><chapter><sect1><para>
+#: ../en/ch14-hgext.xml:147
 msgid ""
 "When the <literal role=\"hg-ext\">inotify</literal> extension is enabled, "
 "Mercurial will automatically and transparently start the status daemon the "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:220
+#: ../en/ch14-hgext.xml:153
 msgid ""
 "The status daemon is started silently, and runs in the background.  If you "
 "look at a list of running processes after you've enabled the <literal role="
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:228
+#: ../en/ch14-hgext.xml:161
 msgid ""
 "The first time you run a Mercurial command in a repository when you have the "
 "<literal role=\"hg-ext\">inotify</literal> extension enabled, it will run "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:242
+#: ../en/ch14-hgext.xml:175
 msgid ""
 "If you like, you can manually start a status daemon using the <command role="
 "\"hg-ext-inotify\">inserve</command> command.  This gives you slightly finer "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:249
+#: ../en/ch14-hgext.xml:182
 msgid ""
 "When you're using the <literal role=\"hg-ext\">inotify</literal> extension, "
 "you should notice <emphasis>no difference at all</emphasis> in Mercurial's "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><title>
-#: ../en/ch14-hgext.xml:260
+#: ../en/ch14-hgext.xml:193
 msgid ""
 "Flexible diff support with the <literal role=\"hg-ext\">extdiff</literal> "
 "extension"
 msgstr "使用扩展 <literal role=\"hg-ext\">extdiff</literal> 以扩展差异支持"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:263
+#: ../en/ch14-hgext.xml:196
 msgid ""
 "Mercurial's built-in <command role=\"hg-cmd\">hg diff</command> command "
 "outputs plaintext unified diffs."
 "不同。"
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:268
+#: ../en/ch14-hgext.xml:201
 msgid ""
 "If you would like to use an external tool to display modifications, you'll "
 "want to use the <literal role=\"hg-ext\">extdiff</literal> extension.  This "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:273
+#: ../en/ch14-hgext.xml:206
 msgid ""
 "The <literal role=\"hg-ext\">extdiff</literal> extension is bundled with "
 "Mercurial, so it's easy to set up.  In the <literal role=\"rc-extensions"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:280
+#: ../en/ch14-hgext.xml:213
 msgid ""
 "This introduces a command named <command role=\"hg-ext-extdiff\">extdiff</"
 "command>, which by default uses your system's <command>diff</command> command "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:288
+#: ../en/ch14-hgext.xml:221
 msgid ""
 "The result won't be exactly the same as with the built-in <command role=\"hg-"
 "cmd\">hg diff</command> variations, because the output of <command>diff</"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:293
+#: ../en/ch14-hgext.xml:226
 msgid ""
 "As the <quote><literal>making snapshot</literal></quote> lines of output "
 "above imply, the <command role=\"hg-ext-extdiff\">extdiff</command> command "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:306
+#: ../en/ch14-hgext.xml:239
 msgid ""
 "Snapshot directory names have the same base name as your repository. If your "
 "repository path is <filename class=\"directory\">/quux/bar/foo</filename>, "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:322
+#: ../en/ch14-hgext.xml:255
 msgid ""
 "The <command role=\"hg-ext-extdiff\">extdiff</command> command accepts two "
 "important options. The <option role=\"hg-ext-extdiff-cmd-extdiff-opt\">hg -p</"
 
 #
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:339
+#: ../en/ch14-hgext.xml:272
 msgid ""
 "As an example, here's how to run the normal system <command>diff</command> "
 "command, getting it to generate context diffs (using the <option role=\"cmd-"
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:348
+#: ../en/ch14-hgext.xml:281
 msgid ""
 "Launching a visual diff tool is just as easy.  Here's how to launch the "
 "<command>kdiff3</command> viewer."
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><para>
-#: ../en/ch14-hgext.xml:352
+#: ../en/ch14-hgext.xml:285
 msgid ""
 "If your diff viewing command can't deal with directories, you can easily work "
 "around this with a little scripting.  For an example of such scripting in "
 msgstr ""
 
 #. type: Content of: <book><chapter><sect1><sect2><title>
-#: ../en/ch14-hgext.xml:360
+#: ../en/ch14-hgext.xml:293
 msgid "Defining command aliases"
 msgstr "定义命令的别名"
 
 #. type: Content of: <book><chapter><sect1><sect2><para>
-#: ../en/ch14-hgext.xml:362
+#: ../en/ch14-hgext.xml:295
 msgid ""
 "It can be cumbersome to remember the options to both the <command role=\"hg-"