您的位置:软件测试 > 开源软件测试 > 开源软件测试解决方案 >
Subversion for Windows 安装指南
作者:网络转载 发布时间:[ 2012/12/7 11:30:30 ] 推荐标签:

2.4 建立Subversion档案库
假设我们要把所有的档案库都放在 d:svn 目录下,现在要建立一个测试用的档案库,名称叫做 repository,指令为:
md d:svnsvnadmin create d:svn epository
命令执行完后,检查看看 d:svn epository 目录底下产生了哪些目录和档案。
警告:档案库不可以在建立在任何远端的储存媒体上,例如:网路磁碟机。
这时候你已经建立了一个档案库,你可以先在本机用浏览器测试一下,网址输入http://localhost/svn/repository,看看能不能看到档案库的内容,正常的话应该像下图一样。

如果以上的测试可以通过,应该行了。如果你还想要测试一下能不能从档案库取出整个工作复本,可以执行下列指令(非必要):
c:cd empsvn co http://localhost/svn WholeRepos上 述指令会切换到一个暂时的目录 c: emp,然后从档案库取出整个工作复本。后一行指令是要 svn.exe 执行 check out 动作(缩写 co),如果正确的话,应该会显示 "Checked out revision 0." 的讯息,此时 /svn/ 这个档案库底下的所有档案目录都已经取出,并且复制一份到 c: empWholeRepos 目录下了。
问题排除
如果显示的错误讯息是:
svn: PROPFIND request failed on '/svn/repository'
svn: PROPFIND of '/svn/repository': 405 Method Not Allowed (http://localhost)
请检查 Apache HTTP Server 的 httpd.conf 档案里面的 标签所定义的位置是否跟你指定的 URL 样式相同,注意一定要完全相同,以上面的例子而言,你的 httpd.conf 的后面应该会有以下文字:
<Location /svn>DAV svnSVNPath 指向档案库的路径
如果显示的错误讯息是:
svn: PROPFIND request failed on '/svnsvn:Could not open the requested SVN filesystem
那表示在 /svn 对应的实体目录(即 d:/svn)下找不到所指定的目录。
注:PROPFIND 是给 WebDAV 用的 HTTP method,用来从资源中取得属性。
 
测试完毕可以把 WholeRepos 这个目录整个删掉了。
到目前为止,可以确定档案库已经建立完成,接下来可以汇入专案了。
2.4.1 汇入专案
不用急着把你现有的正式专案汇入档案库,先建立一个用来测试的专案目录好了。我们先在 c:/temp 底下建一个 ProjectA 的专案目录结构,参考下面的指令:
c:md tempcd empmd ProjectAmd ProjectA runkmd ProjectAranchesmd ProjectA agssvn import . http://localhost/svn -m "Initial repository layout"
提示
本文在执行 svn 命令时,都是使用 http 协定的方式,这样我们可以确知 Subversion 与 Apache HTTP Server 的设定无误,其他人可以透过 Internet 存取档案库。当然你也可以用其他的协定,例如:file:///,如果使用 file 协定,后一行指令变成:
svn import .file:///d:/svn -m "Initial repository layout"
这时候 ProjectA 这个专案已经汇入档案库了,也是说,其他使用者可以开始存取这个档案库的专案取出文件和程式码了。你可以参考 Subversion 的官方手册中关于 svn.exe 这个用户端命令列工具的使用方法,多练习一下取出档案、加入档案、以及存入档案等指令。万一练习的过程中发生错误,或者档案库弄乱了,你可以把整个档案库 的目录砍掉,回到 2.4 节重新做一遍。
以下会进一步讨论档案库和专案目录结构的安排方式,如果你急着想试试看用户端如何存取 Subversion 档案库,可以先跳到2.6 节或第 3 节。
 
2.5 档案库与专案的配置方式
延续前面的范例,如果你再汇入其他专案,例如 ProjectB,那么整个档案库的结构会变成这样:
/svn/repository/+-- ProjectA/+-- ProjectB/
也是说 repository 这个档案库里面包含了两个专案。
如果你希望为每个专案建立一个档案库,那么在 2.4 节中建立档案库的指令变成:
md d:svnsvnadmin create d:svnProjectAsvnadmin create d:svnProjectB
这样变成有两个档案库了,档案库名称分别是 ProjectA 与 ProjectB。
提示
如果专案之间有共享的档案,建议把这些相关的专案放进同一个档案库;如果专案之间彼此毫无关系,那采用一个档案库放一个专案的方式,这种方式等于专案是档案库。
第一种方式有个比较奇怪的「功能」你应该要知道,是一个专案的 check in 动作,也会令其他专案的档案的修订版次递增 ,如果这不是你想要的,请选择第二种方式,即一个档案库只存放一个专案。
 
2.5.1 专案的目录结构
这里补充说明一下 ProjectA 的目录结构。在 ProjectA 专案的根目录下建立的 trunk、branches、和 tags 这三个目录是有特别意义的,它们的作用分别是:
trunk 目录用来存份目前专案正在进行开发的程式档案和文件(又称为主线,即 mainline);
branches 用来存放主线的各个仍在发展中的分支;
tags 则用来存放已经不再变动的分支,也是其中的档案不会再修改了。
这是 Subverion 官方手册建议的目录结构安排方式,你可以自己决定要不要用这种配置方式,详细说明请参考官方手册的第五章,子标题为 "Choosing a Repository Layout"。
提示
目录名称建议尽量不要用中文名称,这样在使用命令列时比较方便,也比较不会有问题。

2.6 使用 Windows网域帐户验证
照着前面的步骤做,你会发现存取档案库时都不用输入帐号密码,这是因为我们之前的设定没有启用身分验证的功能。但是我们通常不希望所有人都能任意存取你的档案库,免得重要资产外泄,或者资料被破坏,因此了解如何加入身分验证也是必要的。
Serversion 提供了多种验证使用者身份的方式,这里只介绍 Windows 身分验证的方式,这种方式很适合用在开发团队成员都在区域网路内的情况。请依下列步骤进行:
取得 SSPI 模组,下载网址为 http://tortoisesvn.tigris.org/mod_auth_sspi.zip。英文说明在此:http://tortoisesvn.sourceforge.net/node/137http://tortoisesvn.sourceforge.net/docs/release/TortoiseSVN_en/ch03.html#tsvn-serversetup-apache-5
把 zip 里面的 mod_auth_sspi.so 解压缩到 modules 目录下。
把下面这行加入到 Apache 的 httpd.conf 里面:LoadModule sspi_auth_module modules/mod_auth_sspi.so注意上面加入的这行一定要放在下面这行的前面:LoadModule auth_module modules/mod_auth.so
修改httpd.conf 的设定如下:<Location /svn>DAV svnSVNParentPath d:/svnAuthType SSPIAuthName "Subversion 档案库"Require valid-userSSPIAuth OnSSPIAuthoritative OnSSPIDomainSSPIOfferBasic On</Location>其 中 是你的 Windows 网域控制器的电脑名称(例如:WIN2KDC),注意两边的括号 <> 不用保留。如果你的环境没有网域控制器,维持原来的行了。在我的环境下,我发现即使有网域控制器,但是这里不去设定它,还是能够正常的验证使用者身 分。
重新启动 Apache。

上一页123下一页
软件测试工具 | 联系我们 | 投诉建议 | 诚聘英才 | 申请使用列表 | 网站地图
沪ICP备07036474 2003-2017 版权所有 上海泽众软件科技有限公司 Shanghai ZeZhong Software Co.,Ltd