[svnbook commit] r1826 - trunk/src/zh/book

leasun svnbook-dev at red-bean.com
Mon Nov 14 08:50:18 CST 2005


Author: leasun
Date: Mon Nov 14 08:50:15 2005
New Revision: 1826

Modified:
   trunk/src/zh/book/ch07.xml
Log:
* zh/book/ch07.xml: made a little adjusts.


Modified: trunk/src/zh/book/ch07.xml
==============================================================================
--- trunk/src/zh/book/ch07.xml	(original)
+++ trunk/src/zh/book/ch07.xml	Mon Nov 14 08:50:15 2005
@@ -349,16 +349,15 @@
 
     <!-- ***************************************************************** -->
     <sect2 id="svn-ch-7-sect-2.1">
-      <title>为什么是属性?</title>
+      <title>为什么需要属性?</title>
 
-      <para>属性会是你的工作拷贝有用的补充,实际上,Subversion本身使用属性来存放特殊的信息,作为帮助特别操作的一种方法,同样,你可以使用属性来实现自己的目的,当然,你对属性作的任何事情也可以针对普通的版本化文件,但是先考虑下面Subversion使用属性的例子。</para>
+      <para>属性可能会是工作拷贝的有益补充,实际上,Subversion本身使用属性来存放特殊的信息,作为支持特别操作的一种方法,同样,你也可以使用属性来实现自己的目的,当然,你对属性作的任何事情也可以针对普通的版本化文件,但是先考虑下面Subversion使用属性的例子。</para>
 
       <para>假定你希望设计一个网站存放许多数码图片,并且显示他们的标题和时间戳,现在你的图片集经常修改,所以你希望你的网站能够尽量的自动化,这些图片可能非常大,所以根据这个网站的特性,你希望在网站给用户提供图标图像。你可以用传统的文件做这件事,你可以有一个<filename>image123.jpg</filename>和一个<filename>image123-thumbnail.jpg</filename>对应在同一个目录,有时候你希望保持文件名相同,你可以使用不同的目录,如<filename>thumbnails/image123.jpg</filename>。你可以用一种相似的样式来保存你的标题和时间戳,再一次同原始图像文件分开。很快你的目录树会是一团糟,每个新图片的添加都会成倍的增加混乱。</para>
 
-      <para>现在考虑使用Subversion文件的属性来做相同的设置,想象我们有一个单独的图像文件<filename>image123.jpg</filename>,然后这个文件的属性集包括<literal>caption</literal>、<literal>datestamp</literal>甚至<literal>thumbnail</literal>。现在你的工作拷贝目录看起来更佳的可管理—实际上,它看起来只有图像文件,但是你的自动化脚本知道得更多,它们知道可以用<command>svn</command>(更好的选择是使用Subversion的语言绑定—见<xref
-        linkend="svn-ch-8-sect-2.3" />)来挖掘更多的站点显示需要的额外信息,而不必去阅读一个索引文件或者是玩一个路径处理的游戏。</para>
+      <para>现在考虑使用Subversion文件的属性来做相同的设置,想象我们有一个单独的图像文件<filename>image123.jpg</filename>,然后这个文件的属性集包括<literal>caption</literal>、<literal>datestamp</literal>甚至<literal>thumbnail</literal>。现在你的工作拷贝目录看起来更容易管理—实际上,它看起来只有图像文件,但是你的自动化脚本知道得更多,它们知道可以用<command>svn</command>(更好的选择是使用Subversion的语言绑定—见<xref linkend="svn-ch-8-sect-2.3" />)来挖掘更多的站点显示需要的额外信息,而不必去阅读一个索引文件或者是玩一个路径处理的游戏。</para>
 
-      <para>你怎样(而且如果)使用Subversion完全在你,像我们提到的,Subversion拥有它自己的属性集,我们会在后面的章节讨论,但首先,让我们讨论怎样使用<command>svn</command>的处理选项。</para>
+      <para>你怎样(而且如果)使用Subversion完全在你,像我们提到的,Subversion拥有它自己的属性集,我们会在后面的章节讨论,但首先,让我们讨论怎样使用<command>svn</command>的属性处理选项。</para>
 
     </sect2>
 
@@ -366,8 +365,7 @@
     <sect2 id="svn-ch-7-sect-2.2">
       <title>处理属性</title>
 
