SVN服务器部署方案
以下是具体步骤:
1、 安装SVN,由于源码安装会存在版本兼容问题,所以直接采用yum方式安装
查看是否已有svn,有的话先卸载
# rpm -qa |grepsubversion
subversion-1.6.11-10.el6_5.x86_64
卸载原有的
# yum remove subversion
接着安装
#yum -y install subversion
判断是否安装成功
# svnserve –version
出现以上信息,说明安装成功!
2、建立SVN库
# mkdir-p /data/svn/repos
# svnadmin create /data/svn/repos/
执行上面的命令后,自动在repos下建立多个文件, 分别是conf, db,format,hooks, locks, README.txt。
3、配置SVN
进入上面生成的文件夹conf下,进行配置,有以下几个文件authz, passwd, svnserve.conf 其中authz 是权限控制,可以设置哪些用户可以访问哪些目录, passwd是设置用户和密码的, svnserve是设置svn相关的操作。
# cd/data/svn/repos/conf/
3.1 先配置password,添加SVN的用户和密码,在[users]节点下面增加以下内容
user1=password1
user2=password2
user3=password3
user4=password4
3.2 再设置权限authz
# vim./authz
[/]
user1=rw
user2=rw
user3=rw
user4=rw
3.3 最后设置svnserv.conf
# vim ./svnserve.conf
anon-access= none # 使非授权用户无法访问
auth-access= write # 使授权用户有写权限
password-db= password # 用户密码文件
authz-db= authz # 访问控制文件
realm =Project name # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
采用默认配置。 以上语句都必须顶格写, 左侧不能留空格, 否则会出错。
到此为止,SVN就搭建完毕,可以使用了!
4、 防火墙中开放SVN的3690 端口:
#/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
#/sbin/service iptables save
或
# vi/etc/sysconfig/iptables
-A INPUT-m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
# serviceiptables restart
5、 SVN服务的启动与关闭
启动命令:
#svnserve -d -r /opt/svn/repos --listen-host 192.168.1.16 --listen-port 6666
其中-d指定SVN的启动模式,表示以daemon模式启动,使SVN在后台运行,-r指定服务器的根目录,--listen-host指定服务器IP(服务器多IP时使用),--listen-port指定端口(有SVN在运行时另起端口开启SVN服务时使用)
对于单个代码仓库,直接用以下命令启动即可
#svnserve -d -r /opt/svn/repos
# lsof-i:3690
停止SVN服务器:killall svnserve 或 kill -9 PID
6、 连接SVN
建议采用TortoiseSVN,连接时最好都养成习惯带端口访问
SVN连接地址为
svn://192.168.1.16:3690
连接后可以上传本地的文件,有效的管理你的代码。
备注:
svn有两种存储方式:BDB和FSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:0、1、2、3、4......,那个就是了。
svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件