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 Windows客户端下操作 Windows下使用TortoiseSVN工具来配置,官方网站:http://tortoisesvn.net/downloads.html