我在svn下有一个网站,我想用实际存储库中的内容修补实时网站(即在实时网站上有效调用svn更新),但我不想在生产中的每个文件夹中使用.svn目录网站。
有没有办法设置svn,以便带有版本信息的.svn文件夹与版本控制下的文件不在同一目录中?
在git中,您可以创建和分离工作树并以这种方式将更新推送到项目(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在svn中执行类似的操作。
答案 0 :(得分:37)
svn export
与checkout
类似,但没有.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镜像,然后发布您链接的文章中描述的方式。显然,这不是一个直接的解决方案。