SVN的配置:
1安装SVN
直接通过 sudo apt-get install svn libapache2-svn即可
2.建立SVN用户,设置相关权限
apache默认启动帐户是www-data,可以继续使用帐户或者另外新建一个用户来启动apache
我是另外建立了一个帐户 svn-usr
建立subversion用户组,这步实际可以不用,在设置权限时把权限设置给用户组可以方便SVN建立多用户的版本管理(只需在该用户组类添加新成员)
groupadd subversion
useradd -g subversion svn-user
建立好用户和用户组后,开始设置相关权限,这个很重要,很多情况下会在这出问题
版本一般放在/home/svn,这个作为一个总的文件夹,存放各种代码库
假设现在我们有一个项目project
在/home/svn 下建立新目录 project ,并修改他的相关权限
$ sudo mkdir project
$ sudo chown -R root:subversion project AuthName "Subversion Repository"
$ sudo chmod -R g+rws project
最后两条命令给予了组成员拥有相关读写权限
3. 然后用svn来来建立文件仓库
sudo svnadmin create /home/svn/project
导入代码初始化数据
sudo svn import /home/sourcecode file:///home/svn/project -m "initial import"
4 .设置SVN用户
安装SVN后默认没有设置用户的文件,需要自己建立一个
假设放在 /etc/subversion/passwd文件里
建立文件和第一个用户时候注意:
htpasswd
-cm /etc/subversion/passwd username1
(-c表示建立该文件) 建立好密码文件后,添加其他用户时候直接-m,-cm会把原来文件覆盖掉
添加新用户
htpasswd -m /etc/subversion/passwd username2
这样一个SVN版本就建立好了,接下来就是apache的设置,可以使SVN通过HTTP方式进行工作
apache和SVN主要通过webdav来实现
注意查看apache是否Load了mod_dav.so模块和mod_dav_svn.so模块,没有得加上这2个模块
配置httpd.conf文件
<Location /svn>
DAV svn
SVNPath /home/svn/project
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/subversion/passwd
Require valid-user
</Location>
<Location>类似于<Derectory>,但是优先级在其后面,所有设置svn的目录时不要和web目录在一起,否则apache会优先看作是wb文件夹。
另外如果想设置一个目录下有多个版本的话,可以将SVNPath改成SVNParentPath,这样假设/home/svn下面有project1,project2,project3等多个项目的时候,直接通过http://....../svn/project1 ,http://..../svn/project2就可以了,不过这个得设置好apache启动用户的权限,类似上面的设置方法
有什么问题欢迎大家留言讨论