公司需要建立一个对版本进行管理的系统.有一个同时建议了用VSS系统来做这个功能.呵呵,我当然知道VSS是个快过时的东西了,再加上自己平时就喜欢开源软件,更喜欢用最新,最前沿的技术.综合查找各种资料和实验了.总结了如下的SVN配置经验.希望能给其他要建该系统的朋友,有所帮助.
注意 最新的svn和apache2.2不匹配.所以选用高于2.0.55以上,低于2.2.X版本的Apache服务器
准备工作,建立命令行:
由于我们以后会经常在命令行下执行命令,每次打开一个新的命令行窗口默认的当前目录都是C:/Documents and Settings/$UserName,这样在执行命令之前都要切换目录,很麻烦,所以我们先来解决这个问题。在“开始”-“运行”中输入“regedit”,打开注册表。找到/HKEY_CLASSES_ROOT/Folder/shell,如果没有shell,可以在Folder下新建一个名为shell的键,在shell下新建一个名为“命令行(Command Windows)”的键,在这个键之下再建一个新的名为“Command”的键,设置默认值为“cmd /K cd /d %L”。
1.先安装apache 2.0.59(apache http server)
在安装svn-1.4.5-setup.exe
2.复制mod_dav_svn.so和mod_authz_svn.so 到apache2/moduls目录下
复制libdb44.dll文件到apache2/moduls目录下
3.把/apache group/apache2/conf/httpd.conf配置文件中的
LoadModule dav_module modules/mod_dav.so
LoadModule dav_fs_module modules/mod_dav_fs.so
把前面的注释#去掉;
并检查LoadModule配置节的末尾是不是有了
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
4. 打开$/apache group/apache2/conf/httpd.conf配置文件,在文件的末尾加入以下语句,
<Location /svn>
DAV svn
SVNParentPath e:/SVN
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
5.配置Subversion:
在硬盘上建立源码库的根目录,例如E:/SVN
建立Subversion数据库,当前版本Subversion支持两种格式数据库,一种是FSFS,另外一种是BDB( Berkeley Database)。在命令行下输入svnadmin create --fs-type bdb TestRepository建立BDB格式的数据库(确保当前目录已经切换到E:/SVN/),
6.打开$/apache group/apache2/conf/httpd.conf配置文件,在文件的末尾加入以下语句,
<Location /svn>
DAV svn
SVNParentPath e:/SVN
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile passwd
#AuthzSVNAccessFile svnaccessfile
Require valid-user
</Location>
7.在命令行下切换到$/apache group/apache2,执行bin/htpasswd -c passwd <username>,这里<username>是你想要加入的用户名,比如doudou。执行这个命令成功以后就会在bin目录下建立一个passwd文件,之后如果再加入新的用户和更改已有用户的密码,执行bin/htpasswd passwd username即可
8.重启Apache服务
9.在浏览器地址栏中输入 http://YourServer/svn/TestRepository,输入用户名密码,ok。Subversion现在已经可以正常工作了。