没有.svn目录的svn checkout和update

时间:2009-06-27 12:59:07

标签: svn website-deployment

我在svn下有一个网站,我想用实际存储库中的内容修补实时网站(即在实时网站上有效调用svn更新),但我不想在生产中的每个文件夹中使用.svn目录网站。

有没有办法设置svn,以便带有版本信息的.svn文件夹与版本控制下的文件不在同一目录中?

在git中,您可以创建和分离工作树并以这种方式将更新推送到项目(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在svn中执行类似的操作。

5 个答案:

答案 0 :(得分:37)

svn exportcheckout类似,但没有.svn目录。但是,你不能update这样的结构,因为它不是一个svn工作副本。

您还可以将Web服务器配置为禁止访问.svn目录,并使用checkout + update方法。

答案 1 :(得分:7)

如何将rsync配置为不复制“.svn”目录?

rsync --exclude=.svn local_svn_copy webserver:site/

可以重新运行以刷新网络服务器的副本。

答案 2 :(得分:2)

的httpd.conf:

<Directory ~ "\.svn">
    Order allow,deny
    Deny from all
</Directory>

答案 3 :(得分:1)

正如laalto所提到的,svn export是一种简单但不是非常有效的方法,可以在重复使用时更新“工作副本”:

milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>

答案 4 :(得分:1)

您还可以使用git-svn创建网站的git镜像,然后发布您链接的文章中描述的方式。显然,这不是一个直接的解决方案。