Apache模块方式运行SVN版本控制详解

本节向大家介绍一下两种SVN版本控制的运行模式中的一种,即以Apache的模块方式运行,希望通过本节的学习,大家能够掌握SVN版本控制在Apache模块下运行方法。下面是具体步骤介绍。

0.首先要了解的是SVN设计的时候只考虑了兼容Apache2.x,所以在Apache1.x下是不能正常工作的。

1.安装Apache2
如果事先启动了IIS之类的其他webserver,请先停止那些服务(端口被占用会导致Apache安装失败)。
其他问题可以参考Apache的安装手册。
这里假设安装目录为:%APACHE_HOME%

2.检查Apache2的安装是否成功
打开浏览器,访问:http://localhost/
如果出现的是默认的欢迎页面,那就没有问题了。否则请仔细检查,重新安装。

3.打开Apache的配置文件:“%APACHE_HOME%"conf"httpd.conf”
查找”LoadModule”这个关键字,找到导入模块的区块(section)
反注释掉下面这样,从而加载Subversion所需要的DAV模块:1.#LoadModuledav_modulemodules/mod_dav.so。完成之后看起来应该是这样:1.LoadModuledav_modulemodules/mod_dav.so
另外在这行下面再添加两行(请注意把路径中的”"”替换成”/”):
1.LoadModuledav_svn_module%SVN_HOME%/bin/mod_dav_svn.so
2.LoadModuleauthz_svn_module%SVN_HOME%/bin/mod_authz_svn.so
以Apache的模块方式运行SVN版本控制时特别需要注意的是:由于模块依赖关系,这三行的出现顺序千万不能颠倒。

4.再来配置一下”httpd.conf”的其他部分,告诉Apache2SVN的数据仓库所在。(为避免不必要的麻烦,所有路径中的”"”都请替换成”/”)
注意:
·按照下述配置,所有数据仓库将共享密码文件及权限文件,如果需要为每个数据仓库创建独立的设置,请查阅SVN的文档(”AuthorizationOption”章节)

15.保存”httpd.conf”并退出,这里Apache2的配置告一段落。

16.”%SVN_REPO_PARENT%/AccessFile”文件的内容
1.[/]
2.*=r
3.user1=rw
4.user2=r
5.admin=rw
6.
7.[%PROJECT_NAME%:/src/test]
8.user2=rw
其中:
·[/]指代所有数据仓库的根目录,匿名用户默认的权限为只读。
·对于”user1″和”admin”,他们对所有数据仓库都有读写权限。
·对于”user2″,它对所有数据仓库仅有只读权限。但是下方又额外指定了他对”%PROJECT_NAME%:/src/test”目录具有读写权限。
·综上,他对’test’目录及其子目录(自动继承,除非特别指定)具有读写权限,其他则均为只读权限。
你可以根据需要来设定不同的权限,更详细的说明还需要参考SVN文档中的权限设置章节。#p#

17.”%SVN_REPO_PARENT%/passwd”文件的内容。这个文件是通过”%APACHE_HOME%"bin"htpasswd.exe”自动生成的

18.把SVN自带的XSLT文件拷贝到网站根目录,
然后设置合理权限(windows平台则不必考虑)

19.重启Apache2服务:
1.cmd
2.netstopApache2
3.netstartApache2

20.打开浏览器,访问:http://%SERVER_NAME_OR_IP%/svn/
如果返回的页面是”403Forbidden”,可能是由于Apache2默认没有打开目录的浏览权限(OptionIndexes,参阅Apache2文档),但这并不影响使用。现在已经可以用客户端导入项目并开始使用了。具体步骤,请参阅第20步。
***********************************************
*注意:以下步骤/命令需要在装有SVN客户端的机器上执行*
*Windows下安装服务器端的时候已经同时安装了客户端*
*Linux下尚待查证。*
***********************************************

21.以Apache的模块方式运行SVN版本控制时和CVS一样,SVN在最初的时候需要将已有项目导入到数据库中。
从命令行执行以下命令(Stand-alone):

1.svnimportc:"temp"myprojectsvn://%SERVER_NAME_OR_IP%/%PROJECT_NAME%-m"initialimport"--usernameyour_username--passwordyour_password或者(Apache2module):
1.svnimportc:"temp"myprojecthttp://%SERVER_NAME_OR_IP%/svn/%PROJECT_NAME%-m"initialimport"--usernameyour_username--passwordyour_password
其中:
A)c:"temp"myproject里面包含了你所要导入的项目文件的内容
B)%SERVER_NAME_OR_IP%是SVNServer的名字或者IP地址,上面存有第5步中创建的数据仓库
C)%PROJECT_NAME%是要导入到的数据仓库名称,这里选择跟项目名一致
D)参数m表明此次导入操作的注释,SVN的注释是按每次提交来定义的,导入也是提交的一种。
E)your_username和your_password是第7和17步创建的用户及密码,注意该用户必须对上面的%PROJECT_NAME%数据仓库有写权限才能成功。

22.然后,需要从Server端再次checkout到本地:
(这点感觉不是太方便,为啥不做成import的时候有个选项,本地目录可以自动生成版本信息呢?)
1.cmd
2.cd/Danywhere_you_want_to_put_your_versioned_project_files
3.svncosvn://myserver/myproject/trunk.--usernameyour_username--passwordyour_password
注意:
“co”是”checkout”的一个别名
那个点[.]代表当前目录,checkout出来的文件会自动放到这个目录下。也可以改为某个绝对路径。

23.对于向SVNSerer增加,移动,删除,或者修改后提交某些文件,参考使用以下命令:
1.Add:svnaddsrc/myfile.java-m"addingafile"
2.Move:svnmovesrc/myfile.javasrc/mynewfile.java-m"movedmyfile.javatomynewfile.java"
3.Delete:svndeletesrc/myfile.java-m"removingafile"
4.Commit:svncommitsrc/myfile.java-m"themessage"
对于上面的客户端操作,如果安装了TortoiseSVN,一切就变得简单多了。不过这个就要抓图来说明了。等有空的时候再放上来。

※总结※

使用Eclipse的朋友还可以参考这里:http://subclipse.tigris.org/它以插件的形式向Eclipse提供了SVN的支持。另外,具体的设置,参数说明等还是需要自己去查阅SVN的文档(在安装server端的时候已经附带)本节关于以Apache的模块方式运行SVN版本控制介绍完毕。

网站名称:Apache模块方式运行SVN版本控制详解
转载源于:http://www.shufengxianlan.com/qtweb/news15/318265.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联