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

linux服务器SVN部署方案_服务器

出现以上信息,说明安装成功!

 

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、  防火墙中开放SVN3690 端口:

#/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

 

linux服务器SVN部署方案_服务器_02

停止SVN服务器:killall svnserve kill -9 PID


6、  连接SVN

建议采用TortoiseSVN,连接时最好都养成习惯带端口访问

 

SVN连接地址为

svn://192.168.1.16:3690

连接后可以上传本地的文件,有效的管理你的代码。

 

备注:

svn有两种存储方式:BDBFSFS,目前用的最多的是FSFS方式,这种方式的话,一般是存储在\db\revs文件夹下,里面有一堆以版本号命名的文件,如:01234......,那个就是了。

 

svn先把0版本的状态压缩成1个文件,然后每次版本更新时就针对变动的部分做一个压缩文件,每次都是增加一个增量包,最后在服务器上能看到文件名为从0开始到最终版本的一系列文件