[svnbook commit] r2445 - trunk/src/zh/book
rocksun
noreply at red-bean.com
Wed Sep 27 01:01:55 CDT 2006
Author: rocksun
Date: Wed Sep 27 01:01:55 2006
New Revision: 2445
Modified:
trunk/src/zh/book/appa.xml
trunk/src/zh/book/appb.xml
trunk/src/zh/book/ch09.xml
Log:
Complete ship from En1.2
* appa.xml: need translate
* appb.xml: need translate
* ch09.xml: need translate
Modified: trunk/src/zh/book/appa.xml
==============================================================================
--- trunk/src/zh/book/appa.xml (original)
+++ trunk/src/zh/book/appa.xml Wed Sep 27 01:01:55 2006
@@ -138,46 +138,57 @@
<para>对于Subversion,我们通过修改<command>svn status</command>的输出使之同时满足阅读和解析的需要来努力消除这种混乱,同样,<command>svn update</command>只会打印将要更新的文件信息,而<emphasis>不是</emphasis>本地修改。
</para>
+ <sect2 id="svn.forcvs.status-vs-update.status">
+ <title>Status</title>
<para><command>svn status</command>打印所有本地修改的文件,缺省情况下,不会联系版本库,然而这个命令接受一些选项,如下是一些最常用的:
</para>
- <variablelist>
- <varlistentry>
- <term><option>-u</option></term>
- <listitem>
- <para>联系版本库来确定,然后显示,过时的信息。
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-v</option></term>
- <listitem>
- <para>显示<emphasis>所有</emphasis>版本控制之下的条目。</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-N</option></term>
- <listitem>
- <para>非递归运行(不传递到子目录)。</para>
- </listitem>
- </varlistentry>
- </variablelist>
+ <para><command>svn status</command> prints all files that have
+ local modifications. By default, the repository is not
+ contacted. While this subcommand accepts a fair number of
+ options, the following are the most commonly used ones:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-u</option></term>
+ <listitem>
+ <para>Contact the repository to determine, and then display,
+ out-of-dateness information.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+ <listitem>
+ <para>Show <emphasis>all</emphasis> entries under
+ version control.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-N</option></term>
+ <listitem>
+ <para>Run non-recursively (do not descend into
+ subdirectories).</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>The <command>status</command> command has two output
+ formats. In the default <quote>short</quote> format, local
+ modifications look like this:</para>
- <para><command>status</command>命令有两种输出格式,缺省是<quote>简短</quote>格式,本地修改看起来是这样:
- </para>
-
- <screen>
+ <screen>
$ svn status
M foo.c
M bar/baz.c
</screen>
- <para>如果你指定<option>--show-updates</option>(<option>-u</option>),输出会使用比较长的格式:
- </para>
+ <para>If you specify the <option>--show-updates</option>
+ (<option>-u</option>) switch, a longer output format is
+ used:</para>
- <screen>
+ <screen>
$ svn status -u
M 1047 foo.c
* 1045 faces.html
@@ -186,40 +197,61 @@
Status against revision: 1066
</screen>
- <para>在这个例子里,有两个新列,如果文件或目录已经过期了,第二列会显示星号。第三列显示工作拷贝项目的修订版本号,在上面的例子里,星号表示<filename>faces.html</filename>会在更新时更新,而<filename>bloo.png</filename>是在版本库新加的文件。(<filename>bloo.png</filename>前面的空格表示它不曾存在于工作拷贝。)
- </para>
-
- <!-- ###TODO describe -v here as well as -uv. -u and -v use
- different <quote>long</quote> formats and need to be
- documented separately. Moreover, as you can combine -u and
- -v, it needs to be explained what each of them does. As -u is
- much more important than -v, and the example following that
- paragraph *is* about -u, not -v, my patch concentrated on
- that. -->
-
- <para>最后,你会想看一个常见状态码的快速总结:</para>
-
- <screen>
-A 资源预定要添加
-D 资源预定要删除
-M 资源有本地修改
-C 资源发生冲突(修改不能完全在版本库和
- 工作拷贝之间合并)
-X 资源在工作拷贝之外(来自其他版本库,
- 见<xref linkend="svn.advanced.props.special.externals" />)
-? 资源不在版本控制之下
-! 资源丢失或者不完整(被Subversion以外的工具删除)
+ <para>In this case, two new columns appear. The second column
+ contains an asterisk if the file or directory is out-of-date.
+ The third column shows the working-copy's revision number of the
+ item. In the example above, the asterisk indicates that
+ <filename>faces.html</filename> would be patched if we updated,
+ and that <filename>bloo.png</filename> is a newly added file in
+ the repository. (The absence of any revision number next to
+ <filename>bloo.png</filename> means that it doesn't yet exist in
+ the working copy.)</para>
+
+ <!-- ###TODO describe -v here as well as -uv. -u and -v use
+ different <quote>long</quote> formats and need to be
+ documented separately. Moreover, as you can combine -u and
+ -v, it needs to be explained what each of them does. As -u is
+ much more important than -v, and the example following that
+ paragraph *is* about -u, not -v, my patch concentrated on
+ that. -->
+
+ <para>Lastly, here's a quick summary of the most common status codes that
+ you may see:</para>
+
+ <screen>
+A Resource is scheduled for Addition
+D Resource is scheduled for Deletion
+M Resource has local Modifications
+C Resource has Conflicts (changes have not been completely merged
+ between the repository and working copy version)
+X Resource is eXternal to this working copy (may come from another
+ repository). See <xref linkend="svn.advanced.props.special.externals" />
+? Resource is not under version control
+! Resource is missing or incomplete (removed by another tool than
+ Subversion)
</screen>
- <!-- ###TODO: This paragraph should be moved elsewhere. We are
- talking about status codes here, and not update.
- Although CVS uses update as a form of status... -->
- <para>Subversion合并了CVS的<literal>P</literal>和<literal>U</literal>代码为<literal>U</literal>,当一个合并或冲突发生,Subversion只会简单得打印<literal>G</literal>或<literal>C</literal>,而不是一段完整的描述语句。
- </para>
+ <para>For a more detailed discussion of <command>svn
+ status</command>, see <xref linkend="svn.tour.cycle.examine.status" />.</para>
- <para>关于<command>svn
- status</command>的详细讨论见<xref linkend="svn.tour.cycle.examine.status" />。
- </para>
+ </sect2>
+
+ <sect2 id="svn.forcvs.status-vs-update.update">
+ <title>Update</title>
+
+ <para><command>svn update</command> updates your working copy,
+ and only prints information about files that it updates.</para>
+
+ <para>Subversion has combined the CVS <literal>P</literal> and
+ <literal>U</literal> codes into just <literal>U</literal>. When
+ a merge or conflict occurs, Subversion simply prints
+ <literal>G</literal> or <literal>C</literal>, rather than a
+ whole sentence about it.</para>
+
+ <para>For a more detailed discussion of <command>svn
+ update</command>, see <xref linkend="svn.tour.cycle.update" />.</para>
+
+ </sect2>
</sect1>
@@ -339,7 +371,7 @@
<para>或许让CVS用户熟悉Subversion最好的办法就是让他们的项目继续在新系统下工作,这可以简单得通过平淡的把CVS版本库的导出数据导入到Subversion完成,或者是更加完全的方案,不仅仅包括最新数据快照,还包括所有的历史,从一个系统到另一个系统。这是一个非常困难的问题,包括推导保持原子性的修改集,转化两个系统完全不同的分支政策。但是我们还是有许多工具声称至少部分具备了的转化已存在的CVS版本库为Subversion版本库的能力。
</para>
- <para>其中一个工具是cvs2svn(<ulink url="http://cvs2svn.tigris.org/"/>),是一个Python脚本,最初是Subversion自己的开发社区的成员编写的。其他的如Chia-liang Kao的Subversion的VCP工具(<ulink url="http://svn.clkao.org/revml/branches/svn-perl/"/>)转化器插件,还有Lev Serebryakov的RefineCVS(<ulink url="http://lev.serebryakov.spb.ru/refinecvs/"/>)。这些工具具备不同程度的完成性,也许会具备完全不同的处理CVS历史的方法。无论你决定使用哪个工具,确定要执行尽可能多的验证来确定你可以接受转化结果—毕竟,你曾经努力创建这些历史!
+ <para>其中一个工具是cvs2svn(<ulink url="http://cvs2svn.tigris.org/"/>),是一个Python脚本,最初是Subversion自己的开发社区的成员编写的。其他的如Lev Serebryakov的RefineCVS(<ulink url="http://lev.serebryakov.spb.ru/refinecvs/"/>)。这些工具具备不同程度的完成性,也许会具备完全不同的处理CVS历史的方法。无论你决定使用哪个工具,确定要执行尽可能多的验证来确定你可以接受转化结果—毕竟,你曾经努力创建这些历史!
</para>
<para>关于最新的转化工具链接列表,可以访问Subversion的网站(<ulink url="http://subversion.tigris.org/project_links.html"/>)。
Modified: trunk/src/zh/book/appb.xml
==============================================================================
--- trunk/src/zh/book/appb.xml (original)
+++ trunk/src/zh/book/appb.xml Wed Sep 27 01:01:55 2006
@@ -196,7 +196,7 @@
<para>因为Subversion客户端不是完整的DeltaV客户端,Subversion服务器也不是完整的DeltaV服务器,但仍有值得高兴的交互特性:叫做自动版本化。
</para>
- <para>自动版本化是DeltaV标准中的可选特性,一个典型的DeltaV服务器会拒绝一个对版本控制之下文件的<literal>PUT</literal>操作,为了修改一个版本控制下的文件,服务器只会接受一系列正确的版本请求:例如<literal>MKACTIVITY</literal>、<literal>CHECKOUT</literal>、<literal>PUT</literal>和<literal>CHECKIN</literal>。但是如果DeltaV服务器支持自动版本化,服务器可以在后台假装客户端执行了一些列正确的版本请求,也就是说,DeltaV服务器可以与一个普通的WebDAV客户端交互。
+ <para>自动版本化是DeltaV标准中的可选特性,一个典型的DeltaV服务器会拒绝一个对版本控制之下文件的<literal>PUT</literal>操作,为了修改一个版本控制下的文件,服务器只会接受一系列正确的版本请求:例如<literal>MKACTIVITY</literal>、<literal>CHECKOUT</literal>、<literal>PUT</literal>和<literal>CHECKIN</literal>。但是如果DeltaV服务器支持自动版本化,服务器可以在后台假装客户端执行了一些列正确的版本请求,也就是说,DeltaV服务器可以与一个对版本化一无所知的普通WebDAV客户端交互。
</para>
<para>因为有许多操作系统已经集成了WebDAV客户端,这个特性的用例可能是这样的:假设一个办公室有许多使用Microsoft Windows或Mac OS的普通用户,每个用户<quote>装载</quote>了一个Subversion版本库,看起来就是普通的网络共享文件夹。他们像普通目录一样的操作这个目录:打开文件、编辑它们,保存它们。同时,服务器自动的版本化所有的东西,任何管理员(或有知识的用户)可以一直使用Subversion客户端来查询历史来检索旧版本的数据。
@@ -222,6 +222,41 @@
commit</command>产生的事务。技巧就是检查修订版本的<literal>svn:autoversioned</literal>属性,如果有,则提交来自一个原始的WebDAV客户端。
</para>
+<para>Another feature that may be a useful complement
+ for <literal>SVNAutoversioning</literal> comes from
+ Apache's <literal>mod_mime</literal> module. If a generic
+ WebDAV client adds a new file to the repository, there's no
+ opportunity for the user to set the
+ the <literal>svn:mime-type</literal> property. This might cause
+ the file to appear as <quote>generic</quote> icon when viewed
+ within a WebDAV shared folder, not having an association with
+ any application. One remedy is to have a sysadmin (or other
+ Subversion-knowledgable person) check out a working copy and
+ manually set the <literal>svn:mime-type</literal> property on
+ necessary files. But there's potentially no end to such cleanup
+ tasks. Instead, you can use
+ the <literal>ModMimeUsePathInfo</literal> directive in
+ your Subversion <literal><Location></literal>
+ block:</para>
+
+ <screen>
+<Location /repos>
+ DAV svn
+ SVNPath /path/to/repository
+ SVNAutoversioning on
+
+ ModMimeUsePathInfo on
+
+</Location>
+</screen>
+
+ <para>This directive allows <literal>mod_mime</literal> to attempt
+ automatic deduction of the mime-type on new files that enter the
+ repository via autoversioning. The module looks at the file's
+ named extension and possibly the contents as well; if the file
+ matches some common patterns, then the the
+ file's <literal>svn;mime-type</literal> property will be set
+ automatically.</para>
</sect1>
<!-- ================================================================= -->
@@ -411,6 +446,14 @@
<para>有各种解决问题的方法,但好像没有一种能够在各版本和各级别的Windows XP中有效。在我们的测试里,只有上面这种策略在各种系统中有效。WebDAV社区一致认为避免使用新的网络文件夹实现,而使用旧的,如果你希望在Windows XP使用真实的文件系统级的客户端,请使用第三方的程序,例如WebDrive或NetDrive。
</para>
+ <para>A final tip: if you're attempting to use XP Web Folders,
+ make sure you have the absolute latest version from
+ Microsoft. For example, Microsoft released a bug-fixed
+ version in January 2005, available at
+ <ulink url="http://support.microsoft.com/?kbid=892211"/>.
+ In particular, this release is known to fix a bug whereby
+ browsing a DAV share shows an unexpected infinite
+ recursion.</para>
</sect3>
<sect3 id="svn.webdav.clients.file-explorer-extensions.linux-de">
Modified: trunk/src/zh/book/ch09.xml
==============================================================================
--- trunk/src/zh/book/ch09.xml (original)
+++ trunk/src/zh/book/ch09.xml Wed Sep 27 01:01:55 2006
@@ -77,7 +77,7 @@
<term><option>--editor-cmd</option>
<replaceable>CMD</replaceable></term>
<listitem>
- <para>指定一个外部程序来编辑日志信息或是属性值。</para>
+ <para>指定一个外部程序来编辑日志信息或是属性值。如何设定缺省编辑器见<xref linkend="svn.advanced.confarea.opts.config"/>的<literal>editor-cmd</literal>小节。</para>
</listitem>
</varlistentry>
@@ -732,7 +732,7 @@
<refsect1>
<title>描述</title>
- <para>递归清理工作拷贝,删除未完成的操作锁定。如果你得到一个<quote>工作拷贝已锁定</quote>的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。
+ <para>递归清理工作拷贝,删除未完成的工作拷贝锁定,并恢复未完成的操作。如果你得到一个<quote>工作拷贝已锁定</quote>的错误,运行这个命令可以删除无效的锁定,让你的工作拷贝再次回到可用的状态。
</para>
<para>如果,因为一些原因,运行外置的区别程序(例如,用户输入或是网络错误)有时候会导致一个<command>svn update</command>失败,使用<option>--diff3-cmd</option>选项可以完全清除你的外置区别程序所作的合并,你也可以使用<option>--config-dir</option>指定任何配置目录,但是你应该不会经常使用这些选项。</para>
@@ -2899,7 +2899,8 @@
<varlistentry>
<term>'R'</term>
<listitem>
- <para>项目在工作拷贝中已经被替换了。</para>
+ <para>项目在工作拷贝中已经被替换了。这意味着文件预定要删除,然后有一个同样名称的文件要在同一个位置替换它。
+ </para>
</listitem>
</varlistentry>
@@ -2978,7 +2979,7 @@
</variablelist>
- <para>第三列只在工作拷贝锁定时才会出现。</para>
+ <para>第三列只在工作拷贝锁定时才会出现。(见<xref linkend="svn.tour.other.cleanup"/>。)</para>
<variablelist>
@@ -3407,7 +3408,8 @@
<refsect1>
<title>描述</title>
- <para><command>svn update</command>会把版本库的修改带到工作拷贝,如果没有给定修订版本,它会把你的工作拷贝更新到<literal>HEAD</literal>修订版本,否则,它会把工作拷贝更新到你用<option>--revision</option>指定的修订版本。为了保持同步,也会删除所有在工作拷贝发现的无效锁定。
+ <para><command>svn update</command>会把版本库的修改带到工作拷贝,如果没有给定修订版本,它会把你的工作拷贝更新到<literal>HEAD</literal>修订版本,否则,它会把工作拷贝更新到你用<option>--revision</option>指定的修订版本。为了保持同步,也会删除所有在工作拷贝发现的无效锁定(见<xref
+ linkend="svn.tour.other.cleanup"/>)。
</para>
<para>对于每一个更新的项目开头都有一个表示所做动作的字符,这些字符有下面的意思:
@@ -4052,7 +4054,9 @@
The latest repos revision is 34.
</screen>
- <para>恢复数据库需要一个版本库的独占锁,如果另一个进程访问版本库,<command>svnadmin recover</command>会出错:
+ <para>恢复数据库需要一个版本库的独占锁(这是一个<quote>数据库锁</quote>;见<xref
+ linkend="svn.advanced.locking.meanings"/>),如果另一个进程访问版本库,<command>svnadmin
+ recover</command>会出错:
</para>
<screen>
$ svnadmin recover /usr/local/svn/repos
@@ -5384,6 +5388,203 @@
</refentry>
</sect1>
+ <!-- ================================================================= -->
+ <!-- ================================================================= -->
+ <!-- ================================================================= -->
+ <sect1 id="svn.ref.properties">
+
+ <title><command>Subversion properties</command></title>
+
+
+ <refentry id="svn.ref.svnprops">
+ <refnamediv>
+
+ <refname>Subversion-defined properties</refname> <refpurpose>
+ properties defined by Subversion to control behavior.</refpurpose>
+
+ </refnamediv>
+
+ <refsect1 id="svn.ref.svnprops.desc">
+ <title>Description</title>
+
+ <para>Subversion allows users to invent arbitrarily-named
+ versioned properties on files and directories, as well as
+ unversioned properties on revisions. The only restriction
+ is on properties prefixed with <quote>svn:</quote>.
+ Properties in that namespace are reserved for Subversion's
+ own use. While these properties may be set by users to
+ control Subversion's behavior, users may not invent new
+ <quote>svn:</quote> properties.</para>
+
+ </refsect1>
+
+ <refsect1 id="svn.ref.properties.versioned-props">
+ <title>Versioned Properties</title>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>svn:executable</literal></term>
+ <listitem>
+
+ <para>If present on a file, the client will make the
+ file executable in Unix-hosted working copies. See
+ <xref
+ linkend="svn.advanced.props.special.executable"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:mime-type</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value indicates the
+ file's mime-type. This allows the client to decide
+ whether line-based contextual merging is safe to
+ perform during updates, and can also affect how the
+ file behaves when fetched via web browser. See
+ <xref
+ linkend="svn.advanced.props.special.mime-type"/>. </para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:ignore</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a list of
+ unversioned file patterns to be ignored
+ by <command>svn status</command> and other
+ subcommands. See
+ <xref
+ linkend="svn.advanced.props.special.ignore"/></para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:keywords</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value tells the client
+ how to expand particular keywords within the file.
+ See
+ <xref
+ linkend="svn.advanced.props.special.keywords"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:eol-style</literal></term>
+ <listitem>
+
+ <para>If present on a file, the value tells the client
+ how to manipulate the file's line-endings in the
+ working copy. See
+ <xref
+ linkend="svn.advanced.props.special.eol-style"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:externals</literal></term>
+ <listitem>
+
+ <para>If present on a directory, the value is a
+ multi-line list of other paths and URLs the client
+ should check out. See
+ <xref
+ linkend="svn.advanced.props.special.externals"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:special</literal></term>
+ <listitem>
+
+ <para>If present on a file, indicates that the file is
+ not an ordinary file, but a symbolic link or other
+ special object. See
+ <xref
+ linkend="svn.advanced.props.special.special"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:needs-lock</literal></term>
+ <listitem>
+
+ <para>If present on a file, tells the client to make the
+ file read-only in the working copy, as a reminder that
+ the file should be locked before editing begins. See
+ <xref
+ linkend="svn.advanced.locking.lock-communication"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+
+ <refsect1 id="svn.ref.properties.unversioned-props">
+ <title>Unversioned Properties</title>
+
+ <variablelist>
+
+ <varlistentry>
+ <term><literal>svn:author</literal></term>
+ <listitem>
+
+ <para>If present, contains the authenticated username of
+ the person who created the revision. (If not present,
+ then the revision was committed anonymously.)</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:date</literal></term>
+ <listitem>
+
+ <para>Contains the UTC time the revision was created, in
+ ISO format. The value comes from the server
+ machine's clock.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:log</literal></term>
+ <listitem>
+
+ <para>Contains the log message describing the
+ revision.</para>
+
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><literal>svn:autoversioned</literal></term>
+ <listitem>
+
+ <para>If present, the revision was created via the
+ autoversioning feature. See
+ <xref linkend="svn.webdav.autoversioning"/>.</para>
+
+ </listitem>
+ </varlistentry>
+
+ </variablelist>
+ </refsect1>
+ </refentry>
+ </sect1>
+
</chapter>
More information about the svnbook-dev
mailing list