SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。也是就是CVS的接班人!
CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护。但是由于之前CVS编码的问题,现在大多数软件开发公司都使用SVN替代了
CVS。
官方网站:http://subversion.apache.org/
Windows客户端 TortoiseSVN:http://tortoisesvn.net/
SVN的运行方式及端口
独立服务器 3690端口 访问方式SVN:// C/S模式
借助apache运行 80端口 访问方式 http://
实战:
服务端:Centos_65 客户端:Centos_67 windows7客户端
软件安装:
[root@Cent65 ~]# yum install -y subversion httpd mod_dav_svn
//包括HTTP所需模块一起装
创建版本库目录
[root@Cent65 ~]# mkdir /webdept
//存放版本库的主目录
创建版本库
[root@Cent65 ~]# svnadmin create /webdept/www.xuegod.cn
[root@Cent65 ~]# svnadmin create /webdept/www.godxue.cn
//创建了两个版本库
[root@Cent65 ~]# ls /webdept/www.xuegod.cn/ 查看版本库
conf db format hooks locks README.txt
dav目录:是提供apache与mod_dav_svn使用的目录,让他们存储内部数据,刚开始新建时此目录没有
db目录:就是所有版本控制的数据存放文件
hooks目录:放置hook脚本文件的目录
locks目录:用来放置subversion监控锁定数据的目录,用来追踪存取文件库的客户端
format文件:是一个文本文件,里面只放了一个整数。表示当前文件库配置的版本号
conf目录:是这个仓库的配置文件(仓库的用户访问账号、权限等),也是我们要关注的配置文件
[root@Cent65 ~]# ls /webdept/www.xuegod.cn/conf/
authz passwd svnserve.conf
authz #认证权限相关
passwd #用户名和密码
svnserve.conf #服务器配置文件
针对不同版本库修改配置文件
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/svnserve.conf
[general]
anon-access = read #原先注释掉了,匿名用户可以读,使用none的话就是匿名用户不可以访问
auth-access = write #这几行都要取消注释,认证用户可以写,可以是read,write,none
password-db = passwd #密码库文件,默认使用的是同一目录下的passwd文件作为用户密码库
authz-db = authz #认证权限文件
realm = www.xuegod.cn #登陆提示信息
注意:此配置文件的所有内容必须顶格,否则会报错
配置用户和密码及认证权限
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/passwd
Make =123456
CAT =123456
top =123456
#末尾添加上面三行
[root@Cent65 ~]# vim /webdept/www.xuegod.cn/conf/authz
[groups] #此行默认存在了
Check = Make,CAT #定义组,在[groups]下面添加
#用户组格式 用户组名 = 用户1,用户2
#一个组可以包含多个用户,英文逗号间隔,用户名必须是在passwd中存在的
[/] #/表示我当前所在版本库目录,这里代表www.xuegod.cn
top = rw
@Check = r #@Check表示这个组的权限,就是上面定义的组的成员
*= #除了上面的有赋予权限成员之外,其他的成员都没有权限

SVN目录格式:
[/目录名]
@用户组名 =权限
用户名 =权限
*=
[root@Cent65 ~]# svnserve -d -r /webdept/
//启动了所有版本库,如果只需要某一个版本库,在-r
后面添加/webdept/www.xuegod.cn/的版本库即可 -d=daemon -r=root of directory of save指定根目录
使用svn导入测试代码
导入测试代码格式: svn [选项] 源码 svn://server ip/项目名
常见的选项:
import:将未版本化的文件纳入版本控制并提交
checkout:从版本库中检出一个修订版
update:更新工作拷贝
add,delete,copy,move:增、删、复制、移动文件或目录
在Centos_67客户端:
安装svn客户端:
[root@cent67 ~]# yum -y install subversion
[root@cent67 ~]# mkdir localsvn
[root@cent67 ~]# cd localsvn;touch 1.html 2.html ; cd
[root@cent67 ~]# svn import localsvn/ svn://192.168.1.65/www.xuegod.cn/ -m "first edit"
//本地导入代码,使用file,仅仅能在服务器本地导入, -m=messages,类似注释,首次加入代码使用import
代码取出
[root@cent67 ~]# svn checkout svn://192.168.1.65/www.xuegod.cn/ downsource
认证领域: <svn://192.168.1.65:3690> 203b6e00-f811-402e-88c7-02fc7069f0a4
“top”的密码:


注意! 你的密码,对于认证域:

<svn://192.168.1.65:3690> 203b6e00-f811-402e-88c7-02fc7069f0a4

只能明文保存在磁盘上! 如果可能的话,请考虑配置你的系统,让 Subversion
可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,
来避免再次出现此警告。

保存未加密的密码(yes/no)?no
A downsource/1.html
A downsource/2.html
取出版本 1。
配置apache支持svn
[root@Cent65 ~]# vim /etc/httpd/conf.d/subversion.conf
//末尾添加这些行
<Location /webdept>
DAV svn
SVNParentPath /webdept #svn根目录
AuthType Basic #Basic认证方式
AuthName "www.xuegod.cn website Dept" #认证显示信息,提示信息
AuthUserFile /webdept/svn/passwd #用户密码文件
AuthzSVNAccessFile /webdept/svn/authz #访问控制权限文件
Require valid-user #要求正式用户,不能匿名
</Location>
要把注释删除掉
创建用户passwd文件
[root@Cent65 ~]# mkdir /webdept/svn/
[root@Cent65 ~]# htpasswd -c /webdept/svn/passwd webuser
//第一次用c,创建,第二次就不用
[root@Cent65 ~]# htpasswd /webdept/svn/passwd userweb
//不能用-c,否则会覆盖webuser
[root@Cent65 ~]# htpasswd /webdept/svn/passwd userhh
[root@Cent65 ~]# cat /webdept/svn/passwd
webuser:ukukbxpE2OG6g
userweb:SLeiQfpWvYyZ6
userhh:XhDx6u./RtpAk
创建权限authz文件
[root@Cent65 ~]# vim /webdept/svn/authz
//创建权限控制文件
[groups]
all = webuser,userweb
[/] #“/”表示所有仓库的跟目录下
webuser = rw
[www.xuegod.cn:/] #第一个仓库,webuser和userweb可以读写
@all = rw
[www.godxue.cn:/] #第二个仓库目录,userweb和userhh可以读写
userweb = rw
userhh = rw
删除掉注释
webuser用户可以读取www.xuegod.cn,userhh不可读取
userweb可以读取www.godxue.cn,webuser不可以
启动服务测试
[root@Cent65 ~]# service httpd restart
SVN+Apache服务器搭建
SVN+Apache服务器搭建
Windows客户端下操作
Windows下使用TortoiseSVN工具来配置,官方网站:http://tortoisesvn.net/downloads.html
SVN+Apache服务器搭建
SVN+Apache服务器搭建