您的位置:首页 > 其它

Windows安装配置Subversion

2009-07-13 17:35 381 查看
由于公司需要建立源码版本库,最近一段时间一直和SVN打交道,在配置使用过程中,觉得有一些问题有必要记录下来,防止忘记。

根据大多数网友的推荐,我选择了Apache+Subversion+Tortoise这种模式,为了简便起见,我选择了Apache2.2+Subversion1.5.6的集成版本CollabNetSubversion-server-1.5.6-2.win32.exe,这应该是一个比较稳定版本搭配。

安装过程也很简单,只有在一处需要配置的地方注意一下:

两个都勾选



svnserve的配置,因为我们不使用该方式,所以配置可以略过。



Apache的配置,Host Port是需要设置一个端口(80端口一般是不能用的),而且不能和别的服务使用的端口冲突,不然Apache的服务就启动不起来;Repository Path是版本库的路径,一般我们会设为D:/SVN。



其他的一般不管,接着就默认下一步,直到安装完成。

现在可以开始创建版本库了,打开命令行窗口(DOS窗口),进入d:/svn目录输入

svnadmin create --fs-type fsfs proj1

完成后就在d:/svn/proj1创建了一个新的版本库

然后到Subversion的安装目录下修改Apache的配置文件(通常是C:/Program Files/SubversionServer/httpd/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

在最后面有如下几行:

<Location /svn>
DAV svn
SVNParentPath d:/SVN
</Location>

修改为:

<Location /svn/>
DAV svn
SVNListParentPath on
SVNParentPath D:/SVN
#SVNIndexXSLT "/svnindex.xsl"
AuthType Basic
AuthName "Fujin Teleway's repositories"
AuthUserFile D:/SVN/passwd
AuthzSVNAccessFile D:/SVN/svnaccessfile
Require valid-user
SVNAutoversioning on
ModMimeUsePathInfo on
</Location>



注意:为什么在<Location /svn/>后面多加个“/”呢?如果不多加“/”,那么在IE输入URL: http://MyServer/svn/就访问不了svn的根目录,但是如果多加上“/”,在IE输入URL: http://MyServer/svn/ 就可以访问svn的根目录了。记住是输入URL: http://MyServer/svn/ 不是http://MyServer/svn,不然也访问不了svn的根目录。但是这个方法在TSVN中访问版本库时不适用,一定要加版本库名,例如http://MyServer/svn/proj1

有了上面的修改,当然得建立两个重要的文件:passwd和svnaccessfile

创建passwd文件:打开命令行提示符(DOS窗口),进入CollabNetSubversion的安装目录中Apache的bin目录(我这里是C:/Program Files/SubversionServer/httpd/bin),通过输入下面的命令创建文件

htpasswd -c d:/svn/passwd <username>

它将会创建名为passwd的文件用于认证。用下面的命令增加其它用户

htpasswd d:/svn/passwd <username>

创建svnaccessfile文件:在d:/svn目录下新建一个txt文本文件,录入以下内容:

[groups]
admin = john, kate
devteam1 = john, rachel, sally
devteam2 = kate, peter, mark
docs = bob, jane, mike
training = zak
# Default access rule for ALL repositories
# Everyone can read, admins can write, Dan German is excluded.
[/]
* = r
@admin = rw
dangerman =
# Allow developers complete access to their project repos
[proj1:/]
@devteam1 = rw
[proj2:/]
@devteam2 = rw
[bigproj:/]
@devteam1 = rw
@devteam2 = rw
trevor = rw
# Give the doc people write access to all the docs folders
[/trunk/doc]
@docs = rw
# Give trainees write access in the training repository only
[TrainingRepos:/]
@training = rw

然后把该txt文件改名为svnaccessfile,不需要扩展名。

现在可以在IE上输入http://IP:port/svn/访问根目录。

在TSVN客户端上输入http://IP:port/svn/Project访问你所建的项目了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: