在安装配置的过程中,我用的是(客户端:TortoiseSVN-1.4.4),(服务器端:Subversion-1.6.4及apache_2.2.4)以及LanguagePack-1.4.4(TortoiseSVN-1.4.4的汉化包)。
一、安装
(一)服务器端的安装
1.安装apche 2.2.4(在安装的过程中有选项,a.如果只是希望局域网用户使用可选用8080端口,即:Only for the current users, on port 8080,when started Manually. b.如果我们希望在不同城市的可以访问配置库则选用80端口,即:For all users, on port 80,as a service –Recommended.同时得赋予服务器一个对外的IP,或者将自己的IP对外(具体怎么做不清楚))。
2.安装Subversion 1.6.4
(二)客户端的安装
安装TortoiseSVN-1.4.4及其汉化包,安装完之后重启电脑。如果客户端不希望用英文的可以将语言设置为简体中文(在桌面上点右键TortoiseSVN——settings,在打开的对话框中,将language设置为简体中文即可)。
注意:如果个人学习或其他需要,需要将客户端和服务器端装到同一台PC机上的话,切记不可先装客户,应该先将服务器端装好再装客户端,否则会报错。
二、配置(服务器端)
1.打开Subversion的安装目录,如:D:/Program Files/Subversion/bin,找到mod_authz_svn.so,mod_dav_svn.so以及libdb44.dll,然后将其复制到apache的modules目录,如D:/Program Files/Apache2.2/modules里。另外因为Subversion和Apache的版本不一致,所以又将D:/Program Files/Subversion/bin里所有的.dll文件copy到D:/Program Files/Apache2.2/bin里。
2.打开D:/Program Files/Apache2.2/conf下的httpd.conf,去掉以下两行的注释(把#去掉即可)。
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
然后在LoadModule节添加以下两行(为方便查找,可将其添加在LoadModule节最后)
LoadModule authz_svn_module modules/mod_authz_svn.so
LoadModule dav_svn_module modules/mod_dav_svn.so
3.配置subversion和apache
现在已经安装了subversion和apache,但是Apache还不知道如果处理像TortoiseSVN一样的Subversion客户端该怎么办。所以要让Apache知道哪个URL将被Subversion使用,就要像下面这样编辑Apache的配置文件。
打开D:/Program Files/Apache2.2/conf下的httpd.conf,为了方便查找,将其添加到最后。
在httpd.conf文件里添加以下这些行:
<Location /repository>
DAV svn
SVNParentPath f:/svn
AuthType Basic
AuthName "svn repos"
AuthUserFile "D:/Program Files/Apache2.2/bin/passwd"
#AuthzSVNAccessFile "D:/Program Files/Apache2.2/bin/svnaccessfile"
Require valid_user
</Location>
注意:
1. Location后必须有空格,否则apache启动不了。repository---自己起的名字。
2.f:/svn----所建的配置库的位置,若只有一个库可用“f:/svn/库名”代替。
3."D:/Program Files/Apache2.2/bin/passwd" -----用来保存所建用户的文件的位置。
4."D:/Program Files/Apache2.2/bin/svnaccessfile"——分配权限的文件的位置。
附:
a.如何建配置库:1.用命令:运行——cmd
进入subversion的bin目录,输入“svnadmin create f:/svn/repos” 需要输入命令前在相应位置建相应的空文件夹,即在f:/svn里建repos空文件夹。
2.在计划建库的位置建一空文件夹,然后点右键 TortoiseSVN——create repository here即可。
b.如何新建用户名:
运行——cmd
此例将用户名文件放在apache的bin目录下,故需进入apache的bin目录,然后输入
“htpasswd -c passwd username”——第一次建用户名。
以后则用
“htpasswd -m passwd newusername”即可。
c.如何分配权限
accessfile文件里添加:
对于软件项目,一般会有很多人拥有同样的权限,例如项目A:所有的参与A项目的开发人员都应该对开发库拥有可读可写的权限,故我们可以建一个组将有读写权限的用户放在一个组(admin),只有读的权限的放在一个组(readonly),只有写权限的放在一个组(writeonly).
即admin=用户1,用户2,....
readonly=用户3,....
writeonly=用户4,....
1.如何只有一个项目可如此配置:
[groups]
admin=用户1,用户2,....
readonly=用户3,....
writeonly=用户4,....
[/]
@admin=rw
@readonly=r
@writeonly=w
2.如果有多个项目可如下配置: [groups]
[项目2:/]
@admin=rw
@readonly=r
@writeonly=w
..........
admin=用户1,用户2,....
readonly=用户3,....
writeonly=用户4,....
[项目1:/]
@admin=rw
@readonly=r
@writeonly=w