2010-01-25 78 views
4

我找到了this question,但它从未解决,也不想为自己劫持它。我会尽量给予尽可能多的细节。如何在Web服务器上正确设置SVN?

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

我正在从使用TortoiseSVN的Windows计算机上工作。

我在我的public_html/托管服务器上有几个网站,并希望能够将我的Windows计算机上做出的任何更改传播到服务器上,并以最小的麻烦。我基本上想通过FTP手动上传。

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

希望这是大多数细节排序,现在的实际问题。 什么设置我的SVN在我public_html文件夹没有工作,我所有的.svn目录暴露给公众的最好办法?

+0

嗯,我不是Linux专家,但我认为如果不是不可能的话,如果没有访问Web服务器和SVN的配置(即对服务器的根访问),这将是非常困难的。有兴趣看看是否有任何答案不同。 – 2010-01-25 12:55:00

回答

1

我会反对在生产中使用结帐工作副本。上传到生产的最佳方式是导出。如果你想自动获得一些东西,你可以看看Capistrano这样的部署脚本。

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

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

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

如果您有登台服务器=>导出。如果没有,你会早晚在prod.site上快速修复,这样=>工作副本。否认.SVN是必须的。 – Teson 2012-11-14 12:25:20

1

你可以配置Apache以禁止访问.svn目录,但你仍然需要你的远程服务器访问本地Subversion版本库,所有的东西,需要进行配置安全:加密,认证,路由器,防火墙......

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

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

至于这样做的魔术工具......我仍然在寻找合适的工具。到目前为止,我正在使用SyncBack freeware。它可以完成这项工作,但它是作为备份工具设计的,所以配置起来很困难。

相关问题