Windows下安装Subversion服务端和TortoiseSVN客户端详细教程

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Windows安装SVN服务器
目录
本文摘要: (2)
一、系统与版本 (2)
1.1操作系统 (2)
1.2SVN版本 (2)
二、安装与配置 (2)
2.1安装Apache服务器 (2)
2.2安装SVN服务器 (4)
2.3安装SVN客户端 (5)
2.4配置服务器 (6)
2.5验证配置 (9)
三、简单使用手册 (9)
3.1SVN命令行操作 (9)
3.2TortoiseSVN图形界面操作 (12)
四、安装常见问题 (12)
4.1 问题1:web服务器选择 (12)
4.2 问题2:安装Apache需要注意的几点 (12)
4.3 问题3:配置Apache文件 (12)
4.4 问题4:Apache启动报错the requested operation has failed (13)
五、参考资料 (13)
本文档配置环境:
操作系统:Windows Server 2003 (x86)
Apache服务器:httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
SVN服务端:Setup-Subversion-1.6.16.msi
SVN客户端:TortoiseSVN-1.6.15.21042-win32-svn-1.6.16.msi (32bit)
SVN客户端:TortoiseSVN-1.6.15.21042-x64-svn-1.6.16.msi (64bit)
SVN使用命令,请见我的(CSDN)博客:
/sunboy_2050/archive/2011/02/16/6187464.aspx
本文摘要:
SVN全称为SubVersion,是一个开源的版本控制系统,管理着随时间而改变更新的数据。

这些数据都放置在一个中央资料档案库(repository)中,它类似于一个普通的文件服务器,可以记录每一次文件的更新变动,这样就可以把档案恢复到较旧的版本,或是浏览文件的历史变动,进行版本管理系统。