-      <para><command>svn</command>命令提供一些方法来添加和修改文件或目录的属性,对于短的,可读的属性,最简单的添加方法是在<command>propset</command>子命令里指定正确的名称和值。
-     </para>
+      <para><command>svn</command>命令提供一些方法来添加和修改文件或目录的属性,对于短的,可读的属性,最简单的添加方法是在<command>propset</command>子命令里指定正确的名称和值。</para>
 
       <screen>
 $ svn propset copyright '(c) 2003 Red-Bean Software' calc/button.c
@@ -375,7 +373,7 @@
 $
 </screen>
        
-      <para>但是我们已经吹捧过Subversion提供过的属性值得灵活性,如果你计划有一个多行的可读文本,甚至是二进制文件的属性值,你通常不会希望在命令行里指定,所以<command>propset</command>子命令使用<option>--file</option>(<option>-F</option>)选项来指定一个保存新的属性值的文件的名字。</para>
+      <para>但是我们已经“吹嘘”过Subversion为属性值提供的灵活性,如果你计划有一个多行的可读文本,甚至是二进制文件的属性值,你通常不希望在命令行里指定,所以<command>propset</command>子命令使用<option>--file</option>(<option>-F</option>)选项来指定一个保存新属性值的文件的名字。</para>
 
       <screen>
 $ svn propset license -F /path/to/LICENSE calc/button.c
@@ -383,8 +381,7 @@
 $
 </screen>
 
-      <para>作为<command>propset</command>命令的补充,<command>svn</command>提供了一个<command>propedit</command>命令,这个命令使用配制的编辑器程序(见<xref
-        linkend="svn-ch-7-sect-1.3.2" />)来添加和修改属性。当你运行这个命令,<command>svn</command>调用你的编辑器程序到一个临时文件,保存了当前的属性值(或者是空的,如果你添加了一个新的属性)。然后你只需要修改那些值,改为你需要的值,保存你的临时文件,然后离开编辑器程序,如果Subversion发现你已经修改了属性存在的值,就会接受新的值,如果你未作任何修改离开,没有属性修改会发生。</para>
+      <para>作为<command>propset</command>命令的补充,<command>svn</command>提供了一个<command>propedit</command>命令,这个命令使用定制的编辑器程序(见<xref linkend="svn-ch-7-sect-1.3.2" />)来添加和修改属性。当你运行这个命令,<command>svn</command>调用你的编辑器程序打开一个临时文件,文件中保存当前的属性值(或者是空文件,如果你正在添加新的属性)。然后你只需要修改为你想要的值,保存临时文件,然后离开编辑器程序。如果Subversion发现你已经修改了属性值,就会接受新值,如果你未作任何修改而离开,不会产生属性修改操作。</para>
 
       <screen>
 $ svn propedit copyright calc/button.c  ### exit the editor without changes
@@ -392,7 +389,7 @@
 $
 </screen>
 
