Subversion是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件,其中包括程序源码。
它的初始目标很明确,实现绝大部分CVS的已有功能;充分考虑现有的CVS用户,在使用方式上模仿CVS,同时开发了一系列工具,使得基于CVS的项目能够顺利迁移到Subversion上。和CVS相比,它有很多优点,例如目录版本控制、不可分割的提交、一致的数据处理方式和更有效率的分支与标记等。。。
Subversion有两种运行方式,一种是基于Apache Http Server,另外一种是Subversion Standalone Server。下面我讲解的是基于Apache Http Server的Subversion,这样做几个好处:A.能使用WebDAV协议。B.能使用浏览器作为客户端工具浏览源码仓库。C.可以很容易的支持到SSPI(Windows域认证)和LDAP(AD?),这些都是Apache本身就支持的。D.能得到比较完善的Apache安全认证系统,比如SSL加密连接。
安装Subversion:
1.到www.apache.org上下载apache http server,注意要下载2.0.X以上的版本(但是不能是2.2.X版本的,SVN1.4系列的不能和2.2系列结合),否则不能和当前最新的Subversion工作。
2.到http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91上下载Subversion当前1.4.5版本的二进制安装文件,一般tigris.org并不提供二进制包,这些二进制包是有一些志愿者维护的,所以可能不是当前最新的版本。如果你想尝鲜使用Subversion的最新版,请下载源码自己编译。
3.安装apache http server
4.安装Subversion
5.检查$\apache group\apache2\modules下是不是已经有了mod_dav_svn.so和mod_authz_svn.so
6.检查$\apache group\apache2\modules下是不是已经有了libdb42.dll。
7.搜索$\apache group\apache2\conf\httpd.conf配置文件中的#LoadModule dav_fs_module modules/mod_dav_fs.so和LoadModule dav_module modules/mod_dav.so,把前面的注释#去掉;并检查LoadModule配置节的末尾是不是有了LoadModule dav_svn_module modules/mod_dav_svn.so和LoadModule authz_svn_module modules/mod_authz_svn.so
注意,请先安装Apache,然后再安装Subversion,这样上述5,6,7步骤都可以免了,在安装Subversion过程中它会自动拷贝相应文件到相应目录中,并且修改http.conf文件,然后重新启动apache服务使修改生效。但是我发现现在这个版本的Subversion安装文件可能有个bug,apache的http.conf的配置文件中#LoadModule dav_fs_module modules/mod_dav_fs.so注释没有去掉,所以大家还是小心检查一下。如果你是先安装的Subversion,然后再安装的Apache的,那么上述的步骤一个也不能漏,都需要自己手动完成。
配置Subversion:
1.在硬盘上建立源码库的根目录,例如F:\SVN
2.在E:\SVN之下建立一个新的目录,例如SVN作为我们的测试源码库
3.建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB( Berkeley Database)。在命令行下输入svnadmin create --fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:\SVN\),在命令行下输入svnadmin create --fs-type fsfs TestRepository建立FSFS格式的数据库(确保当前目录已经切换到E:\SVN\)。建好数据库以后,到E:\SVN\TestRepository下看看是不是多了很多目录和文件,可以研究一下这些文件,对理解Subversion有帮助,但是不要试图直接修改这些文件!
4.打开$\apache group\apache2\conf\httpd.conf配置文件,在文件的末尾加入以下语句,
<Location /svn>
DAV svn
SVNParentPath "F:\svn"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "C:\Program Files\Apache Group\Apache2\bin\passwd"
AuthzSVNAccessFile "C:\Program Files\Apache Group\Apache2\bin\svnaccessfile"
Require valid-user
</Location>
这里建立了一个虚拟目录http://yourServer/svn/,所有的Subversion源码仓库都在这个虚拟目录中,并且使用“passwd”文件中username/password(用户名/密码)列表访问http://yourServer/svn/。关于Subversion的安全配置是一个比较重要的部分,我会留到下次配置SSL加密连接再讲。
5.在命令行下切换到$\apache group\apache2,执行bin\htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如shenmin。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin\htpasswd passwd <username>即可。
6.重启Apache服务
7.在浏览器地址栏中输入 http://YourServer/svn/TestRepository,输入用户名密码,ok。Subversion现在已经可以正常工作了。
今天接着昨天的内容讲Subversion的安全配置。在上一讲中我们在Apache的httpd.conf文件里加入了这样一节:
<Location /svn>
DAV svn
SVNParentPath "F:\svn"
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile "C:\Program Files\Apache Group\Apache2\bin\passwd"
AuthzSVNAccessFile "C:\Program Files\Apache Group\Apache2\bin\svnaccessfile"
Require valid-user
</Location>
下面我来解释一下这些配置信息用途:
<Location /svn>
|
说明我们所有的代码仓库在/svn这个虚拟目录下
|
DAV svn
|
说明Apache会使用svn这个module来解析这个虚拟目录
|
SVNParentPath e:\SVN
|
说明所有的代码仓库都在本地硬盘的e:\SVN下
|
AuthType Basic
|
使用最基本的认证校验,用户名/密码
|
AuthName "Subversion repositories"
|
说明在认证对话框弹出的时候,对话框的标题显示,你可以把它修改成你想要的任何提示信息,比如:AuthName "Warning"等等
|
AuthUserFile passwd
|
说明我们使用的access list文件的名字,在上一讲中我们建立的文件名字是passwd,所以这里是passwd。如果你建立的文件名字是其他的,这里要作相应的改动
|
AuthzSVNAccessFile
|
说明svn自己控制的access list文件,这个文件很重要,可以丰富svn的安全配置,在下面会讲到
|
Require valid-user
|
说明只有输入正确的用户名/密码才能访问
|
上述的配置只能是最简单的安全配置,如果你想拥有更强大的安全配置,就需要加入一些东西了。比如:
- 如果你想让所有的匿名用户能访问代码仓库,对某些特定用户才开放可写的权限,则需要把
Require valid-user
改成
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
- 如果你对于代码仓库里面某些目录还有更细致的访问控制,只用passwd就没办法啦,这个时候我们就需要AuthzSVNAccessFile文件了,去掉#AuthzSVNAccessFile svnaccessfile这一行前面的注释。Apache首先会使用passwd校验用户名和密码,然后会认证信息传给Subversion的AuthzSVNAccessFile模块,由这个模块作更进一步的权限控制。首先我们来新建一个文件svnaccessfile,内容如下:
[groups]
developers = shenmin
docs = shenrui
#to allow everyone read access
[/]
* = r
#allow all developers complete access
@developers = rw
#give the doc people write access to the docs folder
[test:/]
@docs = r
@developers = rw
- 首先我们定义了两个group,一个是developer,代表开发组,另外一个是docs,代表文档撰写组,然后
[/]
* = r
意思是对于所有的用户开放可读的权限。注意这里的[/],表示是对根目录下的所有代码仓库赋予权限。接着是
@developers = rw
[test:/]
@docs=rw 这这里的@应该代表的是group的意思(这个还没有确认,是我自己猜测的,因为如果是直接给单一用户赋予权限,则不需要前面的@,注意这里对于docs这个组,我们一样指定了目录路径,而不是对于整个代码仓库。
这里再说说SVNParentPath,配置了SVNParentPath,以后每次在根目录下面加入新的repository就不需要再重新配置Subversion和Apache了,自动获取了根目录的配置信息,很方便。然而这也引发了另外一个问题,当你在浏览器地址栏里输入http://youserver/svn/的时候,服务器会报错,提示你没有权限访问访问这个url,我们想要的效果是浏览到这个url时能够把根目录下的所有的repository列出来。完成这个工作需要写点代码了,使用的工具可以是很多,这里使用php,当然我想用perl或者python一定是没有问题。首先要安装php,使apache支持php。
分享到:
相关推荐
总结来说,Trac+SSPI+SVN+Apache的集成实现了Windows域环境下的版本控制和项目管理,通过Apache提供Web访问,SSPI模块处理域认证,而Trac作为SVN的前端,提供了一个直观的用户界面和强大的项目管理功能。这种集成...
总结起来,Apache+SVN的配置提供了一种安全且便捷的版本控制系统,结合PHP和MySQL,可以实现动态网站的代码版本管理。TortoiseSVN作为客户端,使得日常开发中的版本控制操作更为直观,而SVNManager则为管理员提供了...
### SVN+Linux+Apache配置详解 #### 一、前言 在进行软件开发的过程中,版本控制系统扮演着极其重要的角色。Subversion(简称SVN)作为一款广泛应用的版本控制系统,在团队协作开发中尤其不可或缺。本文旨在详细...
【Apache+SVN+Trac】是一个常见的项目管理和版本控制系统组合,主要用于软件开发团队协作。Apache 作为Web服务器,Subversion (SVN) 提供版本控制功能,而 Trac 则是一个集成的项目管理工具,提供了缺陷跟踪、文档...
本标签列出了与 SVN 版本管理系统安装相关的关键词,包括开发工具、apache、SVN 版本管理系统、SVN 和 SVN 版本管理等。 主要内容解释 1. 安装 CentOS 安装 CentOS 是 SVN 版本管理系统的基础操作系统,本文档未...
总结来说,Jenkins+Maven+SVN+Tomcat的持续集成方案,能够简化网站部署流程,降低错误率,提高团队协作效率。通过自动化,开发者可以更快地获得反馈,及时修复问题,从而加速产品的迭代和发布。在实践中,不断优化...
### Windows 下配置 Apache + SVN + Trac 的方法详解 #### 一、背景介绍 在进行软件开发的过程中,项目管理和版本控制是非常重要的环节。为了更好地管理项目中的问题追踪、代码版本控制以及文档协作等功能,通常会...
#### 一、Apache+SVN 安装与配置 ##### 1. 安装 Apache 2.2.9 在安装 Apache 之前,请确保你的计算机运行的是 Windows 2000、Windows XP SP1 或 Windows 2003。你需要从 Apache 官方网站下载 2.2.9 版本的 Apache ...
### Windows 下 Apache+SVN+Trac 安装与配置详解 #### 一、准备工作 在开始集成 Apache、Subversion (SVN) 和 Trac 的过程中,首先要准备好所需的软件。 1. **Apache HTTP Server** - **官网**: ...
总结,Apache、Subversion和Trac的集成提供了一套强大的协作开发环境。正确安装和配置这三个工具,将使团队能够高效地管理代码版本,跟踪项目进度,并进行有效的沟通和问题解决。这个过程中可能涉及到的文件包括...
总结来说,CentOS上Apache和Subversion的安装涉及下载源码、安装依赖、编译安装软件、配置Apache以支持SVN以及创建和配置版本库。整个过程需要对Linux系统、Apache服务器以及Subversion有一定了解,但遵循上述步骤,...
### Apache+SVN+Trac 搭建项目管理服务器的安装与配置详解 #### 一、概述 本文档详细介绍了如何在Windows Vista环境下搭建一套完整的项目管理服务器,包括Apache Web服务器、Subversion (SVN) 版本控制系统以及Trac...
### SVN和Apache的安装与配置 #### 一、概述 版本控制系统在软件开发过程中起着至关重要的作用。Subversion(SVN)作为一种集中式的版本控制系统,广泛应用于项目管理中。而Apache作为一款强大的Web服务器软件,...
总结来说,SVN+ant的组合提供了一种强大的代码管理和自动化构建解决方案。SVN帮助团队协作并追踪代码变更,而Ant则通过XML脚本实现了编译、打包等任务的自动化。通过合理配置build.xml和build.properties,你可以...
总结,配置Subversion 1.6.6 + Apache 2.2.14 + TortoiseSVN 1.6.6的关键步骤包括安装Subversion服务器组件,配置Apache的`httpd.conf`以启用DAV和SVN支持,创建用户认证文件,以及安装TortoiseSVN客户端。...