我在 svn 下有一个网站,我想用存储库中的当前内容修补实时网站(即在实时网站上有效地调用 svn update),但我不想在生产网站的每个文件夹中都有 .svn 目录。
有没有办法设置 svn 使带有版本信息的 .svn 文件夹与版本控制下的文件不在同一目录中?
在 git 中,您可以通过这种方式创建和分离工作树并将更新推送到项目中(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在 svn 中做类似的事情.
我在 svn 下有一个网站,我想用存储库中的当前内容修补实时网站(即在实时网站上有效地调用 svn update),但我不想在生产网站的每个文件夹中都有 .svn 目录。
有没有办法设置 svn 使带有版本信息的 .svn 文件夹与版本控制下的文件不在同一目录中?
在 git 中,您可以通过这种方式创建和分离工作树并将更新推送到项目中(根据http://toroid.org/ams/git-website-howto),我基本上希望能够在 svn 中做类似的事情.
svn export
工作方式类似于 acheckout
但没有.svn
目录。然而,你不能update
这样的结构,因为它不是一个 svn 工作副本。
您还可以将 Web 服务器配置为禁止访问.svn
目录,并使用 checkout+update 方法。
rsync 配置为不复制“.svn”目录怎么样?
rsync --exclude=.svn local_svn_copy webserver:site/
这可以重新运行以刷新网络服务器的副本。
httpd.conf:
<Directory ~ "\.svn">
Order allow,deny
Deny from all
</Directory>
正如 laalto 所提到svn export
的,在重复使用时更新“工作副本”是一种简单但不是非常有效的方法:
milen@dev:~$ svn export --non-interactive --force "<URL>" <directory>
您还可以使用git-svn
创建网站的 git 镜像,然后按照您链接的文章中描述的方式发布。显然这不是一个直接的解决方案。