-      <para>我们必须注意,就像其他<command>svn</command>子命令,,这些关联的属性可以一次加到多个路径上,这让你可以通过一个命令修改一组文件的属性,举个例子,我们可以这样做:</para>
+      <para>我们也应该注意导,像其它<command>svn</command>子命令一样,这些关联的属性可以一次添加到多个路径上,这样就可以通过一个命令修改一组文件的属性。举个例子,我们可以:</para>
 
       <screen>
 $ svn propset copyright '(c) 2002 Red-Bean Software' calc/*
@@ -403,8 +400,7 @@
 $
 </screen>
 
-      <para>如果你不容易得到存储的属性值,所有的属性的添加和编辑不会很容易,所以<command>svn</command>提供了两个子命令来显示文件和目录存储的属性名和值,<command>svn proplist</command>命令会列出路径上存在的所有属性名称,一旦你知道了某个节点的属性名称,你可以用<command>svn
-        propget</command>要求他们的值,这个命令通过给定的路径(或者是一组路径)和属性名称,打印这个属性值到标准输出。</para>
+      <para>如果不能方便的得到存储的属性值,那么属性的添加和编辑操作也不会很容易,所以<command>svn</command>提供了两个子命令来显示文件和目录存储的属性名和值。<command>svn proplist</command>命令会列出路径上存在的所有属性名称,一旦你知道了某个节点的属性名称,你可以用<command>svn propget</command>获取它的值,这个命令获取给定的路径(或者是一组路径)和属性名称,打印这个属性的值到标准输出。</para>
 
       <screen>
 $ svn proplist calc/button.c
@@ -415,7 +411,7 @@
 (c) 2003 Red-Bean Software
 </screen>
 
-      <para>也有一个<command>proplist</command>变种命令会列出所有属性的名称和值,只需要提供<option>--verbose</option>(<option>-v</option>)选项。</para>
+      <para>还有一个<command>proplist</command>变种命令会列出所有属性的名称和值,只需要设置<option>--verbose</option>(<option>-v</option>)选项。</para>
 
       <screen>
 $ svn proplist --verbose calc/button.c
@@ -434,7 +430,7 @@
 …
 </screen>
 
-      <para>最后一个属性相关的子命令是<command>propdel</command>,因为Subversion允许你来存储属性为空值,你不能所以你不能用<command>propedit</command>或者<command>propset</command>删除一个属性,举个例子,这个命令<emphasis>不会</emphasis>产生期望的效果:</para>
+      <para>最后一个与属性相关的子命令是<command>propdel</command>,因为Subversion允许属性值为空,所有不能用<command>propedit</command>或者<command>propset</command>命令删除一个属性。举个例子,这个命令<emphasis>不会</emphasis>产生预期的效果:</para>
 
       <screen>
 $ svn propset license '' calc/button.c
@@ -446,8 +442,7 @@
 $
 </screen>
 
-      <para>你需要使用<command>propdel</command>来删除属性,语法与其他属性命令相似:
-      </para>
+      <para>你需要用<command>propdel</command>来删除属性,语法与其它与属性相关命令相似:</para>
 
       <screen>
 $ svn propdel license calc/button.c
@@ -458,12 +453,12 @@
 $
 </screen>
 
-      <para>现在你已经熟悉了所有属性相关的<command>svn</command>子命令,让我们看看属性修改如何影响Subversion的工作流,我们前面提到过,文件和目录的属性是版本化的,就像你的文件内容。作为结果,Subversion提供了同样的机会来合并—用干净或者冲突的方式—其他人的修改进入到你的修改。</para>
+      <para>现在你已经熟悉了所有与属性相关的<command>svn</command>子命令,让我们看看属性修改如何影响Subversion的工作流。我们前面提到过,文件和目录的属性是版本化的,这一点类似于版本化的文件内容。后果之一,就是Subversion具有了同样的机制来合并—用干净或者冲突的方式—其他人的修改到你的修改。</para>
 
       <sidebar>
         <title>修改修订版本的属性</title>
 
-        <para>记住这些未版本化的属性?你也可以修改这些,使用<command>svn</command>命令。只需要添加<option>--revprop</option>命令参数,并且说明希望修改的修订版本。因为修订版本是全局的,你不需要指定一个路径,只要你已经位于你希望修改属性的工作拷贝路径,举个例子,你希望修改一个存在版本的提交日志信息。
+        <para>记住这些未版本化的属性?你也可以使用<command>svn</command>命令修改这些属性。只需要添加<option>--revprop</option>命令参数,并且说明希望修改属性的修订版本。因为修订版本是全局的,你不需要指定一个路径,只要你已经位于你希望修改属性的工作拷贝路径,举个例子,你希望修改一个存在版本的提交日志信息。
           <footnote>
             <para>修正提交日志信息的拼写错误,文法错误和<quote>简单的错误</quote>是<option>--revprop</option>选项最常见用例。
             </para>
@@ -475,12 +470,11 @@
 $
 </screen>
 
-        <para>注意,修改这些未版本化的属性的能力一定要明确的添加给版本库管理员(见xref linkend="svn-ch-5-sect-2.1" />)。因为属性没有版本化,你如果不小心编辑,你会冒丢失信息的风险,版本库管理员可以设置方法来保护这种丢失,缺省情况下,修改未版本化的属性是禁止的。</para>
+        <para>注意,修改这些未版本化的属性的能力一定要明确的添加给版本库管理员(见xref linkend="svn-ch-5-sect-2.1" />)。因为属性没有版本化,如果编辑的时候不小心,就会冒丢失信息的风险,版本库管理员可以设置方法来防范这种意外,缺省情况下,修改未版本化的属性是禁止的。</para>
 
       </sidebar>
 
-      <para>就像文件内容,你的属性修改是本地修改,只有提交<command>svn commit</command>后才会成为持久性存储,你的属性修改也可以容易的取消—<command>svn
-        revert</command>命令会恢复你的文件和目录为未编辑状态,内容,属性和其他。另外,你可以使用<command>svn status</command>和<command>svn diff</command>接受感兴趣的文件和目录属性的状态信息。</para>
+      <para>就像文件内容,你的属性修改是本地修改,只有使用<command>svn commit</command>命令提交后才会保存到版本库中,属性修改也可以很容易的取消—<command>svn revert</command>命令会恢复你的文件和目录为编辑前状态,包括内容、属性和其它的信息。另外,你可以使用<command>svn status</command>和<command>svn diff</command>接受感兴趣的文件和目录属性的状态信息。</para>
 
       <screen>
 $ svn status calc/button.c
@@ -494,9 +488,7 @@
 $
 </screen>
 
-      <para>注意<command>status</command>子命令显示的<literal>M</literal>在第二列而不是在第一列,这是因为我们修改了<filename>calc/button.c</filename>的属性,而不是它的文本内容,如果我们都修改了,我们也会看到<literal>M</literal>出现在第一列(见<xref
-        linkend="svn-ch-3-sect-5.3.1" />)。
-        </para>
+      <para>注意<command>status</command>子命令显示的<literal>M</literal>在第二列而不是在第一列,这是因为我们修改了<filename>calc/button.c</filename>的属性,而不是它的文本内容,如果我们都修改了,我们也会看到<literal>M</literal>出现在第一列(见<xref linkend="svn-ch-3-sect-5.3.1" />)。</para>
 
       <sidebar>
         <title>属性冲突</title>
@@ -511,8 +503,7 @@
 $ 
 </screen>
          
-        <para>Subversion也会在冲突资源的同一个目录创建一个<filename>.prej</filename>扩展名的文件,保存了冲突细节。你一定要检验这个文件的内容来决定如何解决冲突,在你解决冲突之前,你会在使用<command>svn
-          status</command>时看到这个资源的输出的第二列是一个<literal>C</literal>,提交本地修改的尝试会失败。</para>
+        <para>Subversion也会在冲突资源的同一个目录创建一个<filename>.prej</filename>扩展名的文件,保存冲突的细节。你一定要检查这个文件的内容来决定如何解决冲突,在你解决冲突之前,你会在使用<command>svn status</command>时看到这个资源的输出的第二列是一个<literal>C</literal>,提交本地修改的尝试会失败。</para>
 
         <screen>
 $ svn status calc
@@ -527,11 +518,9 @@
 
       </sidebar>
 
-      <para>你也许已经注意到了Subversion现在显示属性区别的非标准方式。你还可以运行<command>svn diff</command>并且重定向输出来产生一个有用的补丁文件,<command>patch</command>程序会忽略属性补丁—作为规则,它会忽略任何不理解的噪音。很遗憾,这意味着完全应用<command>svn diff</command>产生的补丁时,任何属性修改必须手工应用。
-      </para>
+      <para>你也许已经注意到了Subversion在显示属性时的非标准方式。你还可以运行<command>svn diff</command>并且重定向输出来产生一个有用的补丁文件,<command>patch</command>程序会忽略属性补丁—作为规则,它会忽略任何不理解的噪音。很遗憾,这意味着完全应用<command>svn diff</command>产生的补丁时,任何属性修改必须手工实施。</para>
 
-      <para>就象你看到的,属性修改的出现并没有对典型的Subversion工作流有显著的影响,你通常模式的更新工作拷贝,检查文件和目录的状态,报告你所做的修改和提交修改到版本库完全与属性的存在与否无关。<command>svn</command>程序有一些额外的子命令用来进行属性修改,但是那是唯一显而易见的不对称。
-     </para>
+      <para>就象你看到的,属性修改的出现并没有对典型的Subversion工作流有显著的影响,更新工作拷贝、检查文件和目录的状态、报告所作的修改和提交修改到版本库等等的工作方式完全与属性的存在与否无关。<command>svn</command>程序有一些额外的子命令用来进行属性修改,但是那是唯一显而易见不对称的。</para>
 
     </sect2>
 
@@ -540,7 +529,7 @@
       
       <title>特别属性</title>
 
-      <para>Subversion没有关于属性的特殊政策—你可以通过它们实现自己的目的。Subversion只是要求你不要使用<literal>svn:</literal>开头的命名空间作为属性名,这是Subversion自己使用的命名空间。实际上,Subversion定义对这些属性他们所附加的文件和目录有特殊的效果。在本小节,我们会解开这个谜团,并且描述这些属性怎样让你的生活更加容易。</para>
+      <para>Subversion没有关于属性的特殊政策—你可以通过它们实现自己的目的。Subversion只是要求你不要使用<literal>svn:</literal>开头的命名空间作为属性名,这是Subversion自己使用的命名空间。实际上,Subversion定义了某些特殊的属性,这些属性对它们所附加的文件和目录有特殊的影响。在本小节,我们会解开这个谜团,并且描述这些属性怎样让你的生活更加容易。</para>
       
       <sect3 id="svn-ch-7-sect-2.3.1">
         <title><literal>svn:executable</literal></title>



More information about the svnbook-dev mailing list