安装Subversion并通过不同协议配置访问Debian Squeeze
Subversion (svn)是一个开源版本控制系统(VCS),用于开发许多软件项目。 本教程将介绍如何在Debian Squeeze上安装Subversion,以及如何配置它以允许通过不同的协议访问存储库: file://
, http://
, https://
, svn://
和svn + ssh: //
。
我不会保证这将为您工作!
1初步说明
本教程专注于Subversion安装和配置,而不是其使用。 您可以在这里找到usefull svn命令列表: http : //wiki.greenstone.org/wiki/index.php/Useful_SVN_Commands 。 完整的svn文档在这里: http : //svnbook.red-bean.com/en/1.5/index.html
我在这里使用的Debian Squeeze系统具有IP地址192.168.0.100
,我将在本教程中的各种svn
命令中使用。 确保将其替换为您自己的服务器的IP /主机名。
2安装Subversion
Subversion可以安装如下:
apt-get install subversion
接下来我们创建一个保存我们的存储库/存储库的目录
- 我使用/ var / lib / svn
,但是如果你喜欢,可以使用另一个目录。
mkdir -p /var/lib/svn
我想在/ var / lib / svn目录中
为我的名为myproject的
软件项目创建一个存储库
,这可以如下完成:
svnadmin create /var/lib/svn/myproject
当然,仓库是空的,直到我们将项目导入它。
有几种可以用来访问svn的方法或协议:
-
file://
- 通过这个协议可以直接访问存储库。 仅在同一系统(本地磁盘)上运行,而不是通过网络运行。 开箱即用 -
http://
- 可以在Subversion感知的Apache2服务器上使用WebDAV来访问存储库。 通过网络(端口80)工作。 -
https://
- 与http://
相同,但通过安全的SSL连接(端口443)。 -
svn://
- 通过svnserve服务器访问存储库。 通过网络工作(端口3690)。 -
svn + ssh://
- 与svn://
相同,但通过SSH隧道(端口22)。
3使用文件://协议
文件://
协议工作开箱即用(不需要任何服务器进程),但仅在本地,不通过网络。
我们可以使用它将我们的软件项目(我已经存储在/ home / falko / myproject中
)导入到/ var / lib / svn / myproject
存储库中:
svn import /home/falko/myproject file://localhost/var/lib/svn/myproject
结帐可以如下进行:
svn co file://localhost/var/lib/svn/myproject /home/falko/somedir
4使用http://协议
对于http://
协议,我们需要在Apache2服务器上配置WebDAV。 因此,我们现在安装Apache2和Apache2 SVN模块:
apt-get install apache2 libapache2-svn
现在我们通过编辑/etc/apache2/mods-available/dav_svn.conf来配置Apache2 SVN模块:
vi /etc/apache2/mods-available/dav_svn.conf
该文件中已有一个配置,但已被注释掉。 您可以将其注释掉,但在文件末尾,请添加以下行:
[...] <Location /svn> DAV svn SVNParentPath /var/lib/svn AuthType Basic AuthName "Subversion Repository" AuthUserFile /etc/apache2/dav_svn.passwd <LimitExcept GET PROPFIND OPTIONS REPORT> Require valid-user </LimitExcept> </Location> |
重新启动Apache:
/etc/init.d/apache2 restart
因为我们将从现在开始就像Apache用户( www-data
)和组( www-data
)一样读写我们的存储库,所以我们必须将/ var / lib / svn
及其子目录的所有者和组更改为Apache用户现在组:
chown -R www-data:www-data /var/lib/svn
请注意:如果您决定使用http://
或https://
访问SVN, 请不要再使用任何其他协议写入SVN ,因为更改后的文件的所有权将与Apache用户/组不匹配,如果你不要使用http://
或https://
!
现在我们必须创建包含所有可以访问SVN的用户的密码文件/etc/apache2/dav_svn.passwd
(我将使用用户falko
直到
这里)。
htpasswd -c /etc/apache2/dav_svn.passwd falko
请注意:仅当您首次创建/etc/apache2/dav_svn.passwd
文件时,才使用-c
开关。 如果要添加其他用户,请将其退出(否则文件将从头开始创建,这意味着您丢失了已经在文件中的所有用户):
htpasswd /etc/apache2/dav_svn.passwd till
您现在可以使用http://
协议进行如下检查:
请确保使用正确的用户名:
svn co --username falko http://192.168.0.100/svn/myproject /home/falko/somedir