【问题标题】:How to properly set up SVN on web server?如何在 Web 服务器上正确设置 SVN?
【发布时间】:2011-01-09 02:12:59
【问题描述】:

我找到了this question,但它从未解决过,也不想为自己劫持。我会尽力提供尽可能多的细节。

我在作为我的 Web 服务器的 Linux 服务器上有一个共享主机帐户,并且我有 shell 访问权限。

我正在使用 TortoiseSVN 在 Windows 机器上工作。

我在托管服务器上的public_html/ 中有几个网站,并且希望能够将在我的 Windows 机器上所做的任何更改传播到服务器上,而不必大惊小怪。我基本上想摆脱通过 FTP 手动上传。

我很乐意保留我所有的修改,但实际上并不需要真正查看它们,当然不是从 Web 界面。我想从网上看到的只是当前版本。

希望这是排序的大部分细节,现在是实际问题。 将我的 SVN 设置为在我的 public_html 文件夹中工作而不向公众公开我的所有 .svn 目录的最佳方法是什么?

【问题讨论】:

  • 嗯,我不是 Linux Guru,但我认为如果不能访问 Web 服务器和 SVN 的配置(即对服务器的 root 访问),这将非常困难,如果不是不可能的话。有兴趣看看是否有任何不同的答案。

标签: svn apache tortoisesvn public-html


【解决方案1】:

我建议不要在生产中使用结帐工作副本。上传到生产环境的最佳方式是导出。如果你想要一些自动的东西,你可以查看一些部署脚本,比如 Capistrano。

如果你仍然想这样做..你可以使用 htacccess 来隐藏它们:

<FilesMatch "\.svn/.*">
   order deny,allow
   deny from all
</FilesMatch>

<Files .htaccess>
   order deny,allow
   deny from all
</Files>

【讨论】:

  • 如果您有登台服务器 => 导出。如果没有,您迟早会在 prod.site 上进行快速修复,所以 => 工作副本。拒绝 .SVN 是必须的。
【解决方案2】:

您可以将 Apache 配置为禁止访问 .svn 目录,但您仍然需要远程服务器可以访问您的本地 Subversion 存储库,以及需要配置的所有内容安全:加密、身份验证、路由器、防火墙...

我认为灵活性和简单性之间的最佳折衷实际上是使用 FTP,但使用文件同步工具来实现。您可以将工作副本导出到临时目录并从那里同步,或者将工具配置为忽略 .svn 目录。同步过程可能很慢,但自动化并不重要。

另外,不要忘记非版本控制文件。有些需要手动更新(例如从版本化模板创建的设置文件),有些需要忽略(例如缓存文件和用户数据)。

关于完成这一切的魔法工具……我仍在寻找合适的工具。到目前为止,我使用的是SyncBack freeware。它可以完成这项工作,但它被设计为备份工具,因此很难配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-01
    • 2021-05-10
    • 2012-05-07
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多