天天看点

Apache+Subversion+TortoiseSVN版本库创建

Apache+Subversion+TortoiseSVN版本库创建

软件版本

Apache:Apache-2.2.11-win32-x86-OpenSSL-0.98i.msi

Subversion:Subversion-1.5.6.msi

Tortoise:TortoiseSVN-1.6.3.16613-win32-svn-1.6.3.msi

软件安装

Apache:

默认安装,其中server,domain都直接写IP。

Subversion:

默认安装,其中选择支持Apache2.2。

TortoiseSVN

默认安装,安装完后重新启动电脑,进行图标刷新工作。

软件配置及检测

l        Apache

1.        修改Apache配置文件httpd.conf文件,修改listen端口为8080,否则和IIS80端口冲突(前提是您安装了IIS,否则可以忽略这一步)。

2.        访问Apache,http://localhost:8080,或者http://127.0.0.1:8080/,出现正常工作页面“It works!”,否则重新安装Apache。

l        Subversion

1.        命令格式下进入subversion中的bin目录

2.        创建版本库svnadmin create E:/svn

3.        运行版本库svnserve –r –d E:/svn

4.        在TortoiseSVN版本库浏览中输入 svn://localhost/svn,如果可以看到版本库,则Subversion安装正确。

l        TortoiseSVN

1.        该软件为客户端访问工具,默认安装,没有不正常的时候,至少我没有见过。

版本库建立

l        Apache预先配置

1.        为了使 Subversion 与 dav 模块通信,需要安装 mod_dav_svn 插件,可以在 Subversion 的安装目录中找到,将其拷贝到 Apache 安装目录的 modules 文件夹下。具体为:Subversion的安装目录(如C:/developertools/Subversion),找到文件 mod_dav_svn.so和mod_authz_svn.so,拷贝这些文件到Apache的模块目录,(例如:C:/developertools/Apache Group/Apache2/modules)。

2.        配置 Apache 的 httpd.conf 文件,让 Apache 在启动的时候加载上述模块。

需要添加的内容如下:

去除下列头部#

LoadModule dav_module modules/mod_dav.so

LoadModule dav_fs_module modules/mod_dav_fs.so

尾部增加

LoadModule dav_svn_module modules/mod_dav_svn.so

LoadModule authz_svn_module modules/mod_authz_svn.so

              其实不需要在文件中查找,把上述四条语句直接增加到文件尾部即可。

3.        启动Apache,如Apache monitor下可以看到DAV和SVN则模块正常加载。

l        注意

在版本库中conf文件夹下三个配置文件是使用Subversion直接运行版本库来进行访问控制的文件(格式为svn方式),使用Apache来运行版本库是使用Http来进行版本控制的,使用的访问控制文件与那三个文件无关,网上的好多资料把二者混为一谈,实不可取。

l        单版本库

这种版本库意味一个文件下只有一个版本库,例如E:/SVN本身就是一个版本库

1.        版本库建立可以使用Subversion或者TortoiseSVN建立

Subversion命令:svnadmin create E:/svn

在SVN文件夹中点击鼠标右键选择Tortoise—Create Repository here来建立(可视化方便)

2.        在Apache 的 httpd.conf 文件尾部配置访问路径

<Location /repos>

  DAV svn

  SVNPath E:/SVN

  AuthType Basic

  AuthName "Aisino Vehicle MIS Repos"

  AuthUserFile E:/SVN /passwd

  AuthzSVNAccessFile E:/SVN /authz

  Require valid-user

</Location>

其中所有路径都为绝对路径, passwd为Apache bin目录下htpasswd来创建。

具体创建命令为:

创建文件以及用户test

htpasswd -c  E:/SVN /passwd  test

添加新用户

htpasswd -m E:/SVN /passwd  Newusername

其中authz可以从版本库中Conf文件夹下复制生成。

具体修改格式为

[groups]

admin = test

[/]

@admin = rw

* = r

全部配置完后,在IE或者Tortoise软件可以通过http://192.168.10.207:8080/repos来访问测试。

l        多版本库

这种版本库是指一个文件夹下可以拥有多个版本库,如文件夹SVN下有俩个文件夹testx和testy分别为独立的版本库

想要指定多个版本库,可以用多个 Location 标签,使用类似单版本库模式来建立,也可以使用 SVNParentPath 代替 SVNPath方式来建立。

1.        创建版本库与单版本库方式相同。D:/SVN下有2个版本库testx和testy。

2.        在Apache 的 httpd.conf 文件尾部配置访问路径

<Location /svn>

  DAV svn 

  SVNParentPath D:/SVN 

  AuthzSVNAccessFile D:/SVN/authz       

  Satisfy Any

  Require valid-user

  AuthType Basic

  AuthName "Subversion repositories"  

  AuthUserFile D:/SVN/passwd

</Location>

其中passwd产生方式如同单版本库方式,authz文件稍有不同,具体为

[groups]

admin = test

[testx:/]

@admin = rw

[testy:/]

@admin = rw

其中[testx:/]为每个版本库的访问控制。

全部配置完后,在IE或者Tortoise软件可以通过http://192.168.10.207:8080/svn/testx来访问测试。

附录

l        httpd.conf Location具体格式说明为:

<Location /svn> //Subversion版本库的URL是http://Server/svn/

DAV svn //告诉Apache是哪个模块响应那个URL的请求-此刻是Subversion模块

SVNListParentPath on //显示所有SVNParentPath下的版本库。

SVNParentPath D:/SVN //告诉Subversion需要查看的版本库位于D:/SVN之下

AuthType Basic //激活基本认证,就是用户名/密码

AuthName "Subversion repositories" //认证对话框的信息

AuthUserFile passwd //指定使用的密码文件

AuthzSVNAccessFile svnaccessfile //Subversion版本库的访问控制文件的路径

Require valid-user //只有输入了正确的用户/密码的用户可以访问URL

</Location>

l        创建密码文件

打开命令行提示符(DOS),来到apache2目录(例如C:/developertools/ApacheGroup/Apache2/bin)通过输入下面的命令创建文件 :

Htpasswd –c passwd john

//创建一个文件名为passwd的密码文件,并添加一个用户,系统会提示输入密码和密码确认,完成之后新的用户名的密码就被添加至passwd文件里边,密码采用MD5进行加密。

继续往文件里边添加用户和密码

Htpasswd passwd peter

.(注:将产生的文件存放到你配置的AuthUserFile的路径,这里是AuthUserFile C:/developertools/Apache Group/Apache2/conf/passwd)。

也可以直接说明位置进行密码文件创建

Htpasswd.exe –c e:svn/passwd test

Htpassws.exe e:/svn/passwd test2

创建的密码文件就是httpd.conf 文件中AuthUserFile的具体文件,直接写绝对路径即可。