一、系统与版本
1.1操作系统
本实例操作系统环境为Windows Server 2003 R2 EnterPrise X64 SP2(64位)
本手册也适用于Windows Server 2003 X86 SP2、Windows XP X86 SP3、Windows 7 X64
1.2SVN版本
●Apache 服务器:HTTPD v2.2.17 下载网址或者直接下载
●SVN服务端:SubVersion v1.6.16 下载网址或者直接下载
●SVN客户端:TortoiseSVN v1.6.15 下载网址或者直接下载X64 or 下载X86
下载后的版本,如下图所示:
二、安装与配置
2.1安装Apache服务器
1.1双击安装文件httpd-
2.2.17-win32-x86-openssl-0.9.8o.msi
1.2点击Next ,直接默认安装
1.3点击next ,设置服务器域名和邮箱,重点我们看看红色部分,默认端口号为80
1.4点击next ,直至安装完成,出现以下画面
1.5点击Finish ,安装完成,右下角出现Apache启动图标(红色羽毛),如下图:
1.6打开浏览器,输入http://localhost/或者http://127.0.0.1/
出现“It works!”说明apache服务器安装正确!
2.2安装SVN服务器
1.1双击安装文件Setup-Subversion-1.6.16.msi,开始安装SVN服务器
1.2一路点击“下一步”,默认安装即可
1.3如下图,安装完成!
点击“Finish”,安装svn服务器完毕!
2.3安装SVN客户端
3.1 点击安装文件TortoiseSVN-1.6.15.21042-win32-svn-1.6.16.msi,开始安装svn客户端
3.2 一路点击“下一步”,默认安装即可
3.3 “下一步”
3.4 安装中
3.5 安装完毕
2.4配置服务器
4.1 添加环境变量
我的电脑——》(右键)属性——》高级——》环境变量——》系统变量——》Path
选择Path——》编辑——》添加Apache安装目录的bin路径到Path环境变量,确定!Apache的bin安装目录:C:\Program Files\Apache Software Foundation\Apache2.2\bin
4.2 复制svn的so文件,到Apache的modules目录下
svn中so文件位置:C:\Program Files\Subversion\bin
Apache中modules:C:\Program Files\Apache Software Foundation\Apache2.2\modules
4.3 配置Apache的httpd.conf文件
httpd.conf:C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
找到下面两行
删除前面的注释符“#”,如下:
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
在所有*.so文件末尾,添加下面两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4.4 生成工程库和用户权限文件
svnadmin create C:\SVNROOT\project 生成工程库目录project
新建一个用户访问文件access.auth:C:\SVNRoot\project\conf\access.auth
输入内容如下:
[svn:/]
admin = rw
[svn:/nymgr]
admin=rw
yanggang=rw
接着,在dos界面,输入命令:
htpasswd -cb users.auth admin admin
最后,创建第二个用户yanggang的密码(第一个用户admin,上一行以创建用户名和密码)
4.5 配置svn访问目录和权限
<Location /svn>
# 设置url访问svn目录
DAV svn
2.5验证配置
5.1 打开浏览器,输入本机IP地址:http://192.168.0.118/svn或者http://localhost/svn/
提示,要输入“用户名和密码”,即在users.auth文件中,创建的admin和yanggang两个用户
三、简单使用手册
3.1SVN命令行操作
3.1.1 创建版本库project
svnadmin create project // 创建版本库project
rmdir /s/q project // 删除版本库project
3.1.2 建立版本库文件
cd project // 进入版本库project目录
md ProjectA // 创建文件夹ProjectA
md ProjectA\trunk
md ProjectA\branches
md ProjectA\tags
3.1.3 创建访问权限文件access.auth
[svn:/] // 根目录访问
admin = rw
[svn:/nymgr] // 根目录下的nymgr目录访问
admin=rw
yanggang=rw
3.1.4 创建用户文件users.auth
htpasswd -cb users.auth admin admin // 创建用户admin
htpasswd -b users.auth yanggang yanggang // 创建用户yanggang
3.1.5 纳入文件或目录树到版本库
svn import ProjectA http://localhost/svn -m “import”// 纳入ProjectA到版本库中如下图,3.1.1—3.1.5 在svn网页中显示效果:
3.1.6 新建一目录doc,纳入到版本库中
md ProjectA\doc
svn add ProjectA\doc // 添加ProjectA\doc到版本库
svn ci ProjectA\doc -m “commit”// 提交ProjectA\doc到版本库如下图,新添加的doc目录:
3.1.7 删除doc
svn rm http://localhost/svn/doc -m “delete”// 从版本库中删除doc
3.1.8 查看svn信息
svn info http://localhost/svn // 查看版本库的信息
3.1.9 checkout版本库到本地
md C:\svndown // 在本地新建一文件夹,用于保存checkout的版本库svn co http://localhost/svn C:\svndown // Checkout版本库内容到本地文件夹svndown
3.1.10 添加新文件,到版本库
cd C:\svndown // 进入本地checkout目录
echo …My name is yanggang‟> mytag.txt // 新建文件mytag.txt
svn add mytag.txt // 添加mytag.txt到版本库
svn ci ./mytag.txt http://localhost/svn -m “commit”// 提交
如下图,新添加的mytag.txt文件,已成功添加到了版本库:
3.1.11 添加目录树,到版本库
cd C:\svndown\trunk // 进入本地checkout的trunk目录
xcopy C:\nymgr .\nymgr\ // 复制目录树到trunk目录下
svn add nymgr // 添加目录树nymgr到版本库
svn ci ./nymgr -m “commit”// 提交
如下图,新添加的目录树及其文件:
关于更多的SVN命令,请参考博客:SVN常用命令
3.2TortoiseSVN图形界面操作
四、安装常见问题
4.1问题1:web服务器选择
Subversion建立在一个可移殖的layer,称为APR (Apache Portable Runtime 链接库) 上。

这表示Subversion应该可以在任何可以执行Apache 的httpd 服务器的操作系统上:Windows、Linux所有的BSD 分支,Mac OS X、Netware等,目前使用最为广泛的Web服务器是Apache和IIS,两者都可以工作在Windows Server 2003下。

