[svnbook commit] r1968 - trunk/src/zh/book
rocksun
svnbook-dev at red-bean.com
Tue Jan 31 01:24:23 CST 2006
Author: rocksun
Date: Tue Jan 31 01:22:38 2006
New Revision: 1968
Modified:
trunk/src/zh/book/appb.xml
trunk/src/zh/book/ch07.xml
trunk/src/zh/book/ch09.xml
Log:
* zh/book/ch07.xml: complete translate to 1.2
* zh/book/ch09.xml: complete translate to 1.2
* zh/book/appb.xml: complete translate to 1.2
Modified: trunk/src/zh/book/appb.xml
==============================================================================
--- trunk/src/zh/book/appb.xml (original)
+++ trunk/src/zh/book/appb.xml Tue Jan 31 01:22:38 2006
@@ -36,11 +36,10 @@
<variablelist>
<varlistentry>
- <term>Resources</term>
+ <term>资源</term>
<listitem>
- <para> WebDAV lingo refers to any server-side object
- (that can be described with a URI) as a
- <firstterm>resource</firstterm>.</para>
+ <para>WebDAV方言里将服务器端的对象(可以用URI描述)称为<firstterm>资源</firstterm>。
+ </para>
</listitem>
</varlistentry>
@@ -77,12 +76,10 @@
</varlistentry>
<varlistentry>
- <term>Access control</term>
+ <term>访问控制</term>
<listitem>
- <para>A more recent specification (RFC 3744) defines a
- system for defining access control lists (ACLs) on
- WebDAV resources. Some clients and servers have begun
- to implement this feature.</para>
+ <para>一个更近的规范(RFC 3744)定义了一个WebDAV资源访问控制列表的系统,一些客户端和服务器正在实现这个特性。
+ </para>
</listitem>
</varlistentry>
@@ -155,72 +152,38 @@
<title>Subversion和DeltaV</title>
- <para>The original WebDAV standard has been widely successful.
- Every modern computer operating system has a general WebDAV
- client built-in (details to follow), and a number of popular
- standalone applications are also able to speak WebDAV —
- Microsoft Office, Dreamweaver, and Photoshop to name a few. On
- the server end, the Apache webserver has been able to provide
- WebDAV services since 1998 and is considered the de-facto
- open-source standard. There are several other commercial WebDAV
- servers available, including Microsoft's own IIS.</para>
-
- <para>DeltaV, unfortunately, has not been so successful. It's
- very difficult to find any DeltaV clients or servers. The few
- that do exist are relatively unknown commercial products, and
- thus it's very difficult to test interoperability. It's not
- entirely clear as to why DeltaV has remained stagnant. Some
- argue that the specification is just too complex, others argue
- that while WebDAV's features have mass appeal (even the least
- technical users appreciate network file-sharing), version
- control features aren't interesting or necessary for most users.
- Finally, some have argued that DeltaV remains unpopular because
- there's still no open-source server product which implements
- it.</para>
+ <para>最初的WebDAV标准得到了广泛的成功,所有的现代操作系统拥有内置的(后面有详细资料)对普通WebDAV的支持,许多流行的应用程序也可以使用WebDAV—Microsoft
+ Office,Dreamweaver和Photoshop。在服务器方面,Apache从1998年就开始支持WebDAV,并被认为是一个事实上的开源标准,也有许多商业的WebDAV服务器,例如Microsoft的IIS。
+ </para>
+
+ <para>不幸的是,DeltaV没有这样的成功,很难寻找到任何DeltaV客户端和服务器。只有一些不太出名的商业产品,因此很难测试交互性,不清楚为什么DeltaV还这样停滞,一些人说规范太复杂了,还有些人认为景观DeltaV的特性有很大的吸引力(即使最新的技术用户也喜欢使用网络文件共享),版本控制特性对大多数用户还不是这样有趣和必须。最后,有些人认为DeltaV海这样不流行主要是因为一直没有开源的服务器产品实现它。
+ </para>
- <para>When Subversion was still in its design phase, it seemed
- like a great idea to use Apache httpd as the main network
- server. It already had a module to provide WebDAV services.
- DeltaV was a relatively new specification. The hope was that
- the Subversion server module (mod_dav_svn) would eventually
- evolve into an open-source DeltaV reference implementation.
- Unfortunately, DeltaV has a very specific versioning model that
- doesn't quite line up with Subversion's model. Some concepts
- were mappable, others were not.</para>
+ <para>当Subversion还在设计阶段时,使用Apache的httpd作为主要网络服务器就是一个很好的想法,已经有了支持WebDAV服务的模块。DeltaV有一个很新的规范,希望就是Subversion服务器模块最终能够成为一个开源的DeltaV参考实现,但非常不幸,DeltaV得版本模型过于详细,与Subversion的模型并不匹配,有些概念可以对应起来,有些则不能。
+ </para>
- <para>The upshot is that</para>
+ <para>结果就是</para>
<orderedlist>
<listitem>
- <para>The Subversion client is not a fully-implemented DeltaV
- client.</para>
+ <para>Subversion客户端不是一个完全实现的DeltaV客户端。</para>
- <para>The client needs certain things from the server that
- DeltaV cannot provide, and thus is largely dependent on a
- number of Subversion-specific <literal>REPORT</literal>
- requests that only mod_dav_svn understands.</para>
+ <para>客户端需要从服务器得到DeltaV不能提供的东西,因此非常依赖于只有mod_dav_svn理解的Subversion特定的<literal>REPORT</literal>请求。
+ </para>
</listitem>
<listitem>
- <para>mod_dav_svn is not a fully-implemented DeltaV server.</para>
+ <para>mod_dav_svn也不是一个完全实现的DeltaV服务器。</para>
- <para>Many portions of the DeltaV specification were irrelevant to
- Subversion, and thus left unimplemented.</para>
+ <para>许多与Subversion不相关的DeltaV规范还没有实现。
+ </para>
</listitem>
</orderedlist>
- <para>There is still some debate in the developer community as to
- whether or not it's worthwhile to remedy either of these
- situations. It's fairly unrealistic to change Subversion's
- design to match DeltaV, so there's probably no way the client
- can ever learn to get everything it needs from a general DeltaV
- server. On the other hand,
- mod_dav_svn <emphasis>could</emphasis> be further developed to
- implement all of DeltaV, but it's hard to find motivation to do
- so—there are almost no DeltaV clients to interoperate
- with.</para>
+ <para>在开发者社区一直有这样的讨论,是否值得弥补这种形势。改变Subversion的设计来匹配DeltaV看起来并不值得,所以可能没有办法让客户端从普通的DeltaV服务器上得到所有的东西。另一方面,mod_dav_svn<emphasis>可以</emphasis>继续开发来实现所有的DeltaV,但缺乏这样做的动力—几乎没有能与之交户的DeltaV客户端。
+ </para>
</sect1>
@@ -228,44 +191,18 @@
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.webdav.autoversioning">
- <title>Autoversioning</title>
+ <title>自动版本化</title>
+
+ <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>
- <para>While the Subversion client is not a full DeltaV client, nor
- the Subversion server a full DeltaV server, there's still a
- glimmer of WebDAV interoperability to be happy about: it's
- called autoversioning.</para>
-
- <para>Autoversioning is an optional feature defined in the DeltaV
- standard. A typical DeltaV server will reject an ignorant
- WebDAV client attempting to do a <literal>PUT</literal> to a
- file that's under version control. To change a
- version-controlled file, the server expects a series proper
- versioning requests: something like
- <literal>MKACTIVITY</literal>, <literal>CHECKOUT</literal>,
- <literal>PUT</literal>, <literal>CHECKIN</literal>. But if the
- DeltaV server supports autoversioning, then write-requests from
- basic WebDAV clients are accepted. The server behaves *as if*
- the client had issued the proper series of versioning requests,
- performing a commit under the hood. In other words, it allows a
- DeltaV server to interoperate with ordinary WebDAV
- clients.</para>
-
- <para>Because so many operating systems already have integrated
- WebDAV clients, the use case for this feature borders on
- fantastical: imagine an office of ordinary users running
- Microsoft Windows or Mac OS. Each user <quote>mounts</quote>
- the Subversion repository, which appears to be an ordinary
- network folder. They use the shared folder as they always do:
- open files, edit them, save them. Meanwhile, the server is
- automatically versioning everything. Any administrator (or
- knowledgeable user) can still use a Subversion client to search
- history and retrieve older versions of data.</para>
-
- <para>This scenario isn't fiction: it's real and it works, as of
- Subversion 1.2 and later. To activate autoversioning in
- mod_dav_svn, use the <literal>SVNAutoversioning</literal>
- directive within the <filename>httpd.conf</filename> Location
- block, like so:</para>
+ <para>因为有许多操作系统已经集成了WebDAV客户端,这个特性的用例可能是这样的:假设一个办公室有许多使用Microsoft Windows或Mac OS的普通用户,每个用户<quote>装载</quote>了一个Subversion版本库,看起来就是普通的网络共享文件夹。他们像普通目录一样的操作这个目录:打开文件、编辑它们,保存它们。同时,服务器自动的版本化所有的东西,任何管理员(或有知识的用户)可以一直使用Subversion客户端来查询历史来检索旧版本的数据。
+ </para>
+
+ <para>这个场景不是小说:对于Subversion 1.2来说,是真实的和有效的。为了激活mod_dav_svn的自动版本化,需要使用<filename>httpd.conf</filename>中Location区块的<literal>SVNAutoversioning</literal>指示,例如:</para>
<screen>
<Location /repos>
@@ -275,31 +212,15 @@
</Location>
</screen>
- <para>When SVNAutoversioning is active, write requests from WebDAV
- clients result in automatic commits. A generic log message is
- auto-generated and attached to each revision.</para>
-
- <para>Before activating this feature, however, understand what
- you're getting into. WebDAV clients tend to do
- <emphasis>many</emphasis> write requests, resulting in a huge
- number of automatically committed revisions. For example, when
- saving data, many clients will do a <literal>PUT</literal> of a
- 0-byte file (as a way of reserving a name) followed by another
- <literal>PUT</literal> with the real filedata. The single
- file-write results in two separate commits. Also consider that
- many applications auto-save every few minutes, resulting in even
- more commits.</para>
-
- <para>If you have a post-commit hook program that sends email, for
- example, you may want to disable email generation either
- altogether, or on certain sections of the repository; it depends
- on whether you think the influx of emails will still prove to be
- valuable notifications or not. Also, a smart post-commit hook
- program can distinguish between a transaction created via
- autoversioning and one created through a normal <command>svn
- commit</command>. The trick is to look for a revision property
- named <literal>svn:autoversioned</literal>. If present, the
- commit was made by a generic WebDAV client.</para>
+ <para>当激活了SVNAutoversioning,来自WebDAV的客户端请求会导致自动提交,每个修订版本会自动附加一个原始的日志信息。
+ </para>
+
+ <para>然而,在激活这个特性之前,需要理解你做的事情。WebDAV会做许多写请求,导致了产生数量绝大的自动提交修订版本。例如,当保存数据,许多客户端会使用一个<literal>PUT</literal>一个0字节的文件,然后紧跟一个<literal>PUT</literal>真实的文件数据。一个单独的文件写操作产生了两个不同的提交。考虑到许多应用程序隔几分钟的自动保存,会产生更多的提交。
+ </para>
+
+ <para>如果你有发送邮件的post-commit钩子程序,例如,你会根据是否有价值来开启和关闭邮件通知,另外,一个聪明的post-commit钩子也应该能够区分自动版本化和<command>svn
+ commit</command>产生的事务。技巧就是检查修订版本的<literal>svn:autoversioned</literal>属性,如果有,则提交来自一个原始的WebDAV客户端。
+ </para>
</sect1>
@@ -307,101 +228,82 @@
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.webdav.clients">
- <title>Client Interoperability</title>
+ <title>客户端交互性</title>
- <para>All WebDAV clients fall into one of three
- categories—standalone applications, file-explorer
- extensions, or filesystem implementations. These categories
- broadly define the types of WebDAV functionality available to
- users. <xref linkend="svn.webdav.clients.tbl-1"/> gives our
- categorization and a quick description of some common pieces of
- WebDAV-enabled software. More details about these software
- offerings, as well as their general category, can be found in
- the sections that follow.</para>
+ <para>所有的WebDAV客户端分为三类—独立应用程序,文件浏览器扩展或文件系统实现,这些分类定义了WebDAV用户可用的功能性。<xref linkend="svn.webdav.clients.tbl-1"/>给WebDAV常见软件进行了分类,并提供了的简短描述。
+ </para>
<table id="svn.webdav.clients.tbl-1">
<title>Common WebDAV Clients</title>
<tgroup cols="3">
<thead>
<row>
- <entry>Software</entry>
- <entry>Category</entry>
- <entry>Description</entry>
+ <entry>软件</entry>
+ <entry>分类</entry>
+ <entry>描述</entry>
</row>
</thead>
<tbody>
<row>
<entry>Adobe Photoshop</entry>
- <entry>Standalone WebDAV applications</entry>
- <entry>Image editing software, allowing direct opening
- from, and writing to, WebDAV URLs</entry>
+ <entry>独立WebDAV应用程序</entry>
+ <entry>图像编辑软件,允许直接从WebDAV的URL打开文件和修改。
+ </entry>
</row>
<row>
<entry>Cadaver</entry>
- <entry>Standalone WebDAV applications</entry>
- <entry>Command-line WebDAV client supporting file
- transfer, tree, and locking operations</entry>
+ <entry>独立WebDAV应用程序</entry>
+ <entry>命令行的WebDAV客户端,支持文件传输,目录树显示和锁定操作</entry>
</row>
<row>
<entry>DAV Explorer</entry>
- <entry>Standalone WebDAV applications</entry>
- <entry>GUI tool for exploring WebDAV shares</entry>
+ <entry>独立WebDAV应用程序</entry>
+ <entry>浏览WebDAV共享的GUI工具</entry>
</row>
<row>
<entry>davfs2</entry>
- <entry>WebDAV filesystem implementation</entry>
- <entry>Linux file system driver that allows you to mount a
- WebDAV share</entry>
+ <entry>WebDAV文件系统实现</entry>
+ <entry>Linux文件系统驱动允许加载WebDAV共享</entry>
</row>
<row>
<entry>GNOME Nautilus</entry>
- <entry>File-explorer WebDAV extensions</entry>
- <entry>GUI file explorer able to perform tree
- operations on a WebDAV share</entry>
+ <entry>文件浏览器WebDAV扩展</entry>
+ <entry>GUI文件浏览器,可以对WebDAV共享执行目录树操作</entry>
</row>
<row>
<entry>KDE Konqueror</entry>
- <entry>File-explorer WebDAV extensions</entry>
- <entry>GUI file explorer able to perform tree
- operations on a WebDAV share</entry>
+ <entry>文件浏览器WebDAV扩展</entry>
+ <entry>GUI文件浏览器,可以对WebDAV共享执行目录树操作</entry>
</row>
<row>
<entry>Mac OS X</entry>
- <entry>WebDAV filesystem implementation</entry>
- <entry>Operating system with built-in support for mounting
- WebDAV shares locally</entry>
+ <entry>WebDAV文件系统实现</entry>
+ <entry>内置可以加载WebDAV到本地功能的操作系统</entry>
</row>
<row>
<entry>Macromedia Dreamweaver</entry>
- <entry>Standalone WebDAV applications</entry>
- <entry>Web production software able to directly read from
- and write to WebDAV URLs</entry>
+ <entry>独立WebDAV应用程序</entry>
+ <entry>Web制作软件,可以直接读写WebDAV的URL</entry>
</row>
<row>
<entry>Microsoft Office</entry>
- <entry>Standalone WebDAV applications</entry>
- <entry>Office productivity suite with several components
- able to directly read from and write to WebDAV
- URLs</entry>
+ <entry>独立WebDAV应用程序</entry>
+ <entry>Office上产套件,可以直接读写WebDAV的URL</entry>
</row>
<row>
<entry>Microsoft Webfolders</entry>
- <entry>File-explorer WebDAV extensions</entry>
- <entry>GUI file explorer program able to perform tree
- operations on a WebDAV share</entry>
+ <entry>文件浏览器WebDAV扩展</entry>
+ <entry>GUI文件浏览器,可以对WebDAV共享执行目录树操作</entry>
</row>
<row>
<entry>Novell NetDrive</entry>
- <entry>WebDAV filesystem implementation</entry>
- <entry>Drive-mapping program for assigning Windows drive
- letters to a mounted remote WebDAV share</entry>
+ <entry>WebDAV文件系统实现</entry>
+ <entry>驱动器映射程序,可以将Windows驱动器加载为远程的WebDAV共享</entry>
</row>
<row>
<entry>SRT WebDrive</entry>
- <entry>WebDAV filesystem implementation</entry>
- <entry>File transfer software which, among other things,
- allows the assignment of Windows drive letters to a
- mounted remote WebDAV share</entry>
+ <entry>WebDAV文件系统实现</entry>
+ <entry>文件传输软件,可以将Windows驱动器加载为远程的WebDAV共享</entry>
</row>
</tbody>
@@ -410,54 +312,30 @@
<!-- =============================================================== -->
<sect2 id="svn.webdav.clients.standalone">
- <title>Standalone WebDAV applications</title>
+ <title>独立WebDAV应用程序</title>
- <para>A WebDAV application is a program which contains built-in
- functionality for speaking WebDAV protocols with a WebDAV
- server. We'll cover some of the most popular programs with
- this kind of WebDAV support.</para>
+ <para>一个WebDAV应用就是一个内置WebDAV协议的程序,我们会覆盖大多数支持WebDAV的流行程序。</para>
<sect3 id="svn.webdav.clients.standalone.windows">
- <title>Microsoft Office, Dreamweaver, Photoshop</title>
+ <title>Microsoft Office,Dreamweaver,Photoshop</title>
+
+ <para>在Windows下,有一些有名的集成WebDAV客户端功能的软件,例如Microsoft's Office、<footnote>
+ <para>WebDAV支持因为一些原因从Microsoft Access里删除了。</para>
+ </footnote>Adobe的Photoshop和Macromedia的Dreamweaver。它们都可以直接打开和保存URL,也可以在编辑时大量的使用WebDAV的锁定。</para>
- <para>On Windows, there are several well-known applications
- that contain integrated WebDAV client functionality, such as
- Microsoft's Office,
- <footnote>
- <para>WebDAV support was removed from Microsoft Access for
- some reason, but exists in the rest of the Office
- suite.</para>
- </footnote>
- Adobe's Photoshop, and Macromedia's Dreamweaver programs.
- They're able to directly open and save to URLs, and tend to
- make heavy use of WebDAV locks when editing a file.</para>
-
- <para>Note that while many of these programs also exist for
- the Mac OS X, they do not appear to support WebDAV directly
- on that platform. In fact, on Mac OS X, the
- <guimenu>File->Open</guimenu> dialog box doesn't allow
- one to type a path or URL at all. It's likely that the
- WebDAV features were deliberately left out of Macintosh
- versions of these programs, since OS X already provides such
- excellent low-level filesystem support for WebDAV.</para>
+ <para>请注意,尽管这些程序都有Mac OS X版本,但在这个平台并不直接支持。事实上,在Mac OS X上,不允许<guimenu>File->Open</guimenu>对话框中出现URL路径。也有可能WebDAV特性是被故意漏掉,因为OS X已经提供了完美的WebDAV文件系统支持。</para>
</sect3>
<sect3 id="svn.webdav.clients.standalone.free">
- <title>Cadaver, DAV Explorer</title>
+ <title>Cadaver,DAV Explorer</title>
- <para>Cadaver is a bare-bones Unix commandline program for
- browsing and changing WebDAV shares. Like the Subversion
- client, it uses the neon HTTP library—not surprisingly,
- both neon and cadaver are written by the same author. Cadaver
- is free software (GPL license) and is available at <ulink
- url="http://www.webdav.org/cadaver/"/>.</para>
-
- <para>Using cadaver is similar to using a commandline FTP
- program, and thus it's extremely useful for basic WebDAV
- debugging. It can be used to upload or download files in a
- pinch, and also to examine properties, copy, move, lock or
- unlock files:</para>
+ <para>Cadaver是一个用来浏览和修改WebDAV共享的Unix命令行程序,就像Subversion客户端,它使用了neon的HTTP库—不需要惊讶,neon和cadaver的作者是同一个人。Cadaver是自由软件(GPL许可证),在<ulink
+ url="http://www.webdav.org/cadaver/"/>上。
+ </para>
+
+ <para>使用cadaver就像使用命令行的FTP程序,因此它很适合基本的WebDAV调试。它可以以压缩方式上传和下载文件,也会检验属性、拷贝、移动、锁定和解锁文件:
+ </para>
<screen>
$ cadaver http://host/repos
@@ -477,199 +355,108 @@
Progress: [=============================>] 100.0% of 1461 bytes succeeded.
</screen>
- <para>DAV Explorer is another standalone WebDAV client, written
- in Java. It's under a free Apache-like license and is
- available at <ulink url="http://www.ics.uci.edu/~webdav/"/>.
- DAV Explorer does everything cadaver does, but has the
- advantages of being portable and being more user-friendly GUI
- application. It's also one of the first clients to support
- the new WebDAV Access Control Protocol (RFC 3744).</para>
-
- <para>Of course, DAV Explorer's ACL support is useless in this
- case, since mod_dav_svn doesn't support it. The fact that
- both Cadaver and DAV Explorer support some limited DeltaV
- commands isn't particularly useful either, since they don't
- allow <literal>MKACTIVITY</literal> requests. But it's not
- relevant anyway; we're assuming all of these clients are
- operating against an autoversioning repository.</para>
+ <para>DAV Explorer是另一个独立运行的WebDAV客户端,使用Java编写,有一个类Apache的许可证,网站是<ulink url="http://www.ics.uci.edu/~webdav/"/>。DAV Explorer与cadaver功能差不多,优点可移植,并有一个用户友好的GUI程序。它也是最早的支持WebDAV访问控制协议(RFC 3744)的客户端。
+ </para>
+
+ <para>当然,DAV Explorer浏览器的ACL支持在这种情况下是没用的,因为mod_dav_svn并不支持。事实上,Cadaver 和DAV Explorer支持的DeltaV限制命令也没什么用出,因为他们不允许<literal>MKACTIVITY</literal>请求。但没有关系,我们只是假定这些客户端都是在操作自动版本化的版本库。
+ </para>
</sect3>
</sect2>
<!-- =============================================================== -->
<sect2 id="svn.webdav.clients.file-explorer-extensions">
- <title>File-explorer WebDAV extensions</title>
+ <title>文件浏览器WebDAV扩展</title>
- <para>Some popular file explorer GUI programs support WebDAV
- extensions which allow a user to browse a DAV share as if it
- was just another directory on the local computer, and allowing
- basic tree editing operations on the items in that share. For
- example, Windows Explorer is able to browse a WebDAV server as
- a <quote>network place</quote>. Users can drag files to and
- from the desktop, or can rename, copy, or delete files in the
- usual way. But because it's only a feature of the
- file-explorer, the DAV share isn't visible to ordinary
- applications. All DAV interaction must happen through the
- explorer interface.</para>
+ <para>一些流行的文件浏览器程序支持WebDAV扩展,允许用户浏览DAV共享如同访问本机,并允许基本的目录树操作。例如,Windows的资源管理器可以把WebDAV服务器看作一个<quote>网络位置</quote>,用户可以从桌面托拽文件到这个目录,或者是重命名、拷贝或者删除文件。但是这只是文件浏览器的特性,DAV共享对于普通的应用不可见,所有的DAV操作需要通过浏览器界面完成。
+ </para>
<sect3 id="svn.webdav.clients.file-explorer-extensions.windows">
- <title>Microsoft Webfolders</title>
+ <title>Microsoft网络文件夹</title>
+
+ <para>Microsoft是WebDAV规范最早的支持者,最早在Windows
+ 98配置客户端,被称作<quote>网络文件夹</quote>,这个客户端在Windows NT4和2000上也存在。
+ </para>
+
+ <para>最早的Webfolders客户端是浏览器的扩展,主要的浏览文件系统的GUI程序,工作良好。在Windows 98,如果<quote>我的电脑</quote>里没有网络文件夹,这个特性需要明确安装。在Windows 2000,只需要添加一个新的<quote>网络位置</quote>,输入URL,WebDAV共享就会弹出让你浏览。
+ </para>
- <para>Microsoft was one of the original backers of the WebDAV
- specification, and first started shipping a client in Windows
- 98, known as <quote>Webfolders</quote>. This client was also
- shipped in Windows NT4 and 2000.</para>
-
- <para>The original Webfolders client was an extension to
- Explorer, the main GUI program used to browse filesystems. It
- works well enough. In Windows 98, the feature might need to
- be explicitly installed if Webfolders aren't already visible
- inside <quote>My Computer</quote>. In Windows 2000, simply
- add a new <quote>network place</quote>, enter the URL, and the
- WebDAV share will pop up for browsing.</para>
-
- <para>With the release of Windows XP, Microsoft started shipping
- a new implementation of Webfolders, known as the <quote>WebDAV
- mini-redirector</quote>. The new implementation is a
- filesystem-level client, allowing WebDAV shares to be mounted
- as drive letters. Unfortunately, this implementation is
- incredibly buggy. The client usually tries to convert http
- URLs (<literal>http://host/repos</literal>) into UNC share
- notation (<literal>\\host\repos</literal>); it also often
- tries to use Windows Domain authentication to respond to
- basic-auth HTTP challenges, sending usernames as
- <literal>HOST\username</literal>. These interoperability
- problems are severe and documented in numerous places around
- the web, to the frustration of many users. Even Greg Stein,
- the original author of Apache's WebDAV module, recommends
- against trying to use XP Webfolders against an Apache
- server.</para>
-
- <para>It turns out that the original
- <quote>Explorer-only</quote> Webfolders implementation isn't
- dead in XP, it's just buried. It's still possible to find it
- by using this technique:</para>
+ <para>伴随着Windows XP,Microsoft开始了另一种网络文件夹的实现,叫做<quote>WebDAV
+ mini-redirector</quote>,这个新的实现是文件系统级的客户端,允许WebDAV转载到驱动器盘符上。不幸的是,这个实现充满难以相信的bug。客户端经常会尝试把http的URL(<literal>http://host/repos</literal>)转化为UNC共享符号(<literal>\\host\repos</literal>),它也经常使用Windows域认证来回应基本的HTTP认证,按照<literal>HOST\username</literal>发送用户名。这类互动性问题在网络上大量传播,使大量用户受挫。即使是ApacheWebDAV的作者Greg Stein也建议不要对Apaache服务器使用XP的网络文件夹。
+ </para>
+
+ <para>结果是原始的网络文件夹并没有在XP中死掉,只是要被埋葬了。还是有办法适用这个技术:</para>
<orderedlist>
<listitem>
- <para>Go to 'Network Places'.</para>
+ <para>到网络位置。</para>
</listitem>
<listitem>
- <para>Add a new network place.</para>
+ <para>添加一个新的网络位置。</para>
</listitem>
<listitem>
- <para>When prompted, enter the URL of the repository, but
- <emphasis>include a port number</emphasis> in the URL.
- For example, <literal>http://host/repos</literal> would be
- entered as <literal>http://host:80/repos</literal> instead.
+ <para>当要求输入,输入版本库的URL,但URL中<emphasis>要包含端口号</emphasis>。例如<literal>http://host/repos</literal>的输入是<literal>http://host:80/repos</literal>。
</para>
</listitem>
<listitem>
- <para>Respond to any authentication prompts.</para>
+ <para>回应所有的认证请求。</para>
</listitem>
</orderedlist>
- <para>There are a number of other rumored workarounds to the
- problems, but none of them seem to work on all versions and
- patchlevels of Windows XP. In our tests, only the previous
- algorithm seems to work consistently on every system. The
- general consensus of the WebDAV community is that you should
- avoid the new Webfolders implementation and use the old one
- instead, and that if you need real a real filesystem-level
- client for Windows XP, then use a third-party program like
- WebDrive or NetDrive.</para>
+ <para>有各种解决问题的方法,但好像没有一种能够在各版本和各级别的Windows XP中有效。在我们的测试里,只有上面这种策略在各种系统中有效。WebDAV社区一致认为避免使用新的网络文件夹实现,而使用旧的,如果你希望在Windows XP使用真实的文件系统级的客户端,请使用第三方的程序,例如WebDrive或NetDrive。
+ </para>
</sect3>
<sect3 id="svn.webdav.clients.file-explorer-extensions.linux-de">
- <title>Nautilus, Konqueror</title>
+ <title>Nautilus,Konqueror</title>
+
+ <para>Nautilus是GNOME桌面(<ulink url="http://www.gnome.org"/>)官方的文件管理/浏览器,KDE桌面(<ulink
+ url="http://www.kde.org"/>)的则是Konqueror。两个应用程序都是浏览器级别的WebDAV客户端,对自动版本化的版本库工作良好。
+ </para>
+
+ <para>GNOME的Nautilus里,从<guimenu>File
+ menu</guimenu>选择<guimenuitem>Open
+ location</guimenuitem>,并且输入URL。版本库就会显示出来,就像其他文件系统。
+ </para>
- <para>Nautilus is the official file manager/browser for the
- GNOME desktop (<ulink url="http://www.gnome.org"/>), and
- Konqueror is the manager/browser for KDE desktop (<ulink
- url="http://www.kde.org"/>). Both of these applications have
- an explorer-level WebDAV client built-in, and operate just
- fine against an autoversioning repository.</para>
-
- <para>In GNOME's Nautilus, from the <guimenu>File
- menu</guimenu>, select <guimenuitem>Open
- location</guimenuitem> and enter the URL. The repository
- should then be displayed like any other filesystem.</para>
-
- <para>In KDE's Konqueror, you need to use the
- <literal>webdav://</literal> scheme when entering the URL in
- the location bar. If you enter an <literal>http://</literal>
- URL, Konqueror will behave like an ordinary web browser.
- You'll likely see the generic HTML directory listing produced
- by mod_dav_svn. By entering
- <literal>webdav://host/repos</literal> instead of
- <literal>http://host/repos</literal>, Konqueror becomes a
- WebDAV client and displays the repository as a
- filesystem.</para>
+ <para>KDE的Konqueror里你需要在地址栏使用<literal>webdav://</literal>模式来输入URL,如果你输入<literal>http://</literal>的URL,Konqueror会像普通的web浏览器。你会看到mod_dav_svn输出的普通HTML目录列表。通过输入<literal>webdav://host/repos</literal>代替<literal>http://host/repos</literal>,Konqueror就成为了一个WebDAV客户端,并且按照文件系统的方式显示版本库。
+ </para>
</sect3>
</sect2>
<sect2 id="svn.webdav.clients.fs-impl">
- <title>WebDAV filesystem implementation</title>
+ <title>WebDAV文件系统实现</title>
- <para>The WebDAV filesystem implementation is arguably the best
- sort of WebDAV client. It's implemented as a low-level
- filesystem module, typically within the operating system's
- kernel. This means that the DAV share is mounted like any
- other network filesystem, similar to mounting an NFS share on
- Unix, or attaching an SMB share as drive-letter in Windows.
- As a result, this sort of client provides completely
- transparent read/write WebDAV access to all programs.
- Applications aren't even aware that WebDAV requests are
- happening.</para>
+ <para>WebDAV文件系统实现被认为是最佳的WebDAV客户端,它通过低级的文件系统模块实现,通常在操作系统的核心。这意味着DAV共享像网络的其他文件系统一样装载,就像在Unix下面装载NFS,或者是在Windows下装载一个SMB共享。结果就是这种客户端为所有程序提供了对WebDAV得透明访问。
+ </para>
<sect3 id="svn.webdav.clients.fs-impl.windows">
- <title>WebDrive, NetDrive</title>
+ <title>WebDrive,NetDrive</title>
- <para>Both WebDrive and NetDrive are excellent commercial
- products which allows a WebDAV share to be attached as drive
- letters in Windows. We've had nothing but success with
- these products. At the time of writing, WebDrive can be
- purchased from South River Technologies (<ulink
- url="http://www.southrivertech.com"/>). NetDrive ships with
- Netware, is free of charge, and can be found by searching
- the web for <quote>netdrive.exe</quote>. Though it is
- freely available online, users are required to have a
- Netware license. (If any of that sounds odd to you, you're
- not alone. See this page on Novell's website: <ulink
- url="http://www.novell.com/coolsolutions/qna/999.html"/>)</para>
+ <para>WebDrive和NetDrive都是完美的商业产品,允许将WebDAV绑定到Windows的盘符,当我们写作的时候,WebDrive可以从South River Technologies(<ulink
+ url="http://www.southrivertech.com"/>)购买。NetDrive由Netware装运,通过查找<quote>netdrive.exe</quote>就会找到。尽管它可以自由得到,用户还是需要一个Netware许可证。(如果着听起来有点奇怪,你并不孤单,看Novell网站的这个页面:<ulink
+ url="http://www.novell.com/coolsolutions/qna/999.html"/>)</para>
</sect3>
<sect3 id="svn.webdav.clients.fs-impl.macosx">
<title>Mac OS X</title>
- <para>Apple's OS X operating system has an integrated
- filesystem-level WebDAV client. From the Finder, select the
- <guimenuitem>Connect to Server</guimenuitem> item from the
- <guimenu>Go menu</guimenu>. Enter a WebDAV URL, and it
- appears as a disk on the desktop, just like any other mounted
- volume.<footnote><para>From the Darwin terminal, one can also
- run <literal>mount -t webdav URL
- /mountpoint</literal></para></footnote>.</para>
-
- <para>Note that if your mod_dav_svn is older than version 1.2,
- OS X will refuse to mount the share as read-write; it will
- appear as read-only. This is because the OS X insists on
- locking support for read-write shares, and the ability to lock
- files first appeared in Subversion 1.2.</para>
-
- <para>One more word of warning: OS X's WebDAV client can
- sometimes be overly sensitive to HTTP redirects. If OS X is
- unable to mount the repository at all, you may need to enable
- the BrowserMatch directive in the Apache server's
- <filename>httpd.conf</filename>:</para>
+ <para>Apple的OS X操作系统是集成的文件系统级的客户端,通过Finder,选择<guimenu>Go menu</guimenu>的<guimenuitem>Connect to Server</guimenuitem>条目,输入WebDAV的URL,会在桌面显示一个磁盘,就像其他装载的卷。<footnote><para>在Darwin终端,你可以运行<literal>mount -t webdav URL
+ /mountpoint</literal></para></footnote>。</para>
+
+ <para>注意如果mod_dav_svn是1.2之前的版本,OS X不能按照可读写装载,而是会成为只读。这是因为,OS X坚持要读些共享支持锁定,而锁定文件出现在Subversion 1.2。
+ </para>
+
+ <para>警告一句话:OS X的WebDAV客户端有时候对HTTP重定向很敏感,如果OS X不能装载版本库,你或许需要开启Apache服务器<filename>httpd.conf</filename>的BrowserMatch指示:
+ </para>
<screen>
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
@@ -680,11 +467,9 @@
<sect3 id="svn.webdav.clients.fs-impl.linux">
<title>Linux davfs2</title>
- <para>Linux davfs2 is a filesystem module for the Linux kernel,
- whose development is located at <ulink
- url="http://dav.sourceforge.net/"/>. Once installed, a WebDAV
- network share can be mounted with the usual Linux mount
- command:</para>
+ <para>Linux davfs2是一个Linux核心的文件系统模块,开发坐落在<ulink
+ url="http://dav.sourceforge.net/"/>。一旦安装,一个WebDAV网络共享可以使用mount命令装载:
+ </para>
<screen>
$ mount.davfs http://host/repos /mnt/dav
Modified: trunk/src/zh/book/ch07.xml
==============================================================================
--- trunk/src/zh/book/ch07.xml (original)
+++ trunk/src/zh/book/ch07.xml Tue Jan 31 01:22:38 2006
@@ -853,7 +853,7 @@
<sect2 id="svn.advanced.props.auto">
<title>自动属性设置</title>
- <para>属性是Subversion一个强大的特性,成为本章和其它章讨论的许多Subversion特性的关键组成部分—文本区别和合并支持、关键字替换、新行的自动转换等等。但是为了从属性得到完全的利益,他们必须设置到正确的文件和目录。不幸的是,在日常工作中很容易忘记这一步工作,特别是当没有设置属性不会引起明显的错误时(至少相对与未能添加一个文件到版本控制这种操作),为了帮助你在需要添加属性的文件上添加属性,Subversion提供了一些简单但是有用的特性。</para>
+ <para>属性§是Subversion一个强大的特性,成为本章和其它章讨论的许多Subversion特性的关键组成部分—文本区别和合并支持、关键字替换、新行的自动转换等等。但是为了从属性得到完全的利益,他们必须设置到正确的文件和目录。不幸的是,在日常工作中很容易忘记这一步工作,特别是当没有设置属性不会引起明显的错误时(至少相对与未能添加一个文件到版本控制这种操作),为了帮助你在需要添加属性的文件上添加属性,Subversion提供了一些简单但是有用的特性。</para>
<para>当你使用<command>svn add</command>或是<command>svn import</command>准备加入一个版本控制的文件时,Subversion会运行一个基本探测来检查文件是包括了可读还是不可读的内容,如果Subversion猜测错误,或者是你希望使用<literal>svn:mime-type</literal>属性更精确的设置—或许是<literal>image/png</literal>或者<literal>application/x-shockwave-flash</literal>—你可以一直删除或编辑那个属性。</para>
@@ -1659,7 +1659,7 @@
<!-- ================================================================= -->
<!-- ================================================================= -->
<sect1 id="svn.advanced.externaldifftools">
- <title>Using External Differencing Tools</title>
+ <title>使用外置区别工具</title>
<para>The presence of <option>--diff-cmd</option> and
<option>--diff3-cmd</option> options, and similarly named
@@ -1736,34 +1736,20 @@
<!-- =============================================================== -->
<sect2 id="svn.advanced.externaldifftools.diff">
- <title>External diff</title>
+ <title>外置diff</title>
- <para>Subversion calls external diff programs with parameters
- suitable for the GNU diff utility, and expects only that the
- external program return with a successful error code. For
- most alternative diff program, only the sixth and seventh
- arguments, the paths of the files which represent the left and
- right sides of the diff, respectively, are of interest. Note
- that Subversion runs the diff program once per modified file
- covered by the Subversion operation, so if your program runs
- in an asynchronous fashion (or <quote>backgrounded</quote>),
- you might have several instances of it all running
- simultaneously. Finally, Subversion expects that your program
- return an errorcode of 0 if your program detected differences,
- or 1 if it did not—any other errorcode is considered a
- fatal error.
+ <para>Subversion可以调用适合GNU参数的diff工具,并期望外置程序能够返回成功的错误代码。对于大多数可用的diff程序,只有第6、7参数,diff两边文件的路径。需要注意Subversion对于每个修改的文件都要以异步方式(或<quote>后台</quote>)运行diff程序,你会得到许多并行的实例。最后,Subversion期望你的程序在发现区别时返回错误代码0,没有区别则返回1—任何其他的返回值都被认为是严重错误。
<footnote>
- <para>The GNU diff manual page puts it this way: <quote>An
- exit status of 0 means no differences were found, 1 means some
- differences were found, and 2 means trouble.</quote></para>
+ <para>GNU的diff手册这样说的:<quote>返回0意味着没有区别,1是有有区别,其它值意味着出现问题。</quote>
+
+ </para>
</footnote>
</para>
- <para><xref linkend="svn.advanced.externaldifftools.diff.ex-1"/>
- and <xref linkend="svn.advanced.externaldifftools.diff.ex-2"/>
- are templates for external diff tool wrappers in the Bourne
- shell and Windows batch scripting languages,
- respectively.</para>
+ <para><xref linkend="svn.advanced.externaldifftools.diff.ex-1"/>和<xref
+ linkend="svn.advanced.externaldifftools.diff.ex-2"/>分别是Bourne
+ shell和Windows批处理外置diff工具的包裹器模版。
+ </para>
<example id="svn.advanced.externaldifftools.diff.ex-1">
<title>diffwrap.sh</title>
@@ -1812,30 +1798,13 @@
<!-- =============================================================== -->
<sect2 id="svn.advanced.externaldifftools.diff3">
- <title>External diff3</title>
+ <title>外置diff3</title>
+
+ <para>Subversion按照符合GNU的diff3的参数调用合并程序,期望外置程序会返回成功的错误代码,并且完整合并的文件结果打印到标准输出(这样Subversion可以重定向这些东西到适当的版本控制下的文件)。对于大多数可选的合并程序,只有第9、10和11参数,分别代表<quote>mine</quote>、<quote>older</quote>和<quote>yours</quote>的路径。需要注意,因为Subversion依赖于你的合并程序的输出,你的包裹脚本在输出发送到Subversion之前不要退出。当最终退出,如果合并成功返回0,如果有为解决的冲突则返回1—其它返回值都是严重错误。
+ </para>
- <para>Subversion calls external merge programs with parameters
- suitable for the GNU diff3 utility, expecting that the
- external program return with a successful error code and that
- the full file contents which result from the completed merge
- operation are printed on the standard output stream (so that
- Subversion can redirect them into the appropriate version
- controlled file). For most alternative merge programs, only
- the ninth, tenth, and eleventh arguments, the paths of the
- files which represent the <quote>mine</quote>,
- <quote>older</quote>, and <quote>yours</quote> inputs,
- respectively, are of interest. Note that because Subversion
- depends on the output of your merge program, you wrapper
- script must not exit before that output has been delivered to
- Subversion. When it finally does exit, it should return an
- errorcode of 0 if the merge was successful, or 1 if unresolved
- conflicts remain in the output—any other errorcode is
- considered a fatal error.</para>
-
- <para><xref linkend="svn.advanced.externaldifftools.diff3.ex-1"/>
- and <xref linkend="svn.advanced.externaldifftools.diff3.ex-2"/> are
- templates for external merge tool wrappers in the Bourne shell
- and Windows batch scripting languages, respectively.</para>
+ <para><xref linkend="svn.advanced.externaldifftools.diff3.ex-1"/>和<xref linkend="svn.advanced.externaldifftools.diff3.ex-2"/>分别是Bourne
+ shell和Windows批处理外置diff工具的包裹器模版。</para>
<example id="svn.advanced.externaldifftools.diff3.ex-1">
<title>diff3wrap.sh</title>
Modified: trunk/src/zh/book/ch09.xml
==============================================================================
--- trunk/src/zh/book/ch09.xml (original)
+++ trunk/src/zh/book/ch09.xml Tue Jan 31 01:22:38 2006
@@ -141,8 +141,7 @@
<varlistentry>
<term><option>--ignore-externals</option></term>
<listitem>
- <para>Tells Subversion to ignore external definitions and
- the external working copies managed by them.</para>
+ <para>告诉Subversion忽略外部定义和外部定义管理的工作拷贝。</para>
</listitem>
</varlistentry>
@@ -157,8 +156,7 @@
<term><option>--limit</option>
<replaceable>NUM</replaceable></term>
<listitem>
- <para>Show only the first <replaceable>NUM</replaceable>
- log messages.</para>
+ <para>只显示第一个<replaceable>NUM</replaceable>日志信息。</para>
</listitem>
</varlistentry>
@@ -200,11 +198,7 @@
<varlistentry>
<term><option>--no-diff-added</option></term>
<listitem>
- <para>Prevents Subversion from printing differences for
- added files. The default behavior when you add a file is
- for <command>svn diff</command> to print the same
- differences that you would see if you had added the entire
- contents of an existing (empty) file.</para>
+ <para>防止Subversion打印添加文件的区别。缺省的行为方式是,当添加一个文件时,<command>svn diff</command>打印的信息和比较一个空白文件相同。</para>
</listitem>
</varlistentry>
@@ -228,10 +222,9 @@
<varlistentry>
<term><option>--no-unlock</option></term>
<listitem>
- <para>Don't automatically unlock files (the default commit
- behavior is to unlock all files listed as part of the
- commit). See <xref linkend="svn.advanced.locking"/> for
- more information.</para>
+ <para>不自动解锁文件(缺省的提交行为是解锁提交列出的所有文件),更多信息见<xref
+ linkend="svn.advanced.locking"/>。
+ </para>
</listitem>
</varlistentry>
@@ -1742,43 +1735,38 @@
<refentry id="svn.ref.svn.c.lock">
<refnamediv>
<refname>svn lock</refname>
- <refpurpose>Lock working copy paths or URLs in the
- repository, so that no other user can commit changes to
- them.</refpurpose>
+ <refpurpose>锁定版本库的工作拷贝路径或URL,所以没有其他用户可以提交这些文件的修改。
+ </refpurpose>
</refnamediv>
<refsect1>
<title>Synopsis</title>
<programlisting>svn lock TARGET...</programlisting>
</refsect1>
<refsect1>
- <title>Description</title>
+ <title>描述</title>
- <para>Lock each <replaceable>TARGET</replaceable>. If any
- <replaceable>TARGET</replaceable> is already locked by
- another user, print a warning and continue locking the
- rest of the <replaceable>TARGET</replaceable>s. Use
- <option>--force</option> to steal a lock from another user
- or working copy.</para>
+ <para>锁定每个<replaceable>TARGET</replaceable>。如果任何<replaceable>TARGET</replaceable>已经被另一个用户锁定,则会打印警告信息并且继续锁定剩下的<replaceable>TARGET</replaceable>。可以使用<option>--force</option>从其它用户来窃取锁定。
+ </para>
</refsect1>
<refsect1>
- <title>Alternate Names</title>
- <para>None</para>
+ <title>别名</title>
+ <para>无</para>
</refsect1>
<refsect1>
- <title>Changes</title>
- <para>Working Copy, Repository</para>
+ <title>变化</title>
+ <para>工作拷贝,版本库</para>
</refsect1>
<refsect1>
- <title>Accesses Repository</title>
- <para>Yes</para>
+ <title>是否访问版本库</title>
+ <para>是</para>
</refsect1>
<refsect1>
- <title>Switches</title>
+ <title>选项</title>
<screen>
--targets ARG
@@ -1796,9 +1784,9 @@
</refsect1>
<refsect1>
- <title>Examples</title>
+ <title>例子</title>
- <para>Lock two files in your working copy:</para>
+ <para>在工作拷贝锁定两个文件:</para>
<screen>
@@ -1807,8 +1795,7 @@
'house.jpg' locked by user 'harry'.
</screen>
- <para>Lock a file in your working copy that is currently
- locked by another user:</para>
+ <para>锁定工作拷贝的一个被其它用户锁定的文件:</para>
<screen>
$ svn lock tree.jpg
@@ -1819,15 +1806,15 @@
'tree.jpg' locked by user 'sally'.
</screen>
- <para>Lock a file without a working copy:</para>
+ <para>没有工作拷贝的情况下锁定文件:</para>
<screen>
$ svn lock http://svn.red-bean.com/repos/test/tree.jpg
'tree.jpg' locked by user 'sally'.
</screen>
- <para>For further details, see <xref
- linkend="svn.advanced.locking"/>.</para>
+ <para>更多细节见<xref
+ linkend="svn.advanced.locking"/>。</para>
</refsect1>
</refentry>
@@ -3053,55 +3040,44 @@
</variablelist>
- <para>The sixth column is populated with lock information.</para>
+ <para>第六列显示锁定信息。</para>
<variablelist>
<varlistentry>
<term>' '</term>
<listitem>
- <para>When <option>--show-updates</option> is used,
- the file is not locked. If
- <option>--show-updates</option> is
- <emphasis>not</emphasis> used, this merely means that
- the file is not locked in this working copy.</para>
+ <para>当使用<option>--show-updates</option>,文件没有锁定。如果<emphasis>不</emphasis>使用<option>--show-updates</option>,这意味着文件在工作拷贝被锁定。
+ </para>
</listitem>
</varlistentry>
<varlistentry>
<term>K</term>
<listitem>
- <para>File is locked in this working copy.</para>
+ <para>文件锁定在工作拷贝。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>O</term>
<listitem>
- <para>File is locked either by another user or in
- another working copy. This only appears when
- <option>--show-updates</option> is used.</para>
+ <para>文件被另一个工作拷贝的另一个用户锁定,只有在使用<option>--show-updates</option>时显示。
+ </para>
</listitem>
</varlistentry>
<varlistentry>
<term>T</term>
<listitem>
- <para>File was locked in this working copy, but the
- lock has been <quote>stolen</quote>and is invalid.
- The file is currently locked in the repository. This
- only appears when <option>--show-updates</option> is
- used.</para>
+ <para>文件锁定在工作拷贝,但是锁定被<quote>窃取</quote>而不可用。文件当前锁定在版本库,只有在使用<option>--show-updates</option>时显示。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>B</term>
<listitem>
- <para>File was locked in this working copy, but the
- lock has been <quote>broken</quote>and is invalid.
- The file is no longer locked This only appears when
- <option>--show-updates</option> is used.</para>
+ <para>文件锁定在工作拷贝,但是锁定被<quote>破坏</quote>而不可用。文件当前锁定在版本库,只有在使用<option>--show-updates</option>时显示。</para>
</listitem>
</varlistentry>
@@ -3342,42 +3318,36 @@
<refentry id="svn.ref.svn.c.unlock">
<refnamediv>
<refname>svn unlock</refname>
- <refpurpose>Unlock working copy paths or URLs.</refpurpose>
+ <refpurpose>解锁工作拷贝路径或URL。</refpurpose>
</refnamediv>
<refsect1>
- <title>Synopsis</title>
+ <title>概要</title>
<programlisting>svn unlock TARGET...</programlisting>
</refsect1>
<refsect1>
- <title>Description</title>
+ <title>描述</title>
- <para>Unlock each <replaceable>TARGET</replaceable>. If any
- <replaceable>TARGET</replaceable> is either locked by
- another user or no valid lock token exists in the working
- copy, print a warning and continue unlocking the rest of
- the <replaceable>TARGET</replaceable>s. Use
- <option>--force</option> to break a lock belonging to
- another user or working copy.</para>
+ <para>解锁每个<replaceable>TARGET</replaceable>。如果任何另一个用户锁定了<replaceable>TARGET</replaceable>,或者没有正确工作拷贝的锁定令牌,打印警告并继续解锁余下的<replaceable>TARGET</replaceable>。使用<option>--force</option>可以打破其它用户或工作拷贝的锁定。</para>
</refsect1>
<refsect1>
- <title>Alternate Names</title>
- <para>None</para>
+ <title>别名</title>
+ <para>无</para>
</refsect1>
<refsect1>
- <title>Changes</title>
- <para>Working Copy, Repository</para>
+ <title>变化</title>
+ <para>工作拷贝,版本库</para>
</refsect1>
<refsect1>
- <title>Accesses Repository</title>
- <para>Yes</para>
+ <title>是否访问版本库</title>
+ <para>是</para>
</refsect1>
<refsect1>
- <title>Switches</title>
+ <title>选项</title>
<screen>
--targets ARG
@@ -3391,9 +3361,9 @@
</refsect1>
<refsect1>
- <title>Examples</title>
+ <title>例子</title>
- <para>Unlock two files in your working copy:</para>
+ <para>解锁工作拷贝中的两个文件:</para>
<screen>
@@ -3402,8 +3372,7 @@
'house.jpg' unlocked.
</screen>
- <para>Unlock a file in your working copy that is currently
- locked by another user:</para>
+ <para>解锁工作拷贝的一个被其他用户锁定的文件:</para>
<screen>
$ svn unlock tree.jpg
@@ -3412,14 +3381,14 @@
'tree.jpg' unlocked.
</screen>
- <para>Unlock a file without a working copy:</para>
+ <para>没有工作拷贝时解锁一个文件:</para>
<screen>
$ svn unlock http://svn.red-bean.com/repos/test/tree.jpg
'tree.jpg unlocked.
</screen>
- <para>For further details, see <xref
+ <para>更多细节见<xref
linkend="svn.advanced.locking"/>.</para>
</refsect1>
@@ -3657,19 +3626,16 @@
<varlistentry>
<term><option>--use-post-commit-hook</option></term>
<listitem>
- <para>When loading a dump file, run the repository's
- post-commit hook after finalizing each newly loaded
- revision.</para>
+ <para>当导入使用一个转储文件时,在每次新的修订版本产生时运行版本库post-commit钩子。
+ </para>
</listitem>
</varlistentry>
<varlistentry>
<term><option>--use-pre-commit-hook</option></term>
<listitem>
- <para>When loading a dump file, run the repository's
- pre-commit hook before finalizing each newly loaded
- revision. If the hook fails, abort the commit and
- terminate the load process.</para>
+ <para>当加载一个转储文件时,每次新加修订版本之前运行版本库的pre-commit钩子。如果钩子失败,终止提交并中断加载进程。
+ </para>
</listitem>
</varlistentry>
@@ -3770,43 +3736,12 @@
<para>使用<quote>dumpfile</quote>可移植格式将文件系统的内容转储到标准输出,将反馈发送到标准错误,导出的修订版本从<replaceable>LOWER</replaceable>到<replaceable>UPPER</replaceable>。如果没有提供修订版本,会导出所有的修订版本树,如果只提供<replaceable>LOWER</replaceable>,导出一个修订版本树,通常的用法见<xref linkend="svn.reposadmin.maint.migrate"/>。
</para>
- <para>By default, the Subversion dumpfile stream contains a
- single revision (the first revision in the requested
- revision range) in which every file and directory in the
- repository in that revision is presented as if that whole
- tree was added at once, followed by other revisions (the
- remainder of the revisions in the requested range) which
- contain only the files and directories which were modified
- in those revisions. For a modified file, the complete
- fulltext representation of its contents, as well as all of
- its properties, are presented in the dumpfile; for a
- directory, all of its properties are presented.</para>
-
- <para>There are a pair of useful options which modify the
- dumpfile generator's behavior. The first is the
- <option>--incremental</option> option, which simply causes
- that first revision in the dumpfile stream to contain only
- the files and directories modified in that revision,
- instead of being presented as the addition of a new tree,
- and in exactly the same way that every other revision in
- the dumpfile is presented. This is useful for generating
- a dumpfile that is to be loaded into another repository
- which already has the files and directories that exist in
- the original repository.</para>
-
- <para>The second useful option is <option>--deltas</option>.
- This switch causes <command>svnadmin dump</command> to,
- instead of emitting fulltext representations of file
- contents and property lists, emit only deltas of those
- items against their previous versions. This reduces (in
- some cases, drastically) the size of the dumpfile that
- <command>svnadmin dump</command> creates. There are, however,
- disadvantages to using this option—deltified
- dumpfiles are more CPU intensive to create, cannot be
- operated on by <command>svndumpfilter</command>, and tend
- not to compress as well as their non-deltified counterparts
- when using third-party tools like <command>gzip</command>
- and <command>bzip2</command>.</para>
+ <para>缺省情况下,Subversion的转储流包含了一个包括所有文件和目录的单独修订版本(请求的修订版本范围的第一个),后面是其它的只包含本修订所修改的文件和目录的修订版本(请求范围的其它版本)。对于修改的文件,转储文件包括所有的内容和属性,对于目录,包括所有的属性。</para>
+
+ <para>有一对有用的选项可以改变转储文件产生的方式,第一个是<option>--incremental</option>,使得第一个修订版本只显示其修改的文件和目录,而不是整个目录树,就像转储文件中其它的修订版本。这对产生一个准备导入到已经有数据的版本库时非常有用。
+ </para>
+
+ <para>第二个有用的选项是<option>--deltas</option>,这个选项导致<command>svnadmin dump</command>不会保留修改文件的所有内容,而只是记录修改的部分。这样减少(有些情况下是非常大的)了<command>svnadmin dump</command>产生的转储文件的大小。然而,也有缺点—增量转储文件需要更多的CPU来创建,也不可以用<command>svndumpfilter</command>操作,也不如非增量文件容易被如<command>gzip</command>和<command>bzip2</command>等第三方工具压缩。</para>
</refsect1>
<refsect1>
<title>选项</title>
@@ -4016,30 +3951,29 @@
<refentry id="svn.ref.svnadmin.c.lslocks">
<refnamediv>
<refname>svnadmin lslocks</refname>
- <refpurpose>Print descriptions of all locks.</refpurpose>
+ <refpurpose>打印所有锁定的描述。</refpurpose>
</refnamediv>
<refsect1>
- <title>Synopsis</title>
+ <title>概要</title>
<programlisting>svnadmin lslocks REPOS_PATH</programlisting>
</refsect1>
<refsect1>
- <title>Description</title>
+ <title>描述</title>
- <para>Print descriptions of all locks in a repository.</para>
+ <para>打印版本库所有锁定的描述。</para>
</refsect1>
<refsect1>
- <title>Switches</title>
+ <title>选项</title>
- <para>None</para>
+ <para>无</para>
</refsect1>
<refsect1>
- <title>Example</title>
+ <title>例子</title>
- <para>This lists the one locked file in the repository at
- <filename>/svn/repos</filename></para>
+ <para>显示了版本库<filename>/svn/repos</filename>中一个锁定的文件:</para>
<screen>
$ svnadmin lslocks /svn/repos
@@ -4150,32 +4084,28 @@
<refentry id="svn.ref.svnadmin.c.rmlocks">
<refnamediv>
<refname>svnadmin rmlocks</refname>
- <refpurpose>Unconditionally remove one or more locks from a
- repository.</refpurpose>
+ <refpurpose>无条件的删除版本库的一个或多个锁定。</refpurpose>
</refnamediv>
<refsect1>
- <title>Synopsis</title>
+ <title>概要</title>
<programlisting>svnadmin rmlocks REPOS_PATH LOCKED_PATH...</programlisting>
</refsect1>
<refsect1>
- <title>Description</title>
+ <title>描述</title>
- <para>Remove lock from each <replaceable>LOCKED_PATH</replaceable>.</para>
+ <para>从<replaceable>LOCKED_PATH</replaceable>删除没个锁定。</para>
</refsect1>
<refsect1>
- <title>Switches</title>
+ <title>选项</title>
- <para>None</para>
+ <para>无</para>
</refsect1>
<refsect1>
- <title>Example</title>
+ <title>例子</title>
- <para>This deletes the locks on
- <filename>tree.jpg</filename> and
- <filename>house.jpg</filename> in the repository at
- <filename>/svn/repos</filename></para>
+ <para>这删除了版本库<filename>/svn/repos</filename>里<filename>tree.jpg</filename>和<filename>house.jpg</filename>文件上的锁定:</para>
<screen>
$ svnadmin rmlocks /svn/repos tree.jpg house.jpg
@@ -4354,13 +4284,9 @@
<varlistentry>
<term><option>--revprop</option></term>
<listitem>
- <para>Operates on a revision property instead of a
- Subversion property specific to a file or directory.
- This switch requires that you also pass a revision
- with the <option>--revision</option>
- (<option>-r</option>) switch. See <xref
- linkend="svn.reposadmin.basics.revprops"/> for more details on
- unversioned properties.</para>
+ <para>操作针对修订版本属性,而不是Subversion文件或目录的属性。这个选项需要你传递<option>--revision</option>
+ (<option>-r</option>)选项,更多关于未版本化属性的细节见<xref
+ linkend="svn.reposadmin.basics.revprops"/></para>
</listitem>
</varlistentry>
@@ -4495,43 +4421,42 @@
<varlistentry>
<term>'<literal>A </literal>'</term>
<listitem>
- <para>Item added to repository.</para>
+ <para>条目添加到版本库。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<literal>D </literal>'</term>
<listitem>
- <para>Item deleted from repository.</para>
+ <para>条目从版本库删除。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<literal>U </literal>'</term>
<listitem>
- <para>File contents changed.</para>
+ <para>文件内容改变了。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<literal>_U</literal>'</term>
<listitem>
- <para>Properties of item changed.</para>
+ <para>条目属性改变了。</para>
</listitem>
</varlistentry>
<varlistentry>
<term>'<literal>UU</literal>'</term>
<listitem>
- <para>File contents and properties changed.</para>
+ <para>文件内容和属性修改了。</para>
</listitem>
</varlistentry>
</variablelist>
- <para>Files and directories can be distinguished, as directory
- paths are displayed with a trailing '<literal>/</literal>'
- character.</para>
+ <para>文件和目录可以区分,目录路径后面会显示字符'<literal>/</literal>'。
+ </para>
</refsect1>
@@ -4825,33 +4750,28 @@
<refentry id="svn.ref.svnlook.c.lock">
<refnamediv>
<refname>svnlook lock</refname>
- <refpurpose>If a lock exists on a path in the repository,
- describe it.</refpurpose>
+ <refpurpose>如果版本库路径已经被锁定,描述它。</refpurpose>
</refnamediv>
<refsect1>
- <title>Synopsis</title>
+ <title>概要</title>
<programlisting>svnlook lock REPOS_PATH PATH_IN_REPOS</programlisting>
</refsect1>
<refsect1>
- <title>Description</title>
+ <title>描述</title>
- <para>Print all information available for the lock at
- <replaceable>PATH_IN_REPOS</replaceable>. If
- <replaceable>PATH_IN_REPOS</replaceable> is not locked,
- print nothing.</para>
+ <para>打印<replaceable>PATH_IN_REPOS</replaceable>锁定的所有信息,如果<replaceable>PATH_IN_REPOS</replaceable>没有锁定,则不打印任何内容。</para>
</refsect1>
<refsect1>
- <title>Switches</title>
+ <title>选项</title>
- <para>None</para>
+ <para>无</para>
</refsect1>
<refsect1>
- <title>Examples</title>
+ <title>例子</title>
- <para>This describes the lock on the file
- <filename>tree.jpg</filename>.</para>
+ <para>这描述了文件<filename>tree.jpg</filename>的锁定。</para>
<screen>
$ svnlook lock /svn/repos tree.jpg
@@ -5375,7 +5295,7 @@
</refsect1>
<refsect1 id="svn.ref.mod_dav_svn.conf.directives">
- <title>Directives</title>
+ <title>指示</title>
<variablelist>
@@ -5393,17 +5313,8 @@
<term><literal>SVNAutoversioning On</literal></term>
<listitem>
- <para>This directive allows write requests from WebDAV
- clients to result in automatic commits. A generic log
- message is auto-generated and attached to each
- revision. If you enable Autoversioning, you'll likely
- want to set <literal>ModMimeUsePathInfo On</literal>
- so that <literal>mod_mime</literal> can set
- <literal>svn:mime-type</literal> to the correct
- mime-type automatically (as best as
- <literal>mod_mime</literal> is able to, of course).
- For more information, see <xref
- linkend="svn.webdav"/></para>
+ <para>这个指示允许WebDAV客户端的请求导致自动提交,每个修订版本会产生一个普通的日志信息。如果你开启了自动版本化,你很可能需要设置<literal>ModMimeUsePathInfo On</literal>,这样<literal>mod_mime</literal>可以自动的(像<literal>mod_mime</literal>一样好,当然)将<literal>svn:mime-type</literal>设置为正确的mime-type值。更多信息见<xref
+ linkend="svn.webdav"/>。</para>
</listitem>
</varlistentry>
More information about the svnbook-dev
mailing list