1

我们在包含相同子目录结构的 SVN 存储库中有 2 个目录。作为我们(原始)部署脚本的一部分,我们将第一个 svn 导出到本地目录,然后将第二个 svn 导出到同一个本地目录:

repo/project/trunk/dir1/
repo/project/trunk/dir1/a/
repo/project/trunk/dir1/a/foo.txt

repo/project/trunk/dir2/
repo/project/trunk/dir2/a/
repo/project/trunk/dir2/a/foo.txt

在我们的场景中,dir1 是一些文件的生产版本,而 dir2 和对那些尚未由开发团队发布的文件的待定更改。因此,我们希望 svn export 覆盖磁盘上的文件。

svn export 不会填充现有目录;--force 标志是必需的。svn export --force 不会填充现有目录,它会完全重新创建目录。因此,我们的第二个 svn 导出破坏了 dir1 的本地导出,只剩下 dir2 的内容。

有什么方法可以让 svn export 做我们想做的事——从 dir1 获取文件,将它们放在本地目录中,然后将 dir2 的内容覆盖在 dir1 之上?

4

1 回答 1

0

我认为svn export不会允许这种行为。如果不使用实际的分支,是否可以使用rsync创建第三个“组合”目录?

这些方面的东西:

# export 'dir1' to 'production'
svn export repo/project/trunk/dir1 production
# export 'dir2' to 'development'
svn export repo/project/trunk/dir2 development

# sync contents from 'production' to 'combined'
rsync -a production/ combined
# sync contents from 'development' to 'combined'
rsync -a development/ combined
于 2012-08-08T14:09:18.573 回答