SVN导出 - 覆盖文件但不删除目录

时间:2012-08-08 13:51:34

标签: svn deployment

我们在包含相同子目录结构的SVN存储库中有2个目录。作为我们(原始)部署脚本的一部分,我们将第一个脚本导出到本地目录,然后将第二个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导出我们想要的东西 - 从dir1获取文件,将它们放在本地目录中,并在dir1顶部覆盖dir2的内容?

1 个答案:

答案 0 :(得分: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