这里主要说明构建http://IP地址/repository所在目录/子目录 格式的多版本管理库。
本地使用(个人)格式:file:///磁盘驱动器|/repository所在目录/子目录 见:TortoiseSVN 构建本地多版本管理库
window平台
下载地址:http://httpd.apache.org/;当前版本2.4;安装成功后,在浏览器中输入:http://localhost
如果正确安装了apache服务,则会看到It works! 如图:
如果没有成功,可能是服务端口被占用了。我们打开安装目录下的配置文件:C:\Program Files\Apache SoftwareFoundation\Apache2.2\conf\httpd.conf
找到: Listen 80 修改端口号
下载地址:http://subversion.apache.org/packages.html,当前版本1.8.4
TortoiseSVN,下载地址:http://tortoisesvn.net/downloads.html,当前版本为:1.8.3
如果在加载模块(Apache2.2\modules)里没有mod_dav_svn.so和mod_authz_svn.so和libdb44.dll,则从subversion的安装目录subversion/bin里考到Apache2.2\modules:
mod_dav_svn.so
mod_authz_svn.so
libdb44.dll
然后我们再打开C:\Program Files\Apache SoftwareFoundation\Apache2.2\conf\httpd.conf文件.
找到
#LoadModuledav_module modules/mod_dav.so
#LoadModuledav_fs_module modules/mod_dav_fs.so
去掉前面的注释符号#
然后再下面添加
LoadModuledav_svn_module modules/mod_dav_svn.so
LoadModuleauthz_svn_module modules/mod_authz_svn.so
注意不要随意改变顺序。可能出现其它错误。模块的加载设置完成,下面我们要设置SVN的版本库目录,以使我们的apache能知道访问不同的URL的时候,它去哪里寻找这个URL所对应的SVN目录.
在httpd.conf文件中,增加如下内容:
<Location /svn/myproject> DAV svn SVNPath D:/svnroot/myproject AuthzSVNAccessFile D:/svnroot/myproject/conf/access.auth Satisfy Any Require valid-user AuthType Basic AuthName "welcome" AuthUserFile D:/svnroot/myproject/conf/users.auth Require valid-user </Location>上面使用了users.auth ,和access.auth 两个文件,我们后面创建 .
创建新文件夹作为统一svn版本库存放的路径(比如新建一个名叫svnroot的文件夹)
在svnroot文件夹下新建文件夹myproject,然后创建版本库。
在d:\创建svnroot文件夹,然后通过svn的svnadmin命令创建数据仓库
(注意:D:\svnroot\myproject这个路径是区分大小写的)
svnadmin createD:\svnroot\myproject
安装subversion时已经在右键添加快捷菜单,所以可以用右键菜单直接创建数据仓库:下图为在myproject目录上的右键操作。命令行模式下如图:
创建成功后,我们看到myproject文件夹里面多了些文件,如下:
点击进入conf文件夹,用记事本(或者其他文本编辑软件)打开文件svnserve.conf,找到如下行 #password-db = passwd,把它前面的#去掉,表示myproject是需要密码验证的,再打开conf文件夹下面的passwd文件,用文本编辑器打开,在[users]下面加上我们需要的用户名和密码,比如:[users] admin = admin tom = 123456
这样我们就启用了两个用户,一个叫admin,密码是admin,一个叫tom,密码是123456.
然后保存passwd文件。我们再建一个文件,叫access.auth,这个文件是设置访问权限的,里面的内容如下:
[myproject:/] Admin = rw [myproject:/module1] Tom = rw Admin = rw
rw表示可读可写,这表示,myproject下面的所有子目录admin都是具有读写权限的,但是tom只有权限读写次项目下面的module1目录,这个各自的访问权限就分的更细致了。
命令行模式下,到apache安装目录下的bin目录下,操作如下:为admin用户设置好了密码,创建第一个用户时创建文件,添加第二个用户则不用创建,具体命令行参数有细微区别,注意-cb参数
c命令表示新建文件
创建好后,把bin目录下的user.auth文件粘贴到我们的工程conf目录下,即:d:\\svnroot\myproject\conf目录下。
重新启动apache服务,通过http://localhost:80/svn/myproject/(如果端口为80,没有修改过,则可以直接访问为:http://localhost/svn/myproject)
如果成功会看到如下结果:
则表示配置成功。从列出的版本库可以看出,当前版本为0(Revision 0)
版本库创建成功了,我们就可以开始我们的工作了。
在D盘新建一个名叫workspace的文件夹,作为我们的工作目录,进入workspace,右键菜单,如图,选择SVN Checkout. ..
在弹出的对话框中输入我们版本库的路径,如图:
点击OK,会弹出用户验证框,输入用户名和密码就可以了。
这样我们就可以再workspace目录里面添加我们的文件了。这里我们随意放入些文件:
其中.svn文件为本地svn记录的一些信息,在上一步我们checkout生成。
我们使用svn基本上是团队开发,所以在实际中,我们不是使用http://localhost这样来访问版本库,而是使用IP地址,这里只需吧localhost修改成我们版本库的实际IP地址就OK.比如:
htpp:// 222.211.107.171/svn/myproject;这样其他机子在访问时,就可以从这个地址中检出版本库资源了。当然你得赋予他们的权限。