{"id":2963,"date":"2016-12-16T14:34:24","date_gmt":"2016-12-16T06:34:24","guid":{"rendered":"http:\/\/www.menglanglang.cn\/?p=2963"},"modified":"2016-12-16T14:34:24","modified_gmt":"2016-12-16T06:34:24","slug":"linux%e7%b3%bb%e7%bb%9f%e6%93%8d%e4%bd%9csvn%e4%bb%93%e5%ba%93%e5%9f%ba%e7%a1%80","status":"publish","type":"post","link":"http:\/\/www.menglanglang.cn\/?p=2963","title":{"rendered":"Linux\u7cfb\u7edf\u64cd\u4f5cSVN\u4ed3\u5e93\u57fa\u7840"},"content":{"rendered":"<p>\u5728 Window \u7cfb\u7edf\u4e2d\u60f3\u7528 SVN \u670d\u52a1\u5668\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u00a0VisualSVN-Server \u5373\u53ef\uff0c\u8fd9\u662f\u5e26\u6709\u56fe\u5f62\u64cd\u4f5c\u754c\u9762\u7684\uff0c\u90a3\u4e48\u521b\u5efa\u4ed3\u5e93\uff0c\u65b0\u5efa\u7528\u6237\uff0c\u4fee\u6539\u5bc6\u7801\uff0c\u4fee\u6539\u6743\u9650\u7b49\u64cd\u4f5c\u5f88\u7b80\u5355\uff0c\u52a8\u52a8\u9f20\u6807\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<p>\u90a3\u4e48\u5728 Linux \u7cfb\u7edf\u4e2d\uff0c\u5982\u4f55\u8fdb\u884c\u8fd9\u4e9b\u64cd\u4f5c\u5462\uff1f\u8fd9\u91cc\u5047\u8bbe\u5df2\u7ecf\u5b89\u88c5\u597d\u4e86 SVN \u670d\u52a1\u5668\uff0c\u5177\u4f53\u5b89\u88c5\u8fc7\u7a0b\u8fd9\u91cc\u5c31\u4e0d\u518d\u5199\u4e86\u3002<\/p>\n<p>\u67e5\u770b svn \u7248\u672c\uff1a<\/p>\n<p><code>svn --version\uff08\u5305\u542b\u7248\u672c\u4fe1\u606f\u3001\u7f16\u8bd1\u4fe1\u606f\u3001\u7248\u6743\u4fe1\u606f\u7b49\uff09<\/code><\/p>\n<p><code>svn --version --quiet\uff08\u53ea\u67e5\u770b\u7248\u672c\u53f7\uff09<\/code><\/p>\n<p><strong>1\uff09\u5728 svn \u6839\u76ee\u5f55\u4e0b\u5efa\u7acb\u7248\u672c\u4ed3\u5e93\uff1a<\/strong><\/p>\n<p><code>svnadmin create product3dl<\/code><\/p>\n<p>\u5982\u679c\u627e\u4e0d\u5230\u521a\u521b\u5efa\u7684\u4ed3\u5e93\uff0c\u53ef\u4ee5\u7528 find \u547d\u4ee4\u6765\u67e5\u627e\uff1a<\/p>\n<p><code>find -name product3dl<\/code><\/p>\n<p>\u5176\u4e2d\uff0cproduct3dl \u5c31\u662f\u4ed3\u5e93\u540d\uff0c\u4ed3\u5e93\u5efa\u7acb\u597d\u4ee5\u540e\u4f1a\u51fa\u73b0\u4e00\u4e2a\u4ed3\u5e93\u540d\u7684\u6587\u4ef6\u5939\uff0c\u6587\u4ef6\u5939\u4e0b\u9762\u6709 conf \u7b49\u51e0\u4e2a\u76ee\u5f55\u548c\u6587\u4ef6\u3002<\/p>\n<p>\u67e5\u770b\u4ed3\u5e93\u4e0b\u7684\u6240\u6709\u76ee\u5f55\u53ca\u6587\u4ef6\uff1a<\/p>\n<p><code>cd product3dl\/<\/code><\/p>\n<p><code>ll -a<\/code><\/p>\n<blockquote><p><em>\u7ed3\u679c\uff1a<\/em><br \/>\ntotal 32<br \/>\ndrwxrwxr-x. 6 svn svn 4096 Dec 15 09:44 .<br \/>\ndrwx------. 26 svn svn 4096 Dec 15 09:44 ..<br \/>\ndrwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 conf<br \/>\ndrwxrwsr-x. 6 svn svn 4096 Dec 15 09:44 db<br \/>\n-r--r--r--. 1 svn svn 2 Dec 15 09:44 format<br \/>\ndrwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 hooks<br \/>\ndrwxrwxr-x. 2 svn svn 4096 Dec 15 09:44 locks<br \/>\n-rw-rw-r--. 1 svn svn 229 Dec 15 09:44 README.txt<\/p><\/blockquote>\n<p><strong>2\uff09\u65b0\u5efa\u7528\u6237<\/strong><\/p>\n<p>\u4fee\u6539 conf \u6587\u4ef6\u5939\u4e0b\u7684 authz \u6587\u4ef6\uff1a<\/p>\n<p><code>vi authz<\/code><\/p>\n<p>\u4fee\u6539\u540e\u5982\u4e0b\uff1a<\/p>\n<div class=\"dp-highlighter\">\n<div class=\"bar\"><\/div>\n<ol class=\"dp-xml\" start=\"1\">\n<li class=\"alt\">[groups]<\/li>\n<li class=\"\">#\u00a0<span class=\"attribute-value\">harry<\/span><span class=\"attribute\">harry_and_sally<\/span>\u00a0=\u00a0harry,sally<\/li>\n<li class=\"alt\">#\u00a0<span class=\"attribute-value\">harry<\/span><span class=\"attribute\">harry_sally_and_joe<\/span>\u00a0=\u00a0harry,sally,&amp;joe<\/li>\n<li class=\"\"><span class=\"attribute\">study<\/span>\u00a0=\u00a0<span class=\"attribute-value\">mll<\/span>,cz,ldp,ly<\/li>\n<li class=\"alt\"><span class=\"attribute\">admin<\/span>\u00a0=\u00a0<span class=\"attribute-value\">qzg<\/span>,mll<\/li>\n<li class=\"\"><\/li>\n<li class=\"alt\">[\/home\/svn\/product3dl]<\/li>\n<li class=\"\">@<span class=\"attribute\">admin<\/span>\u00a0=\u00a0<span class=\"attribute-value\">rw<\/span><\/li>\n<li class=\"alt\">@<span class=\"attribute\">study<\/span>\u00a0=\u00a0<span class=\"attribute-value\">rw<\/span><\/li>\n<li class=\"\">*\u00a0=<\/li>\n<li class=\"alt\">#\u00a0[\/foo\/bar]<\/li>\n<li class=\"\">#\u00a0<span class=\"attribute\">harry<\/span>\u00a0=\u00a0<span class=\"attribute-value\">rw<\/span><\/li>\n<li class=\"alt\">#\u00a0&amp;<span class=\"attribute\">joe<\/span>\u00a0=\u00a0<span class=\"attribute-value\">r<\/span><\/li>\n<li class=\"\">#\u00a0*\u00a0=<\/li>\n<li class=\"alt\"><\/li>\n<li class=\"\">#\u00a0[repository:\/baz\/fuz]<\/li>\n<li class=\"alt\">#\u00a0@<span class=\"attribute\">harry_and_sally<\/span>\u00a0=\u00a0<span class=\"attribute-value\">rw<\/span><\/li>\n<\/ol>\n<\/div>\n<p>\u6b64\u914d\u7f6e\u6587\u4ef6\u91c7\u7528\u201c\u57fa\u4e8e\u8def\u5f84\u7684\u6388\u6743\u201d\u7b56\u7565\uff0c\u4e2d\u62ec\u53f7\u91cc\u6307\u5b9a\u8def\u5f84\uff0c\u4ee5\u4e0b\u5217\u51fa\u5bf9\u5404\u7528\u6237\u7684\u6388\u6743\u3002<\/p>\n<p>\u5305\u62ec\u53ea\u8bfb r\uff0c\u8bfb\u5199 rw\u3002\u6ca1\u6709\u5217\u51fa\u7684\u7528\u6237\uff0c\u5219\u4e0d\u5141\u8bb8\u8bbf\u95ee\u3002\u8fd8\u53ef\u4ee5\u5bf9\u7528\u6237\u5206\u7ec4\uff0c\u5176\u4e2d\uff0c1 \u4e2a\u7528\u6237\u7ec4\u53ef\u4ee5\u5305\u542b 1 \u4e2a\u6216\u591a\u4e2a\u7528\u6237\uff0c\u7528\u6237\u95f4\u4ee5\u9017\u53f7\u5206\u9694\u3002<\/p>\n<p>\/ \u8868\u793a\u6839\u76ee\u5f55\uff08\u4ed3\u50a8\u76ee\u5f55\uff09\u53ca\u4ee5\u4e0b\uff0c\u6839\u76ee\u5f55\u662f svnserve \u542f\u52a8\u65f6\u6307\u5b9a\u7684\uff0c\u6211\u4eec\u6307\u5b9a \/opt\/svndata\u3002\u8fd9\u6837\uff0c\/ \u5c31\u662f\u8868\u793a\u5bf9\u5168\u90e8\u7248\u672c\u5e93\u8bbe\u7f6e\u6743\u9650\u3002<br \/>\n\u6743\u9650\u4e3b\u4f53\u53ef\u4ee5\u662f\u7528\u6237\u7ec4\u3001\u7528\u6237\u6216 *\uff0c\u7528\u6237\u7ec4\u5728\u524d\u9762\u52a0@\uff0c* \u8868\u793a\u5168\u90e8\u7528\u6237\u3002\u6743\u9650\u53ef\u4ee5\u662f w\u3001r\u3001wr \u548c\u7a7a\uff0c\u7a7a\u8868\u793a\u6ca1\u6709\u4efb\u4f55\u6743\u9650\u3002<\/p>\n<p>\u5728 [groups] \u4e0b\u589e\u52a0\u4f60\u7684\u7528\u6237\u7ec4\uff08\u8bb0\u5f97\u7b49\u53f7\u524d\u540e\u7559\u7a7a\u683c\uff09\u3002<\/p>\n<p><strong>3\uff09\u4fee\u6539\u7528\u6237\u5bc6\u7801<\/strong><\/p>\n<p>\u6dfb\u52a0\u4e86\u7528\u6237\u4ee5\u540e\u5c31\u9700\u8981\u7ed9\u7528\u6237\u8bbe\u7f6e\u5bc6\u7801\u4e86\uff0c\u6253\u5f00conf\/passwd\u6587\u4ef6\uff1a<\/p>\n<p><code>vi passwd <\/code><\/p>\n<p>\u53d6\u6d88 [users] \u7684\u6ce8\u91ca\uff0c\u5e76\u5728\u4e0b\u9762\u52a0\u4e0a\u4f60\u7684\u7528\u6237\u7684\u5bc6\u7801\u8bbe\u7f6e\uff08\u8bb0\u5f97\u7b49\u53f7\u5de6\u53f3\u7684\u7a7a\u683c\uff09\uff0c\u5982\u4e0b\uff1a<\/p>\n<div class=\"dp-highlighter\">\n<div class=\"bar\"><\/div>\n<ol class=\"dp-xml\" start=\"1\">\n<li class=\"alt\">[users]<\/li>\n<li class=\"\">#\u00a0<span class=\"attribute\">harry<\/span>\u00a0=\u00a0<span class=\"attribute-value\">harryssecret<\/span><\/li>\n<li class=\"alt\">#\u00a0<span class=\"attribute\">sally<\/span>\u00a0=\u00a0<span class=\"attribute-value\">sallyssecret<\/span><\/li>\n<li class=\"\"><span class=\"attribute\">qzg<\/span><span class=\"attribute-value\">qzg<\/span>\u00a0=\u00a0qzg<\/li>\n<li class=\"alt\"><span class=\"attribute\">mll<\/span><span class=\"attribute-value\">mll<\/span>\u00a0=\u00a0mll<\/li>\n<li class=\"\"><span class=\"attribute\">cz<\/span><span class=\"attribute-value\">cz<\/span>\u00a0=\u00a0cz<\/li>\n<li class=\"alt\"><span class=\"attribute\">ldp<\/span><span class=\"attribute-value\">ldp<\/span>\u00a0=\u00a0ldp<\/li>\n<li class=\"\"><span class=\"attribute\">ly<\/span><span class=\"attribute-value\">ly<\/span>\u00a0=\u00a0ly<\/li>\n<\/ol>\n<\/div>\n<p><strong>4\uff09\u542f\u52a8 svn \u5bf9\u7528\u6237\u6743\u9650\u3001\u5bc6\u7801\u7684\u63a7\u5236<\/strong><\/p>\n<p>\u9700\u8981\u542f\u52a8SVN\u5bf9\u7528\u6237\u6743\u9650\u3001\u5bc6\u7801\u7684\u63a7\u5236\uff0c\u4e0d\u7136\u7684\u8bdd\u4f60\u5c31\u53ea\u80fd\u8bfb\u800c\u4e0d\u80fd\u5199\u4e86\u3002<\/p>\n<p>\u4fee\u6539svnserve.conf\u6587\u4ef6\uff1a<\/p>\n<p>vi svnserve.conf<\/p>\n<p>\u5404\u53c2\u6570\u529f\u80fd\u5728\u914d\u7f6e\u6587\u4ef6\u7684\u6ce8\u91ca\u4e2d\u6709\u8bf4\u660e,\u00a0\u6b64\u5904\u914d\u7f6e\u5982\u4e0b\uff08\u53d6\u6d88\u4e0b\u9762\u51e0\u6761\u524d\u9762\u7684 # \u53f7\u6ce8\u91ca\u5c31 OK \u4e86\uff09:<\/p>\n<div class=\"dp-highlighter\">\n<div class=\"bar\"><\/div>\n<ol class=\"dp-xml\" start=\"1\">\n<li class=\"alt\"><span class=\"attribute\">anon-access<\/span>\u00a0=\u00a0<span class=\"attribute-value\">read<\/span><\/li>\n<li class=\"\"><span class=\"attribute\">auth-access<\/span>\u00a0=\u00a0<span class=\"attribute-value\">write<\/span><\/li>\n<li class=\"alt\"><span class=\"attribute\">password-db<\/span>\u00a0=\u00a0<span class=\"attribute-value\">passwd<\/span><\/li>\n<li class=\"\"><span class=\"attribute-value\">authz<\/span><span class=\"attribute\">authz-db<\/span>\u00a0=\u00a0authz<\/li>\n<\/ol>\n<\/div>\n<p><strong>5\uff09\u7ed9\u4ed3\u5e93\u5206\u914d\u5199\u6743\u9650<\/strong><\/p>\n<p>\u9700\u8981\u7ed9\u4ed3\u5e93\u63d0\u4f9b\u8bfb\u5199\u6743\u9650\uff0c\u4e0d\u7136\u4e0d\u80fd\u63d0\u4ea4\u6587\u4ef6\uff1a<\/p>\n<p><code>chmod 777 -R product3dl\/<\/code><\/p>\n<p><strong>6\uff09\u91cd\u65b0\u542f\u52a8 svn \u670d\u52a1<\/strong><\/p>\n<p>\u542f\u52a8 svn \u670d\u52a1\u547d\u4ee4\uff1a<\/p>\n<p><code>svnserve\u00a0-d\u00a0-r\u00a0\u00a0\/svn<\/code><\/p>\n<p>\u5982\u679c\u62a5\u9519\u5982\u4e0b\uff1a<\/p>\n<p><span style=\"color: #ff0000;\">svnserve:\u00a0Can't\u00a0bind\u00a0server\u00a0socket:\u00a0Address\u00a0already\u00a0in\u00a0use<\/span><\/p>\n<p>\u89e3\u51b3\u529e\u6cd5\uff1a<\/p>\n<p><span style=\"color: #339966;\">\u4f7f\u7528\u201c\u00a0ps\u00a0-e|grep\u00a0svnserve\u00a0\u201d\u627e\u5230\u670d\u52a1\u5bf9\u5e94\u8fdb\u7a0b\u7f16\u53f7\uff0c\u4f7f\u7528 kill\u00a0\u547d\u4ee4\u540e\uff0c\u518d\u4f7f\u7528\u542f\u52a8\u547d\u4ee4\u91cd\u542f\u670d\u52a1\u3002<\/span><\/p>\n<p>&nbsp;<\/p>\n<p>Good Luck\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5728 Window \u7cfb\u7edf\u4e2d\u60f3\u7528 SVN \u670d\u52a1\u5668\uff0c\u53ea\u9700\u8981\u5b89\u88c5\u00a0VisualSVN-Server \u5373\u53ef\uff0c\u8fd9\u662f\u5e26\u6709\u56fe\u5f62 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[602,198,597,199],"class_list":["post-2963","post","type-post","status-publish","format-standard","hentry","category-development-tools","tag-linux","tag-svn","tag-development-tools","tag-199"],"_links":{"self":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/2963","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2963"}],"version-history":[{"count":1,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/2963\/revisions"}],"predecessor-version":[{"id":2964,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=\/wp\/v2\/posts\/2963\/revisions\/2964"}],"wp:attachment":[{"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2963"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2963"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.menglanglang.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2963"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}