svn签出和更新,不使用.svn目录

svn签出和更新,不使用.svn目录,svn,website-deployment,Svn,Website Deployment,我在svn下有一个网站,我想用存储库中当前的内容修补live网站(即在live网站上有效地调用svn update),但我不想在生产网站的每个文件夹中都有.svn目录 是否有方法设置svn,使包含版本信息的.svn文件夹与受版本控制的文件不在同一目录中 在git中,您可以创建和删除工作树,并通过这种方式将更新推送到项目中(根据),我基本上希望能够在svn中执行类似的操作 如何将rsync配置为不复制“.svn”目录 rsync--exclude=.svn local\u svn\u copy w

我在svn下有一个网站,我想用存储库中当前的内容修补live网站(即在live网站上有效地调用svn update),但我不想在生产网站的每个文件夹中都有.svn目录

是否有方法设置svn,使包含版本信息的.svn文件夹与受版本控制的文件不在同一目录中


在git中,您可以创建和删除工作树,并通过这种方式将更新推送到项目中(根据),我基本上希望能够在svn中执行类似的操作

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

rsync--exclude=.svn local\u svn\u copy webserver:site/


可以重新运行此操作以刷新Web服务器的副本。

svn export
的工作方式类似于
签出
,但没有
.svn
目录。但是,您不能更新这样的结构,因为它不是svn工作副本


您还可以将web服务器配置为不允许访问
.svn
目录,只需使用签出+更新方法即可。

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

milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>
milen@dev:~$svn导出--非交互式--强制“”

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

httpd.conf:

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

命令允许,拒绝
全盘否定

有关如何执行第二个选项的信息,请参见此问题:实际上,我正在考虑一个git跟踪网站的rsync,因此感谢您的提示。P.S.svn只是一个进化的步骤,到目前为止,它只具有历史意义。再次感谢!