上节我们讲到SVN入门中SVN服务器端配置,这节我们继续介绍,另外介绍一下SVN建立版本库问题,看完本文SVN入门你肯定有不少收获,希望本文能教会你更多东西。
2.4Windows下的svnserve+ssh配置
需要使用Cygwin来配置ssh,此处略,详情可参考http://tortoisesvn.net/node/156
2.5&2.6基于Apache服务器的SVN配置
概述
Apache的http服务器是一个subversion可以利用的“重型”网络服务器,通过一个自定义模块,httpd可以让SVN版本库通过WebDAV/DeltaV协议在客户端前可见。可以将浏览器指向版本库的URL,无需安装SVN客户端就可以浏览内容。
基于Apache的SVN需要两个包的四个部分:Apachehttpd2.0及其中包含的mod_davDAV模块,Subversion及与之一起发布的mod_dav_svn模块。有了上述组件之后,配置步骤一般如下
1)配置好http2.0,并且使用mod_dav启动
2)为mod_dav安装mod_dav_svn插件
3)配置httpd.conf来发布版本库。SVN入门介绍Linux下基于APache的SVN服务器配置
2.5Linux下基于APache的SVN服务器配置
(参考http://www.123shang.cn/blog/?p=53)
(参考“ubuntu下svn+apache版本管理服务器配置”)
2.5.1安装aphache
$sudoapt-getinstallapache2#安装apache
$sudoapt-getinstalllibapache2-svn#安装相关组件
$sudoapt-getinstallsubversion#安装svn
安装完毕后启动apache
$/usr/local/apache/bin/apachectl–kstart
——用浏览器查看http://localhost/,得到itworks,说明apache已经配置成功了。
2.5.2创建版本库(见第三节)
2.5.3添加用户并设置密码文件
版本库的密码文件,一般命名为PasswdFile,由用户通过命令创建,里面保存授权用户的用户名和MD5加密后的密码。创建密码文件,密码文件保存在版本库文件目录下,在终端通过下面的命令创建密码文件:
$htpasswd-c/etc/svn/passwordfileusername
passwordfile密码文件名称,可以由用户自行命名
username你希望添加的用户名,比如zhangsan,lisi,wangwu
-c用来创建密码文件
按提示输入密码,添加成功后会提示adduserusername,然后可以再继续添加第二个用户。
$htpasswd/etc/svn/passwordfileseconduser
2.5.4httpd.conf文件修改
conf文件正常安装的话在etc/apache2/目录下,双击打开进行编辑,添加以下内容:
LoadModuledav_svn_modulemodules/mod_dav_svn.so加载mod_dav_svn模块
LoadModuleauthz_svn_module/usr/lib/apache2/modules/mod_authz_svn.so加载mod_anthz.svn模块
- <Location/vcard>
- DAVsvn
- SVNPath/home/bb/svn/vcard/指明版本库的路径
- AuthTypeBasic认证类型为基本认证
- AuthName"SVNrepos"认证名称,将在IE界面弹出一个对话框,其标题就是SVNrepos
- AuthUserFile/home/bb/svn/vcard/VcardPasswdFile加载密码文件,访问版本库用户的文件,用apache的htpasswd命令生成
- #AuthzSVNAcessFile//home/bb/svn//vcard/accesspolicy访问版本库权限的文件
- #satisfyAny
- Requirevalid-user要求验证用户,即不能匿名访问;如果没有这个语句,则只能第一个用户可以访问新建库
- </Location>
保存文件退出,重新启动apache
#/usr/local/apache/bin/apachectl–krestart
测试:
$svncheckouthttp://localhost/svn。下面我们看一下SVN入门中Windows下基于APache的SVN服务器配置。
2.6Windows下基于APache的SVN服务器配置
2.6.1下载安装Apache
APache:http://httpd.apache.org/download.cgi
——如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。
——请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。
——就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。
——如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。
2.6.2配置Subversion
使用Windwos资源管理器,来到Subversion的安装目录(通常是c:\programfiles\Subversion),找到文件httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到Apache的模块目录(通常是c:\programfile\apachegroup\apache2\modules)。
2.6.3配置httpd.conf文件
路径通常为c:\programfiles\apachegroup\apache2\conf\httd.conf),修改以下内容:
去掉以下两行的注释号“#”:
#LoadModuledav_fs_modulemodules/mod_dav_fs.so
#LoadModuledav_modulemodules/mod_dav.so
在LoadModule节的最后添加以下两行:
LoadModuledav_svn_modulemodules/mod_dav_svn.so
LoadModuleauthz_svn_modulemodules/mod_authz_svn.so
文件末尾添加以下行,让Apache知道哪个URL将被Subversion使用:
- <Location/svn>
- DAVsvn
- SVNParentPathD:\SVN
- AuthTypeBasic
- AuthName"Subversionrepositories"
- AuthUserFileD:\passwd
- #AuthzSVNAccessFileD:\svnaccessfile
- Requirevalid-user
- </Location>
——这样配置表示:你所有的版本库将位于D:\SVN目录下,要访问你的版本库可以使用这样的URL:http://MyServer/svn/,访问权限将由passwd文件中的用户名/密码来限制。
要创建passwd文件,可以打开命令行,将当前目录切换到apache2目录,输入命令:
c:\programfiles\apachegroup\apache2>bin\htpasswd-cpasswd<username>
重启Apache服务。
使用浏览器测试。下面我们介绍一下SVN入门中关于建立版本库问题。
三、建立版本库
在前面的服务器配置上我们通常假设已经建立了版本库,这是为了避免在每种配置中重复赘述这种操作,因此把它独立出来讲。
版本库创建完毕后会在目录下生成若干个文件和文件夹:
dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;
db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;
locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;
format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
3.1Linux下创建版本库
版本库有两种数据存储格式:BerkeleyDB和FSFS,推荐选用FSFS格式,具体可以查阅参考资料了解二者的区别。
创建版本库时,在终端运行如下命令:
#运行创建版本库的命令,指定数据存储为FSFS,如果要指定为BerkeleyDB,则将fsfs替换为bdb
$svnadmincreate--fs-typefsfs/etc/svn/repos创建版本库,运行这个命令后,我们就可以看到一个版本库应有的文件
更改版本库的访问权限
$sudomkdir/home/svn
$cd/home/svn
$sudomkdirmyproject
前面三条命令用于创建版本库目录,如果已经建立,就可以省略掉;后面三条用于修改权限
$sudochown-Rwww-datamyproject
$sudochgrp-Rsubversionmyproject
$sudochmod-Rg+rwsmyproject这条命令允许用户对版本库进行读写操作,即可以更新,可以提交
3.2Windows下创建版本库
可以使用TortoiseSVN图形化的完成这一步,在目录E:subversionrepository下"右键->TortoiseSVN->CreateRepositoryhere...“,然后可以选择版本库模式,使用默认即可,然后就创建了一系列目录和文件。
[Tips]如果下载的是setup.exe版本,安装程序安装后会自动设置系统变量,如果下载的是zip版就需要手动设置系统变量.
也可以使用命令行来创建:
C:\>svnadmincreateF:\svn\。本节介绍SVN入门完毕,请关注本节其他相关报道。
【编辑推荐】