![我应该把我的 svn 存储库放在哪里?](https://linux22.com/image/517191/%E6%88%91%E5%BA%94%E8%AF%A5%E6%8A%8A%E6%88%91%E7%9A%84%20svn%20%E5%AD%98%E5%82%A8%E5%BA%93%E6%94%BE%E5%9C%A8%E5%93%AA%E9%87%8C%EF%BC%9F.png)
我正在尝试设置一个用于 Web 开发的测试服务器。我以前从未这样做过,也从未使用过 svn。
http://linux-server/
当我从网络上的任何计算机访问时,它都会将我带到/var/www
我的 Linux 机器的路径。
我正在使用 svn 备份里面的所有内容/var/www
目前我的 svn 存储库位于/usr/local/svn/svn_repo
如果我运行:
$ svn 列表 -v -R 文件:///usr/local/svn/svn_repo
它输出:
11 root Jun 17 17:03 ./ 1 root May 25 14:05 branches/ 1 root May 25 14:05 tags/ 11 root Jun 17 17:03 trunk/ 11 root Jun 17 17:03 trunk/www/ 11 root 2525 Jun 17 17:03 trunk/www/index.php 4 root May 25 16:48 trunk/www/test/ 4 root 105 May 25 16:48 trunk/www/test/index.php
与系统上trunk/www/
相同的地方。/var/www
但我希望能够从网络上的另一台机器访问我的存储库。例如http://linux-server/svn
也许我的想法是错误的,但在我看来,为了做到这一点,我需要将存储库移动到/var/www/svn/
目录。但这样存储库就不会自己备份了吗?或者只要我从不调用就可以了:
svn 添加 /var/www/svn
我有点困惑。
答案1
不,你说得对,你不应该将存储库放在其自己的工作副本中。你可以做的是使用Alias
指令(如果你使用的是 Apache)将目录映射/usr/local/svn/svn_repo
到 URL 路径/svn
。
Alias /svn/ /usr/local/svn/svn_repo/
这样,当您将浏览器指向 时http://linux-server/svn
,Apache 将显示 的内容/usr/local/svn/svn_repo
,但该目录实际上并不在 内/var/www
。您还需要启用 Apache 来提供该目录中的文件,因此请将其放入 Apache 配置文件中:
<Directory /usr/local/svn/svn_repo>
Order allow,deny
Allow from all
Options +Indexes
</Directory>
请注意,您还应该使用 WebDAV 配置 Apache,以便您可以通过 HTTP 访问存储库(否则 Apache 将向您显示存储库文件的原始内容,这对眼睛来说不是特别容易)。
答案2
将 svn repo 填充到 /usr/local/svn 中听起来不错。
然后您需要配置您的 Web 服务器来访问这些文件,如下所述: http://svnbook.red-bean.com/en/1.0/ch06s04.html
但是,如果你以前真的没用过 svn,现在就不要开始。改用 Git。它可能需要更长的时间才能掌握,但它在各方面都更好。使用 Git 6 个月后,一想到再次使用 Subversion,我就感到畏缩。