我正在工作中的公共 IP 服务器上构建一个 SVN 存储库,以便包括我自己在内的一些开发人员可以从任何地方访问它,而不仅仅是在办公室。我想知道如何获取 SVN 存储库的 URL,我知道本地存储库是 file:///svn_repos,但我以前从未尝试过这样做。对不起,如果我看起来像个彻头彻尾的白痴。
3 回答
您必须将您的 svn 服务器与在同一个盒子上运行的 apache 连接起来。
在服务器上下载并安装 Subversion Edge:
http://www.collab.net/downloads/subversion
这将为您提供一个简单的 Web UI 来管理您的服务器和存储库。您的客户将能够通过 http 或 https 访问您的存储库。
对于 Windows,请按照以下步骤操作:https ://www.inetsolution.com/blog/july-2007/how-to-setup-subversion-apache-websvn-on-windo (从未测试过,但似乎正确)
对于 Linux,您需要 apache、subversion 和 mod_dav_svn(使用 apt-get、yum 或其他方式安装)
- 安装阿帕奇
- 安装颠覆
- 安装 mod_dav_svn
然后你必须配置一切。在 apache 配置中,添加以下内容:
<Location /svn>
DAV svn
SVNParentPath /var/www/svnrepo
AuthType Basic
AuthName "Subversion repositories"
AuthUserFile /etc/svn-auth-users
Require valid-user
SSLRequireSSL
</Location>
您创建证书:
openssl req -new > YOUR_SERVER.certificate.csr
openssl rsa -in privkey.pem -out YOUR_SERVER.certificate.key
openssl x509 -in YOUR_SERVER.certificate.csr -out YOUR_SERVER.certificate.cert -req - signkey YOUR_SERVER.certificate.key -days 1024
mv YOUR_SERVER.certificate.cert /etc/pki/tls/certs/
mv YOUR_SERVER.certificate.key /etc/pki/tls/private/
vim /etc/httpd/conf.d/ssl.conf
您创建用户:
htpasswd -cm /etc/svn-auth-users YOUR_USERNAME
你创建和配置你的 svn 服务器:
cd /var/www
mkdir svn
cd svn
svnadmin create YOUR_PROJECT_NAME
chown -R apache.apache YOUR_PROJECT_NAME
chcon -h system_u:object_r:httpd_sys_content_t /var/www/svnrepo/YOUR_PROJECT_NAME
chcon -R -h apache:object_r:httpd_sys_content_t /var/www/svnrepo/YOUR_PROJECT_NAME/*
mkdir -p /var/svn_template/{trunk,branches,tags}
svn import -m 'Initial import' /var/svn_template/ https://localhost/svn/YOUR_PROJECT_NAME/
service httpd restart
我已经在几台 Fedora 服务器上完成了这项工作,而且效果很好。
然后,您可以使用您的 YOUR_USERNAME 帐户(及其密码)在此地址访问您的 svn 服务器: https : // YOUR_SERVER_ADDRESS / svn/YOUR_PROJECT_NAME/