介绍
Apache Subversion(http://subversion.apache.org/):不用说太多,Apache基金会下的一个开源项目,很多企业用subversion作为项目代码的版本管理。虽然不像git那样可以真正的离线使用(主要还是架构设计的问题),但是贵在免费,哦不,是贵在开源,所以现在还是很多人都在用的。
iF.SVNAdmin(http://svnadmin.insanefactory.com/):一个基于WEB GUI的方式管理SVN,包括:repos管理、用户管理、用户组管理、权限管理等多种功能,底层也很简单,是通过修改Subversion authorization 和 user authorization 两个文件完成其管理功能(现不支持数据库user authorization的那种),整体使用下来给我的感觉就是两个字简单,从安装到配置到使用到架构,都很简单。
准备
操作系统:CentOS-6.5-64bit
版本管理:Subversion-1.6.11
管理软件:iF.SVNAdmin-1.6.2-stable
安装
1. 安装Apache
[plain] view plaincopyprint?
[root@developbase ~]# yum install httpd
2. 安装SVN
[plain] view plaincopyprint?
[root@developbase ~]# yum install mod_dav_svn subversion
3. 配置SVN
[plain] view plaincopyprint?
[root@developbase ~]# vim /etc/httpd/conf.d/subversion.conf
<Location /svn>
DAV svn
SVNParentPath /var/www/svn
AuthType Basic
AuthName "Restricted Access"
#File will be created by SVNManager, keep location in mind!
AuthUserFile /var/www/svnconfig/passwdfile
Require valid-user
#SSLRequireSSL
#File will be created by SVNManager, keep location in mind
AuthzSVNAccessFile /var/www/svnconfig/accessfile
# Limit write permission to list of valid users.
#<LimitExcept GET PROPFIND OPTIONS REPORT>
# # Require SSL connection for password protection.
# # SSLRequireSSL
# AuthType Basic
# AuthName "Authorization Realm"
# AuthUserFile /path/to/passwdfile
# Require valid-user
#</LimitExcept>
</Location>
4. 创建存放repo目录和权限信息目录
[plain] view plaincopyprint?
[root@developbase ~]# mkdir -p /var/www/svn /var/www/svnconfig
5. 创建SVN权限信息文件
[plain] view plaincopyprint?
[root@developbase ~]# touch /var/www/svnconfig/accessfile /var/www/svnconfig/passwdfile
/var/www/svnconfig/accessfile:控制用户&用户组读写(r/w)权限使用
/var/www/svnconfig/passwdfile:控制用户信息
6. 安装php
iF.SVNAdmin是用php写的,所以php必须安装。
[plain] view plaincopyprint?
[root@developbase conf.d]# yum install php
7. 下载SVNAdmin
地址:http://sourceforge.net/projects/ifsvnadmin/files/svnadmin-1.6.2.zip/download
8. 解压SVNAdmin
[plain] view plaincopyprint?
[root@developbase ~]# unzip svnadmin-1.6.2.zip
[root@developbase ~]# cd iF.SVNAdmin-stable-1.6.2/
[root@developbase iF.SVNAdmin-stable-1.6.2]# ll
总用量 168
-rw-r--r--. 1 root root 1482 8月 29 2013 accesspathcreate.php
-rw-r--r--. 1 root root 2518 8月 29 2013 accesspathslist.php
-rw-r--r--. 1 root root 2521 8月 29 2013 accesspathview.php
drwxr-xr-x. 2 root root 4096 8月 29 2013 actions
drwxr-xr-x. 5 root root 4096 8月 29 2013 classes
-rw-r--r--. 1 root root 2557 8月 29 2013 cli.php
drwxr-xr-x. 2 root root 4096 8月 29 2013 data
-rw-r--r--. 1 root root 1280 8月 29 2013 error.php
-rw-r--r--. 1 root root 1061 8月 29 2013 groupcreate.php
-rw-r--r--. 1 root root 1250 8月 29 2013 grouplist.php
-rw-r--r--. 1 root root 2828 8月 29 2013 groupview.php
drwxr-xr-x. 3 root root 4096 8月 29 2013 include
-rw-r--r--. 1 root root 1193 8月 29 2013 index.php
-rw-r--r--. 1 root root 18092 8月 29 2013 license.txt
-rw-r--r--. 1 root root 1324 8月 29 2013 login.php
-rw-r--r--. 1 root root 991 8月 29 2013 logout.php
drwxr-xr-x. 10 root root 4096 8月 29 2013 pages
-rw-r--r--. 1 root root 2541 8月 29 2013 permissionassign.php
-rw-r--r--. 1 root root 735 8月 29 2013 readme.md
-rw-r--r--. 1 root root 1259 8月 29 2013 repositorycreate.php
-rw-r--r--. 1 root root 2362 8月 29 2013 repositorylist.php
-rw-r--r--. 1 root root 3306 8月 29 2013 repositoryview.php
-rw-r--r--. 1 root root 402 8月 29 2013 rolelist.php
-rw-r--r--. 1 root root 21318 8月 29 2013 settings.php
drwxr-xr-x. 5 root root 4096 8月 29 2013 templates
drwxr-xr-x. 5 root root 4096 8月 29 2013 translations
-rw-r--r--. 1 root root 1173 8月 29 2013 update.php
-rw-r--r--. 1 root root 815 8月 29 2013 userchangepass.php
-rw-r--r--. 1 root root 1076 8月 29 2013 usercreate.php
-rw-r--r--. 1 root root 1937 8月 29 2013 usergroupassign.php
-rw-r--r--. 1 root root 1733 8月 29 2013 userlist.php
-rw-r--r--. 1 root root 4806 8月 29 2013 userview.php
9. 拷贝项目到WebServer目录中
[plain] view plaincopyprint?
[root@developbase ~]# cp -r iF.SVNAdmin-stable-1.6.2/ /var/www/html/svnadmin
10. 赋权
赋给web server用户读写项目权限
[plain] view plaincopyprint?
[root@developbase ~]# chmod -R 777 /var/www/html/svnadmin/data/
[root@developbase ~]# chown -R apache:apache /var/www/html/svnadmin/
11. 启动WebServer服务
[plain] view plaincopyprint?
[root@developbase ~]# service httpd restart
启动webserver服务后,浏览器地址输入http://servername/svnadmin出现配置界面,输入下图中配置信息,输入每个配置信息可以点击旁边的Test测试是否输入正确
输入完成后点击Save configuration。提示默认账户admin/admin
使用默认账户admin登录后,可以查看版本信息等。
点击Repositories并选择Add,创建一个repo
输入需要创建的repo名称,其他默认即可,然后点击Create,创建完成repo后,点击Access-Paths添加权限
赋予admin 读写权限
通过http://servername/svn/reponame,使用admin账户进入刚刚建立完成的repo
之后就可以通过svn客户端checkout或者import代码进行版本管理了。谢谢大家
转载请注明出处:http://write.blog.csdn.net/postedit/22666981 谢谢
参考资料:
http://wiki.centos.org/HowTos/Subversion
http://svnadmin.insanefactory.com/documentation/