[svnbook] r5438 committed - branches/1.8/zh/book/ch03-advanced-topics.xml

wuzhouhui at users.sourceforge.net wuzhouhui at users.sourceforge.net
Fri Sep 29 09:12:52 CDT 2017


Revision: 5438
          http://sourceforge.net/p/svnbook/source/5438
Author:   wuzhouhui
Date:     2017-09-29 14:12:51 +0000 (Fri, 29 Sep 2017)
Log Message:
-----------
1.8/zh: review of chapter 3 in progress

Modified Paths:
--------------
    branches/1.8/zh/book/ch03-advanced-topics.xml

Modified: branches/1.8/zh/book/ch03-advanced-topics.xml
===================================================================
--- branches/1.8/zh/book/ch03-advanced-topics.xml	2017-09-28 13:10:21 UTC (rev 5437)
+++ branches/1.8/zh/book/ch03-advanced-topics.xml	2017-09-29 14:12:51 UTC (rev 5438)
@@ -4423,7 +4423,7 @@
       的内容. 关键字提供了与文件最后一次修改有关的信息, 但是每次文件被修改时,
       这个信息都会发生变化, 更重要的是, 文件刚被修改后, 除了版本控制系统, 对
       任何一个企图保持数据最新的过程都是一场混乱, 如果把工作交给用户, 就很容易
-      造成信息过旧.</para>
+      造成信息过时.</para>
     <!--
       Subversion has the ability to substitute
       <firstterm>keywords</firstterm>—pieces of useful,
@@ -4492,9 +4492,11 @@
       决定了文件中的哪些关键词将会被替换, 属性值是空格分隔的关键字名或别名列表.
     </para>
 
+      <!--
     <para>For example, say you have a versioned file named
       <filename>weather.txt</filename> that looks like
       this:</para>
+      -->
     <para>举个例子, 假设用户一个叫作 <filename>weather.txt</filename> 的文件,
       文件的内容是:</para>
 
@@ -4606,7 +4608,7 @@
       compatibility, certain keyword names will be recognized
       regardless of case, but this behavior is deprecated.</para>
     -->
-    <para>作出锚点出现在文件里的关键字都区分大小写: 用户必须使用大小写正确的
+    <para>作为锚点出现在文件里的关键字都区分大小写: 用户必须使用大小写正确的
       关键字. 同样也要注意属性 <literal>svn:keywords</literal> 的值也区分大
       小写. 为了保持向后兼容, 某几个关键词是不区分大小写的, 但不建议用户使用
       这个特性.</para>
@@ -4616,7 +4618,7 @@
       substitution.  That list contains the following keywords, 
       some of which have aliases that you can also use:</para>
     -->
-    <para>Subversion 定义几个支持替换的关键字, 下面列出这些关键字, 其中一些
+    <para>Subversion 定义了几个支持替换的关键字, 下面列出这些关键字, 其中一些
       关键字拥有别名:</para>
 
     <variablelist>
@@ -4683,8 +4685,8 @@
             <literal>Date</literal> keyword displays dates using the
             local time zone.</para>
     -->
-          <para>这个关键字描述了仓库中的文件已知的最后一次被修改的时间, 格式是
-            <literal>$Date: 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006) $
+          <para>这个关键字描述了仓库中的文件已知的最后一次被修改的时间, 格式类似
+            于 <literal>$Date: 2006-07-22 21:42:37 -0700 (Sat, 22 Jul 2006) $
             </literal>. 它的别名是 <literal>LastChangedDate</literal>. 和关
             键字 <literal>Id</literal> 不同 (<literal>Id</literal> 使用 UTC
             时间), <literal>Date</literal> 会按照本地时区显示日期.</para>
@@ -4758,7 +4760,7 @@
           <para>这个关键字是几个关键字的组合, 它显示的内容类似于
             <literal>$Id: calc.c 148 2006-07-28 21:30:43Z sally $</literal>,
             例子的意思是文件 <filename>calc.c</filename> 最后一次修改是在
-            2006 年, 7 月 28 日, 版本号 148, 作者是 <literal>sally</literal>.
+            2006 年 7 月 28 日, 版本号 148, 作者是 <literal>sally</literal>.
             <literal>Id</literal> 使用 UTC 时间, 而 <literal>Date</literal>
             使用本地时区.</para>
         </listitem>
@@ -4796,7 +4798,7 @@
     <para>在介绍关键字时, (隐式的或显式的) 用到了形容词 <quote>已知的</quote>,
       这是因为关键字替换是一个客户端操作, 客户端只能知道最近一次更新工作副本
       时从仓库中获取的信息. 如果工作副本一直得不到更新, 即使仓库中的文件已经
-      修改了, 工作副本里的关键字也不会替换成更新的信息.</para>
+      修改了, 工作副本里的关键字也不会被替换成更新的信息.</para>
 
     <sidebar>
     <!--
@@ -4858,7 +4860,8 @@
       expanded inside your file.</para>
     -->
     <para>除了前面几个预定义的关键字, Subversion 1.8 允许用户定义新的关键字.