其中Apache和Subversion的配置最为简单、安全、高效。

所以本文选择使用Apache 服务器的2.0 版本,作为Web服务器。

4.2问题2:安装Apache需要注意的几点
安装Apache之前,请先检查你的服务器是否安装IIS。

由于Apache 预设使用80 端口,会跟IIS 的网站冲突,你必须把IIS 的Web 站台关闭,再安装Apache HTTP服务器。

注意如果使用Windows XP的话,没有安装SP1将会导致不正常的网络传输,从而破坏你的版本库。

Apache低于2.0.54的版本不能与Subversion 1.2一起工作,因为Apache低于2.0.54的Windows版本的编译存在问题。

4.3问题3:配置Apache文件
通过Http 协议访问版本库是Subversion 的亮点之一。

使用Http 协议意味着只需要打开浏览器,输入URL 即可轻松的浏览整个版本库。

由于Subversion 需要版本化的控制,因此标准的Http 协议不能满足需求。

要让Apache 与Subversion 协同工作,需要使用WebDAV(Web 分布式创作和版本控制)。

WebDAV 是HTTP 1.1 的扩展,为了使Subversion 与dav 模块通信,需要安装mod_dav_svn 插件,在Subversion 的安装目录中找到,将其拷贝到Apache 安装目录的modules 文件夹下(请参见上述【4.2】和【4.3】两节)。

4.4问题4:Apache启动报错the requested operation has failed
解答:运行中,输入httpd.exe -w -n "Apache2" -k start 进行调试,定位出错位置。

参考:Apache启动报错:the requested operation has failed解决办法
问题3
五、参考资料
1、Windows基于Apache的svn服务器配置
一、基本安装配置
1 Web务器的选择
Subversion 建立在一个可移殖的layer, 称为APR (Apache Portable Runtime 链接库) 上. 这表示Subversion 应该可以在任何可以执行Apache 的httpd 服务器的操作系统上: Windows, Linux, 所有的
BSD 分支, Mac OS X, Netware, 等,目前使用最为广泛的Web服务器是Apache 和IIS,两者都可以工作在Windows Server 2003下。

其中Apache 和Subversion的配置最为简单、安全、高效。

所以本文选择使用Apache 服务器的2.0 版本,作为Web服务器。

2 本文使用软件版本
操作系统和服务器版本:
• 操作系统:Windows Server 2003 (Enterprise_X86_SP2)
• Apache HTTP Server v2.2.17 (win32_x86)
• Subversion v1.6.16
• TortoiseSVN v1.6.15.21042 (win_x86或者win_x64)
3 安装配置Apache服务器
在到/ 下载Apache HTTP Server 2.0 版for Windows 的版本,笔者使用的版本是httpd-2.2.17-win32-x86-openssl-0.9.8o.msi
安装过程很简单,就不赘述了,这里介绍几个注意事项:
但安装之前请先检查你的服务器是否安装IIS,由于Apache 预设使用80 端口,会跟IIS 的网站冲突,你必须把IIS 的Web 站台关闭,再安装Apache HTTP服务器。

注意如果使用Windows XP的话,没有安装SP1将会导致不正常的网络传输,从而搞坏你的版本库。

Apache低于2.0.54的版本不能与Subversion 1.2一起工作,因为Apache低于2.0.54的Windows版本的编译存在问题。

4 安装Subversion
在/ 下载最新版的Subversion,笔者下载的是Setup-Subversion-1.6.16.msi
安装过程比较简单这里笔者就不赘述了。

安装完成后在Dos命令行下使用命令:svn –version检查,如果出现图1 界面,表示安装成功。

5 复制和修改Apache服务器配置文件
通过Http 协议访问版本库是Subversion 的亮点之一。

使用Http 协议意味着只需要打开浏览器,输入URL 即可轻松的浏览整个版本库。

