SVN最常见的配置模式便是与Apache集成,这样SVN可以采用WebDev协议方式提供服务。主要的好处有:通过Apache以HTTP方式穿透防火墙,便于在互联网环境使用;提供目录的版本控制;纯2进制的文件对比方式等。下面将介绍如何将SVN集成在Apache上。
一、准备工作:
1. 下载软件:
(1) SVN服务器端程序。到官方网站的下载二进制安装文件,来到二进制包下载部分 ,找到 Windows NT, 2000, XP and 2003部分,然后选择"this directory",这样我们可以看到许多下载的内容,目前可以下载 svn-1.2.3-setup.exe。
(2) TortoiseSVN,客户端程序。TortoiseSVN是扩展Windows Shell的一套工具,可以看作Windows资源管理器的插件,安装之后Windows就可以识别Subversion的工作目录。
官方网站是TortoiseSVN,下载方式和前面的svn服务器类似,在Download页面的我们选择Official version for Win2k/XP or higher的版本,然后在sourceforge的下载页面选择目前的最高稳定版本的安装文件TortoiseSVN-1.2.5.4719-svn- 1.2.3.msi。(注意:TortoiseSVN有一个特殊对VS.Net运行时一个BUG修正的版本,在下载页面有选择:Special version for Win2k/XP or higher: (We provide NO support for this!) uses _svn folders instead of .svn to work around the VS.NET bug with web projects. If you don't use web projects then please use the official version. )
(3) TortoiseSVN的中文语言包,注意这个需要下和客户端程序版本相同的。可以在Download页面内的Language Packs选择下载。
(4) Apache服务器程序。可以到Apache官方网站下载最新版本的Apache,并且SVN必须运行在Apache2以上版本,在下载页面选择Windows的安装包文件apache_2.0.55-win32-x86-no_ssl.msi
(5) AnkhSVN,可选安装VS.Net的SVN插件。有0.5和0.6版本选择,0.6版支持VS2005 Beta2,下载页面。
2. 停止IIS,因为Apache默认安装为80端口,需要关闭IIS避免端口冲突。可以在安装好之后再调整端口。
二、开始安装:
1. 先安装Apache服务器。在到填写ServerInfo的时候,若机器已经启用了AD,安装程序会自动填写,否则自己手动填写。安装完成之后到安装目录下找到conf目录下的httpd.config文件,搜索Listen,并将Listen后面的80改为8080(或者你希望的端口),然后重新启动 Apache服务器,这时可以用http://localhost:8080 来测试是否安装正确。
2. 再安装SVN服务器,没有什么好说的,一路回车就可以了。(安装SVN时,请确保Apache服务器正在运行状态,安装过程中可能会将Apache关闭,重新启动属于正常现象)
三、配置Apache服务器与SVN集成:
1. 首先将Subversion安装目录bin下面的两个文件:mod_authz_svn.so和mod_dav_svn.so复制到Apache安装目录modules目录下。
2. 有些文章说需要再修改httpd.conf,并做如下修改:
找到Apache安装目录下的conf目录,用文本编辑器打开httpd.conf,找到一下两行:
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
将每行前面的注释符“#”去掉。再在所有LoadModule语句的最后添加一下几行:
#SVN
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
但是我安装完之后发现这个文件已经被做了那些修改,大概是新版的SVN安装程序做了一些优化吧。其实在成功安装SVN之后,Apache服务器已经和SVN初步集成。如图:
注意下面的状态栏已经是Apache/2.0.55 SVN1.2.3 DAV/2
# 建立一个SVN存放文件的目录,我在F盘下创建一个文件夹:F:/SubversionFiles
# 接下来我们必须告诉Apache我们的资源库所在的路径,可以通过Location指令来完成这个设置。因为不希望为每个单独的项目都进行单独的设置,所以我们把所有项目都存放在统一的资源库目录,那么可以使用SVNParentPath指令来指定存放所有项目的路径。在httpd.conf文件最后添加下面配置:
#SVN
<Location /svn>
DAV svn
SVNParentPath "F:/SubversionFiles"
</Location>
这样我们就可以通过http://myhost:8080/svn/<项目名> 来访问存放于资源库F:/SubversionFiles中的指定项目。当然有可能你并不希望某个项目提供这样一种访问方式,这时候你可以使用SVNPath为每个项目进行单独的设置,SVNPath的使用方法如下:
DAV svn
SVNPath "F:/SubversionFiles/project1"
同样把这段配置放在httpd.conf最后,重启Apache HTTP服务即可通过http://myhost:8080/svn/project1 来访问project1项目的资源库。
1.
下面作一个测试:
(1)到F:SubversionFiles下建立一个子目录Test,然后到Aapche下的Bin目录下执行svnadmin create F:SubversionFilesTest
(2)打开浏览器输入网址:http://localhost:8080/svn/Test ,应该可以正确访问,但当前该项目下还没有加入任何内容,所以显示为空的
(3)有一点需要提示的是,现在的访问是完全匿名的,任何人都可以对SVN进行操作。所以我们接下来利用Apache的权限管理功能来对SVN进行用户验证集成
2.
加入用户身份验证:
在确定对访问用户的权限控制之前,你必须规划好是对整个资源库中的所有项目还是单独的某一个项目进行统一的身份验证, 也就是我们前面讲到的是使用SVNParentPath还是SVNPath的问题。
最简单的身份验证方式是使用Basic HTTP Authentication机制,该方式通过用户名和口令对访问用户进行身份验证。我们可以直接通过Apache提供的支持进行设置。Apache提供一个htpasswd工具来管理用户名和口令。接下来我们利用这个工具来添加两个用户。
在命令行窗口中转到Apache所在的目录,执行下列命令
说明:创建用户Xrinehart
输入:htpasswd –c F:SubversionFilessvn_auth_passwd Xrinehart
说明:使用-c参数来创建一个passwd文件
输出:
New password: *****
Re-type new password: *****
Adding password for user Xrinehart
再创建用户的时候就不用-c参数,而是用-m参数,因为文件svn_auth_passwd 已经创建。
#
# SVN
#
DAV svn
SVNParentPath "F:/SubversionFiles"
# how to authenticate a user
AuthType Basic
AuthName "Subversion repository"
AuthUserFile "F:/SubversionFiles/svn_auth_passwd"
# only authenticated users may access the repository
Require valid-user
重新启动Apache HTTP服务器,使用浏览器打开 http://localhost:8080/svn/Test 你将会看到要求登录的对话框,输入你刚设置的用户名和口令即可。
这样Apache和SVN的集成就基本告成了
打开svn_auth_passwd文件,密码使用MD5加密过了,而且同样的密码加密出来的内容却不相同
接下来我们必须告诉Apache服务器如何使用这个passwd文件,打开httpd.conf找到刚才我们添加的Location配置的位置,修改如下:
SVN中文技术网[www.svn8.com]
分享到:
相关推荐
**SVN版本库的组成部分:** 1. **仓库(Repository)**:这是SVN存储所有版本化文件的地方。它是一个集中式的数据库,保存了文件的历史版本和元数据。开发者不直接与仓库交互,而是通过客户端进行操作。 2. **工作...
svn新建版本库步骤,详细步骤,能够按照此步骤配置换成svn版本库
本文将详细介绍如何在一台服务器上搭建多个SVN版本库,并对权限配置进行深入探讨。 #### 二、搭建流程概述 在搭建多版本库环境时,通常会遵循以下步骤: 1. **服务器的确定**:选择合适的服务器硬件与操作系统。 2....
在弹出的窗口中选择“本地文件系统(FSFS)”格式创建版本库。FSFS是一种基于文件系统的存储方式,适合于大多数应用场景。 #### 四、配置权限 1. **编辑配置文件**: - 进入`test\conf`文件夹,打开其中的三个文件...
SVN库建立及VSS数据导入SVN 一、 SVN库建立 由于事先我安装好TortoiseSVN,因此我用此工具建立版本库,非常简单的哦! 在D:\SVN新建一个文件夹(test),右键-属性-在此创建版本库,这样就完成了。 二、 VSS数据...
Eclipse 中 SVN 版本控制插件的安装和使用 ...本文介绍了如何在 Eclipse 中安装和使用 SVN 版本控制插件,包括安装 Subversion 服务器和客户端,建立版本库,运行独立服务器,添加源工程文件等步骤。
2. 建立SVN版本库 svnadmin create /opt/svndata/repos 这里的repos是版本库的文件夹,SVN会自动在repos目录下添加必须的配置文件。 3. 修改版本库配置文件 vi /opt/svndata/repos/conf/svnserve.conf 在配置...
接下来,我们讨论如何将Android项目关联到SVN资源库。在创建新的Android项目后,应先设置要忽略的文件,因为一旦项目与SVN关联,再尝试忽略文件可能会遇到问题。在“Settings”>“Version Control”下找到“Ignored ...
需要注意的是,这些步骤都是建立在不改变操作环境的基础上,即在迁移过程中SVN版本和操作系统环境都保持一致。如果在迁移后环境中存在变化,则需要对操作步骤进行相应的调整。在进行版本库迁移时,始终要以数据安全...
在版本库浏览器中,使用“复制到”命令,在新名称中输入标签 URL。这是 SVN 中最常用的建立标签的方法。这种方法默认从最新版本创建标签。 1.2.2 方法二:使用“创建标签”命令 在版本库浏览器中,右键点击要标记...
在版本库 URL 栏输入内网或外网的地址,例如 http://192.168.200.39/svn/TWpm 或 http://222.247.54.22/svn/TWpm。然后,选择 SVN 检出,并输入用户名和密码,默认密码为 123456。我们可以选择保存认证,以避免每次...
在Subversion (SVN) 中,为了有效地管理项目的开发流程和版本控制,通常会在项目版本库中建立以下三个主要的目录: 1. **Trunk**:作为项目的主干分支,所有的日常开发活动都在这里进行。 2. **Branches**:用于...
### SVN版本管理教程知识点概述 #### 一、版本管理的重要性及SVN的作用 - **版本管理**:在软件开发过程中,随着项目的进展,代码库会出现多个版本,这要求开发团队能够有效地管理和追踪这些版本的变化。良好的...
Eclipse下使用SVN版本控制 Eclipse下使用SVN版本控制是软件配置管理(SCM)的重要组成部分。SCM是管理源码并保持其安全的良好艺术,它...Eclipse下使用SVN版本控制可以帮助我们更好地管理代码库,提高开发效率和质量。
- 使用Lucene根据SVN仓库中的最新版本来初始化索引库。 - 索引构建过程中,需要遍历SVN仓库中的所有文件,并提取出文本内容进行索引化处理。 - 为每个文件创建一个文档对象,其中包含文件路径、内容等元数据信息...
接下来,我们需要创建 SVN 版本库及其相关的文件夹结构。 1. **创建 SVN 版本库文件夹**: - 使用命令 `mkdir -p /opt/svn/repos` 创建版本库文件夹。 2. **创建 SVN 版本库**: - 运行 `svnadmin create /opt/...
- 版本库模型: 使用集中式版本库,便于多人协作。 #### 二、SVN版本管理约定 - **目的**: 在软件开发过程中,有效地管理不同版本的代码,确保能够随时回溯到特定版本,并记录每次变更的原因。 - **版本标识**: ...