CENTOS 7/UBUNTU 上搭建svn的方法总结

来源:互联网 发布:mac桌面壁纸设置 编辑:程序博客网 时间:2024/06/11 06:03

搭建主要思路是采用apache2和subversion
subversion服务器端主要由svnadmin组成,起初始化svn库的目录结构作用,真正起到svn服务功能的其实是apache加apache_svn模块插件。svn客户端是采用http协议与apache交互。特别是通过option方法进行数据提交。
centos 7上,分如下步骤:
一、规划设计
计划用/home/svn作为所有SVN工程的根目录,里面划分myap,myrouter等工程
myap工程下又划分成
myap/trunk
myap/tags
myap/branches
分别存放主线代码,标签和分支代码
其他工程结构类似。
二、服务器软件安装
服务器软件需要APACHE和DAV SVN模块
执行:
sudo yum install httpd
sudo yum install subversion mod_dav_svn
如果是UBUNTU,则执行下面命令,下面的安装在CENTOS环境上通过:
sudo apt-get install subversion
sudo apt-get install libapache2-svn
三、创建SNV仓库
sudo mkdir /home/svn
sudo svnadmin create /home/svn/myap
四、SVN与APACHE整合
即配置APACHE中SVN模块,让APACHE提供SVN的服务
默认安装后,在/etc/httpd/conf.modules.d目录就已存在一个10-subversion.conf文件,这就是自动加载SVN 模块的配置文件,需要修改。
cat 10-subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dontdothat_module modules/mod_dontdothat.so
在文件未尾,增加如下内容
cat 10-subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dontdothat_module modules/mod_dontdothat.so
下面是localtion标签开始”< location /svn>” ,/svn意味着以后访问要加http://localhost/svn/前缀,然后才到某某工程,如/svn/myap
在此标签下的内容如下:
DAV svn 
SVNParentPath /home/svn -- 这是SVN路径根
AuthType Basic
AuthName “Basic Auth - Apache. It work! Powered by billy.”
AuthUserFile /etc/httpd/dav_svn.passwd  -- 指明了认证文件
AuthzSVNAccessFile /etc/httpd/dav_svn.authz --指明了访问控制文件
require valid-user --只允许SVN用户访问
最后是localtion标签结束标志””
上述配置表明:认证文件将采用/etc/httpd/dav_svn.passwd,访问控制文件将采用/etc/httpd/dav_svn.authz
所有访问都需要加前缀/svn/
所有访问都需要用户名密码
相应的用户名密码就位于文件/etc/httpd/dav_svn.passwd中

五、创建SVN用户
首次创建和第二次创建使用的参数有所不一样,首次是:
首次创建用户
sudo htpasswd -cb /etc/httpd/dav_svn.passwd user password
第二次添加
sudo htpasswd -b /etc/httpd/dav_svn.passwd new-user new-password
因为c参数将重新生成一个文件,所以第二次添加时不可再加C参数

六、配置SVN权限
前面提到,权限控制在/etc/httpd/dav_authz

cat dav_svn.authz
[groups]
developer=snowpiaop

[myap:/]
@developer=rw

七、修改目录权限

sudo chown apache.apache /home/svn -R
sudo chmod 777 /home/svn -R
sudo setenforce 0
sudo systemctl restart httpd.service

八、入库
sudo svn import myap file:///home/svn/myap/trunk -m “init version”

问题一,svn import入库后取出,缺少工具链的.o文件
原因:global-ignores是提交时忽略的文件类型,默认含.o
编辑/etc/subversion/config 文件,修改相关设置,或者svn add *.o重新加一遍
二,svn 访问时没要求认证
LimitExcept GET PROPFIND OPTIONS REPORT
Require valid-user

意味除GET方法外,限制有效用户可以用,也就是说匿名用户允许读GET
修改/etc/apache2/mods-available/dav_svn.conf
limitexcept删除后解决。
这个文件修改后要重启apache2

0 0
原创粉丝点击