我们有两个不同的团队,每个团队都在自己的位置与Mercurial合作,每个位置都有一个参考资料库。每个位置都可以访问企业网络,但是两个网络不能直接连接(请问我,请问我):我们只能交换文件。我们希望能够定期同步这两个位置,以便可以通过各自的参考资料库共享工作。
要求:
非要求:
答案 0 :(得分:1)
Mercurial的捆绑包使一切变得容易;最好通过使存储库的克隆处于远程存储库的最后已知状态(存储在$SITE_B_IMAGE_URL
中)来执行跟踪。将我们的位置称为站点a,将远程位置称为站点b。
生成分发包以发送到远程位置:
~/work$> hg clone $LOCAL_REF_URL bundler
~/work$> cd bundler
~/work/bundler$> hg bundle ../bundle-site-a-$(date +%Y-%m-%d) $SITE_B_IMAGE_URL
捆绑器工作存储库现在可能会被丢弃。
当远程位置已确认能够解开发送给他们的捆绑包的内容时,更新远程跟踪存储库:
~/work$> hg clone $SITE_B_IMAGE_URL remote-tracking
~/work$> cd remote-tracking
~/work/remote-tracking$> hg push -R ../bundle-site-a
现在可以丢弃远程跟踪工作存储库。
从远程位置集成捆绑包:
首先,按照步骤更新远程跟踪存储库,这次使用您收到的捆绑软件,而不是以前发送的捆绑软件。
~/work$> hg clone $LOCAL_REF_URL bundle-integration
~/work$> cd bundle-integration
~/work/bundle-integration$> hg unbundle ../bundle-site-b
hg heads
将告诉主管,包括给定分支的主管超过一个的情况,因此需要将工作减少到每个分支一个主管的情况,因此请在此处插入工作合并多余的分支头是必需的。hg push
完全成功,则返回;我们完成了~/work/bundle-integration$> hg pull
bundle集成工作存储库现在可能会被丢弃。
注意:虽然您可以将捆绑包用作-R
的覆盖,但不会执行集成;只能先进行捆绑才能完成。