1

我正在开发一个项目,该项目设置为每个组都具有我们主 mercurial 存储库的服务器端克隆。我们一直在使用的工作流程包括在笔记本电脑上开发、提交并推送到服务器端克隆存储库,然后将这些更改拉到功能强大的远程机器上以运行我们的测试。一旦更改准备好与组的其他成员共享,主服务器端克隆将被拉入本地存储库,并且本地存储库将根据主克隆重新定位。然后可以将更改推送到主远程克隆,历史将显示线性历史。

问题是个人服务器端克隆与本地存储库完全不同步,因为它没有重新设置基础。我们没有使用适当的分支,因此合并+变基和移植/移植似乎不是我们用来使存储库恢复同步的方法。

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

4

2 回答 2

2

您只能从“主”存储库中提取其历史记录,但这不会从您的开发服务器和本地存储库中删除未重新设置的历史记录。

只有“主要”历史记录的唯一方法是剥离其他存储库(甚至重新克隆它们),并且必须同时对所有存储库执行此操作。

Ps 并且不要变基。它仅适用于私人回购。

于 2011-12-02T02:37:44.300 回答
0

变基是确定性的,因此您可以在客户端克隆中重新进行变基。

唯一需要担心的是,rebase 是否触发了合并解析——在这种情况下,您必须在客户端中以相同的方式解析合并。在不查看服务器上的代码的情况下做到这一点可能很困难。

于 2011-12-05T09:09:35.993 回答