我有一个 subversion 1.6,它有一个 repo 和镜像 repo。镜像 repo 当然是只读的。有没有办法在这两个 repo 之间进行提交和同步?
答案1
你看过http://www.wandisco.com/subversion/replication? 他们生产一系列与多站点 SVN 相关的产品,但价格昂贵。我自己从未尝试过,但上次我寻找这个时就找到了。
如果你尝试手动完成这件事,你将会遇到一大堆问题,但我最接近的解决办法是:
- 在每个站点维护一个“合作伙伴”SVN 存储库列表
- 向两个存储库添加预提交挂钩,以“锁定”合作伙伴列表中的其他存储库:
- 检查信号文件是否存在,如果存在则释放
- 在每个伙伴服务器上创建信号量文件
- 向两个存储库添加提交后挂钩:
- 在临时文件夹工作副本中检出最新修订版本
svn switch --relocate
向每个合伙人提供工作副本- 在重新定位的仓库中提交
- 删除信号量文件
md5sum
通过使用定期验证每个存储库svnadmin dump
- 如果校验和不匹配,则选择其中一个来破坏其他的
- 对所有合作伙伴进行大量备份,以防有人抱怨破坏,而你需要修改
我会帮你省去很多力气——它效果不是很好。设置起来非常麻烦,而且充满了竞争条件(你无法足够快地同步信号量文件)。
答案2
简短回答:不
较长的答案:您可以使用“svnadmin dump-transfer dump- delete repo -recreate repo - svnadmin load”路径,但这是一场噩梦
PS:对于你的情况来说,DVCS 似乎是更自然的解决方案
答案3
简短回答:是的。
您可以使用 VisualSVN Server 的多站点存储库复制功能允许在多个存储库之间进行双向数据复制。该功能基于 VisualSVN 分布式文件系统技术,允许您的从属存储库可写。