费话就不多说了,直接来配置代码说话,在安装好最新的subversion server后,就已经将apache与svn集成好了,我们要做了就是直接创建代码库,然后将代码库配置到apche中去。
首先要注意httpd.conf里面是否加载了svn模块 :
LoadModule dav_module modules/mod_dav.so #LoadModule dav_svn_module modules/mod_dav_svn.so #SVN LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so
1.创建代码库,我将代码库创建在D:\svn_repository,命令:svnadmin create fenpig2
D:\SVN_REPOSITORY-------------------------------------(这个目录下的子目录用来存放各个代码仓库) │ authz-----------------------------------------(svn用户密码文件) │ passwd--------------------------------------(svn用户组文件) │ svn-auth-------------------------------------(apache用户密码文件) │ svn-group------------------------------------(apache用户组文件) │ └─fenpig2-----------------------------------------(这里是一个仓库) │ README.txt │ format │ ├─locks │ db.lock │ db-logs.lock │ ├─hooks │ start-commit.tmpl │ pre-commit.tmpl │ pre-revprop-change.tmpl │ pre-lock.tmpl │ pre-unlock.tmpl │ post-commit.tmpl │ post-lock.tmpl │ post-unlock.tmpl │ post-revprop-change.tmpl │ ├─conf │ svnserve.conf │ └─db │ fs-type │ current │ write-lock │ uuid │ fsfs.conf │ rep-cache.db │ min-unpacked-rev │ txn-current │ txn-current-lock │ format │ ├─revs │ └─0 │ 0 │ ├─revprops │ └─0 │ 0 │ ├─transactions └─txn-protorevs
说明一下,我配置的是多库的方式,在D:\SVN_REPOSITORY 目录下面,可以放多个项目库,这里我只有一个fenpig2库,并且我将fenpig2下面的认证文件指向了顶层的D:\SVN_REPOSITORY 下面的认证文件authz和passwd中。
auth内容如下 :
[aliases] [groups] programer = peirenlei,hack988 [/] @programer = r [fenpig2:/] @programer = rw
pass内容如下:
[users] peirenlei = 123123 hack988 = 321321
2.配置apache。
首先创建用户:
htpasswd.exe -c D:\svn_repository\svn-auth peirenlei 123123 htpasswd.exe D:\svn_repository\svn-auth hack988 321321
这里创建了两个用户peirenlei,hack988,千万要注意:这里的用户名密码都要和svn中的认证文件中的用户名密码一定要相同
然后创建用户组文件,直接用记事本编辑即可,这里组名为programer ,保存在 D:/svn_repository/svn-group,这个组名也要与svn认证文件中的组的名字相同:
programer = peirenlei,hack988
最后修改httpd.conf文件,在最下面加入:
<Location /svn/> DAV svn AllowOverride none SVNListParentPath on SVNParentPath d:/svn_repository AuthType Basic AuthName "fenpig Subversion repositories" AuthGroupFile D:/svn_repository/svn-group AuthUserFile D:/svn_repository/svn-auth AuthzSVNAccessFile D:/svn_repository/authz Require valid-user </Location>
注意上面的 Location /svn/ 的写法,最后面要叫个/,否则apache可能会报路径不相符的错误 。
好了,到此为至,所有配置都已完成,重启apache,输入http://localhost/svn ,会跳出输入用户名和密码的窗口,输入正确的用户名密码,即可看到我们的仓库了。
最后说明一下,在用subclipse做java开发web项目的时候,classes文件夹是要注意的地方,我的步骤如下:
1. 按branches,tags,trunk创建项目库目录结构, 将完整的项目拷贝至"trunk/项目名称" 下.
2. 提交 branches,tags,trunk 至项目库。
3. 用subclipse从项目库子路径"trunk/项目名称"检出项目。
4. 用TortoiseSVN工具,将WEB-INFO/classes文件夹加入忽略列表。
5. 将第四步中的忽略动作更新至项目库。
这样就可以进行日常的修改提交工作了。(注:如果不这样,会因classes文件夹产生错误)