当前位置:  开发笔记 > 编程语言 > 正文

如何同步两个Subversion存储库?

如何解决《如何同步两个Subversion存储库?》经验,为你挑选了3个好方法。

我的公司有一个互联网连接缓慢的子公司.我们的开发人员与我们的中央Subversion服务器进行交互.是否可以为它们配置从站/镜像?它们将与服务器进行本地交互,并且所有提交都将自动同步到主服务器.

这应该对开发人员尽可能透明地起作用.可用性是必须的.

请不要改变我们的版本控制系统.



1> Jean..:

这可能但不一定很简单:您尝试解决的问题非常危险地接近于设置分布式开发环境,这与SVN的设计并不完全相同.

SVN镜像方式

您可以svn mirror按照SVN书籍文档中的说明使用,以创建主存储库的只读镜像.您的开发人员各自与最接近他们的镜像进行交互.但是,奴隶库的用户必须使用

svn switch --relocate master_url

在它们可以提交之前,它们必须记住在完成后重新安置在奴隶身上.如果您使用命令行客户端,则可以使用围绕SVN上的存储库修改命令的包装器脚本自动执行此操作.请记住,快速重定位操作会增加一些开销.(并注意复制存储库uuid - 请参阅SVN文档.)

[编辑 - 检查TortoiseSVN文档似乎可以让TortoiseSVN 执行钩子脚本客户端.您可以在此时创建前/后提交脚本.无论是那个或试着看看你是否可以使用TortoiseSVN自动化界面来做到这一点].

SVK的方式

svk是一组Perl脚本,它通过SVN模拟分布式镜像服务.您可以对其进行设置,以便多个开发人员共享本地分支(镜像).然后开发人员的基本用法将完全透明.您将不得不使用svk客户端进行樱桃采摘,合并和starmerging.如果您能够了解分布式概念,那么这是可行的.

git-svn方式

虽然我自己从未使用过,但也可以让远程开发人员在本地使用git并使用git-svn网关进行同步.

最后的话

这完全取决于您的开发环境和所需的集成级别.根据您的IDE(以及您是否可以更改SCM),您可能希望查看支持分布式开发的其他完全分布式SCM(想想Mercurial/Bazaar/Git/...).


这个答案比我选择的答案更多.我认为svnsync解决方案更好,因为提交在服务器上透明地发生.无需重新安置.很棒的可用性.当镜像未完全同步时,用户最终会发现一个奇怪的错误消息.通常他们只需等待几分钟,一切都很好.

2> 小智..:

当您使用http来托管您的存储库时,Subversion 1.5引入了代理支持.开发人员可以从奴隶核对他们的工作副本.然后所有只读操作(差异,日志,更新等)将使用从属.提交时,从设备透明地将所有写操作传递给主设备.



3> Robert Vukov..:

您应该尝试SVK版本控制系统

SVK是一个分散版本控制系统,使用强大的Subversion文件系统构建.它支持存储库镜像,断开连接操作,历史敏感的合并,并与其他版本控制系统以及流行的可视化合并工具集成.

在此链接上有关于使用SVK同步SVN存储库的文本

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有