我应该把我的 svn 存储库放在哪里?

我应该把我的 svn 存储库放在哪里?

我正在尝试设置一个用于 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,我就感到畏缩。

相关内容