在Ubuntu上使用Subversion

安装

假设已经安装了Apache。请执行以下命令apt-get:

sudo apt-get install subversion libapache2-svn apache2-utils

由于Ubuntu 14.04LTS操作系统中没有预装htdigest,所以需要安装apache2-utils。

使HTTP使能夠進行訪問

vi /etc/apache2/mods-enabled/dav_svn.conf 
<Location />
     DAV svn
     SVNParentPath /var/lib/svn
     AuthType Digest
     AuthName "realm" 
     AuthUserFile /etc/apache2/.htdigest
     Require valid-user
</Location>

如果按照以上的设置示例,在访问(apache的根路径)/svn/(SVN仓库名称)时,将能够访问到/var/lib/svn/(SVN仓库名称)的仓库。例如,如果Apache的根路径是http://localhost/,那么当访问http://localhost/svn/Test时,将能够看到名为/var/lib/svn/Test的仓库。

只需刪除 dav_svn.conf 的註解,即可立即使用。在上述情況下,除非通過摘要認證,否則無法訪問 SVN 儲存庫。然後,必須創建用於摘要認證的密碼檔案。以下指令即可:

# Digest 创建验证密码。
sudo htdigest -c /etc/apache2/.htdigest 'realm' (用户名)

当您登录时,系统会要求输入密码,请确保密码设置正确。请确认密码文件名与您在 dav_svn.conf 中指定的文件名是否匹配。另外,实际上,认证将不会成功,除非您确保上述领域(认证域:可以是任意字符串)也匹配。此外,请注意错误信息可能不够明确。

如果你想添加用户,只需要运行相应的 sudo htdigest 命令。记住在使用 -c 选项时会创建一个新文件(旧用户将会被删除),请注意。

现在,通过Web准备好了访问,我们可以按照以下方式启用Digest身份验证并重新启动Apache。

sudo a2enmod auth_digest
sudo /etc/init.d/apache2 restart

确认动作

下一步终于要创建 SVN 的存储库文件夹并创建存储库。 例如,如果想要创建名为 Test 的项目,则只需创建名为 Test 的存储库,可以按照以下步骤进行:

sudo mkdir /var/lib/svn
cd /var/lib/svn
sudo svnadmin create Test
sudo chown -R www-data.www-data /var/lib/svn  # www-data 是 Ubuntu 上的 Apache 用户

执行ls命令,确认Test文件夹已创建并能在其中进行各种操作。

然后最后通过访问 http://localhost/Test 来进行确认。系统会要求输入用户名和密码,正确回答后,应该会显示一个版本号为0的空仓库,内容为「Revision:0」。如果不成功的话,可以参考/var/log/apache2/access.log或error.log来查找原因。

如果要创建子域名的话

如果您想访问 http://svn.hoge.com/(仓库名称),可以尝试使用VirtualHost。

sudo vi /etc/apache2/sites-available/svn.conf
<VirtualHost *:80>
    ServerName svn.hoge.com

    <!--单独的 Apache 日志 -->
    CustomLog ${APACHE_LOG_DIR}/access_svn.log combined
    ErrorLog ${APACHE_LOG_DIR}/error_svn.log
    <Location />
        DAV svn 
        SVNParentPath /var/lib/svn
        AuthType Digest
        AuthName "realm"
        AuthUserFile /etc/apache2/.htdigest
        Require valid-user
    </Location>
</VirtualHost>
sudo a2ensite svn.conf  # svn.hoge.com 启用设置

备份和恢复

如果您能定期使用 cron 或其他方式执行以下命令,您就可以放心了。

# 备份
sudo svnadmin dump {项目名称} > {转储文件名}

# 修复
sudo svnadmin create {项目名称}
sudo svnadmin load {项目名称} < {转储文件}
sudo chown -R www-data.www-data {项目名称}
广告
将在 10 秒后关闭
bannerAds