[svnbook] r5786 committed - branches/1.8/zh/book/ ch06-server-configuration.xml

wuzhouhui at users.sourceforge.net wuzhouhui at users.sourceforge.net
Sun Sep 23 21:02:21 CDT 2018


Revision: 5786
          http://sourceforge.net/p/svnbook/source/5786
Author:   wuzhouhui
Date:     2018-09-24 02:02:19 +0000 (Mon, 24 Sep 2018)
Log Message:
-----------
1.8/zh: translation of chapter 6 in progress

Modified Paths:
--------------
    branches/1.8/zh/book/ch06-server-configuration.xml

Modified: branches/1.8/zh/book/ch06-server-configuration.xml
===================================================================
--- branches/1.8/zh/book/ch06-server-configuration.xml	2018-09-23 07:29:16 UTC (rev 5785)
+++ branches/1.8/zh/book/ch06-server-configuration.xml	2018-09-24 02:02:19 UTC (rev 5786)
@@ -6156,6 +6156,7 @@
             管理员仍然想设置某种带外的监控, 以便能够侦测到失败的同步, 并强制
             运行 <command>svnsync</command>, 修正错误.</para>
 
+      <!--
           <para>Another limitation of the write-through proxy
             deployment model involves version mismatches—of the
             version of Subversion which is installed, that
@@ -6165,6 +6166,7 @@
             and servers.  Since feature negotiation happens against
             the slave, it is the slave's protocol version and feature
             set which is used.  But write operations are passed
+            ### TODO
             through to the master server quite literally.  Therefore,
             there is a risk that the slave server will answer a
             feature negotiation request from the client in way that is
@@ -6172,7 +6174,17 @@
             master is running an older version of Subversion.  This
             could result in the client trying to use a new feature
             that the master doesn't understand, and failing.</para>
+      -->
+          <para>直写代理的另一个限制涉及到主服务器与从服务器的 Subversion
+            版本不匹配. 新发布的 Subversion 很可能为服务器与客户端之间所使用
+            的网络协议添加了新特性, 由于客户端只和从服务器进行特性协商, 因此
+            最终使用的协议版本和特性集合由从服务器的 Subversion 版本决定.
+            不过, 写操作被传递给主服务器, 因此, 如果主服务器的 Subversion
+            版本较旧, 从服务器在与客户端进行特性协商时, 可能会返回从服务器
+            支持, 而主服务器不支持的特性, 结果是客户端使得了主服务器不理解的
+            特性, 最终导致操作失败.</para>
 
+      <!--
           <para>Subversion 1.8 helps to mitigate this problem via the
             introduction of a new Apache configuration
             directive, <literal>SVNMasterVersion</literal>.  By
@@ -6182,9 +6194,17 @@
             running on your master server, the slave servers can more
             accurately negotiate feature support with the
             client.</para>
+      -->
+          <para>为了缓和上面的问题, Subversion 1.8 引入了一个新的 Apache 配置
+            指令—<literal>SVNMasterVersion</literal>. 在每个从服务器上,
+            把 <literal>SVNMasterVersion</literal> 都设置成主服务器的
+            Subversion 版本号, 这样从服务器在与客户端协商特性时, 就会考虑到主
+            服务器的 Subversion 版本.</para>
 
+      <!--
           <para>Unfortunately, Subversion 1.7 doesn't offer
             the <literal>SVNMasterVersion</literal> configuration
+            ### TODO
             directive and is known to have some specific problems
             along these lines.  If you are deploying a Subversion 1.7
             slave server in front of a pre-1.7 master, you'll want to
@@ -6192,16 +6212,30 @@
             Subversion <literal><Location></literal> block with
             the <literal>SVNAdvertiseV2Protocol Off</literal>
             directive.</para>
+      -->
+          <para>不幸的是, Subversion 1.7 不支持配置指令
+            <literal>SVNMasterVersion</literal>, 如果从服务器的版本是
+            Subversion 1.7, 而主服务器的版本比 Subversion 1.7 旧, 那么管理员
+            就需要在从服务器的 <literal><Location></literal> 配置块里
+            加上配置指令 <literal>SVNAdvertiseV2Protocol Off</literal>.</para>
 
           <tip>
+      <!--
             <para>For the best results possible, try to run the same
               version of Subversion on your master and slave
               servers.</para>
+      -->
+            <para>为了尽量减少可能的麻烦, 最好在主服务器和从服务器上运行相
+              同版本的 Subversion.</para>
           </tip>
 
           <sidebar>
+      <!--
             <title>Can We Set Up Replication with svnserve?</title>
+      -->
+            <title>是否可以用 svnserve 设置副本?</title>
 
+      <!--
             <para>If you're using <command>svnserve</command> instead
               of Apache as your server, you can certainly configure
               your repository's hook scripts to invoke
@@ -6217,6 +6251,15 @@
               for creating read-only <quote>mirrors</quote> of popular
               open source projects, but it's not a transparent
               proxying system.</para>
+      -->
+            <para>如果管理员使用 <command>svnserve</command>—而不是
+              Apache—作为服务器软件,那么仍然可以使用钩子脚本执行
+              <command>svnsync</command>, 完成主服务器到从服务器的版本号复制.
+              但不幸的是, 在撰写本书时, 还没有办法让 <command>svnserve</command>
+              自动地把写请求重定向至主服务器, 这就意味着用户只能从从服务器上
+              检出只读的工作副本, 管理员必须把从服务器配置成禁止写访问. 如果
+              想创建某个开源项目的只读 <quote>镜像</quote>, 这倒是一种不错的
+              办法, 但这就不是一个透明的代理系统了.</para>
           </sidebar>
 
         </sect4>




More information about the svnbook-dev mailing list