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

开发 项目管理
SVN版本控制的运行模式用两种分别是以Stand-alone模式运行和以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版本控制介绍完毕。

【编辑推荐】

  1. 资深专家介绍SVN版本控制的安装使用方法
  2. SVN版本控制器安装的那些事
  3. 术语汇编:SVN版本控制详解
  4. 名师课堂:Eclipse中安装SVN版本控制插件方法详解
  5. 学习笔记: 如何删除SVN版本控制信息
责任编辑:佚名 来源: codepub.com
相关推荐

2010-06-02 15:29:06

SVN版本控制

2010-05-31 12:27:54

版本控制工具SVN

2010-06-02 14:28:23

SVN版本控制

2010-05-31 11:30:57

SVN使用

2010-06-02 19:13:30

搭建svn版本控制平台

2010-05-28 18:39:16

Apache2.0和S

2010-05-27 16:06:13

SVN设置

2010-05-31 19:53:05

SVN版本控制插件

2010-06-02 14:16:18

SVN版本控制

2010-05-24 09:11:06

SVN版本库

2010-05-25 18:20:54

apache+svn+

2010-05-31 17:56:27

2010-05-25 19:57:32

2010-06-01 18:26:11

删除SVN

2010-05-31 12:44:46

版本控制工具SVN

2010-06-02 09:33:04

2010-05-19 15:57:38

CVS与SVN

2010-05-25 18:32:22

apache+svn+

2022-02-18 10:47:43

GocommitSVN

2010-05-20 12:43:37

SVN Update命
点赞
收藏

51CTO技术栈公众号