-      为了定义一个关键字, 给属性 <literal>svn:keywords</literal> 新的记号,
+      为了定义一个关键字, 给属性 <literal>svn:keywords</literal> 的值添加
+      新的记号,
       记号的格式是 <userinput><replaceable>MyKeyword</replaceable>=
         <replaceable>FORMAT</replaceable></userinput>, 其中 <replaceable>
         MyKeyword</replaceable> 是关键字的名字 (关键字锚点需要),
@@ -5114,7 +5117,7 @@
     <para>替换后的效果令人感到失望, 用户可能会忍不住手工地调整每一行没对齐的
       文本, 但是实际上只要关键字的值占用相同的宽度, 格式就不会被打乱. 如果版本
       号增长到比较长的位数 (例如从 99 增长到 100), 或者有一个名字很长的用户提
-      交修改, 文件的版式就得重新调整. 如果用户使用的 Subversion 版本大于等于
+      交了修改, 文件的版式就得重新调整. 如果用户使用的 Subversion 版本大于等于
       1.2, 就可以使用具有固定长度的关键字语法, 为了使用这种关键字语法, 把文件
       的内容改成:</para>
 
@@ -5150,7 +5153,7 @@
 </programlisting>
     </informalexample>
 
-    <!-- TODO -->
+      <!--
     <para>The use of fixed-length keywords is especially handy when
       performing substitutions into complex file formats that
       themselves use fixed-length fields for data, or for which the
@@ -5163,6 +5166,13 @@
       difficult task for most of the popular binary file formats in use
       today, and <emphasis>not</emphasis> something to be undertaken by
       the faint of heart!</para>
+      -->
+    <para>固定长度的关键字替换在以下场景非常方便: (1) 文件把数据放在长度固定
+      的字段里; (2) 除了格式的本地应用程序外, 其他程序难以修改某些数据字段
+      的存放大小. 当然, 如果涉及到二进制文件格式, 用户必须非常小心, 关键字替换
+      (无论是长度是否固定) 不能破坏格式的完整性. 虽然这听起来很容易, 但是对于
+      现在流行的大多数二进制格式而言, 实际做起来可能会非常困难, 绝不是稍微用
+      点心就能对付过去的.</para>
 
     <warning>
     <!--
@@ -5186,7 +5196,7 @@
         比如说, 用户名如果包含 UTF-8 字符, 截断可能会发生在组成一个字符的多个
         字节之间. 从字节来看这可能只是一个非常普通的截断, 但是在解释成 UTF-8
         字符就会产生错误, 很可能会产生乱码. 有些应用程序在打开这种含有错误编
-        码的文件时会认为整个文件已经损坏, 拒绝进一步对文件进行操作. 所以在限
+        码的文件时会认为整个文件已经损坏, 拒绝对文件进行进一步操作. 所以在限
         制关键字的长度时, 注意避免在字符当中发生截断.</para>
     </warning>
 
@@ -5216,7 +5226,7 @@
       (<firstterm>sparse directories</firstterm>, 或 <firstterm>浅检出
       </firstterm> (<firstterm>shallow checkouts</firstterm>)). 和完整的递归
       操作相比, 新特性允许用户更加轻浅的检出工作副本—或工作副本的一部分,
-      以后仍然还能访问到原来被忽略的文件与子目录.</para>
+      以后仍然还能访问到原来未被检出的文件与子目录.</para>
     <!--
       By default, most Subversion operations on
       directories act in a recursive manner.  For
@@ -5242,7 +5252,7 @@
     -->
     <para>举个例子, 假设我们有一个仓库, 仓库中存放的是拥有宠物的家庭成员 (这个
       例子确实有点奇怪), 普通的 <command>svn checkout</command> 操作会得到
-      一个目录完整的工作副本:</para>
+      一个具体整棵目录树的工作副本:</para>
 
     <informalexample>
       <screen>
@@ -5376,7 +5386,7 @@
         <secondary>ambient</secondary>
       </indexterm>
       当然, 如果仅仅是把两个选项合并成一个选项, 那就没必要花费整整一节的笔墨
-      来介绍, 幸运的是, 远不止选项合并这么简单. 深度的概念不仅延伸到 Subversion
+      介绍它, 幸运的是远不止选项合并这么简单. 深度的概念不仅延伸到 Subversion
       客户端执行的操作, 同时还描述了工作副本的 <firstterm>周围深度</firstterm>
       (<firstterm>ambient depth</firstterm>), 它是工作副本为项目记录的深度.
       深度的关键之处在于它是 "粘着" (sticky) 的, 工作副本记住了用户为每一个项目
@@ -5494,8 +5504,8 @@
     -->
     <para>除了选项 <option>--depth</option>, 命令 <command>svn update</command>
       和 <command>svn switch</command> 还支持第二种与深度有关的选项 <option>
-      --set-depth</option>, 它选项可以修改工作副本里的项目的粘着深度. 现在看
-      一下如果使用 <userinput>svn update --set-depth <replaceable>
+      --set-depth</option>, 它可以修改工作副本中项目的粘着深度. 现在看
+      一下如何使用 <userinput>svn update --set-depth <replaceable>
       NEW-DEPTH</replaceable> <replaceable>TARGET</replaceable></userinput>,
       把原来深度为 <literal>empty</literal> 的工作副本逐渐加深:</para>
 




More information about the svnbook-dev mailing list