是否有任何工具(或者可以svnsync执行此操作,我认为不可以)可以将特定文件或目录从一个仓库复制到另一个仓库(两者都是远程的)?
我想为代码库提供只读repo,但只提供该库的一个子集,而不是整个库。
感谢。
答案 0 :(得分:1)
我建议您使用externals definitions作为解决方案。为代码库的只读子集创建新的存储库,并将其映射到项目的子文件夹。
答案 1 :(得分:1)
如果你不介意弄脏手,你可以编写一个小脚本来导出私有项目的文件,并将svn-clean-files提交给你的公共项目。
这种方式甚至公共项目上的svn差异可能虽然与原始的svn历史不同。但这很好,因为它不是有意的。
像cron这样的东西?
#!/bin/bash
EXPDIR=$(mktemp -d /tmp/projectXXXXXX)
svn export --force svn+ssh://USERNAME@yourserver/repository/project/sub/ $EXPDIR/
svn add $EXPDIR/ svn+ssh://USERNAME@publicserver/repository/subpart/
cd $EXPDIR/
svn ci -m "update `date`" $EXPDIR/
#cleanup
rm -rf "/tmp/$EXPDIR"
答案 2 :(得分:1)
虽然@ initall的解决方案是可行的,但你会丢失历史信息等。我建议你自己使用svnsync。
由于1.5 svnsync只能同步源repo的子树,因此我认为它是一个更清晰的解决方案,您可以在每个repo上拥有不同的访问权限。有关详细信息,请参阅svn手册中的repository replication部分。