为了统一进行文档与程序的版本管理,更好的使团队进行协同工作。对版本管理软件定为Subversion(一款开源的项目管理工具)。
以下关于apache与subversion相结合的服务器的安装与配置
一.windows上安装apache2.0.59 +Subversion-1.3.1
OS: Windows XP SP2
1) 安装Apache Server
2) 安装SVN
3) 配置邮件通知
1. 安装apache_
安装过程中设置以下参数:
Network Domain: svn.company.com
Server name: svn.company.com
Administrator's Emai Address: [email protected]
安装到默认路径为D:\devtools\Apache2
2. 安装svn-
LoadModule dav_svn_module "D:/devtools/Subversion/bin/mod_dav_svn.so"
LoadModule authz_svn_module " D:/devtools/Subversion/bin/mod_authz_svn.so"
把这行的注释去掉
LoadModule dav_fs_module modules/mod_dav_fs.so
拷贝D:\devtools\Subversion\bin下的libdb43.dll到这个目录下Apache2\modules
打开apache的配置文件httpd.conf在末尾处加入以下参数:
< L*ocat*ion /s*vn>
DAV svn
SVNListParentPath on
SVNParentPath E:\svn-repository
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svn-repository/test/passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
< /L*oc*at*ion **>
保存。(在这里权限文件我不多讲了,大家多做实验就明白了)
建立仓库
打开CMD命令行界面,"开始" -> "运行" -> "cmd" -> "回车"
C:\ > d: //进入d盘(因为我们要在d盘下创建仓库)
e:\> md svn-repository //创建一个名叫svn-repository的目录
e:\> c: //进入C盘
C:\> cd\ //退到C盘根目录
C:\ > cd D:\devtools\Subversion\bin //进入subversion/bin目录
D:\devtools\Subversion\bin> svnadmin create E:\svn-repository\test //用svnadmin命令创建名为test的仓库(这条命令成功后,在test下会出现很多文件夹和文件)
D:\devtools\Subversion\bin> cd D:\devtools\Apache2\bin //进入apache\bin目录
D:\devtools\Apache2\bin> htpasswd -cm E:\svn-repository\test\passwd user1 //用htpasswd命令创建第一个用户(user1),同时生成密码认证文件,c参数为create,m参数为MD5加密方式
New password: ****** //输入密码
Re-type new password: ****** //再次输入密码
Adding password for user test //加入用户成功
D:\devtools\Apache2\bin> htpasswd -m E:\svn-repository\test\passwd user2 //用htpasswd命令创建第二个用户(user2),注意如果在这时加入c参数会覆盖掉之前创建的用户及文件。
New password: ******
Re-type new password: ******
Adding password for user test 2 //加入用户成功
重复以上述操作,添加所有用户。
重新启动apache,进行测试。
用IE打开http://svn.company.com/svn,这时应该可以看到
Revision 0: /
--------------------------------------------------------------------------------
Powered by Subversion version
3. 关于权限的配置
4. 更改apache的配置文件httpd.conf在末尾处“AuthzSVNAccessFile”行的注释去掉,后边的参数使用绝对路径如:E:\svn-repository\svnaccessfile。:
< L*ocat*ion /s*vn>
DAV svn
SVNListParentPath on
SVNParentPath E:\svn-repository
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile E:/svn-repository/test/passwd
AuthzSVNAccessFile E:\svn-repository\svnaccessfile
Require valid-user
< /L*oc*at*ion **>
(以上有关< /L*oc*at*ion **>的,去掉*使用)
各级目录的访问与修改权限参见下E:\svn-repository\svnaccessfile 如下:
#对用户进行分组,然后把组分配给每一个目录进行权限控掉。
[groups]
admin = admin
devteam1 = user1
devteam2 = user2,user3
docs = user4
#admin组的成员对HealthPlatform库根目录有读的权限有读和写的权限,
# docs ,devteam1和devteam2组的成员对HealthPlatform库根目录有读的权限,
#其它用户对HealthPlatform库没有读与写权限。
#其它目录的权限类同
[HealthPlatform:/]
@admin = rw
@devteam1 = r
@devteam2 = r
@docs = r
* =
[HealthPlatform:/docs]
@docs = rw
* = r
[HealthPlatform:/project]
@devteam1 = rw
@devteam2 = rw
@admin = r
* =
[test:/]
@devteam1 = rw
@devteam2 = rw
@admin = rw
* =
规划完权限后要重启apache.
a) 代码库初使化
D:\tmp>svn import tp http://svn.surpass.org/svn/test / --username admin --message "t
est"
认证领域:
“admin”的密码:**********
新增 tp\test-dev
新增 tp\test-dev\readme.txt
新增 tp\readme.txt
新增 tp\test-test
新增 tp\test-test\readme.txt
提交后的修订版为 1。
看到以上信息代码库初始化完成.
b) 从代码库中取出一个版本
D:\tmp>svn checkout http://svn.surpass.org/svn/test / --no-auth-cache --username admin
r
A test\readme.txt
A test\test-dev
A test\test-dev\readme.txt
A test\test-test
A test\test-test\readme.txt
取出修订版 1。