Ø SVN入门文档
Ø 1简介
入门文档包含工具下载,简历版本库,配置用户和基本权限,启动服务器4块功能.确保
学习者对SVN的了解和简单实用.
Subversion简称SVN是一个自由,开源版本管理工具,通过集中式版本管理系统确保由
不同人所编辑的同以文件都得到更新.svn通过文档控制记录程序各个模块的改动,并为每
次改动编上序号,确保可以获取不同版本文件.
SVN服务器有独立服务器和apache两种方式.存储版本有DB数据库中存放数据和普
通文件,采用自定义的格式来存储,称为FSFS两种方式.
TortoisSVN是Subversion版本控制系统的一个免费客户端.
SVN任何配置文件的有效配置行,都不允许存在前置空格.否则程序无法识别.
2准备工作
2.1 Subvserion服务器下载:
http://subversion.tigris.org/servlets/ProjectDocumentList 或
http://subversion.apache.org/packages.html
如果使用VisualSVN Serve服务器,查看下面地址信息
http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407979.html
2.2 Apache HTTP Server下载:
http://httpd.apache.org/download.cgi
2.3 TortoiseSVN客户单系在和汉化语言包下载
http://tortoisesvn.net/downloads.html
3建立服务器
3.1 Apache HTTP Server
3.1.1安装
3.1.2修改配置文件并测试
Apache HTTP Server出现下图情况
在浏览器中输入http://localhost:80/如果Apache HTTP Server运行正
常,浏览器页面会给予相应的提示.如果需要使用别的端口,在httpd.conf配置
中修改Listen 80 为Linsten port
3.1.3与SVN集成
现在安装完Apache HTTP Server.再安装Subversion后.需要整合Apache+Subversion
打开Apache安装目录下的httpd.cong文件.找到以下的语句:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将上面的的#去掉,再在它之后加入
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
也可以Subversion/bin/下的mod_dav_svn.so和mod_authz_svn.so复制到apache下的
modules/ 下,不过可能无效.
最后,在文件的最后追加以下语句.
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:/svn/password/apache_authz //存储认证信息的文件地址
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
建立版本库(查看3.2.1)
使用bin\htpasswd -c m passwd <username> 创建MD5加密密码的passwd文件名存储
用户名和密码(配置SVN环境变量或cd到SVN安装目录bin)后重新启动.在浏览器输
入http://localhost:80/SVN 要求输入登陆信息.,输入无误
3.1.4 SVN权限设置
修改3.1.3中代码如下:
<Location /svn>
DAV svn
SVNListParentPath on
SVNParentPath D:\SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile D:/svn/password/apache_password //存储认证信息的文件地址
AuthzSVNAccessFile “D:/svn/password/apache_authz” //设置目录权限
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
最后在apache_authz文件中设置权限(具体看3.2.2)
3.2 SVNServer 服务器
3.2.1建立版本库
<1>通过命令
svnadmin create d:/svnserver/url(版本库存储地址)
这种方式有2个注意点:1是如果没有svnadmin命令,就要配置环境变量
2是d盘中必须有svnserver文件夹
<2> TortoiseSVN工具创建
在你要创建的版本库文件下,右键create Repository here....然后会在文件下
创建一系列目录和文件.内容如下图.默认是db存放数据
3.2.2配置用户和基本权限
<1>修改conf/svnserve.config文件
原来配置:
[general]
#anon-access=nono
#auth-access=write
#password-db=passwd
anon-access=non为没验证用户没有任何权限.auth-access=write 已验证用户给予
写权限(目前前两种配置值只支持non,read,write.如果想写成write_read方式,只能修
改SVN源代码).password-db=password将密码存到passwd文件中authc-db=authc将
认证存到authc文件中.
<2>修改confg/passwd 文件
原来配置
[users]
#harry=harryssecret
#sally=sallyssecret
按照不要#格式建立自己的用户名和密码
3.2.3启动服务器
<1>手动启动
svnserve -d -r d:/svnserver/url(版本库存储地址) .输入命令后不能关闭窗口,关闭
窗口后SVN服务器就关闭啦.
<2>服务自动
将服务器注册成系统服务,subversion就会随电脑启动而启动.ApacheHTTP Server
已经写成服务,这主要针对SVNServer服务器
sc create subversion_service binPath=”F:/Office_Tool/Subversion/bin/vnserve.exe
- -service -r d:/svnserver/url” displayName=”Subversion Url” 执行后如下图:
上图可以输出services.msc查看,并操作服务状态已启动,并且启动类型为自动.
命令详情可以查看 sc create
Ø SVN进阶文档
1简介
是实际运用中项目目录本身作为版本库的一部分被SVN管理,所以我们无法利用操系
统控制访问权限来实现项目目录的访问权限,所以只能通过SVN本身来解决.在SVN1.3
之前比较复杂.1.3以后在svnserve.exe服务器里面访问权限功能.随着版本升级这里介绍
通过配置代码库配置文件,实现精细的目录访问权限控制.
2假设背景
2.1 SVN上文件目录如下图
3权限设置
设置权限前,先完成SVN入门文档中配置用户和基本权限的步骤.权限管理是遵从
用户-用户组-权限关系.用户组中有一系列文档权限.用户属于某用户组获取相应的权限.
用户与用户组和用户组与权限都是多对多关系.目录的权限具有继承和覆盖特性.比如父
目录设置读权限,那么子目录除明确设置权限外就具有西南文件夹相同权限;如子目录明
确设置权限,子目录将覆盖西父目录权限.SVN还有一重要规则:如果子目录只具有写权
限,必须保证父目录有读权限,子目录写权限才有效.
3.1在authz中建立用户组
[groups]
中国_USER=东南_USER,西北_USER,西南_USER
外国_USER =意大利_USER
其他_USER =火星_USER
3.2 在authz中建立权限设置
在 [groups]设置之后,可对具体文件与用户组建立权限关系.例如
[外国]
@中国_USER=r
@外国_USER=rw
*=
[外国]指文件夹路径,[中国/西南/云南]就是对云南文件夹进行设置.@中国_USER
表示用户组,r表示读权限,w表示写权限.*= 表示除本目录设置用户组成员外其余成
员禁止访问本目录.此配置不存在先后问题. 无论是*还是@中国_USER先配置,最终
@中国_USER具有r权限.
4外网访问SVN
5 SSL加密
Ø 引用资料
1 Subversion官方手册:http://www.subversion.org.cn/tsvndoc/