8月又快到了,忙的连写文章的时间都没有了,也该写写了。本来这篇应该是6月写的,因为这件事很早就做完了。之前就建议领导找个专人负责配置管理,但领导不怎么重视,从而使项目组的配置管理一直没用起来,导致代码的版本无法控制,并且多个人在扩展功能的时候,集成非常麻烦,偶尔还会带来不必要的风险,有时都不清楚最新的代码在哪,一旦人员拿着最新代码离职,后果不堪设想。
看来这件事还得自己亲自下手,这也是没办法的办法了。首先的把环境搭起来,至于后面使用到什么程度就是另外一回事了,因为好多人都不会使用SVN,就连自己也就会一些简单的,复杂的还真不懂,公司也不提供培训。
第一步:下载Apache和SVN软件
Apache webserver http://httpd.apache.org/download.cgi
SVN Server http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
TortoiseSVN 1.7 http://tortoisesvn.net/
两者之间版本搭配要注意,最好下载最新版,下载SVN的时候后面的描述注明了支持的Apache版本。
第二步:安装程序
1) 安装Apache,安装的时候注意一下是否开有IIS、迅雷、QQ音乐等可能占用80端口的软件,安装过程一直Next,然后可以在httpd.conf文件里面修改Listen 9000(端口号),做一些基本的设置就可以了,安装完成浏览器中访问http://loaclhost:9000 ,页面出现It works!表示安装成功!
2) 安装SVN,SVN可能是.exe或者其他压缩方式打包的软件包,直接安装或者解压到某个目录即可。
3) 安装TortoiseSVN 1.7客户端
第三步:配置Apache和SVN
1) 将C:\Program Files\Subversion\bin目录下的mod_dav_svn.so,mod_authz_svn.so, libdb44.dll ,拷贝出来放在C:\Program Files\Apache Software Foundation\Apache2.2\modules目录下。
2) 修改D:\Program Files\Apache Software Foundation\Apache2.2\conf \httpd.conf文件
3) 去掉以下行的注释
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_module modules/mod_dav.so
4) 在LoadModule节的最后添加以下两行:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
***注意: 这两行的代码顺序不能错,以免带来不必要的麻烦。
重启Apache,当Apache无法启动,或者无法加载某个动态库的时候,一般先检查该动态库的关联情况。
5) 然后在该文件末尾进行相应的配置,以便客户端TortoiseSVN和浏览器知道如何访问:
# 可以通过像这样的URL(http://10.122.88.24:9000/SvnRoot/)来访问Subversion版本库
<Location /SvnRoot>
# 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块
DAV svn
# 告诉Subversion在目录F:\SvnRoot下寻找版本库
SVNParentPath F:\SvnRoot
# 启用基本的验证,使用用户名/密码验证
AuthType Basic
# A2, Project,WeekSystem,……为版本库
AuthName "A2,Project,WeekSystem, CodePro,DevelopDoc,PorblemDoc"
# passwd密码和用户文件,用来验证用户的用户名及密码
AuthUserFile F:\SvnRoot\passwd
# authz 权限控制文件,限定各个用户或组在版本库中目录的访问权限
AuthzSVNAccessFile F:\SvnRoot\authz
# 限定用户只有输入正确的用户名及密码后才能访问这个路径
Require valid-user
</Location>
第四步:创建用户密码passwd文件
打开命令行(DOS窗口),将当前目录切换到Apache2目录(通常为C:\Program Files\Apache Software Foundation\Apache2.2\bin),然后打入以下命令以创建文件:
htpasswd -c passwd <username>
比如: htpasswd -c F:\SvnRoot\passwd admin
将会在: F:\SvnRoot目录下创建一个passwd文件,admin表示用户名
第五步:权限控制文件authz创建
1) 第一种方法:命令行下面转到到SVN的安装BIN目录。运行:svnadmin create F:\SvnRoot\Project
2) 第二种方法:在F:\SvnRoot\文件里面新建文件夹Project,然后右键TortoiseSVN——>Create repository here创建版本库,目录里面将会生成配置文件,将conf文件夹里的authz复制到F:\SvnRoot\目录下
然后打开authz进行配置,可以参照下面的示例:
#组配置 组 = 用户名
[groups]
@admin = admin #admin用户
@user = test #test用户还需要按照上面步骤来创建它和它的密码
# 为所有库指定默认访问规则
# 所有人可以读
[/]
* = r
# 为Project版本库制定权限
#admin组拥有读写权限
#user组只有读取权限
[Project:/]
@admin = rw
@user = r
一切准备工作已经完成了,你就可以用URL(http://IP:9000/ SvnRoot /Project)来访问版本库了!
好了,现在你就应该可以去体会一下你的劳动成果咯!
虽然可以使用,但是还是存在一个问题,到现在也没有解决,就是如何配置一个用户通过http://IP:9000/ SvnRoot / 访问里面所有的版本库,希望高手能指点一下,在这里非常感谢了。