我的团队有一个本地开发网络,它没有物理连接到任何外部网络。这是合同义务,无法避免。我们还必须与位于全国各地的团队进行协调,并且如前所述,我们没有直接的网络连接。我们传输数据的唯一方法是将数据复制到USB磁盘并通过email / ftp / etc发送。
注意:我们不讨论网络连接问题或USB磁盘访问的明显安全漏洞。这些问题是不容谈判的。
我们仍然说服外部团队使用Mercurial(目前不使用任何SCM)。假设这个问题的其余部分他们正在使用Mercurial。我们现在要在任何一天强迫他们的手。
我们切换到Mercurial,希望能够利用分布式特性来更好地与外部团队同步。在内部,我们使用Mercurial就像中央服务器SCM一样。每个开发人员都从集成服务器上的主仓库中克隆。从这个中心位置推送/拉出更改。
这里有实际的问题内容:
将更改传达给远程团队的最佳方式是什么(假设他们使用类似的Mercurial设置给我们)?我应该有本地推送/拉动的本地主仓库,以及用于远程推/拉的本地集成仓库吗?如何才能最好地避免出现复杂的合并问题?如果我们使用Mercurial bundle推送更改,谁将进行合并以及针对哪个存储库?
答案 0 :(得分:2)
您基本上可以像在线一样使用它。
您只需要在本地复制远程仓库并解开他们发送给您的每个变更集。您永远不应该将更改直接推送到本地镜像(它应该始终反映远程团队的状态)。
之后你决定你想要什么,做你自己或他们身边的合并,这并不重要。