Subversion 双向提交和同步

Subversion 双向提交和同步

我有一个 subversion 1.6,它有一个 repo 和镜像 repo。镜像 repo 当然是只读的。有没有办法在这两个 repo 之间进行提交和同步?

答案1

你看过http://www.wandisco.com/subversion/replication? 他们生产一系列与多站点 SVN 相关的产品,但价格昂贵。我自己从未尝试过,但上次我寻找这个时就找到了。

如果你尝试手动完成这件事,你将会遇到一大堆问题,但我最接近的解决办法是:

  1. 在每个站点维护一个“合作伙伴”SVN 存储库列表
  2. 向两个存储库添加预提交挂钩,以“锁定”合作伙伴列表中的其他存储库:
    1. 检查信号文件是否存在,如果存在则释放
    2. 在每个伙伴服务器上创建信号量文件
  3. 向两个存储库添加提交后挂钩:
    1. 在临时文件夹工作副本中检出最新修订版本
    2. svn switch --relocate向每个合伙人提供工作副本
    3. 在重新定位的仓库中提交
    4. 删除信号量文件
  4. md5sum通过使用定期验证每个存储库svnadmin dump
    1. 如果校验和不匹配,则选择其中一个来破坏其他的
    2. 对所有合作伙伴进行大量备份,以防有人抱怨破坏,而你需要修改

我会帮你省去很多力气——它效果不是很好。设置起来非常麻烦,而且充满了竞争条件(你无法足够快地同步信号量文件)。

答案2

简短回答:

较长的答案:您可以使用“svnadmin dump-transfer dump- delete repo -recreate repo - svnadmin load”路径,但这是一场噩梦

PS:对于你的情况来说,DVCS 似乎是更自然的解决方案

答案3

简短回答:是的

您可以使用 VisualSVN Server 的多站点存储库复制功能允许在多个存储库之间进行双向数据复制。该功能基于 VisualSVN 分布式文件系统技术,允许您的从属存储库可写

相关内容