﻿{"id":228,"date":"2010-05-25T12:27:09","date_gmt":"2010-05-25T04:27:09","guid":{"rendered":"http:\/\/nick.workao.org\/?p=228"},"modified":"2010-05-25T12:27:11","modified_gmt":"2010-05-25T04:27:11","slug":"subversion%e4%b9%8b%e8%b7%af-%e5%ae%9e%e7%8e%b0%e7%b2%be%e7%bb%86%e7%9a%84%e7%9b%ae%e5%bd%95%e8%ae%bf%e9%97%ae%e6%9d%83%e9%99%90%e6%8e%a7%e5%88%b6","status":"publish","type":"post","link":"http:\/\/nick.txtcc.com\/index.php\/other\/228","title":{"rendered":"Subversion\u4e4b\u8def&#8212;\u5b9e\u73b0\u7cbe\u7ec6\u7684\u76ee\u5f55\u8bbf\u95ee\u6743\u9650\u63a7\u5236<\u8f6c>"},"content":{"rendered":"<p>\u76ee \u5f55<\/p>\n<p>1\u00a0\u00a0 \u524d\u8a00\n1.1\u00a0\u00a0 Subversion \u6743\u9650\u7b80\u4ecb\n1.2\u00a0\u00a0 \u5176\u4ed6\u4fe1\u606f\n2\u00a0\u00a0 \u81f4\u8c22\n3\u00a0\u00a0 \u5b9e\u6218\n3.1\u00a0\u00a0 \u80cc\u666f\u5047\u8bbe\n3.2\u00a0\u00a0 \u4f7f\u7528 svnserve.exe \u4f5c\u4e3a Subversion \u670d\u52a1\u5668\n3.2.1\u00a0\u00a0 \u542f\u52a8 Subversion \u670d\u52a1\n3.2.2\u00a0\u00a0 \u5efa\u7acb\u4ee3\u7801\u5e93\n3.2.3\u00a0\u00a0 \u7f16\u8f91\u4ee3\u7801\u5e93\u57fa\u7840\u914d\u7f6e\u6587\u4ef6\n3.2.4\u00a0\u00a0 \u7ba1\u7406\u7528\u6237\u5e10\u53f7\n3.2.5\u00a0\u00a0 \u5efa\u7acb\u76ee\u5f55\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u6587\u4ef6\n3.2.6\u00a0\u00a0 \u5bfc\u5165\u4ee3\u7801\n3.2.7\u00a0\u00a0 \u6d4b\u8bd5\n4\u00a0\u00a0 \u6df1\u5165\n4.1\u00a0\u00a0 svnserve.conf\n4.2\u00a0\u00a0 authz.conf \u4e4b\u7528\u6237\u5206\u7ec4\n4.3\u00a0\u00a0 authz.conf \u4e4b\u9879\u76ee\u6839\u76ee\u5f55\n4.4\u00a0\u00a0 authz.conf \u4e4b\u9879\u76ee\u5b50\u76ee\u5f55\n4.5\u00a0\u00a0 authz.conf \u4e4b\u76ee\u5f55\u8868\u793a\u6cd5\n4.6\u00a0\u00a0 authz.conf \u7684\u5176\u4ed6\u6ce8\u610f\u70b9\n5\u00a0\u00a0 \u6539\u8fdb\n5.1\u00a0\u00a0 \u5bf9\u4e2d\u6587\u76ee\u5f55\u7684\u652f\u6301\n6\u00a0\u00a0 \u53c2\u8003\u6587\u732e\n7\u00a0\u00a0 \u5386\u53f2\u8f68\u8ff9<\/p>\n<p>1\u00a0\u00a0 \u524d\u8a00\n1.1\u00a0\u00a0 Subversion \u6743\u9650\u7b80\u4ecb\u5728 Subversion \u7684\u4f7f\u7528\u5f53\u4e2d\uff0c\u5b58\u5728\u201c\u8ba4\u8bc1\u201d\u3001\u201c\u6388\u6743\u201d\u4e24\u4e2a\u6982\u5ff5\u3002\u8ba4\u8bc1\uff0c\u5373  authentication\uff0c\u662f\u6307\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u7684\u8ba4\u8bc1\u3002\u6388\u6743\uff0c\u5373 authorization  \uff0c\u662f\u6307\u67d0\u7528\u6237\u5bf9\u67d0\u4e2a\u76ee\u5f55\u662f\u5426\u5177\u5907\u8bfb\u3001\u5199\u6743\u9650\u7684\u4e00\u79cd\u5ba1\u6838\u3002\u8fd9\u4e24\u8005\u914d\u5408\u4f5c\u7528\uff0c\u5c31\u7ec4\u6210\u4e86 Subversion \u7684\u6574\u4e2a\u5e10\u6237\u7ba1\u7406\u4f53\u7cfb\u3002<\/p>\n<p>\u5728\u5b9e\u9645\u7684\u5de5\u4f5c\u5f53\u4e2d\uff0c\u6211\u4eec\u6709\u65f6\u5019\u4f1a\u9047\u89c1\u9700\u8981\u63a7\u5236\u9879\u76ee\u76ee\u5f55\u7684\u8bbf\u95ee\u6743\u9650\u7684\u60c5\u51b5\uff0c\u6bd4\u5982\u8bf4\u5bf9\u9879\u76ee\u7684\u4e00\u4e9b\u5173\u952e\u6a21\u5757\u8fdb\u884c\u9650\u5236\uff0c\u4ec5\u5141\u8bb8\u5c11\u6570\u6388\u6743\u4eba\u58eb\u624d\u53ef\u4ee5\u4fee\u6539\u7b49\u3002\u7531  \u4e8e\u9879\u76ee\u7684\u76ee\u5f55\u672c\u8eab\u5c31\u662f\u4f5c\u4e3a\u7248\u672c\u5e93\u7684\u4e00\u4e2a\u90e8\u5206\u88ab Subversion  \u6240\u6536\u7ba1\uff0c\u6240\u4ee5\u6211\u4eec\u65e0\u6cd5\u5229\u7528\u64cd\u4f5c\u7cfb\u7edf\u7684\u5e10\u6237\u6743\u9650\u4f53\u7cfb\uff0c\u6765\u5b9e\u73b0\u6388\u6743\u63a7\u5236\u3002\u56e0\u6b64\uff0c\u8fd9\u4e2a\u95ee\u9898\u5c31\u53ea\u6709\u8ba9svn\u81ea\u5df1\u6765\u89e3\u51b3\u4e86\u3002<\/p>\n<p>Subversion \u63d0\u4f9b\u4e86\u9762\u5411\u76ee\u5f55\u7684\u5e10\u6237\u6743\u9650\u7ba1\u7406\u529f\u80fd\uff0c\u901a\u8fc7\u5b83\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5f88\u7cbe\u786e\u5730\u5b9e\u73b0\u9879\u76ee\u76ee\u5f55\u7684\u8bbf\u95ee\u63a7\u5236\u3002\u4e0d\u8fc7\u5728 1.2  \u53ca\u5176\u4ee5\u524d\u7684\u7248\u672c\uff0c\u6211\u4eec\u53ea\u80fd\u5229\u7528 mod_authz_svn.so \u6a21\u5757\uff0c\u7ed3\u5408 Apache \u670d\u52a1\u5668\u6765\u5b9e\u73b0\u76ee\u5f55\u8bbf\u95ee\u63a7\u5236\uff0c\u8fd9\u5bf9\u4e8e\u5bf9 Apache  \u7684\u914d\u7f6e\u4e0e\u4f7f\u7528\u4e0d\u662f\u5f88\u719f\u6089\u7684\u4eba\u6765\u8bf4\uff0c\u5c31\u4e0d\u662f\u5f88\u65b9\u4fbf\u4e86\u3002\u800cSubversion\u7ec8\u4e8e\u5728 1.3 \u7248\u672c\u4e0a\uff0c\u5728 svnserve.exe  \u670d\u52a1\u5668\u91cc\u9762\u6dfb\u52a0\u4e86\u8fd9\u4e00\u529f\u80fd\uff0c\u65b9\u4fbf\u4e86\u5f88\u591a\u4eba\u3002<\/p>\n<p>1.2\u00a0\u00a0 \u5176\u4ed6\u4fe1\u606f\u672c\u6587\u9762\u5411\u90a3\u4e9b Subversion \u7684\u7ba1\u7406\u5458\uff0c\u6216\u8005\u4efb\u4f55\u5bf9 Subversoin  \u6709\u5174\u8da3\u7684\u4eba\u4eec\u3002\u672c\u6587\u5047\u5b9a\u8bfb\u8005\u5bf9Subversion\u6709\u4e00\u5b9a\u7684\u4e86\u89e3\uff0c\u56e0\u6b64\u4e0d\u6253\u7b97\u5bf9\u6240\u6709\u6d89\u53ca\u5230\u7684\u5b89\u88c5\u3001\u4f7f\u7528\uff0c\u505a\u4e00\u4e2a\u7ec6\u8282\u6027\u7684\u63cf\u8ff0\u3002\u82e5\u5bf9\u4e8e\u6587\u7ae0\u4e2d\u63cf\u8ff0\u7684\u5176\u4ed6\u7ec6\u8282  \u65b9\u9762\u6709\u6240\u7591\u95ee\uff0c\u8bf7\u8bbf\u95ee\u201c\u53c2\u8003\u6587\u732e\u201d\u4e00\u8282\u91cc\u9762\u7684\u53c2\u8003\u8d44\u6599\u3002\u5982\u679c\u4f60\u5bf9\u672c\u6587\u4efb\u4f55\u5730\u65b9\u6709\u4ec0\u4e48\u610f\u89c1\uff0c\u6216\u8005\u53d1\u73b0\u672c\u6587\u6709\u7740\u5927\u5927\u5c0f\u5c0f\u7684\u9519\u8bef\uff0c\u8bf7\u8054\u7cfb  zhengxinxing <AT> gmail <DOT> com \u3002<\/p>\n<p>\u672c\u6587\u662f\u57fa\u4e8e Subversion 1.3.2\u3001MS Windows 2003 Server Edition \u5e73\u53f0\u6765\u7f16\u5199\u7684\uff0c\u4e14  Subversion \u670d\u52a1\u5668\u662f\u5229\u7528 svnserve.exe \u6765\u67b6\u8bbe\u7684\u3002\u4e0d\u8fc7\uff0c\u672c\u6587\u8bb2\u8ff0\u5230\u7684\u7edd\u5927\u591a\u6570\u5185\u5bb9\uff0c\u90fd\u662f\u4e0d\u4ec5\u4e0e\u64cd\u4f5c\u7cfb\u7edf\u5e73\u53f0\u65e0\u5173\uff0c\u800c\u4e14\u4e0e\u662f\u91c7\u7528  svnserve(.exe) \u8fd8\u662f\u4f7f\u7528 Apache \u6765\u4f5c\u4e3a Subversion \u670d\u52a1\u5668\u4e5f\u57fa\u672c\u65e0\u5173\u3002\u56e0\u6b64\u4e3a\u514d\u7f57\u55e6\uff0c\u672c\u6587\u5c31\u4ee5  svnserve(.exe) \u4e3a\u4f8b\u8fdb\u884c\u63cf\u8ff0\uff0c\u800c\u7565\u8fc7 Apache \u670d\u52a1\u5668\u76f8\u5173\u7684\u5185\u5bb9\uff0c\u6709\u5174\u8da3\u7684\u8bfb\u8005\u53ef\u4ee5\u53c2\u8003\u5176\u4ed6\u6587\u7ae0\u6765\u5728 Apache  \u670d\u52a1\u5668\u4e0b\u5b9e\u73b0\u7c7b\u4f3c\u7684\u529f\u80fd\u3002<\/p>\n<p>\u672c\u6587\u662f\u5229\u7528 reST \u683c\u5f0f\u6765\u7f16\u5199\u7684\uff0c\u5982\u679c\u4f60\u5bf9\u5b83\u611f\u5174\u8da3\uff0c\u8bf7\u8bbf\u95ee  <a href=\"http:\/\/docutils.sourceforge.net\/rst.html\">http:\/\/docutils.sourceforge.net\/rst.html<\/a>  \u3002\u5982\u679c\u60f3\u8981\u770b\u5230\u66f4\u597d\u7684html\u683c\u5f0f\uff0c\u4f60\u53ef\u4ee5\u901a\u7bc7\u590d\u5236\u672c\u6587\u5230\u4e00\u4e2a\u6587\u672c\u6587\u4ef6\u91cc\uff0c\u7136\u540e\u5229\u7528 docutils \u7684 rst2html.py  \u811a\u672c\u7f16\u8bd1\u5b83\uff0c\u5f53\u7136\uff0c\u9996\u5148\u4f60\u5fc5\u987b\u5b89\u88c5 python\u3002<\/p>\n<p>\u672c\u6587\u7684\u83b7\u5f97\u65b9\u5f0f\uff1a<\/p>\n<p>\u539f\u59cb\u53d1\u5e03\u70b9\uff1a <a href=\"http:\/\/iusesvn.com\/bbs\/thread-6-1-1.html\">http:\/\/iusesvn.com\/bbs\/thread-6-1-1.html<\/a>\n\u5b8c\u6574\u6e90\u6587\u4ef6\uff0c\u8bf7\u5229\u7528 svn \u547d\u4ee4\u6765\u83b7\u53d6\uff0c\u547d\u4ee4\u4e3a svn co  svn:\/\/cvs.woodpecker.org.cn\/woodpecker\/zqlib\/tangle\/michael.zheng\/road2svn\nHTML\u7248\u5f0f\u6587\u4ef6\uff0c\u8bf7\u8bbf\u95ee  <a href=\"http:\/\/zhengxinxing.googlepages.com\/The.Road.to.Subversion_authz.html\">http:\/\/zhengxinxing.googlepages.com\/The.Road.to.Subversion_authz.html<\/a>  \uff08\u63a8\u8350\uff09\u6216  <a href=\"http:\/\/swjr.blog.com.cn\/archives\/2006\/TheRoadToSubversion1authz.shtml\">http:\/\/swjr.blog.com.cn\/archives\/2006\/TheRoadToSubversion1authz.shtml<\/a> \u3002\n2\u00a0\u00a0 \u81f4\u8c22\u975e\u5e38\u611f\u8c22 iusesvn.com \u7ad9\u7684\u7ad9\u957f PCplayer \uff0c\u4ed6\u5728\u672c\u6587\u7f16\u5199\u8fc7\u7a0b\u4e2d\uff0c\u7ed9\u6211\u63d0\u51fa\u4e86\u5f88\u591a\u5b9d\u8d35\u7684\u610f\u89c1\u4e0e\u5efa\u8bae\u3002<\/p>\n<p>\u611f\u8c22 woodpecker.org.cn \u63d0\u4f9b\u7684 Subversion \u7a7a\u95f4\uff0c\u8ba9\u66f4\u591a\u7684\u4eba\u53ef\u4ee5\u901a\u8fc7 svn \u83b7\u5f97\u672c\u6587\u4ef6\u3002<\/p>\n<p>\u611f\u8c22 google \u516c\u53f8\u63d0\u4f9b\u7684\u514d\u8d39\u4e3b\u9875\u7a7a\u95f4\uff0c\u8ba9\u6211\u53ef\u4ee5\u653e\u7f6e\u5b8c\u5168\u5b9a\u5236\u7684 HTML \u6587\u4ef6\u3002<\/p>\n<p>3\u00a0\u00a0 \u5b9e\u6218\u672c\u7ae0\u5148\u76f4\u63a5\u7ed9\u51fa\u9700\u6c42\u53ca\u5176\u6700\u7ec8\u7684\u7ed3\u679c\uff0c\u5982\u679c\u4f60\u89c9\u5f97\u5bf9\u914d\u7f6e\u6709\u4ec0\u4e48\u7591\u95ee\uff0c\u6216\u8005\u770b\u4e0d\u61c2\uff0c\u8bf7\u4e0d\u8981\u7740\u6025\uff0c\u6211\u4f1a\u5728\u540e\u9762\u7684\u7ae0\u8282\u8be6\u7ec6\u63cf\u8ff0\u7684\u3002<\/p>\n<p>3.1\u00a0\u00a0  \u80cc\u666f\u5047\u8bbe\u53a6\u95e8\u592e\u77ac\u516c\u53f8\u662f\u4e00\u5bb6\u7535\u5b50\u5143\u5668\u4ef6\u8bbe\u5907\u4f9b\u5e94\u5546\uff0c\u5176\u4e2d\u6709\u4e2aARM\u90e8\u95e8\uff0c\u4e13\u95e8\u8d1f\u8d23ARM\u82af\u7247\u7684\u65b9\u6848\u8bbe\u8ba1\u3001\u9500\u552e\uff0c\u5e76\u5728\u5317\u4eac\u3001\u4e0a\u6d77\u5404\u8bbe\u7acb\u4e86\u4e00\u4e2a\u529e\u4e8b\u5904\u3002\u5bf9\u4e8e\u5de5  \u4f5c\u65e5\u5fd7\uff0c\u539f\u5148\u91c7\u7528\u90ae\u4ef6\u65b9\u5f0f\u53d1\u7ed9\u7ecf\u7406\uff0c\u4f46\u662f\u8fd9\u79cd\u65b9\u5f0f\u6709\u4e2a\u7f3a\u70b9\uff0c\u90a3\u5c31\u662f\u4e0d\u5177\u5907\u8fde\u7eed\u6027\uff0c\u8981\u770b\u4ee5\u524d\u7684\u65e5\u5fd7\u5fc5\u987b\u4e00\u5c01\u4e00\u5c01\u90ae\u4ef6\u53bb\u67e5\u770b\uff0c\u5f88\u9ebb\u70e6\u3002\u4e8e\u662f\u5c31\u60f3\u5230\u5229\u7528  Subversion\uff0c  \u8ba9\u5458\u5de5\u5728\u81ea\u5df1\u7535\u8111\u4e0a\u7f16\u8f91\u65e5\u5fd7\uff0c\u7136\u540e\u5229\u7528svn\u4f20\u9001\u56de\u6765\uff0c\u65e2\u65b9\u4fbf\u5458\u5de5\u81ea\u5df1\u7f16\u5199\u65e5\u5fd7\uff0c\u53c8\u65b9\u4fbf\u5bf9\u65e5\u5fd7\u7684\u5f52\u6863\u5904\u7406\uff0c\u800c\u4e14\u63d0\u4ea4\u65e5\u5fd7\u7684\u65f6\u5019\u53ea\u9700\u8981\u6267\u884c\u4e00\u4e0b svn  commit \u5373\u53ef\uff0c\u6bd4\u53d1\u9001\u90ae\u4ef6\u8fd8\u8981\u7b80\u5355\u7684\u591a\u3002<\/p>\n<p>svn\u670d\u52a1\u5668\u76f8\u5173\u4fe1\u606f<\/p>\n<p>\u670d\u52a1\u5668\u5730\u5740\uff1a 192.168.0.1\n\u670d\u52a1\u5668OS\uff1a MS Windows 2000 Server Edition \u4e2d\u6587\u7248\n\u7528\u4e8e\u5b58\u653e\u65e5\u5fd7\u7684\u4ee3\u7801\u5e93\u672c\u5730\u76ee\u5f55\uff1a D:svnarm\narm\u90e8\u95e8\u6587\u6863\u7684\u76ee\u5f55\u7ed3\u6784\u5982\u4e0b:<\/p>\n<p>arm\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u90e8\u95e8\u540d\u79f0\n\u251c\u2500diary\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u5de5\u4f5c\u65e5\u5fd7\u76ee\u5f55\n\u2502\u00a0 \u251c\u2500headquarters\u00a0\u00a0\u00a0 \u603b\u90e8\u5de5\u4f5c\u65e5\u5fd7\u76ee\u5f55\n\u2502\u00a0 \u251c\u2500beijing\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u5317\u4eac\u529e\u65e5\u5fd7\u76ee\u5f55\n\u2502\u00a0 \u2514\u2500shanghai\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u4e0a\u6d77\u529e\u65e5\u5fd7\u76ee\u5f55\n\u251c\u2500ref\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u516c\u53f8\u516c\u5171\u6587\u4ef6\u53c2\u8003\u76ee\u5f55\n\u2514\u2500temp\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 \u4e34\u65f6\u6587\u4ef6\u76ee\u5f55<\/p>\n<p>\u4eba\u5458\u60c5\u51b5<\/p>\n<p>morson\uff0c\u516c\u53f8\u603b\u7ecf\u7406\uff0c\u4e0d\u4e60\u60ef\u4f7f\u7528\u7535\u8111\uff0c\u66f4\u559c\u6b22\u4f20\u7edf\u7684\u7eb8\u4e0e\u7b14\uff0c\u4ee5\u53ca\u9762\u5bf9\u9762\u7684\u4ea4\u6d41\nmichael\uff0carm\u4e8b\u4e1a\u90e8\u7684\u90e8\u95e8\u7ecf\u7406\uff0c\u6ca1\u4e8b\u7684\u65f6\u5019\u559c\u6b22\u5f04\u70b9\u513f\u65b0\u6280\u672f\uff0c\u7528svn\u6765\u7ba1\u7406\u65e5\u5fd7\uff0c\u5c31\u662f\u4ed6\u60f3\u51fa\u6765\u7684\u4e3b\u610f\nscofield\uff0c\u5317\u4eac\u529e\u4eba\u5458\uff0c\u8001\u5458\u5de5\uff0c\u4e3a\u4eba\u6cb9\u6ed1\u96be\u7ba1\nlincon\uff0c\u4e0a\u6d77\u529e\u4eba\u5458\uff0c\u8001\u5458\u5de5\uff0c\u5927\u8001\u5b9e\u4eba\u4e00\u4e2a\nlinda\uff0c\u603b\u90e8\u534f\u8c03\u5458\u3001\u79d8\u4e66\uff0c\u6587\u7b14\u4e0d\u9519\uff0c\u957f\u5f97\u4e5f\u4e0d\u9519\nrory\uff0c\u5355\u7247\u673a\u6280\u672f\u5458\uff0c\u6280\u672f\u652f\u6301\n\u8bbf\u95ee\u6743\u9650\u9700\u6c42\u5206\u6790<\/p>\n<p>\u5141\u8bb8\u603b\u7ecf\u7406\u3001\u90e8\u95e8\u7ecf\u7406\u8bfb\u53d6\u6240\u6709\u6587\u4ef6\u3002\u987a\u4fbf\u7ed9\u4ed6\u4eec\u5f00\u653e\u5199\u6743\u9650\uff0c\u4ee5\u4fbf\u4f53\u73b0\u5bf9\u4ed6\u4eec\u804c\u4f4d\u7684\u5c0a\u91cd\uff0c\u867d\u7136\u5bf9\u4e8e\u67d0\u4e9b\u6587\u4ef6\u6765\u8bf4\uff0c\u4ed6\u4eec\u82e5\u62e5\u6709\u201c\u5199\u201d\u6743\u9650\u5176\u5b9e\u4e5f\u6ca1\u4ec0\u4e48\u7528 \u5904\n\u9664\u90e8\u95e8\u7ecf\u7406\u5916\uff0c\u6240\u6709\u5176\u4ed6\u4eba\u5458\uff0c\u5747\u53ea\u80fd\u770b\u5230\u672c\u529e\u4e8b\u5904\u4eba\u5458\u5de5\u4f5c\u65e5\u5fd7\n\u4e0d\u5141\u8bb8\u533f\u540d\u8bbf\u95ee\nref\u76ee\u5f55\u53ea\u5141\u8bb8\u7ecf\u7406\u548c\u79d8\u4e66\u8bfb\u5199\uff0c\u5bf9\u5176\u4ed6\u4eba\u53ea\u8bfb\ntemp\u76ee\u5f55\u4eba\u4eba\u90fd\u53ef\u4ee5\u968f\u610f\u8bfb\u5199\n3.2\u00a0\u00a0 \u4f7f\u7528 svnserve.exe \u4f5c\u4e3a Subversion \u670d\u52a1\u5668\u672c\u8282\u63cf\u8ff0\u5982\u4f55\u5229\u7528 svnserve.exe  \u6765\u4f5c\u4e3a\u4ee3\u7801\u5e93\u670d\u52a1\u5668\u7aef\uff0c\u5b9e\u73b0\u4e0a\u8ff0\u529f\u80fd\u3002\u81f3\u4e8e\u53e6\u5916\u4e00\u79cd\u4ee3\u7801\u5e93\u670d\u52a1\u5668\u7aef\uff0c\u5373\u5229\u7528 Apache \u7ed3\u5408 mod_dav_svn.so  \u6765\u5b9e\u73b0\u7684\u4ee3\u7801\u5e93\u670d\u52a1\u5668\u7aef\uff0c\u7531\u4e8e\u5176\u5bf9\u4e8e\u672c\u6587\u53d9\u8ff0\u7684\u5185\u5bb9\u201c\u5b9e\u73b0\u7cbe\u7ec6\u7684\u76ee\u5f55\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u201d\u800c\u8a00\uff0c\u4e0e\u524d\u8005\u6ca1\u6709\u592a\u5927\u7684\u533a\u522b\uff0c\u6545\u800c\u7565\u8fc7\u4e0d\u63d0\u3002\u5b83\u4eec\u4e8c\u8005\u53ea\u662f\u5728\u521d\u6b21\u5b89\u88c5\u3001  \u914d\u7f6e\u65b9\u9762\u5b58\u5728\u4e00\u4e9b\u4e0d\u540c\uff0c\u6709\u5174\u8da3\u7684\u8bfb\u8005\uff0c\u53ef\u4ee5\u53c2\u8003\u5176\u4ed6\u6587\u6863\uff0c\u91cd\u65b0\u5b9e\u9a8c\u4e0b\u8ff0\u6b65\u9aa4\u3002<\/p>\n<p>3.2.1\u00a0\u00a0 \u542f\u52a8 Subversion \u670d\u52a1\n\u5728\u670d\u52a1\u5668\u7aef\uff0c\u6253\u5f00\u4e00\u4e2a\u547d\u4ee4\u884c\u7a97\u53e3\uff0c\u7528CD\u547d\u4ee4\u8fdb\u5165 Subversion \u5b89\u88c5\u76ee\u5f55\u4e0b\u7684 bin \u76ee\u5f55\uff0c\u8fd0\u884c\u5982\u4e0b\u6307\u4ee4:<\/p>\n<p>svnserve -d -r d:svn<\/p>\n<p>\u5176\u4e2d\u7684 -d \u53c2\u6570\u8868\u793a svnserve.exe \u5c06\u4f1a\u4f5c\u4e3a\u4e00\u4e2a\u670d\u52a1\u7a0b\u5e8f\u8fd0\u884c\u5728\u540e\u53f0\uff0c\u800c -r \u53c2\u6570\u8868\u793a\u5c06 D:svn  \u76ee\u5f55\u6307\u5b9a\u4e3a\u4ee3\u7801\u5e93\u7684\u6839\u76ee\u5f55\u3002\u8fd9\u6837\uff0c\u5f53\u5ba2\u6237\u7aef\u4f7f\u7528\u7c7b\u4f3c svn:\/\/192.168.0.1\/foo \u8fd9\u6837\u5185\u5bb9\u7684 URL  \u6765\u8bbf\u95ee\u670d\u52a1\u5668\u65f6\u5019\uff0c\u5176\u6240\u8bbf\u95ee\u5230\u7684\u771f\u5b9e\u4ee3\u7801\u5e93\uff0c\u5176\u5b9e\u5c31\u662f D:svnfoo<\/p>\n<p>\u7528\u4e0a\u8ff0\u547d\u4ee4\u884c\u65b9\u5f0f\u542f\u52a8\u7684 svn  \u670d\u52a1\u6709\u4e2a\u5c0f\u7f3a\u70b9\uff0c\u5c31\u662f\u5728\u672c\u8bd5\u9a8c\u8fc7\u7a0b\u4e2d\uff0c\u670d\u52a1\u5668\u7aef\u5fc5\u987b\u8981\u4e00\u76f4\u5f00\u7740\u90a3\u4e2a\u8fd0\u884c\u4e86\u4e0a\u8ff0\u547d\u4ee4\u7684DOS\u7a97\u53e3\uff0c\u4e0d\u80fd\u5173\u95ed\u5b83\u3002\u5982\u679c\u4e0d\u60f3\u770b\u5230\u8fd9\u4e2a\u7a97\u53e3\uff0c\u53ef\u4ee5\u5c06  svnserve \u5b89\u88c5\u6210 windows \u7684\u4e00\u4e2a services\uff0c\u5b89\u88c5\u65b9\u5f0f\u8bf7\u53c2\u8003\u5176\u4ed6\u6587\u7ae0\u3002<\/p>\n<p>3.2.2\u00a0\u00a0 \u5efa\u7acb\u4ee3\u7801\u5e93\n\u5728\u670d\u52a1\u5668\u7aef\u7684 D:svn \u76ee\u5f55\u4e0b\uff0c\u5efa\u7acb\u4e00\u4e2a\u540d\u4e3a arm \u7684\u4ee3\u7801\u5e93\uff0c\u547d\u4ee4\u5982\u4e0b:<\/p>\n<p>D:svn>svnadmin create arm<\/p>\n<p>\u4f7f\u7528\u4e0a\u8ff0\u547d\u4ee4\u4e4b\u540e\uff0c\u5982\u679c\u4e0d\u51fa\u95ee\u9898\u7684\u8bdd\uff0c\u5728 D:svn \u76ee\u5f55\u4e0b\u5c31\u4f1a\u591a\u51fa\u4e00\u4e2a\u53eb\u505a arm \u7684\u76ee\u5f55\uff0c\u5176\u4e0b\u5177\u5907  conf\u3001dav\u3001hooks\u3001locks\u3001db \u7b49\u5b50\u76ee\u5f55\u6216\u6587\u4ef6\uff0c\u6b64\u5373 \u4e00\u4e2a\u540d\u4e3aarm\u7684\u4ee3\u7801\u5e93 \u3002\u4ece\u6b64\uff0c\u901a\u8fc7  svn:\/\/192.168.0.1\/arm \u8fd9\u6837\u7684 URL\uff0c\u6211\u4eec\u5c31\u53ef\u4ee5\u5bf9\u8fd9\u4e2a\u4ee3\u7801\u5e93\u8fdb\u884c\u8bbf\u95ee\u4e86\u3002\u63a5\u4e0b\u6765\u5c31\u8981\u8fdb\u5165\u672c\u6587\u7684\u6b63\u9898\u4e86\uff0c\u4e5f\u5c31\u662f\u6743\u9650\u914d\u7f6e\u90e8\u5206\u4e86\u3002<\/p>\n<p>\u5176\u5b9e\u8fdb\u5165 armconf  \u76ee\u5f55\u4f60\u5c31\u4f1a\u53d1\u73b0\uff0c\u5b83\u4e0b\u9762\u5df2\u7ecf\u5b58\u5728\u4e09\u4e2a\u5199\u4e86\u4e00\u4e9b\u5e2e\u52a9\u4fe1\u606f\u548c\u793a\u4f8b\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u4ee5\u5e2e\u52a9\u7528\u6237\u5c3d\u65e9\u638c\u63e1\u5176\u914d\u7f6e\u65b9\u6cd5\u3002\u8fd9\u4e09\u4e2a\u9ed8\u8ba4\u7684\u914d\u7f6e\u6587\u4ef6\u5206\u522b\u662f  svnserve.conf\u3001passwd\u3001authz \u3002\u5176\u4e2d\u540e\u4e24\u8005\u6ca1\u6709\u540e\u7f00\uff0c\u5bf9\u4e8e windows  \u7cfb\u7edf\u7684\u7528\u6237\u6765\u8bf4\uff0c\u770b\u8d77\u6765\u603b\u662f\u6709\u4e9b\u602a\u5f02\uff0c\u6240\u4ee5\u5728\u63a5\u4e0b\u6765\u7684\u7ae0\u8282\u91cc\u9762\uff0c\u6211\u5c06\u5b83\u4eec\u4e24\u4e2a\u90fd\u7ed9\u6dfb\u52a0\u4e86\u4e2a conf \u540e\u7f00\uff0c\u4ee5\u4fbf\u7ba1\u7406\u3002<\/p>\n<p>3.2.3\u00a0\u00a0 \u7f16\u8f91\u4ee3\u7801\u5e93\u57fa\u7840\u914d\u7f6e\u6587\u4ef6\n\u5728\u670d\u52a1\u5668\u7aef\uff0c\u7f16\u8f91\u4ee3\u7801\u5e93\u7684 armconfsvnserve.conf \u6587\u4ef6\uff0c\u5982\u4e0b:<\/p>\n<p>[general]\npassword-db = passwd.conf\nanon-access = none\nauth-access = write\nauthz-db = authz.conf<\/p>\n<p>3.2.4\u00a0\u00a0 \u7ba1\u7406\u7528\u6237\u5e10\u53f7\n\u5728\u670d\u52a1\u5668\u7aef\uff0c\u65b0\u5efa armconfpasswd.conf \u6587\u4ef6\uff0c\u5982\u4e0b:<\/p>\n<p>[users]\nmorson = ShowMeTheMoney\nmichael = mysecretpassword\nscofield = hellolittilekiller\nlincon = asyouknows111\nrory = 8809117\nlinda = IlikeWorldCup2006<\/p>\n<p>3.2.5\u00a0\u00a0 \u5efa\u7acb\u76ee\u5f55\u8bbf\u95ee\u6743\u9650\u63a7\u5236\u6587\u4ef6\n\u5728\u670d\u52a1\u5668\u7aef\uff0c\u65b0\u5efa armconfauthz.conf \u6587\u4ef6\uff0c\u5185\u5bb9\u5982\u4e0b:<\/p>\n<p>[groups]\ng_vip = morson\ng_manager = michael\ng_beijing = scofield\ng_shanghai = lincon\ng_headquarters = rory, linda\ng_docs = linda\n[arm:\/]\n@g_manager = rw<\/p>\n<ul>\n<li>= r\n[arm:\/diary\/headquarters]\n@g_manager = rw\n@g_headquarters = rw\n@g_vip = r<\/li>\n<li>=\n[arm:\/diary\/beijing]\n@g_manager = rw\n@g_beijing = rw\n@g_vip = r<\/li>\n<li>=\n[arm:\/diary\/shanghai]\n@g_manager = rw\n@g_shanghai = rw\n@g_vip = r<\/li>\n<li>=\n[arm:\/ref]\n@g_manager = rw\n@g_docs = rw<\/li>\n<li>= r\n[arm:\/temp]<\/li>\n<li>= rw<\/li>\n<\/ul>\n<p>3.2.6\u00a0\u00a0 \u5bfc\u5165\u4ee3\u7801\n\u5728\u5ba2\u6237\u673a F:temp \u76ee\u5f55\u4e0b\uff0c\u5efa\u7acb\u597d\u524d\u8ff0\u201c\u80cc\u666f\u5047\u8bbe\u201d\u4e00\u8282\u4e2d\u63cf\u8ff0\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u7136\u540e\u7528\u547d\u4ee4 F:temp>svn import arm  svn:\/\/192.168.0.1\/arm &#8211;username michael &#8211;password mysecretpassword  \u5bfc\u5165\u6574\u4e2a\u76ee\u5f55\u7ed3\u6784\u3002<\/p>\n<p>\u8fd9\u6761\u6307\u4ee4\u7684\u7cbe\u786e\u610f\u601d\u662f\uff0c\u5c06 arm \u76ee\u5f55\u4e0b\u9762\u7684\u6240\u6709\u4e1c\u897f\uff0c\u5bfc\u5165\u5230\u90a3\u4e2a\u540d\u53eb arm \u7684\u4ee3\u7801\u5e93\u4e2d\u53bb\u3002\u5982\u679c\u4f60\u4e0d\u6307\u5b9a\u6e90\u76ee\u5f55\uff0c\u5219 svn  \u4f1a\u9ed8\u8ba4\u5c06\u5f53\u524d\u76ee\u5f55\u4f5c\u4e3a\u6e90\u76ee\u5f55\u3002\u6bd4\u5982\u8bf4\uff0c\u4f60\u5904\u4e8e F:temp \u76ee\u5f55\u4e0b\u7684\u65f6\u5019\uff0c\u76f4\u63a5\u6267\u884c svn import  svn:\/\/192.168.0.1\/arm \uff0c\u90a3\u4e48\u5f53\u4f60\u53d6\u51fa\u4f60\u7684\u4ee3\u7801\u7684\u65f6\u5019\uff0c\u4f60\u4f1a\u53d1\u73b0\uff0c\u5c45\u7136\u591a\u4e86\u4e00\u5c42\u540d\u4e3a arm \u7684\u76ee\u5f55\u3002\u7ed3\u679c\uff0c\u4f60\u5c31\u5fc5\u987b\u4f7f\u7528\u7c7b\u4f3c  svn:\/\/192.168.0.1\/arm\/arm \u8fd9\u6837\u602a\u5f02\u7684URL\uff0c\u624d\u80fd\u591f\u6b63\u786e\u8bbf\u95ee\u5230\u4f60\u7684\u4ee3\u7801\u4eec\u3002<\/p>\n<p>\u8fd9\u4e00\u70b9\u7c97\u770b\u597d\u50cf\u4e0d\u662f\u7279\u522b\u91cd\u8981\uff0c\u4e0d\u8fc7\u8054\u60f3\u5230\u524d\u8ff0\u7684\u76ee\u5f55\u6388\u6743\u89c4\u5219\uff0c\u53ef\u90fd\u662f\u6309\u7167\u6807\u51c6\u7684\u9879\u76ee\u76ee\u5f55\u7ed3\u6784\u6765\u8bbe\u8ba1\u7684\u3002\u7a81\u7136\u4e4b\u95f4\uff0c\u4f60\u9879\u76ee\u7684\u6839\u76ee\u5f55\u4e4b\u4e0a\uff0c\u591a\u51fa\u4e86\u4e00\u4e2a\u540d  \u4e3a arm \u7684\u76ee\u5f55\uff0c\u90a3\u4e48\u6211\u4eec\u7684\u6240\u6709\u76ee\u5f55\u6388\u6743\u89c4\u5219\uff0c\u57fa\u672c\u4e0a\u90fd\u8981\u5168\u90e8\u6539\u8fc7\u4e86\uff0c\u5426\u5219\u9664\u4e86\u6839\u76ee\u5f55\uff0c\u4f60\u6c38\u8fdc\u4f1a\u5f97\u5230\u4e00\u4e2a\u83ab\u540d\u5176\u5999\u7684\u201caccess  denied\u201d\u3002\u7531\u4e8e Subversion \u5728\u8fd9\u4e00\u6b65\u9aa4\u4e0a\u7684\u754c\u9762\u4e0d\u591f\u4eba\u6027\u5316\uff0c\u56e0\u6b64\u8fd9\u662f\u521d\u5b66\u8005\u5f88\u5bb9\u6613\u5f04\u6df7\u7684\u5730\u65b9\u4e4b\u4e00\u3002<\/p>\n<p>3.2.7\u00a0\u00a0 \u6d4b\u8bd5\n\u5728\u670d\u52a1\u5668\u4e0a\uff0c\u6253\u5f00\u4e00\u4e2a DOS Prompt \u7a97\u53e3\uff0c\u8f93\u5165\u5982\u4e0b\u6307\u4ee4:<\/p>\n<p>svn co svn:\/\/127.0.0.1\/arm &#8211;no-auth-cache &#8211;username rory &#8211;password  8809117<\/p>\n<p>\u6211\u4eec\u5e94\u8be5\u5f97\u5230\u5982\u4e0b\u76ee\u5f55\u7ed3\u6784:<\/p>\n<p>arm\n\u251c\u2500diary\n\u2502\u00a0 \u2514\u2500headquarters\n\u251c\u2500ref\n\u2514\u2500temp<\/p>\n<p>\u7136\u540e\u4fee\u6539ref\u76ee\u5f55\u4e0b\u4efb\u610f\u6587\u4ef6\u5e76\u63d0\u4ea4\uff0c\u670d\u52a1\u5668\u5c06\u4f1a\u62a5\u9519\u201cAccess denied\u201d\uff0cBingo!<\/p>\n<p>4\u00a0\u00a0 \u6df1\u5165\u672c\u7ae0\u5c06\u8be6\u7ec6\u4ecb\u7ecd\u524d\u4e00\u7ae0\u6240\u6d89\u53ca\u7684\u4e24\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c svnserve.conf \u548c  authz.conf\uff0c\u901a\u8fc7\u5bf9\u914d\u7f6e\u9010\u884c\u7684\u63cf\u8ff0\uff0c\u6765\u9610\u660e\u5176\u4e2d\u7684\u4e00\u4e9b\u7ec6\u8282\u542b\u4e49\u3002\u9664\u6b64\u4e4b\u5916\u7684\u5176\u4ed6\u914d\u7f6e\u3001\u5b89\u88c5\u7b49\u5185\u5bb9\uff0c\u4e0d\u662f\u672c\u6587\u91cd\u70b9\uff0c\u8bfb\u8005\u82e5\u6709\u4ec0\u4e48\u7591\u95ee\uff0c\u8bf7\u53c2\u8003\u540e\u9762  \u201c\u53c2\u8003\u6587\u732e\u201d\u4e2d\u5217\u51fa\u7684\u4e00\u4e9b\u6587\u6863\u3002<\/p>\n<p>\u8fd9\u91cc\u9996\u5148\u8981\u6ce8\u610f\u4e00\u70b9\uff0c\u4efb\u4f55\u914d\u7f6e\u6587\u4ef6\u7684\u6709\u6548\u914d\u7f6e\u884c\uff0c\u90fd \u4e0d\u5141\u8bb8\u5b58\u5728\u524d\u7f6e\u7a7a\u683c \uff0c\u5426\u5219\u7a0b\u5e8f\u53ef\u80fd\u4f1a\u51fa\u9519\uff0c\u7ed9\u4f60\u4e00\u4e2a Option expected  \u7684\u63d0\u793a\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u4f60\u76f4\u63a5\u4ece\u672c\u6587\u7684\u7eaf\u6587\u672c\u683c\u5f0f\u4e2d\u62f7\u8d1d\u4e86\u76f8\u5173\u7684\u914d\u7f6e\u884c\u8fc7\u53bb\uff0c\u9700\u8981\u624b\u52a8\u5c06\u524d\u7f6e\u76844\u4e2a\u7a7a\u683c\u5168\u90e8\u5220\u9664\u3002\u5f53\u7136\u4e86\uff0c\u5982\u679c\u4f60\u89c9\u5f97\u4e00\u4e0b\u5b50\u8981\u5220\u9664\u597d\u591a\u884c\u7684  \u540c\u6837\u6570\u76ee\u7684\u524d\u7f6e\u7a7a\u683c\u662f\u4e00\u4ef6\u82e6\u5dee\u4f7f\uff0c\u90a3\u4e48\u4e5f\u8bb8 UltraEdit \u7684\u201cColumn Mode\u201d\u7f16\u8f91\u6a21\u5f0f\uff0c\u53ef\u4ee5\u7ed9\u4f60\u5f88\u5927\u5e2e\u52a9\u3002<\/p>\n<p>4.1\u00a0\u00a0 svnserve.confarmconfsvnserve.conf \u6587\u4ef6\uff0c\u662f svnserve.exe  \u8fd9\u4e2a\u670d\u52a1\u5668\u8fdb\u7a0b\u7684\u914d\u7f6e\u6587\u4ef6\uff0c\u6211\u4eec\u9010\u884c\u89e3\u91ca\u5982\u4e0b\u3002<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u544a\u8bc9 svnserve.exe\uff0c\u7528\u6237\u540d\u4e0e\u5bc6\u7801\u653e\u5728 passwd.conf  \u6587\u4ef6\u4e0b\u3002\u5f53\u7136\uff0c\u4f60\u53ef\u4ee5\u6539\u6210\u4efb\u610f\u7684\u6709\u6548\u6587\u4ef6\u540d\uff0c\u6bd4\u5982\u9ed8\u8ba4\u7684\u5c31\u662f passwd:<\/p>\n<p>password-db = passwd.conf<\/p>\n<p>\u63a5\u4e0b\u6765\u8fd9\u4e24\u884c\u7684\u610f\u601d\uff0c\u662f\u8bf4\u53ea\u5141\u8bb8\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u7528\u6237\uff0c\u65b9\u53ef\u8bbf\u95ee\u4ee3\u7801\u5e93\u3002 \u90a3\u4e48\u54ea\u4e9b\u662f\u201c\u7ecf\u8fc7\u9a8c\u8bc1\u7684\u201d\u7528\u6237\u5462\uff1f\u5662\uff0c\u5f53\u7136\uff0c\u5c31\u662f\u524d\u9762\u8bf4\u90a3\u4e9b\u5728  passwd.conf \u6587\u4ef6\u91cc\u9762\u6301\u6709\u7528\u6237\u540d\u5bc6\u7801\u7684\u5bb6\u4f19\u3002\u8fd9\u4e24\u884c\u7684\u7b49\u53f7\u540e\u9762\uff0c\u76ee\u524d\u53ea\u5141\u8bb8 read write none  \u4e09\u79cd\u503c\uff0c\u4f60\u5982\u679c\u60f3\u5b9e\u73b0\u4e00\u4e9b\u7279\u6b8a\u7684\u503c\uff0c\u6bd4\u5982\u8bf4\u201cread-once\u201d\u4e4b\u7c7b\u7684\uff0c\u5efa\u8bae\u4f60\u81ea\u5df1\u52a8\u624b\u6539\u6e90\u4ee3\u7801\uff0c\u53cd\u6b63\u5b83\u4e5f\u662f\u81ea\u7531\u8f6f\u4ef6:<\/p>\n<p>anon-access = none\nauth-access = write<\/p>\n<p>\u63a5\u4e0b\u6765\u5c31\u662f\u6700\u5173\u952e\u7684\u4e00\u53e5\u5462\uff0c\u5b83\u544a\u8bc9 svnserve.exe\uff0c\u9879\u76ee\u76ee\u5f55\u8bbf\u95ee\u6743\u9650\u7684\u76f8\u5173\u914d\u7f6e\u662f\u653e\u5728 authz.conf \u6587\u4ef6\u91cc:<\/p>\n<p>authz-db = authz.conf<\/p>\n<p>\u5f53\u7136\uff0csvn 1.3.2 \u5f15\u5165\u672c\u529f\u80fd\u7684\u65f6\u5019\uff0c\u7cfb\u7edf\u9ed8\u8ba4\u4f7f\u7528 authz \u800c\u4e0d\u662f authz.conf  \u4f5c\u4e3a\u914d\u7f6e\u6587\u4ef6\u3002\u4e0d\u8fc7\u53ef\u80fd\u7531\u4e8e\u9119\u4eba\u662f\u5904\u5973\u5ea7\u7684\uff0c\u636e\u8bf4\u6709\u7740\u5f3a\u70c8\u7684\u5b8c\u7f8e\u4e3b\u4e49\u60c5\u7ed3\uff0c\u770b\u7740 svnserve.conf \u6709\u540e\u7f00\u800c passwd \u548c authz  \u6ca1\u6709\u5c31\u662f\u4e0d\u723d\uff0c\u786c\u662f\u8981\u6539\u4e86\u3002<\/p>\n<p>\u4e0a\u8ff0\u7684 passwd.conf \u548c authz.conf \u4e24\u4e2a\u6587\u4ef6\u4e5f\u53ef\u4ee5\u4f5c\u4e3a\u591a\u4e2a\u4ee3\u7801\u5e93\u5171\u4eab\u4f7f\u7528\uff0c\u6211\u4eec\u53ea\u8981\u5c06\u5b83\u4eec\u653e\u5728\u516c\u5171\u76ee\u5f55\u4e0b\uff0c\u6bd4\u5982\u8bf4\u653e\u5728  D:svn \u76ee\u5f55\u4e0b\uff0c\u7136\u540e\u5728\u6bcf\u4e2a\u4ee3\u7801\u5e93\u7684 svnserve.conf \u6587\u4ef6\u4e2d\uff0c\u4f7f\u7528\u5982\u4e0b\u8bed\u53e5:<\/p>\n<p>password-db = &#8230;.passwd.conf\nauthz-db = &#8230;.authz.conf<\/p>\n<p>\u6216\u8005:<\/p>\n<p>password-db = ..\/..\/passwd.conf\nauthz-db = ..\/..\/authz.conf<\/p>\n<p>\u8fd9\u6837\u5c31\u53ef\u4ee5\u8ba9\u591a\u4e2a\u4ee3\u7801\u5e93\u5171\u4eab\u540c\u4e00\u4e2a\u7528\u6237\u5bc6\u7801\u3001\u76ee\u5f55\u63a7\u5236\u914d\u7f6e\u6587\u4ef6\uff0c\u8fd9\u5728\u6709\u4e9b\u60c5\u51b5\u4e0b\u662f\u975e\u5e38\u65b9\u4fbf\u7684\u3002<\/p>\n<p>4.2\u00a0\u00a0 authz.conf \u4e4b\u7528\u6237\u5206\u7ec4armconfauthz.conf \u6587\u4ef6\u7684\u914d\u7f6e\u6bb5\uff0c\u53ef\u4ee5\u5206\u4e3a\u4e24\u7c7b\uff0c [group]  \u662f\u4e00\u7c7b\uff0c\u91cc\u9762\u653e\u7f6e\u7740\u6240\u6709\u7528\u6237\u5206\u7ec4\u4fe1\u606f\u3002\u5176\u4f59\u4ee5 [arm:\/] \u5f00\u5934\u7684\u662f\u53e6\u5916\u4e00\u7c7b\uff0c\u6bcf\u4e00\u6bb5\u5c31\u662f\u5bf9\u5e94\u7740\u9879\u76ee\u7684\u4e00\u4e2a\u76ee\u5f55\uff0c\u5176\u76ee\u5f55\u76f8\u5173\u6743\u9650\uff0c\u5c31\u5728\u6b64\u6bb5\u5185\u8bbe\u7f6e\u3002<\/p>\n<p>\u9996\u5148\uff0c\u6211\u4eec\u5c06\u4eba\u5458\u5206\u7ec4\u7ba1\u7406\uff0c\u4ee5\u4fbf\u4ee5\u540e\u7531\u4e8e\u4eba\u5458\u53d8\u52a8\u800c\u9700\u8981\u91cd\u65b0\u8bbe\u7f6e\u6743\u9650\u65f6\u5019\uff0c\u5c3d\u91cf\u5c11\u6539\u52a8\u4e1c\u897f\u3002\u6211\u4eec\u4e00\u5171\u8bbe\u7f6e\u4e865\u4e2a\u7528\u6237\u5206\u7ec4\uff0c\u5206\u7ec4\u540d\u79f0\u7edf\u4e00\u91c7\u7528 g_  \u524d\u7f00\uff0c\u4ee5\u65b9\u4fbf\u8bc6\u522b\u3002\u5f53\u7136\u4e86\uff0c\u5206\u7ec4\u6210\u5458\u4e4b\u95f4\u91c7\u7528\u9017\u53f7\u9694\u5f00:<\/p>\n<p>[groups]<\/p>\n<h1>\u4efb\u4f55\u60f3\u8981\u67e5\u770b\u6240\u6709\u6587\u6863\u7684\u975e\u672c\u90e8\u95e8\u4eba\u58eb<\/h1>\n<p>g_vip = morson<\/p>\n<h1>\u7ecf\u7406<\/h1>\n<p>g_manager = michael<\/p>\n<h1>\u5317\u4eac\u529e\u4eba\u5458<\/h1>\n<p>g_beijing = scofield<\/p>\n<h1>\u4e0a\u6d77\u529e\u4eba\u5458<\/h1>\n<p>g_shanghai = lincon<\/p>\n<h1>\u603b\u90e8\u4e00\u822c\u5458\u5de5<\/h1>\n<p>g_headquarters = rory, linda<\/p>\n<h1>\u5c0f\u79d8\uff0c\u64b0\u5199\u6587\u6863<\/h1>\n<p>g_docs = linda<\/p>\n<p>\u6ce8\u610f\u5230\u6ca1\u6709\uff0c linda \u8fd9\u4e2a\u5e10\u53f7\u540c\u65f6\u5b58\u5728\u201c\u603b\u90e8\u201d\u548c\u201c\u6587\u6863\u5458\u201d\u4e24\u4e2a\u5206\u7ec4\u91cc\u9762\uff0c\u8fd9\u53ef\u4e0d\u662f\u6211\u8001\u773c\u660f\u82b1\u5199\u9519\u4e86\uff0c\u662f\u56e0\u4e3a Subversion  \u5141\u8bb8\u6211\u8fd9\u6837\u8bbe\u7f6e\u3002\u5b83\u610f\u5473\u7740\uff0c\u8fd9\u4e2a\u5bb6\u4f19\u6240\u62e5\u6709\u7684\u6743\u9650\uff0c\u5c06\u4f1a\u6bd4\u4ed6\u7684\u540c\u4e8b rory \u8981\u591a\u4e00\u4e9b\uff0c\u8fd9\u6837\u7684\u786e\u5f88\u65b9\u4fbf\u3002\u5177\u4f53\u591a\u4e86\u54ea\u4e9b\u5462\uff1f\u8bf7\u5f80\u4e0b\u770b\uff01<\/p>\n<p>4.3\u00a0\u00a0 authz.conf  \u4e4b\u9879\u76ee\u6839\u76ee\u5f55\u63a5\u7740\uff0c\u6211\u4eec\u5bf9\u9879\u76ee\u6839\u76ee\u5f55\u505a\u4e86\u9650\u5236\uff0c\u8be5\u76ee\u5f55\u53ea\u5141\u8bb8arm\u4e8b\u4e1a\u90e8\u7684\u7ecf\u7406\u624d\u80fd\u4fee\u6539\uff0c\u5176\u4ed6\u4eba\u90fd\u53ea\u80fd\u773c\u5df4\u5df4\u7684\u770b\u7740:<\/p>\n<p>[arm:\/]\n@g_manager = rw<\/p>\n<ul>\n<li>= r<\/li>\n<\/ul>\n<p>[arm:\/] \u8868\u793a\u8fd9\u4e2a\u76ee\u5f55\u7ed3\u6784\u7684\u76f8\u5bf9\u6839\u8282\u70b9\uff0c\u6216\u8005\u8bf4\u662f arm \u9879\u76ee\u7684\u6839\u76ee\u5f55\u3002\u5176\u4e2d\u7684 arm \u5b57\u6837\uff0c\u5176\u5b9e\u5c31\u662f\u4ee3\u7801\u5e93\u7684\u540d\u79f0\uff0c\u5373\u524d\u9762\u7528  svnadmin create \u547d\u4ee4\u521b\u5efa\u51fa\u6765\u7684\u90a3\u4e2a arm\u3002\n\u8fd9\u91cc\u7684 @ \u8868\u793a\u63a5\u4e0b\u6765\u7684\u662f\u4e00\u4e2a\u7ec4\u540d\uff0c\u4e0d\u662f\u7528\u6237\u540d\u3002\u56e0\u4e3a\u76ee\u524d g_manager \u7ec4\u91cc\u9762\u53ea\u6709\u4e00\u4e2a michael\uff0c\u4f60\u5f53\u7136\u4e5f\u53ef\u4ee5\u5c06  @g_manager = rw \u8fd9\u4e00\u884c\u66ff\u6362\u6210 michael = rw \uff0c\u800c\u8868\u8fbe\u7684\u610f\u4e49\u5b8c\u5168\u4e00\u6837\u3002<\/p>\n<ul>\n<li>\u8868\u793a\u201c\u9664\u4e86\u4e0a\u9762\u63d0\u5230\u7684\u90a3\u4e9b\u4eba\u4e4b\u5916\u7684\u5176\u4f59\u6240\u6709\u4eba\u201d\uff0c\u4e5f\u5c31\u662f\u201c\u9664\u4e86\u90e8\u95e8\u7ecf\u7406\u5916\u7684\u5176\u4ed6\u6240\u6709\u4eba\u201d\uff0c\u5f53\u7136\u4e5f\u5305\u62ec\u603b\u7ecf\u7406\u90a3\u4e2a\u602a\u8001\u5934<\/li>\n<li>= r \u5219\u8868\u793a\u201c\u90a3\u4e9b\u4eba\u53ea\u80fd\u8bfb\uff0c\u4e0d\u80fd\u5199\u201d\n4.4\u00a0\u00a0 authz.conf \u4e4b\u9879\u76ee\u5b50\u76ee\u5f55\u7136\u540e\uff0c\u6211\u4eec\u8981\u7ed9\u603b\u90e8\u4eba\u5458\u5f00\u653e\u65e5\u5fd7\u76ee\u5f55\u7684\u8bfb\u5199\u6743\u9650:<\/li>\n<\/ul>\n<p>[arm:\/diary\/headquarters]\n@g_manager = rw\n@g_headquarters = rw\n@g_vip = r<\/p>\n<ul>\n<li>=<\/li>\n<\/ul>\n<p>\u8fd9\u4e2a\u5b50\u76ee\u5f55\u7684\u8bbe\u7f6e\u6709\u4e9b\u7279\u8272\uff0c\u56e0\u4e3a\u4ece\u9700\u6c42\u5206\u6790\u4e2d\u6211\u4eec\u77e5\u9053\uff0c\u8fd9\u4e2a\u5b50\u76ee\u5f55\u7684\u6743\u9650\u8303\u56f4\u8981\u6bd4\u5176\u7236\u76ee\u5f55\u5c0f\uff0c\u5b83\u4e0d\u5141\u8bb8\u9664\u6307\u5b9a\u4e86\u7684\u4e4b\u5916\u5176\u4ed6\u4efb\u4f55\u4eba\u8bbf\u95ee\u3002\u5728\u8fd9\u6bb5\u8bbe\u7f6e \u4e2d\uff0c\u6211\u4eec\u9700\u8981\u6ce8\u610f\u4ee5\u4e0b\u51e0\u70b9\uff1a<\/p>\n<p>\u6211\u6562\u6253\u8d4c\uff0c\u8bbe\u8ba1svn\u7684\u5bb6\u4f19\u4eec\uff0c\u5927\u90e8\u5206\u90fd\u662f\u5728\u7c7b unix \u5e73\u53f0\u4e0b\u5de5\u4f5c\uff0c\u6240\u4ee5\u4ed6\u4eec\u603b\u559c\u6b22\u4f7f\u7528 \/ \u6765\u6807\u8bc6\u5b50\u76ee\u5f55\uff0c\u800c\u5b8c\u5168\u5ffd\u89c6\u5728 MS  Windows \u4e0b\u662f\u7528  \u6765\u505a\u540c\u6837\u7684\u4e8b\u60c5\u3002\u6240\u4ee5\u8fd9\u513f\uff0c\u4e3a\u4e86\u8868\u793a diaryheadquarters \u8fd9\u4e2a\u76ee\u5f55\uff0c\u6211\u4eec\u5fc5\u987b\u4f7f\u7528  [arm:\/diary\/headquarters] \u8fd9\u6837\u7684\u683c\u5f0f\u3002\u5f53\u7136\u5982\u679c\u4f60\u4e00\u5b9a\u8981\u7528  \uff0c\u90a3\u4e48\u552f\u4e00\u7684\u7ed3\u679c\u5c31\u662f\uff0cSubversion  \u4f1a\u5c06\u4f60\u7684\u8fd9\u90e8\u5206\u8bbe\u7f6e\u7f6e\u4e4b\u4e0d\u7406\uff0c\u5168\u5f53\u6ca1\u770b\u5230\u3002\n\u8fd9\u91cc\u6700\u540e\u4e00\u884c\u7684 <em> = \u8868\u793a\uff0c\u9664\u4e86\u7ecf\u7406\u3001\u603b\u90e8\u4eba\u5458\u3001\u7279\u522b\u4eba\u58eb\u4e4b\u5916\uff0c\u4efb\u4f55\u4eba\u90fd\u88ab\u7981\u6b62\u8bbf\u95ee\u672c\u76ee\u5f55\u3002\u8fd9\u4e00\u884c\u662f\u5426\u53ef\u4ee5\u7701\u7565\u5462\uff1f\u4e0d\u884c\uff0c\u56e0\u4e3a \u6743\u9650\u5177\u5907\u7ee7\u627f\u6027  \uff0c\u5b50\u76ee\u5f55\u4f1a\u81ea\u52a8\u62e5\u6709\u7236\u76ee\u5f55\u7684\u6743\u9650\u3002\u82e5\u6ca1\u6709\u8fd9\u4e00\u884c\uff0c\u5219\u6240\u6709\u5e10\u53f7\u90fd\u53ef\u4ee5\u8bfb\u53d6 \/diary\/headquarters  \u76ee\u5f55\u4e0b\u7684\u6587\u4ef6\u3002\u56e0\u4e3a\u867d\u7136\u6211\u4eec\u5e76\u6ca1\u6709\u8bbe\u7f6e\u8fd9\u4e2a\u76ee\u5f55\u7684\u7236\u76ee\u5f55\u6743\u9650\uff0c\u53ef\u662f\u9ed8\u8ba4\u7684\u89c4\u5219\u4f7f\u5f97 \/diary \u76ee\u5f55\u7684\u6743\u9650\u4e0e\u6839\u76ee\u5f55\u5b8c\u5168\u4e00\u6837\uff0c\u4ece\u800c\u8ba9\u5176\u4f59\u5e10\u53f7\u83b7\u5f97\u5bf9  \/diary\/headquarters \u76ee\u5f55\u7684 r \u6743\u9650\u3002\u6240\u4ee5\u7b80\u5355\u6765\u8bf4\uff0c <\/em> =  \u8fd9\u4e00\u53e5\u7684\u76ee\u7684\uff0c\u5c31\u662f\u5272\u65ad\u6743\u9650\u7ee7\u627f\u6027\uff0c\u4f7f\u5f97\u7ba1\u7406\u5458\u53ef\u4ee5\u5b9a\u5236\u67d0\u4e2a\u76ee\u5f55\u53ca\u5176\u5b50\u76ee\u5f55\u7684\u6743\u9650\uff0c\u4ece\u800c\u5b8c\u5168\u907f\u5f00\u5176\u7236\u76ee\u5f55\u6743\u9650\u8bbe\u7f6e\u7684\u5f71\u54cd\u3002\n\u4e4b\u6240\u4ee5\u8fd9\u513f\u9700\u8981\u5c06 @g_vip = r \u4e00\u53e5\u52a0\u4e0a\uff0c\u5c31\u662f\u56e0\u4e3a\u5b58\u5728\u4e0a\u8ff0\u8fd9\u4e2a\u89e3\u91ca\u3002\u5982\u679c\u8bf4\u4f60\u6ca1\u6709\u660e\u786e\u5730\u7ed9\u603b\u7ecf\u7406\u6388\u4e88\u8bfb\u7684\u6743\u529b\uff0c\u5219\u4ed6\u4f1a\u548c\u5176\u4ed6\u4eba\u4e00\u6837\uff0c\u88ab <em> =  \u7ed9\u6392\u9664\u5728\u5916\u3002\n\u5982\u679c\u4f17\u4f4d\u770b\u5b98\u4e2d\u95f4\uff0c\u6709\u8c01\u73a9\u8fc7\u9632\u706b\u5899\u914d\u7f6e\u7684\u8bdd\uff0c\u53ef\u80fd\u4f1a\u611f\u89c9\u4e0a\u8ff0\u7684\u914d\u7f6e\u5f88\u719f\u6089\u3002\u4e0d\u8fc7\u8fd9\u91cc\u6709\u4e00\u70b9\u4e0e\u9632\u706b\u5899\u914d\u7f6e\u4e0d\u4e00\u6837\uff0c\u90a3\u5c31\u662f\u5404\u4e2a\u914d\u7f6e\u884c\u4e4b\u95f4\uff0c\u6ca1\u6709 \u5148\u540e\u987a\u5e8f  \u4e00\u8bf4\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u6211\u5c06\u672c\u6bb5\u914d\u7f6e\u7684 <\/em> = \u8fd9\u4e00\u884c\u632a\u5230\u6700\u524d\u9762\uff0c\u5b8c\u5168\u4e0d\u5f71\u54cd\u6574\u4e2a\u914d\u7f6e\u7684\u6700\u7ec8\u6548\u679c\u3002\n\u63a5\u4e0b\u6765\u6211\u4eec\u770b\u770b\u8fd9\u4e00\u6bb5:<\/p>\n<p>[arm:\/ref]\n@g_manager = rw\n@g_docs = rw<\/p>\n<ul>\n<li>= r<\/li>\n<\/ul>\n<p>\u8fd9\u91cc\u7684\u4e3b\u8981\u770b\u70b9\uff0c\u5c31\u662f g_docs \u7ec4\u91cc\u9762\u5305\u542b\u4e86\u4e00\u4e2a linda \u5e10\u53f7\uff0c\u5979\u4e5f\u540c\u65f6\u5728 g_headquarters \u7ec4\u91cc\u9762\u51fa\u73b0\uff0c\u8fd9\u5c31\u610f\u5473\u7740\uff0c  linda \u5c06\u5177\u5907\u5bf9 \/ref \u548c diaryheadquarters \u4e24\u4e2a\u76ee\u5f55\u7684\u8bfb\u5199\u6743\u9650\u3002<\/p>\n<p>4.5\u00a0\u00a0 authz.conf \u4e4b\u76ee\u5f55\u8868\u793a\u6cd5\u5728\u524d\u9762\u7684\u63cf\u8ff0\u4e2d\uff0c\u6211\u4eec\u90fd\u91c7\u7528 [repos:\/some\/dir]  \u8fd9\u6837\u7684\u683c\u5f0f\u6765\u8868\u793a\u9879\u76ee\u7684\u67d0\u4e2a\u76ee\u5f55\uff0c\u6bd4\u5982\u4e0a\u4e00\u5c0f\u8282\u4e2d\u7684 [arm:\/diary\/headquarters] \u3002\u800c\u5b9e\u9645\u4e0a\uff0cSubversion  \u5141\u8bb8\u4f60\u91c7\u7528 `[\/some\/dir] \u8fd9\u6837\u7684\u683c\u5f0f\uff0c\u5373\u4e0d\u6307\u5b9a\u4ee3\u7801\u5e93\u7684\u65b9\u5f0f\u6765\u8868\u793a\u76ee\u5f55\uff0c\u6b64\u65f6\u7684\u76ee\u5f55\u5c31\u5339\u914d\u6240\u6709\u9879\u76ee\u3002<\/p>\n<p>\u5bf9\u4e8e\u4f7f\u7528 svnserve \u7684\u7528\u6237\u6765\u8bf4\uff0c\u53ea\u6709\u5f53 svnserve \u8fd0\u884c\u7684\u65f6\u5019\u4f7f\u7528\u4e86 -r \u53c2\u6570\uff0c\u5e76\u4e14\u8ba9\u591a\u4e2a\u4ee3\u7801\u5e93\u5171\u4eab\u540c\u4e00\u4e2a\u76ee\u5f55\u6743\u9650\u6587\u4ef6\uff08\u5373  authz.conf \u6216  authz\uff09\u65f6\uff0c\u4e0d\u6307\u660e\u4ee3\u7801\u5e93\u540d\u79f0\u624d\u6709\u53ef\u80fd\u60f9\u9ebb\u70e6\u3002\u4e00\u822c\u60c5\u51b5\u4e0b\uff0c\u6211\u4eec\u5bf9\u6bcf\u4e2a\u4ee3\u7801\u5e93\u90fd\u4f1a\u72ec\u7acb\u4f7f\u7528\u914d\u7f6e\u6587\u4ef6\uff0c\u6bd5\u7adf\u6bcf\u4e2a\u9879\u76ee\u7684\u76ee\u5f55\u7ed3\u6784\uff0c\u90fd\u6709\u5f88\u5927\u4e0d\u540c\uff0c\u6df7\u5728\u4e00\u8d77  \u610f\u4e49\u4e0d\u5927\u3002\u56e0\u6b64\u4e00\u822c\u6765\u8bf4\uff0c\u4e3a\u7b80\u6d01\u8d77\u89c1\uff0c\u90fd\u53ef\u4ee5\u4e0d\u6307\u660e\u4ee3\u7801\u5e93\u540d\u79f0\u3002\u672c\u6587\u5168\u90fd\u6307\u660e\u4e86\u4ee3\u7801\u5e93\u540d\u79f0\uff0c\u4e3b\u8981\u662f\u4e3a\u4e86\u5c06\u6765\u6269\u5c55\u6210\u540c\u4e00\u4e2a\u914d\u7f6e\u6587\u4ef6\uff0c\u4ee5\u65b9\u4fbf\u914d\u5408  Apache \u670d\u52a1\u5668\u3002<\/p>\n<p>\u5bf9\u4e8e\u4f7f\u7528 Apache \u7684\u7528\u6237\u6765\u8bf4\uff0c\u5b83\u4eec\u4e8c\u8005\u53ef\u6709\u7740\u5f88\u5927\u7684\u4e0d\u540c\uff0c\u56e0\u4e3a\u6b64\u65f6\u5f80\u5f80\u4e60\u60ef\u4e8e\u4f7f\u7528\u4e00\u4e2a\u516c\u5171\u7684\u76ee\u5f55\u6743\u9650\u914d\u7f6e\u6587\u4ef6\u3002\u5982\u679c\u4f60\u4f7f\u7528\u4e86  SVNParentPath \u6307\u4ee4\uff0c\u5219\u6307\u5b9a\u7248\u672c\u5e93\u7684\u540d\u5b57\u662f\u5f88\u91cd\u8981\u7684\uff0c\u56e0\u4e3a\u5047\u82e5\u4f60\u4f7f\u7528\u540e\u8005\uff0c\u90a3\u4e48 [\/some\/dir] \u90e8\u5206\u5c31\u4f1a\u4e0e\u6240\u6709\u4ee3\u7801\u5e93\u9879\u76ee\u7684  [\/some\/dir] \u76ee\u5f55\u5339\u914d\u3002\u5982\u679c\u4f60\u4f7f\u7528 SVNPath \u6307\u4ee4\uff0c\u5219\u8fd9\u4e24\u79cd\u8868\u793a\u65b9\u5f0f\u5c31\u6ca1\u6709\u4ec0\u4e48\u533a\u522b\u4e86\uff0c\u6bd5\u7adf\u53ea\u6709\u4e00\u4e2a\u7248\u672c\u5e93\u3002<\/p>\n<p>4.6\u00a0\u00a0 authz.conf \u7684\u5176\u4ed6\u6ce8\u610f\u70b9\u7236\u76ee\u5f55\u7684 r \u6743\u9650\uff0c\u5bf9\u5b50\u76ee\u5f55 w \u6743\u9650\u7684\u5f71\u54cd\n\u628a\u8fd9\u4e2a\u95ee\u9898\u4e13\u95e8\u63d0\u51fa\u6765\uff0c\u662f\u56e0\u4e3a\u57281.3.1\u53ca\u5176\u4ee5\u524d\u7684\u7248\u672c\u91cc\u9762\uff0c\u6709\u4e2abug\uff0c\u5373\u67d0\u4e2a\u5e10\u53f7\u4e3a\u4e86\u5bf9\u67d0\u4e2a\u5b50\u76ee\u5f55\u5177\u5907\u5199\u6743\u9650\uff0c\u5219\u5fc5\u987b\u5bf9\u5176\u7236\u76ee\u5f55\u5177\u5907\u8bfb\u6743\u9650\u3002\u56e0\u6b64\u73b0   \u5728\u4f7f\u7528\u4e861.3.2\u53ca\u5176\u66f4\u9ad8\u7684\u7248\u672c\uff0c\u5c31\u65b9\u4fbf\u4e86\u90a3\u4e9b\u60f3\u5728\u4e00\u4e2a\u4ee3\u7801\u5e93\u5b58\u653e\u591a\u4e2a\u76f8\u4e92\u72ec\u7acb\u7684\u9879\u76ee\u7684\u7ba1\u7406\u5458\uff0c\u6765\u5206\u914d\u6743\u9650\u4e86\u3002\u6bd4\u5982\u8bf4\u592e\u821c\u516c\u53f8\u5efa\u7acb\u4e00\u4e2a\u5927\u7684\u4ee3\u7801\u5e93\u7528\u4e8e\u5b58  \u653e\u6240\u6709\u5458\u5de5\u65e5\u5fd7\uff0c\u53eb\u505a diary\uff0c\u800carm\u4e8b\u4e1a\u90e8\u53ea\u662f\u5176\u4e2d\u4e00\u4e2a\u90e8\u95e8\uff0c\u5219\u53ef\u4ee5\u8fd9\u6837\u505a:<\/p>\n<p>[diary:\/]\n@g_chief_manager = rw\n[diary:\/arm]\n@g_arm_manager = rw\n@g_arm = r<\/p>\n<p>\u8fd9\u6837\uff0c\u5bf9\u4e8e\u6240\u6709arm\u4e8b\u4e1a\u90e8\u7684\u4eba\u5458\u6765\u8bf4\uff0c\u5c31\u53ef\u4ee5\u5c06 svn:\/\/192.168.0.1\/diary\/arm  \u8fd9\u4e2aURL\u5f53\u4f5c\u6839\u76ee\u5f55\u6765\u8fdb\u884c\u65e5\u5e38\u64cd\u4f5c\uff0c\u800c\u5b8c\u5168\u4e0d\u7ba1\u5b83\u5176\u5b9e\u53ea\u662f\u4e00\u4e2a\u5b50\u76ee\u5f55\uff0c\u5e76\u4e14\u5f53\u6709\u5c11\u6570\u597d\u5947\u5fc3\u6bd4\u8f83\u5f3a\u7684\u4eba\u60f3\u8bd5\u7740 checkout \u4e00\u4e0b  svn:\/\/192.168.0.1\/diary \u7684\u65f6\u5019\uff0c\u9a6c\u4e0a\u5c31\u4f1a\u5f97\u5230\u4e00\u4e2a\u8b66\u544a\u201cAccess denied\u201d\uff0c\u54c7\uff0c\u592a\u9177\u4e86\u3002<\/p>\n<p>\u9ed8\u8ba4\u6743\u9650\n\u5982\u679c\u8bf4\u6211\u5bf9\u67d0\u4e2a\u76ee\u5f55\u4e0d\u8bbe\u7f6e\u4efb\u4f55\u6743\u9650\uff0c\u4f1a\u600e\u6837\uff1f\u9a6c\u4e0a\u52a8\u624b\u505a\u4e2a\u8bd5\u9a8c\uff0c\u5c06:<\/p>\n<p>[diary:\/]\n@g_chief_manager = rw<\/p>\n<p>\u6539\u6210:<\/p>\n<p>[diary:\/]<\/p>\n<h1>@g_chief_manager = rw<\/h1>\n<p>\u8fd9\u6837\u5c31\u76f8\u5f53\u4e8e\u4ec0\u4e48\u90fd\u6ca1\u6709\u8bbe\u7f6e\u3002\u5728\u6211\u7684 svn 1.3.2  \u7248\u672c\u4e0a\uff0c\u6b64\u65f6\u662f\u7981\u6b62\u4efb\u4f55\u8bbf\u95ee\u3002\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u4f60\u60f3\u8981\u8ba9\u67d0\u4eba\u8bbf\u95ee\u67d0\u76ee\u5f55\uff0c\u4f60\u4e00\u5b9a\u8981\u663e\u5f0f\u6307\u660e\u8fd9\u4e00\u70b9\u3002\u8fd9\u4e2a\u7b56\u7565\uff0c\u770b\u8d77\u6765\u4e0e\u9632\u706b\u5899\u7684\u7b56\u7565\u662f\u4e00\u81f4\u7684\u3002<\/p>\n<p>\u53ea\u8bfb\u6743\u9650\u5e26\u6765\u7684\u4e00\u4e2a\u5c0f\u526f\u4f5c\u7528\n\u82e5\u8bbe\u7f6e\u4e86:<\/p>\n<p>[arm:\/diary]<\/p>\n<ul>\n<li>= r<\/li>\n<\/ul>\n<p>\u5219 Subversion \u4f1a\u8ba4\u4e3a\uff0c\u4efb\u4f55\u4eba\u90fd\u4e0d\u5141\u8bb8\u6539\u52a8 diary \u76ee\u5f55\uff0c\u5305\u62ec\u5220\u9664\u3001 \u6539\u540d \uff0c\u548c \u65b0\u589e \u3002<\/p>\n<p>\u4e5f\u5c31\u662f\u8bf4\uff0c\u5982\u679c\u4f60\u5728\u9879\u76ee\u521d\u671f\u521b\u5efa\u76ee\u5f55\u65f6\u5019\uff0c\u4e00\u4e0d\u5c0f\u5fc3\u5199\u9519\u76ee\u5f55\u540d\u79f0\uff0c\u6bd4\u5982\u56e0\u62fc\u5199\u9519\u8bef\u5199\u6210 dairy\uff0c\u4ee5\u540e\u9664\u975e\u4f60\u6539\u52a8 authz.conf  \u91cc\u9762\u7684\u8fd9\u884c\u8bbe\u7f6e\uff0c\u5426\u5219\u65e0\u6cd5\u5229\u7528 svn mv \u547d\u4ee4\u5c06\u9519\u8bef\u7684\u76ee\u5f55\u66f4\u6b63\u3002<\/p>\n<p>anon-access \u5c5e\u6027\u5bf9\u76ee\u5f55\u6743\u9650\u7684\u5f71\u54cd\n\u4f60\u60f3\u5c06\u4f60\u7684\u4ee3\u7801\u5e93\u5f00\u653e\u7ed9\u6240\u6709\u4eba\u8bbf\u95ee\uff0c\u4e8e\u662f\u4f60\u5c31\u5f00\u653e\u4e86\u533f\u540d\u8bbf\u95ee\u6743\u9650\uff0c\u5728 svnserve.conf \u6587\u4ef6\u4e2d\u6dfb\u52a0\u4e00\u884c\uff1a anon-access=read  \u3002\u53ef\u662f\u5bf9\u4e8e\u90e8\u5206\u76ee\u5f55\uff0c\u4f60\u53c8\u4e0d\u5e0c\u671b\u522b\u4eba\u770b\u5230\uff0c\u4e8e\u662f\u9488\u5bf9\u90a3\u4e9b\u7279\u522b\u76ee\u5f55\uff0c\u4f60\u5728 authz.conf \u91cc\u9762\u8fdb\u884c\u914d\u7f6e\uff0c\u6dfb\u52a0\u4e86\u6388\u6743\u8bbf\u95ee\u7684\u4eba\uff0c\u5e76\u6dfb\u52a0\u4e86 * =  \u6807\u8bb0\u3002\u4f60\u8ba4\u4e3a\u4e00\u5207OK\u4e86\uff0c\u53ef\u662f\u4f60\u7f3a\u53d1\u73b0\uff0c\u90a3\u4e2a\u7279\u522b\u76ee\u5f55\u5374\u65e0\u6cd5\u8bbf\u95ee\u4e86\uff0c\u603b\u662f\u63d0\u793a Not authorized to open root of edit  operation \u6216\u8005 \u672a\u6388\u6743\u6253\u5f00\u6839\u8fdb\u884c\u7f16\u8f91\u64cd\u4f5c \u3002\u4f60\u518d\u4e09\u68c0\u67e5\u4f60\u914d\u7f6e\u7684\u7528\u6237\u540d\u4e0e\u5bc6\u7801\uff0c\u786e\u8ba4\u4e00\u5207\u6b63\u786e\uff0c\u8fd8\u662f\u65e0\u6cd5\u89e3\u51b3\u95ee\u9898\u3002<\/p>\n<p>\u539f\u6765\uff0cSubversion \u6709\u4e2a\u5c0f bug \uff0c\u5f53 anon-access=read \u5e76\u4e14\u67d0\u4e2a\u76ee\u5f55\u6709\u88ab\u8bbe\u7f6e\u4e0a * =  \u6807\u8bb0\uff0c\u5219\u4f1a\u51fa\u73b0\u4e0a\u8ff0\u95ee\u9898\u3002\u8fd9\u4e2a bug \u5728\u5f53\u524d\u6700\u65b0\u7248\u672c\u4e0a\uff08v1.4\uff09\u8fd8\u5b58\u5728\uff0c\u4e5f\u8bb8\u5728\u4e0b\u4e00\u7248\u672c\u5185\u53ef\u4ee5\u88ab\u6539\u6b63\u5427\u3002<\/p>\n<p>\u89e3\u51b3\u7684\u529e\u6cd5\u662f\uff0c\u5728 svnserve.conf \u4e2d\uff0c\u5c06 anon-access \u8bbe\u7f6e\u6210 none \u3002<\/p>\n<p>5\u00a0\u00a0 \u6539\u8fdb5.1\u00a0\u00a0 \u5bf9\u4e2d\u6587\u76ee\u5f55\u7684\u652f\u6301\u4e0a\u5348\u4e0a\u73ed\u7684\u65f6\u5019\uff0cMorson \u6765\u5230 Michael  \u7684\u684c\u5b50\u524d\u9762\uff0c\u8bf4\u9053\uff1a\u201c\u4f60\u662f\u5426\u53ef\u4ee5\u5c06\u6211\u4eec\u7684\u5317\u4eac\u529e\u3001\u4e0a\u6d77\u529e\u76ee\u5f55\uff0c\u6539\u6210\u7528\u4e2d\u6587\u7684\uff0c\u770b\u7740\u90a3\u4e9b\u62fc\u97f3\u6211\u89c9\u5f97\u5f88\u96be\u53d7\uff1f\u201d Michael  \u5fc3\u60f3\uff0c\u8fd8\u597d\u8fd9\u4e24\u5929\u521a\u4e86\u89e3\u4e86\u4e00\u4e9b\u4e0e unicode \u7f16\u7801\u76f8\u5173\u7684\u77e5\u8bc6\uff0c\u4e8e\u662f\u5fae\u7b11\u5730\u56de\u7b54\uff1a\u201c\u5f53\u7136\u53ef\u4ee5\uff0c\u4f60\u660e\u5929\u4e0b\u5348\u5c31\u53ef\u4ee5\u770b\u5230\u4e2d\u6587\u76ee\u5f55\u540d\u79f0\u4e86\u3002\u201d<\/p>\n<p>\u4f7f\u7528 svn mv \u6307\u4ee4\uff0c\u5c06\u539f\u6765\u7684\u4e00\u4e9b\u76ee\u5f55\u6539\u540d\u5e76 commit \u5165\u4ee3\u7801\u5e93\uff0c\u6539\u540d\u540e\u7684\u76ee\u5f55\u7ed3\u6784\u5982\u4e0b:<\/p>\n<p>arm\n\u251c\u2500\u5de5\u4f5c\u65e5\u5fd7\n\u2502\u00a0 \u251c\u2500\u603b\u90e8\u4eba\u5458\n\u2502\u00a0 \u251c\u2500\u5317\u4eac\u529e\n\u2502\u00a0 \u2514\u2500\u4e0a\u6d77\u529e\n\u251c\u2500\u516c\u53f8\u516c\u5171\u6587\u4ef6\u53c2\u8003\u76ee\u5f55\n\u2514\u2500\u4e34\u65f6\u6587\u4ef6\u5b58\u653e\u5904<\/p>\n<p>\u4fee\u6539\u4ee3\u7801\u5e93\u7684 authz.conf \u6587\u4ef6\uff0c\u5c06\u76f8\u5e94\u76ee\u5f55\u9010\u4e00\u6539\u540d<\/p>\n<p>UTF-8 \u683c\u5f0f\u7684 authz.conf \u6587\u4ef6\uff0c\u4ee5\u53ca BOM<\/p>\n<p>\u5c06\u914d\u7f6e\u6587\u4ef6\u8f6c\u6362\u6210 UTF-8 \u683c\u5f0f\u4e4b\u540e\uff0cSubversion \u5c31\u80fd\u591f\u6b63\u786e\u8bc6\u522b\u4e2d\u6587\u5b57\u7b26\u4e86\u3002\u4f46\u662f\u8fd9\u91cc\u9700\u8981\u6ce8\u610f\u4e00\u70b9\uff0c\u5373\u5fc5\u987b\u4fdd\u8bc1 UTF-8  \u6587\u4ef6\u4e0d\u5305\u542b BOM \u3002BOM \u662f Byte Order Mark \u7684\u7f29\u5199\uff0c\u6307 UNICODE \u6587\u4ef6\u5934\u90e8\u7528\u4e8e\u6307\u660e\u9ad8\u4f4e\u5b57\u8282\u6392\u5217\u987a\u5e8f\u7684\u51e0\u4e2a\u5b57\u7b26\uff0c\u901a\u5e38\u662f  FF FE \uff0c\u800c\u5c06\u4e4b\u7528 UTF-8 \u7f16\u7801\u4e4b\u540e\uff0c\u5c31\u662f EF BB BF \u3002\u7531\u4e8e UTF-8 \u6587\u4ef6\u672c\u8eab\u4e0d\u5b58\u5728\u5b57\u8282\u5e8f\u95ee\u9898\uff0c\u6240\u4ee5\u5bf9 UTF-16  \u7b49\u7f16\u7801\u65b9\u5f0f\u6709\u91cd\u5927\u610f\u4e49\u7684 BOM\uff0c\u5bf9\u4e8e UTF-8 \u6765\u8bf4\uff0c\u53ea\u6709\u4e00\u4e2a\u4f5c\u7528\u2014\u2014\u8868\u660e\u8fd9\u4e2a\u6587\u4ef6\u662f UTF-8 \u683c\u5f0f\u3002\u7531\u4e8e BOM  \u4f1a\u7ed9\u6587\u672c\u5904\u7406\u5e26\u6765\u5f88\u591a\u96be\u9898\uff0c\u6240\u4ee5\u73b0\u5728\u5f88\u591a\u8f6f\u4ef6\u90fd\u8981\u6c42\u4f7f\u7528\u4e0d\u5e26 BOM \u7684 UTF-8 \u6587\u4ef6\uff0c\u7279\u522b\u662f\u4e00\u4e9b\u5904\u7406\u6587\u672c\u7684\u8f6f\u4ef6\uff0c\u5982 PHP\u3001 UNIX  \u811a\u672c\u6587\u4ef6\u7b49\uff0csvn \u4e5f\u662f\u5982\u6b64\u3002<\/p>\n<p>\u76ee\u524d\u5e38\u7528\u7684\u4e00\u4e9b\u6587\u672c\u7f16\u8f91\u5de5\u5177\u4e2d\uff0cMS Windows \u81ea\u5e26\u7684\u201c\u8bb0\u4e8b\u672c\u201d\u91cc\u9762\uff0c\u201c\u53e6\u5b58\u4e3a\u201d\u83dc\u5355\u4fdd\u5b58\u51fa\u6765\u7684 UTF-8 \u683c\u5f0f\u6587\u4ef6\uff0c\u4f1a\u81ea\u52a8\u5e26\u4e0a  BOM \u3002\u65b0\u7248\u672c UltraEdit \u63d0\u4f9b\u4e86\u9009\u9879\uff0c\u5141\u8bb8\u7528\u6237\u9009\u62e9\u662f\u5426\u9700\u8981 BOM\uff0c\u800c\u8001\u7248\u672c\u7684\u4e0d\u4f1a\u6dfb\u52a0  BOM\u3002\u8bf7\u5404\u4f4d\u67e5\u770b\u4e00\u4e0b\u81ea\u5df1\u5e38\u7528\u7684\u7f16\u8f91\u5668\u7684\u8bf4\u660e\u6587\u4ef6\uff0c\u770b\u770b\u5b83\u662f\u5426\u652f\u6301\u8fd9\u4e2a\u529f\u80fd\u3002<\/p>\n<p>\u5bf9\u4e8e\u5df2\u7ecf\u5b58\u5728 BOM \u7684 UTF-8 \u6587\u4ef6\uff0c\u6bd4\u5982\u8bf4\u5c31\u662f\u5fae\u8f6f\u201c\u8bb0\u4e8b\u672c\u201d\u5f04\u51fa\u6765\u7684\uff0c\u6211\u4eec\u53ef\u4ee5\u5229\u7528 UltraEdit \u6765\u5c06 BOM  \u53bb\u6389\u3002\u65b9\u6cd5\u662f\uff0c\u9996\u5148\u5229\u7528\u201cUTF-8 TO ASCII\u201d\u83dc\u5355\u5c06\u6587\u4ef6\u8f6c\u6362\u6210\u672c\u5730\u7f16\u7801\uff0c\u901a\u5e38\u662fGB2312\u7801\uff0c\u7136\u540e\u518d\u4f7f\u7528\u201cASCII TO  UTF-8(UNICODE Editing)\u201d\u6765\u8f6c\u6362\u5230 UTF-8 \u5373\u53ef\u3002\u5f53\u7136\uff0c\u8fd9\u4e48\u64cd\u4f5c\u4e4b\u524d\uff0c\u4f60\u80af\u5b9a\u5f97\u5148\u4fdd\u8bc1\uff0c\u4f60\u7684 UltraEdit  \u4fdd\u5b58\u51fa\u6765\u7684 UTF-8 \u6587\u4ef6\u7684\u786e\u662f\u4e0d\u5e26 BOM \u7684\u3002<\/p>\n<p>Subversion \u4e3a\u4ec0\u4e48\u8ba8\u538c BOM  \u5462\uff1f\u6211\u4e0d\u77e5\u9053\uff0c\u6bd5\u7adf\u6211\u4e5f\u53ea\u662f\u4e00\u4e2a\u666e\u901a\u7528\u6237\uff0c\u4e0d\u662f\u5f00\u53d1\u4eba\u5458\u3002\u5982\u679c\u4f60\u611f\u5174\u8da3\uff0c\u5e76\u4e14\u82f1\u6587\u591f\u597d\u7684\u8bdd\uff0c\u4e0d\u59a8\u53c2\u8003\u4e00\u4e0b\u8fd9\u4e2a\u8ba8\u8bba\uff1a  <a href=\"http:\/\/subversion.tigris.org\/servlets\/ReadMsg?list=users&amp;msgNo=51334\">http:\/\/subversion.tigris.org\/servlets\/ReadMsg?list=users&amp;msgNo=51334<\/a><\/p>\n<p>6\u00a0\u00a0 \u53c2\u8003\u6587\u732eSubversion\u5b98\u65b9\u6587\u6863\uff0c <a href=\"http:\/\/svnbook.red-bean.com\">http:\/\/svnbook.red-bean.com<\/a><\/p>\n<p>Subversion 1.3\u53d8\u66f4\u8bb0\u5f55\uff0c  <a href=\"http:\/\/subversion.tigris.org\/svn_1.3_releasenotes.html\">http:\/\/subversion.tigris.org\/svn_1.3_releasenotes.html<\/a><\/p>\n<p>Subversion FAQ\uff0c <a href=\"http:\/\/subversion.tigris.org\/faq.html\">http:\/\/subversion.tigris.org\/faq.html<\/a><\/p>\n<p>UTF-8 \u5e38\u89c1\u95ee\u9898\uff0c <a href=\"http:\/\/unicode.org\/faq\/utf_bom.html\">http:\/\/unicode.org\/faq\/utf_bom.html<\/a><\/p>\n<p>7\u00a0\u00a0 \u5386\u53f2\u8f68\u8ff92006.06.04\uff0c v0.1<\/p>\n<p>\u5728 <a href=\"http:\/\/iusesvn.com\/bbs\">http:\/\/iusesvn.com\/bbs<\/a> \u9996\u6b21\u53d1\u5e03<\/p>\n<p>2006.07.07\uff0c v0.4<\/p>\n<p>\u52a0\u5165 www.woodpecker.org.cn \u7684 OBP \u9879\u76ee<\/p>\n<p>2006.10.11\uff0c v0.5<\/p>\n<p>\u4fee\u6b63\u90e8\u5206\u9519\u8bef\uff0c\u8c03\u6574\u90e8\u5206\u7ae0\u8282\u987a\u5e8f<\/p>\n<p>2006.12.05\uff0c v1.0<\/p>\n<p>\u6dfb\u52a0\u201c\u6743\u9650\u7b80\u4ecb\u201d\u4e00\u8282<\/p>\n<p>\u8c03\u6574\u201c\u5b9e\u6218\u201d\u7ae0\u7684\u7ae0\u8282\u987a\u5e8f\uff0c\u6dfb\u52a0\u4e00\u4e9b\u8bf4\u660e\uff0c\u4f7f\u4e4b\u66f4\u5177\u53ef\u8bfb\u6027<\/p>\n<p>\u5220\u9664\u4e00\u4e9b\u4e0e apache \u670d\u52a1\u5668\u76f8\u5173\u7684\u8bf4\u660e<\/p>\n<p>\u6dfb\u52a0\u201c\u76ee\u5f55\u8868\u793a\u6cd5\u201d\u4e00\u5c0f\u8282<\/p>\n<p>\u91cd\u5199\u4e86\u201cauthz.conf \u4e4b\u9879\u76ee\u5b50\u76ee\u5f55\u201d\u4e00\u5c0f\u8282<\/p>","protected":false},"excerpt":{"rendered":"<p>\u76ee \u5f55 1\u00a0\u00a0 \u524d\u8a00 1.1\u00a0\u00a0 Subversion \u6743\u9650\u7b80\u4ecb 1.2\u00a0\u00a0 \u5176\u4ed6\u4fe1\u606f 2\u00a0\u00a0 \u81f4\u8c22 3\u00a0\u00a0 \u5b9e\u6218 3.1\u00a0\u00a0 \u80cc\u666f\u5047\u8bbe 3.2\u00a0\u00a0 \u4f7f\u7528 svnserve.exe \u4f5c\u4e3a Subver&#46;&#46;&#46;<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[161,162,163],"class_list":["post-228","post","type-post","status-publish","format-standard","hentry","category-other","tag-subversion","tag-162","tag-163"],"_links":{"self":[{"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/posts\/228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/comments?post=228"}],"version-history":[{"count":1,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/posts\/228\/revisions"}],"predecessor-version":[{"id":229,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/posts\/228\/revisions\/229"}],"wp:attachment":[{"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/media?parent=228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/categories?post=228"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/nick.txtcc.com\/index.php\/wp-json\/wp\/v2\/tags?post=228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}