由于Subversion 需要版本化的控制,因此标准的Http 协议不能满足需求。

要让Apache 与Subversion 协同工作,需要使用WebDAV(Web 分布式创作和版本控制)。

WebDAV 是HTTP 1.1 的扩展,关于WebDAV 的规范和工作原理,可以参考IETF RFC 2518。

为了使Subversion 与dav 模块通信,需要安装mod_dav_svn 插件,可以在Subversion 的安装目录中找到。

将其拷贝到Apache 安装目录的modules 文件夹下。

接下来就是配置Apache 的httpd.conf 文件,让Apache 在启动的时候加载上述模块。

步骤如下:
把svn/bin/目录下的mod_dav_svn.so、mod_authz_svn.so复制到Apache服务器的/modules/目录下。

把SVN/bin/目录下所有的dll链接文件复制到Apache服务器/bin/目录下。

修改Apache服务器的配置文件httpd.conf
先找到以下两行:
把前面dav_svn_module的'#' 字符删除,然后把下面几行文字加到这群LoadModule 指令的最后:
然后httpd.conf最后加入几行:
表-1是apache服务器配置文件中svn相关文件的解释:
表-1 Apache的httpd.conf中svn相关文件解释
6 建立版本库目录
建立一个Subversion 的版本库出乎意料地简单. Subversion 所提供的svnadmin工具, 有个专门处理这件事的子命令,要建立一个新的档案库, 只要执行命令:
这会在目录path/to/repos 里建立一个新的档案库,使用系统命令建立版本库目录,如图2 。

图2 使用系统命令建立版本库
说明:svnadmin 命令是系统管理员最好的朋友. 除了可以建立Subversion 档案库, 这个程序还可以让你对档案库进行几种维护动作。

svnadmin 常用子命令如表-2 。

表-2 svnadmin 常用子命令
7 添加版本库文件
使用如下命令建立版本库文件:
8 重新启动Apache服务器进行测试
配置完毕后重新启动Apache,打开浏览器,输入http://服务器IP/repos 将会看到如图3画面。

图3 成功建立版本库界面
二、使用SSL安全连接
Apache服务器缺省并不支持SSL,但是你可以从其他地方下载安装。

1. 首先,你需要一些文件来开启SSL,你可以在/找到这些包,只需要解压缩这些文件,然后将mod_ssl.so拷贝到Apache的modules目录,将文件openssl.exe拷贝到bin目录,将文件
conf/ssl.conf拷贝到Apache的conf目录。

2. 使用文本编辑器打开Apache的conf目录的ssl.conf。

