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

SVN导出-覆盖文件但不删除目录,svn,deployment,Svn,Deployment,我们在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.tx

我们在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导出覆盖磁盘上的文件

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

有没有办法让svn export做我们想做的事情?从dir1获取文件,将它们放在本地目录中,然后将dir2的内容覆盖在dir1上?

我认为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

这是我们当前的解决方法,只是我们使用xcopy来组合内容,而不是rsync。