﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-life-文章分类-SVN</title><link>http://www.blogjava.net/magibt/category/27983.html</link><description /><language>zh-cn</language><lastBuildDate>Sat, 19 Jan 2008 18:51:10 GMT</lastBuildDate><pubDate>Sat, 19 Jan 2008 18:51:10 GMT</pubDate><ttl>60</ttl><item><title>Apache管理SVN</title><link>http://www.blogjava.net/magibt/articles/154965.html</link><dc:creator>Edward's</dc:creator><author>Edward's</author><pubDate>Mon, 22 Oct 2007 05:18:00 GMT</pubDate><guid>http://www.blogjava.net/magibt/articles/154965.html</guid><wfw:comment>http://www.blogjava.net/magibt/comments/154965.html</wfw:comment><comments>http://www.blogjava.net/magibt/articles/154965.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/magibt/comments/commentRss/154965.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/magibt/services/trackbacks/154965.html</trackback:ping><description><![CDATA[<h1>软件(版本)：</h1>
<blockquote>
<p>apache_2.0.59-win32-x86-openssl-0.9.7j.msi</p>
<p>svn-1.4.4-setup.exe</p>
<p>TortoiseSVN-1.4.5.10425-win32-svn-1.4.5.msi</p>
</blockquote>
<h1>SVN管理</h1>
<p>&nbsp;</p>
<p>创建SVN目录</p>
<p>svnadmin create E:\svn</p>
<p>启动svn服务，-d后台模式，-r指定服务器的仓库路径 </p>
<p>svnserve -d -r E:\svn</p>
首先将命令行的当前目录转到要导入SVN的项目的根文件下执行<br />
svn import svn://localhost,把当前目录和子目录和文件import到SVN管辖之中<br />
注意：<br />
1、设置SVN_EDITOR环境变量，设定编辑器保存日志信息<br />
2、认证失败：在SVN项目的conf目录下svnserve.conf<br />
设置匿名用户的权限anon-access = read,读的权限；anon-access = write写的权限 <br />
<br />
<p>svn mkdir svn://localhost/porject2,在服务器端创建虚拟目录<br />
svn import svn://localhost/porject2
<p>svn checkout svn://localhost/porject2,在要存放checkout的目录下之执行<br />
svn commit test.txt，在修改的目录下执行。<br />
svn commit test.txt -F c:\log.txt指定日志文件</p>
<p>### Uncomment the line below to use the default password file.<br />
# password-db = passwd<br />
使用默认的密码文件passwd
<p>SVN用户登陆的信息会保存在C盘用户目录下面</p>
<p>备份SVN的命令<br />
svnadmin hotcopy F:\SVN D:\SVN<br />
把F:\SVN备份到D:\SVN</p>
<h1>apache的安装</h1>
<blockquote>
<p>
<p><font color="#ff0000">注意：IIS和迅雷,skype等软件都会占用80端口 </font></p>
<p><font color="#ff0000">在命令行下使用：netstat -a,netstat -ab;可以查看端口占用情况</font></p>
</blockquote>
<h1>apache整合subversion</h1>
<p>把Sbuversion/bin目录下面的<font color="#ff0000">mod_authz_svn.so，mod_dav_svn.so</font>复制到Apache2\modules下面</p>
<p>修改Apache2\conf\httpd.conf，去掉145，146行的注释<br />
<font color="#ff0000">LoadModule dav_module modules/mod_dav.so<br />
LoadModule dav_fs_module modules/mod_dav_fs.so</font><br />
在后面加上<br />
<font color="#ff0000">LoadModule authz_svn_module modules/mod_authz_svn.so<br />
LoadModule dav_svn_module modules/mod_dav_svn.so</font><br />
最后加上<br />
&lt;Location /svn&gt;<br />
DAV svn<br />
SVNPath F:\SVN<br />
&lt;/Location&gt; </p>
<p>增加登陆密码<br />
&lt;Location /svn&gt;<br />
DAV svn<br />
SVNPath F:\SVN<br />
AuthType Basic<br />
AuthName "Subversion Repository"<br />
AuthUserFile F:\passwd\passwords<br />
Require valid-user<br />
&lt;/Location&gt;
<p>配置环境变量\Apache2\bin<br />
执行htpasswd命令，htpasswd -c F:\passwd\passwords hello<br />
创建passwords文件和hello用户，然后增加密码<br />
-c为创建文件 -p为明文显示密码
<p>设置仓库的根目录，SVNParentPath。下面可以有子目录<br />
&lt;Location /svn&gt;<br />
DAV svn<br />
SVNParentPath F:\SVN<br />
AuthType Basic<br />
AuthName "Subversion Repository"<br />
AuthUserFile F:\passwd\passwords<br />
Require valid-user<br />
&lt;/Location&gt;
<p>在SVN仓库下创建子仓库subsvn，再import一个项目到<a href="http://localhost/svn/subsvn">http://localhost/svn/subsvn</a>中去<br />
此时合法用户只能访问<a href="http://localhost/svn/subsvn">http://localhost/svn/subsvn</a>，而<a href="http://localhost/svn/">http://localhost/svn/</a>为403
<p>使得合法用户可以写操作，而读不需要用户名和密码<br />
&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;<br />
Require valid-user<br />
&lt;/LimitExcept&gt;
<p>增加用户分组，不允许匿名用户访问。创建用户权限文件<br />
&lt;Location /svn&gt;<br />
DAV svn<br />
SVNParentPath F:\SVN<br />
AuthzSVNAccessFile F:\passwd\policy<br />
AuthType Basic<br />
AuthName "Subversion Repository"<br />
AuthUserFile F:\passwd\passwords<br />
Require valid-user<br />
&lt;/Location&gt;
<p>创建policy，在其中加入<br />
[helloworld:/]<br />
hello=rw<br />
google=r<br />
baidu=
<p>用户分组<br />
[groups]<br />
developers=hello,google<br />
testers=baidu<br />
也可以这样<br />
<a href="mailto:testers=@developers">testers=@developers</a>，baidu<br />
对于项目组的权限<br />
[helloworld:/]<br />
@developers=rw<br />
@testers=r </p>
<img src ="http://www.blogjava.net/magibt/aggbug/154965.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/magibt/" target="_blank">Edward's</a> 2007-10-22 13:18 <a href="http://www.blogjava.net/magibt/articles/154965.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>