保持本地和远程mercurial存储库之间的历史记录同步

时间:2011-12-01 16:52:18

标签: version-control mercurial mercurial-subrepos

我正在开发一个项目,该项目的每个组都有一个主要的mercurial存储库的服务器端克隆。我们一直在使用的工作流程涉及在笔记本电脑上进行开发,提交和推送到服务器端克隆存储库,然后将这些更改提取到强大的远程计算机以运行我们的测试。一旦准备好与组的其余部分共享更改,就会将主服务器端克隆拉入本地存储库,并且本地存储库将针对主克隆进行重新设置。然后可以将更改推送到主远程克隆,历史记录将显示线性历史记录。

问题是个人服务器端克隆与本地存储库完全不同步,因为它没有重新定位。我们没有使用正确的分支,因此合并+ rebase和移植/移植似乎不是我们用来使存储库重新同步的原因。

服务器端克隆需要具有与本地存储库相同的历史记录,否则它将拉动并推送所有更改集,并且是解决不存在的冲突的耗时的混乱。如何让服务器端克隆具有与主存储库和本地存储库相同的历史记录而不从主数据库中剥离和拉出?理想情况下,我们不必登录服务器。

2 个答案:

答案 0 :(得分:2)

您只能从“主”回购中获取其历史记录,但这不会从您的开发服务器和本地回购中删除未重新定位的历史记录。

only 'main'历史记录的唯一方法是剥离其他repos(甚至重新克隆它们),这必须同时为所有repos完成。

P.S。并且不要改变。这只是私人回购。

答案 1 :(得分:0)

重新定位确定性,因此您可以在客户端克隆中重新执行rebase。

唯一值得关注的是,如果rebase触发了合并解决方案 - 在这种情况下,您必须以相同的方式在客户端中解析合并。在不偷看服务器代码的情况下这样做可能很困难。