2009-06-27 118 views
17

我有SVN下一个网站,我想修补直播网站,目前有什么在库(即有效地调用直播网站上SVN更新),但我不希望生产网站上每个文件夹中的.svn目录。SVN checkout和update没有的.svn目录

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

Git中,您可以创建和detatch工作树和推送更新到项目这种方式(根据http://toroid.org/ams/git-website-howto),我基本上要能够做到在SVN类似的东西。

+0

在现实中,我是一个git的跟踪网站思维rsync的,所以谢谢你的提示。附: SVN只是一个循序渐进的步骤,现在只有历史的兴趣。再次感谢! – 2009-06-27 14:08:00

回答

37

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

您也可以将Web服务器配置为不允许访问.svn目录,只需使用checkout + update方法即可。

+1

参见该怎么办了第二个选项这个问题的信息:http://stackoverflow.com/questions/214886/how-do-i-hide-directories-in-apache-specifically-source-control – 2009-06-27 13:17:52

7

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

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

这可以重新运行刷新Web服务器的副本。

1

正如laalto提到svn export反复使用时,使得用于更新“工作拷贝”一个简单的,但不是很有效的方法:

[email protected]:~$ svn export --non-interactive --force "<URL>" <directory> 
1

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

2

的httpd.conf:

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