针对版本控制设置Apache Subversion SVN和TortoiseSVN的最终指南

如果您的工作需要处理文档,网页和定期更新的其他类型的文件,则您可能希望使用版本控制机制(如果您还没有这样做的话)。

除此之外,这允许您(以及一组潜在协作者)跟踪对给定文件所做的更改,如果遇到问题或更新没有产生预期结果,您可以回滚到以前的版本。

在自由软件生态系统中,最广泛使用的版本控制系统被称为Apache的颠覆 (SVN或简称)。 随着的mod_dav_svn的帮助下(Apache的模块颠覆),你可以使用HTTP和Web服务器访问Subversion库。

这就是说,让我们卷起袖子,并在RHEL / CentOS的7,Fedora 22-24,Debian 的8/7Ubuntu 16.04-15.04服务器上安装这些工具。 对于我们的测试中,我们将使用与IP 192.168.0.100一个CentOS 7服务器。

在客户端(在Windows 7机),我们将安装并使用TortoiseSVN(这是基于Apache Subversion的)为SVN的接口。

我们的测试环境

Server - CentOS 7
IP Address - 192.168.0.100
Client - Windows 7

第1步 - 在Linux上安装和配置SVN

正如我们刚才提到的,我们将依靠Apache来使用Web界面访问SVN存储库。 如果尚未安装,请确保将其添加到软件包列表中,如下所示:

------------------ On CentOS / RHEL / Fedora ------------------ 
# yum update && yum install mod_dav_svn subversion httpd -y
------------------ On Debian / Ubuntu ------------------ 
# apt-get update && apt-get install libapache2-svn subversion apache2 -y 

安装在CentOS 7月期间,SVN的Apache配置文件会/etc/httpd/conf.modules.d/10-subversion.conf被创建。 打开文件并添加以下配置块:

/etc/httpd/conf.modules.d/10-subversion.conf
<Location /svn>
DAV svn
SVNParentPath /websrv/svn
AuthType Basic
AuthName "Welcome to SVN"
AuthUserFile /etc/httpd/subversion-auth
Require valid-user
</Location>

配置Apache SVN模块

:在Debian / Ubuntu的你需要添加以下行/etc/apache2/mods-enabled/dav_svn.conf文件。

/etc/apache2/mods-enabled/dav_svn.conf
<Location /svn>
DAV svn
SVNParentPath /websrv/svn
AuthType Basic
AuthName "Welcome to SVN"
AuthUserFile /etc/apache2/subversion-auth
Require valid-user
</Location>

Debian / Ubuntu的 ,你需要启用dav_svn Apache模块:

# a2enmod dav_svn

几个澄清:

  1. SVNParentPath指示指示了我们的仓库将在以后创建的目录。 如果此目录不存在(这是最可能的情况),请使用以下命令创建:
    # mkdir -p /websrv/svn
    

    要注意,此目录不能位于内部,或者重叠是很重要的,目前正由Apache的送达虚拟主机的DocumentRoot的这是一个搅局!

  2. 该指令的AuthUserFile指示了一个有效的用户的凭据将存储文件。 如果要允许所有人在没有身份验证的情况下访问SVN,请删除位置块中最后四行。 如果是这样的话,请跳过第2步,直接前往第3步
  3. 虽然您可能想重新启动Apache以便应用这些最近的更改,但不要这样做,因为我们仍然需要为SVN和存储库本身创建有效用户的身份验证文件。

第2步 - 添加允许的用户访问SVN

现在,我们将使用的htpasswd创建将被允许访问的SVN账户的密码。 对于只有第一个用户,我们将需要-c选项。

允许的帐户和bcrypt加密的口令( -B )将被存放在/ etc / httpd的/键-值对颠覆-auth的 请注意,按今天的标准,htpasswd使用的默认MD5或SHA加密被认为不安全。

------------------ On CentOS / RHEL / Fedora ------------------ 
# htpasswd -cB /etc/httpd/subversion-auth youcl
------------------ On Debian / Ubuntu ------------------ 
# htpasswd -cB /etc/apache2/subversion-auth youcl

不要忘记为身份验证文件设置正确的所有权和权限:

------------------ On CentOS / RHEL / Fedora ------------------ 
# chgrp apache /etc/httpd/subversion-auth
# chmod 660 /etc/httpd/subversion-auth
------------------ On Debian / Ubuntu ------------------ 
# chgrp www-data /etc/apache2/subversion-auth
# chmod 660 /etc/apache2/subversion-auth