3. 注释掉(使用#)下面几行:
4. 此行
5. 删除下面两行:
6. 打开Apache配置文件(httpd.conf),并且去掉此行的注释
7. Openssl需要一个配置文件,你可以从http://tud.at/programm/f下载一个正在使用的,请注意:*.cnf类型的文件尽管是普通的文本文件,Windows对这种文件会特别处理!
8. 然后你需要创建一个SSL证书,为此打开一个命令行窗口,进入apache目录(例如C:\program files\apache group\apache2),然后输入下面的命令:
你会被讯问密语,请不要使用简单的单词,而是使用整段话,例如一段诗,越长越好。

你也需要输入server 的URL,其他所有问题都是可选的,但是我们建议你最好输入这些信息。

通常会自动产生privkey.pem文件,但是如果没有,请输入下面的命令生成它:
然后输入这个命令
并且输入(在同一行)
这样会创建一个在4000天里过期的证书,最后输入:
这些命令在Apache目录(my-server.der.crt、my-server.csr、my-server.key、.rnd、privkey.pem、my-server.cert)里创建了一些文件,拷贝这些文件到目录conf/ssl(例如C:\program files\apache group\apache2\conf\ssl)-如果这个目录不存在,你需要首先创建一个。

9. 重启apache服务
10. 将你的浏览器指向https://servername/svn/project ...
11 关闭不安全连接方法
你设置了SSL让你的版本库更安全,你一定希望关闭普通的非ssl访问,为此,你需要在Subversion的<Location> 增加指示:SSLRequireSSL。

一个<Location>实例就像这个样子:
总结:
到此为止在版本控制工具Subversion在Windows Server 2003下的安装基本介绍完了,如果您希望获得更好的安全性能可以考虑使用使用Windows域认证。

Apache环境下用域名创建虚拟主机的方法
windows下可以通过绑定主机头的方式实现多个网站使用同一台电脑上的80端口,那么试问,Apache服务器有没有这个功能呢?答案是肯定的。

下面我们就来一起讨论一下如何在Apache环境下实现同一台服务器用域名区分多个网站。

其实在Apache下实现虚拟主机的方法比较简单,有两种方法可以实现:
方法一:
直接在httpd.con文件的最后面添加如下代码:
NameVirtualHost 222.106.160.81:80 ;指定服务器的IP地址以及端口号
<VirtualHost 222.106.160.81:80> ;虚拟主机设置开始
ServerAdmin admin@ ;网站管理员邮箱(可要可不要)
DocumentRoot d:/website ;网站文件根目录
ServerName ;需要绑定的域名
<Directory "d:/website"> ;开始进行目录权限设置
AllowOverride all ;URL重写相关设置
Order Allow,Deny
Allow from all ;是否允许其它计算机访问目录
</Directory> ;目录权限设置结束
</VirtualHost> ;虚拟主机设置结束
注意:代码中的设置目录权限的代码可以省略,但是在网站根目录没有在httpd.conf或者apache的任何文件中定义过的情况下,目录权限设置代码不可省略,否则将导致网站不能访问,访问者浏览器提示权限不足,为了以防万一,建议大家无论什么情况都加上这段代码。

方法二:
apache本身就已经给我们提供了相应的虚拟主机编辑文件,在相对于网站根目录下的/conf/extra/httpd-vhosts.conf这个文件中,大家可以针对这个文件里面的响应参数做修改,相信里面的参数大家都能看懂的,修改完毕之后,在httpd.conf里找到“#Include conf/extra/httpd-vhosts.conf”这段代码,并把前面的“#”去掉,然后重启apache服务,就OK了,实现的效果同方法一一样。

apache只允许域名访问的实现方法
用apache搭建的WEB服务器,如何让网友只能通过设定的域名访问,而不能直接通过服务器的IP地址访问呢,有两个方法可以实现(仅限于我知道的,当然肯定还会有其他方法可以实现),都是修改httpd.conf文件来实现的,下面举例说明。

方法一:在httpd.conf文件最后面,加入以下代码
NameVirtualHost 211.*.*.*
<VirtualHost 211.*.*.*>
ServerName 211.*.*.*
<Location />
Order Allow,Deny
Deny from all
</Location>
</VirtualHost>
<VirtualHost 211.*.*.*>
DocumentRoot "c:/web"
ServerName
</VirtualHost>
说明:蓝色部分是实现拒绝直接通过211.*.*.*这个IP的任何访问请求,这时如果你用211.*.*.*访问,会提示拒绝访问。

红色部分就是允许通过这个域名访问,主目录指向c:/web(这里假设你的网站的根目录是c:/web)
方法二:在httpd.conf文件最后面,加入以下代码
NameVirtualHost 211.*.*.*
<VirtualHost 211.*.*.*>
DocumentRoot "c:/test"
ServerName 211.*.*.*
</VirtualHost>
<VirtualHost 211.*.*.*>
DocumentRoot "c:/web"
ServerName
</VirtualHost>
说明:蓝色部分是把通过211.*.*.*这个IP直接访问的请求指向c:/test目录下,这可以是个空目录,也可以在里面建一个首页文件,如index.hmtl,首面文件内容可以是一个声明,说明不能通过IP直接访问。

红色部分的意思跟方法一是一样的。

注:修改后要重启apache。

相关文档
最新文档