Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1480959
  • 博文数量: 187
  • 博客积分: 10375
  • 博客等级: 上将
  • 技术积分: 3127
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-07 10:58
文章分类

全部博文(187)

文章存档

2013年(1)

2012年(8)

2011年(28)

2010年(36)

2009年(47)

2008年(67)

我的朋友

分类: WINDOWS

2009-07-21 13:42:07

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

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

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

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

svnserve配置

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

Apache配置

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

现在可以开始创建版本库了,打开命令行窗口(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

在最后面有如下几行:


   DAV svn
   SVNParentPath d:\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

httpd.conf最后Location参数说明

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

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

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

         htpasswd -c d:\svn\passwd

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

         htpasswd d:\svn\passwd

创建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,不需要扩展名。
阅读(1102) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~