第3步 - 添加安全性并创建SVN存储库

既然你将通过Web界面来访问SVN,你需要允许HTTP(和可选HTTPS)通信通过防火墙。

------------------ On CentOS / RHEL / Fedora ------------------ 
# firewall-cmd --add-service=http --permanent
# firewall-cmd --add-service=https --permanent
# firewall-cmd --reload 

通过重新加载与防火墙配置--reload ,永久设置立即生效。

创建初始SVN仓库称为youcl:

# svnadmin create /websrv/svn/youcl

更改所有者和组所有者递归Apache

------------------ On CentOS / RHEL / Fedora ------------------ 
# chown -R apache:apache /websrv/svn/youcl
------------------ On Debian / Ubuntu ------------------ 
# chown -R www-data:www-data /websrv/svn/youcl

最后,您需要更改的安全上下文/websrv/svn/youcl (请注意,您将不得不重复此步骤,如果你决定以后创建其他库):

------------------ On CentOS / RHEL / Fedora ------------------ 
# chcon -R -t httpd_sys_content_t /websrv/svn/youcl/
# chcon -R -t httpd_sys_rw_content_t /websrv/svn/youcl/

注意 :如果你在使用SELinux的残疾人VPS安装SVN最后两个命令可能不适用。

建议阅读: 学会如何在Linux下暂时或永久禁用SELinux

重新启动Apache和验证库可用。

------------------ On CentOS / RHEL / Fedora ------------------ 
# systemctl restart httpd
------------------ On Debian / Ubuntu ------------------ 
# systemctl restart apache2

然后启动一个网页浏览器,并指向它http://192.168.0.100/svn/youcl 进入凭据我们在第1步中创建的有效的用户后,输出应该类似于:

通过浏览器访问SVN存储库

在这一点上,我们没有添加任何代码到我们的存储库。 但我们会在一分钟内完成。

第4步 - 在Windows 7客户端中安装TortoiseSVN

正如我们在介绍中提到,TortoiseSVN是一个友好的用户界面到Apache Subversion的。 在GPL下它是免费的软件许可,可以从下载https://tortoisesvn.net/downloads.html

选择与你的机器架构(3264位 ),并在继续之前安装程序。

第5步 - 在客户端计算机上设置SVN存储库

在这一步中,我们将使用一个文件夹中名为webapp的内部文件 此文件夹包含HTML文件,两个文件夹命名为脚本和样式与Javascript和(分别的script.jsstyles.css中 ,)一个CSS文件,我们要添加到版本控制。

右击Web应用程序 ,然后选择SVN结帐。 这将创建远程存储库(此时为空)的本地副本,并初始化用于版本控制的文件夹:

在客户端目录上配置SVN

在资料库中,键入网址http://192.168.0.100/svn/youcl并确保本地结帐目录保持不变,然后单击确定

在客户端上配置SVN存储库

输入用户名和密码(请参阅第2步),然后单击OK:

输入SVN用户的凭据

你会被询问是否要签成一个非空目录, 确认结账继续。 一旦完成,文件夹名称旁边将显示一个绿色复选标记:

签出SVN目录

第6步 - 提交更改并将文件部署到远程SVN存储库

右键单击webapp再次选择提交这个时候。 接下来,编写一个描述性注释,以后识别此提交,并检查要部署到存储库的文件和文件夹。 最后,单击OK:

将文件部署到远程SVN存储库

根据文件的大小,提交不应超过一分钟。 当它完成后,你会看到,我们现在对修订版1,这在Web界面中列出的版本和文件相匹配:

确认SVN存储库修订

如果有几个人在同一个文件时,你需要更新您的本地副本,以便有提供工作的最新版本。 为此,您可以通过右键单击webapp ,然后从上下文菜单中选择更新

恭喜!您已成功安装版本控制的SVN服务器和COMMITED /更新的一个简单的项目。

概要

在这篇文章中,我们已经解释了如何安装和一个CentOS 7服务器上配置一个Apache Subversion仓库服务器,以及如何提交修改到使用TortoiseSVN版本库。

请注意,不是我们能够充分覆盖这里(特别是如何恢复到以前的版本),所以你可能要参考官方文档(多为SVNTortoiseSVN SVNTortoiseSVN的 )的详细信息和配置情况。

和往常一样,如果您有任何问题,请随时与我们联系! 请随时使用以下评论表单随时与我们联系。

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