-
SVN简介
SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的。
-
搭建SVN
- svn安装
yum install subversion
- 判断是否安装成功
svnserve --version
- 建立svn版本库
mkdir -p /svn/project/repos
- 创建版本库
svnadmin create /svn/project/repos
- 以上命令执行完了之后就会在repos下创建多个文件
完成上面步骤后便是配置文件了
-
配置password
- [users]
- #harry=harryssecret
- #sally=sallyssecret
- hello=123
创建个简单的账号密码,账号:hello, 密码:123。
-
配置权限authz
- [/]
- hello=rw
这个其实还有其他配置,以后再详细更新介绍,这里是指定了hello用户 拥有对所有文件的读写操作
-
配置svnserve.conf
- [general]
- anon-access=none#使非授权用户无法访问
- auth-access=write#使授权用户有写权限
- password-db=/svn/project/repos/conf/passwd
- authz-db= /svn/project/repos/conf/authz #访问控制文件
必须在general目录下,采用默认配置. 以上语句都必须顶格写,去掉注释,左侧不能留空格,否则会出错。
总结下,完成上面的配置后,svn就可以使用了
- 启动svn #svnserve -d -r /svn
- 查看服务 #ps -ef|grep svn
- 关闭svn服务 #kill -9 pid
-
配置SVN服务器的http服务
因为svn密码为明文,http不支持明文.需要生成一个webpasswd文件
#cd /svn/project/repos/conf
#htpasswd webpasswd hello
执行完上述步骤后,便会多出一个webpasswd文件。
- 注意如果需要,多次加入用户,则用htpasswd -m
#htpasswd -m webpasswd hello2 -
配置Apache
#vim /etc/httpd/conf/httpd.conf
- <Location/svn>
- DAVsvn
- SVNPath/svn/project/repos/
- AuthTypeBasic
- AuthName"svnforproject"
- AuthUserFile/svn/project/repos/conf/webpasswd
- AuthzSVNAccessFile/svn/project/repos/conf/authz
- Satisfyall
- Requirevalid-user
- </Location>
启动http
#/etc/init.d/httpd restart
结果报如下错误
这是因为,系统没有安装mod_dav_svn,安装一下就可以了
#yum install mod_dav_svn
#yum install mod_authz_svn
#chmod -R o+rw /svn
//加下权限 不然用http访问会报 SVN Can’t open file ‘/XXX/xxx/db/txn-current-lock’错误
再启动下就可以了
访问http://IP/svn/ 就可以了,输入账号密码就OK了,客户端可以下在小乌龟。。。。
以上只是最简单的配置。。。还可以以设置https,还有与邮箱同步,数据库同步等等,以后有时间再慢慢研究。。。