本节向大家简单介绍一下版本控制工具SVN:Subversion的相关内容,在学习SVN的过程中,它可以在多个操作系统中搭建,版本更新也越来越快。目前版本控制工具SVN最新版本是1.6.6,包含了Apache服务2.213,安装的时候默认一同安装,客户端使用TortoiseSVN-1.6.6。
软件在网上都可以免费下载,作为新手这里介绍一下我的版本控制工具SVN配置过程。
1、基本配置
1)、安装完成在浏览器输入http://localhost打开的网页显示“Itworks”表示Apache与SVN整合完成;
2)、发现安装完成之后无需重启电脑即可启动Apache服务;
3)、修改配置文件,即安装路径conf目录下的httpd.conf文件,发现mod_dav.so已经默认注册,只需打开mod_dav_fs.so前面的注释标记即可(大概在文件的85行左右);
4)、在指定版本库根目录下创建一个库,比如repo1;
5)、打开浏览器,输入地址:http://localhost/svn/repo1,这时应该能看到“repo1-Revision0:/”。
2、配置权限
版本控制工具SVN中配置权限问题。权限配置这里分为两种,一种是用户认证,一种是访问权限。在安装路径下的conf目录下的httpd.conf文件中注册Subversion浏览库和权限控制modules:
LoadModuledav_svn_modules/mod_dav_svn.so
LoadModuleauthz_svn_modules/mod_authz_svn.so
注意:mod_dav_fs.so和mod_dav.so必须被打开(前面基本配置的时候已经打开),且必须在mod_dav_svn.so和mod_authz_svn.so之前(可以将这两项放在所有dav之后)。
在进行权限配置之前,配置文件的最后一段如下所示:
DAVsvn
SVNParentPathd:\svn_repository
1)、版本控制工具SVN身份认证配置
在配置文件最后的location段加入:AuthUserFile(path)/passwd
passwd文件中包含对访问版本库的用户的管理,即所有用户及其密码。该文件就是一个文本格式的文件,可以任意编辑。如果密码未加密则内容如下所示
coyoo:123
tom:456
表示该文件中管理了两个用户coyoo和tom,他们的访问密码分别是123和456。如果要为用户创建不透明的密码,可以使用Apache的htpass命令,操作如下
打开命令行(DOS窗口CMD),将当前目录切换到apache2目录(通常为安装路径\httpd\bin),
输入命令:htpasswd.exe-cpasswdcoyoo
回车后在命令行提示以下内容,需要你两次输入为该用户创建的密码
AutomaticallyusingMD5format.
Newpassword:******(输入密码)
Re-typenewpassword:******
Addingpasswordforusercoyoo
这样就创建了一个passwd文件,并且有一个用户,即coyoo,他的密码已被加密。这里要注意的是在开始创建passwd文件的时候如果事先文件不存在需要使用“-c”参数,即表示初次创建密码文件;之后如果要添加其他用户则执行相同命令但不能再带此参数,否则即新建密码文件,密码加密以后如下所示:
coyoo:$apr1$enD0V98v$5hW6vOa9RnTfYIFnFXxIK.将密码文件放在版本库根目录下即可。
2)、版本控制工具SVN访问权限配置
同样在配置文件最后的location段加入:AuthzSVNAccessFile(path)/authz
文件authz跟passwd一样属于文本文件,可以任意编辑,该文件一般包括两部分内容:
一部分是以[groups]定义开始的用户组,比如
[groups]
dev1=coyoo
dev2=tom,jacky
上面定义了两组用户即dev1和dev2。
另外一部分内容是对各个路径分配给用户以不同的访问权限,比如:
[\]
*=r
[\svn\svn_repository\prj1]
@dev1=rw
@dev2=r
[\svn\svn_repository\prj2]
@dev1=rw
tom=rw
jacky=r
以上对3个路径进行了访问权限配置,跟路径所有用户有读的权限,prj1对于dev1用户组有读写权限,而对用户组dev2只有读权限,prj2对于用户组dev1有读写权限,而对于用户tom有读写权限,jacky只有读的权限。注意关键字“@”代表组。
经过权限配置后,配置文件最后一段location就如下所示:#配置虚拟目录,表示访问配置库的url为:http://xxx.xxx.xxx/SVN
- <Location/svn>
- #引用远程访问模块,告诉Apache哪个模块负责服务像那样的URL
- DAVsvn
- #配置版本库路径
- SVNParentPathd:\svn_repository
- #验证方式,启用基本的验证,用户名/密码验证
- AuthTypeBasic
- #项目的名称,当一个验证对话框弹出时,告诉用户这个验证是用来做什么的
- AuthName"SubversionRepository"
- #用户身份认证文件
- AuthUserFile"d:\svn_repository\passwd"
- #授权文件,指定authz来限定各个用户或组在版本库中目录的访问权限
- AuthzSVNAccessFile"d:\svn_repository\authz.txt"
- #只允许https方式访问
- #SSLRequireSSL
- #所有用户都需要身份验证,禁止匿名访问
- Requirevalid-user
- #允许匿名访问
- #SatisfyAny
- #为了让页面好看,Subersion自带或者用户自制的XSLT样式表
- SVNIndexXSLT"\svnindex.xsl"
- #允许访问/svn目录
- #SVNListParentPathon
- < span>Location>
本节关于版本控制工具SVN的介绍完毕,请关注本节其他相关报道。
【编辑推荐】