如何部署基于SVN协议的Subversion?

Subversion

1 前言

1.1 需求和目的

公司要求引入版本管理服务器对两大对象进行管理:
1)针对windows环境的开发人员的源代码做版本控制。
2)针对linux服务器的配置文件做版本控制。
本章将使用svn协议的方式完成文件的版本控制。

1.2 系统架构模式描述

1)linux的服务器端
服务器端通过ssh协议提供版本控制服务(port:tcp3690)
2)windows的客户端
windows以开发者版本控制客户端的角色出现

2 理论部分

SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。

3 实践部分

3.1 主机信息

svnSer:
ipaddress=10.168.0.176
hostname=svnSer

windows Client:
ipaddress=10.168.0.x
hostname=will2

3.2 yum包的安装

In svnSer & Linux Client

yum -y install subversion

其他包安装:

yum -y install tree

3.3 linux服务端、客户端的配置

3.3.1 step1

In svnSer:
定义仓库文件夹:

svnadmin create /var/local/svn
ls /var/local/svn
tree /var/local/svn

注意”revprops”节点(版本控制内容)

3.3.2 step2

In svnSer:
定义权限控制(非必须)

ll /var/local/svn
groupadd -g 5000 svngroup
chgrp -R svngroup /var/local/svn
ll /var/local/svn/db/
chmod g+w -R /var/local/svn/db/
chmod o= -R /var/local/svn/db/
ll /var/local/svn/db/

定义只有svngroup组对“/var/local/svn/db/”有写的权限,其他用户没有任何权限

3.3.3 step3

In svnSer
启动服务和默认开机启动

/etc/init.d/svnserve restart

chkconfig svnserve on

3.3.4 step4

开启防火墙:

vim /etc/sysconfig/iptables

加入如下配置:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT

重启防火墙:

/etc/init.d/iptables restart

3.3.5 step5

In svnSer:

vim /var/local/svn/conf/svnserve.conf

修改如下配置:

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz

[sasl]

注:将anon-access修改为等于none

3.3.6 step6

In svnSer:
定义svn用户名和密码:

vim /var/local/svn/conf/passwd

加入如下配置:

user1 = passwd1
user2 = passwd2
user3 = passwd3
user4 = passwd4

注:密码可以是任意字符(引号等特殊字符符也一样,都被识别为密码的字符)

3.3.7 step7

In svnSer:
定义svn的组、组成员和目录的组权限:

vim /var/local/svn/conf/authz

配置定义如下:

[aliases]

[groups]
gp1_rw = user1,user2
gp1_r = user3

gp2_rw = user4
gp2_r =

[/]
@gp1_rw = rw
@gp1_r = r

[/dir2]
@gp2_rw = rw
@gp2_r = r
[groups]下定义组、组成员
[/]表是定义跟目录的权限
[/dir2]表是定义跟目录下的子目录dir2的权限
@组名=rw表是组有读写权限
@组名=r表是组只有读的权限

3.3.8 step8

In svnSer:
启动服务:

/etc/init.d/svnserve restart

3.4 windows客户端的配置

In windows Client:

3.4.1 step1

下载并安装svn
1)下载并安装
下载地址:
http://tortoisesvn.net/downloads.html
由于windowsn的安装都是无师自通,本教程省略。

3.4.2 step2

检出记录

如上图所示:
文件夹单击[SVN Checout]
填入检出路径:”svn://user1@10.168.0.176/var/local/svn/”
以上内容意义:
协议:svn://
用户名:user1
路径:10.168.0.176/var/local/svn/

如上图所示:
文件检出中……
———————————————————-
参阅资料:
yum安装方法:
http://subversion.apache.org/packages.html#centos
putty下载地址:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
windows与服务器的通讯设置:
http://wenku.baidu.com/link?url=Awhja8vSOiH5_1yNC15p6yfmsQ0ZqQYp8s1avx7rAR71jaX0YHgQQgRFc82IViuXgioyzTtfXp5PTeDnSrtGu1ceRTUuRn1GtCxPOPxnkAu
svn权限控制:
http://blog.csdn.net/jenminzhang/article/details/8665612
认证失败的解决方案:
http://blog.sina.com.cn/s/blog_4b93170a0100leb2.html
apache mod_dav_svn的使用方法:
http://www.uml.org.cn/pzgl/200908078.asp
备份和迁移:
http://www.iitshare.com/linux-svn-migration.html

没有评论

发表回复

Highly available
如何部署Subversion的双机热备?

1 前言 笔者公司需要一台svn服务器,但不幸的是公司给了一台破旧的服务器(本地用的,其他服务都跑在 …

Subversion
如何部署基于SVN+SSH协议的Subversion?

1 前言 1.1 需求和目的 公司要求引入版本管理服务器对两大对象进行管理: 1)针对windows …