我们正在使用 mercurial/tortoisehg 和一个托管在 kiln 上的中央存储库。
我们已经将我们正在做的事情缩小到最简单的可能场景。该场景从 Bob 和 Joe 克隆了 kiln 存储库开始,因此他们都从相同的集合开始。
- Bob 更改文件 a.txt,提交并将其推送到 kiln。
- Joe 更改文件 b.txt 并提交。
- Joe 尝试推送到窑,但出现以下错误:远程在分支“默认”上有头,本地不知道:503dc02bd36c 中止:推送创建新的远程头 dba053a5be68!
- 这显然是由于 Bob 的更改需要先从窑中拉出。所以,乔从窑中拉出变化并成功
- Joe 尝试推送到窑,但收到以下错误:中止:推送创建新的远程头 dba053a5be68!
- 乔将他的提交与本地合并并成功
- 乔现在尝试推窑并成功
在这种情况下,Mercurial 似乎应该检测到两个用户都更新了不同的文件而不是强制合并,这本质上是 Joe 拉动 Bob 的更改并且不得不重新提交并推送两个用户的更改。
感谢大家。澄清我的问题:我们很好奇我们是否错过了某些东西,或者这就是它的工作原理。在这种情况下,即使合并期间没有冲突,hg 仍然迫使我必须拉取、合并、重新提交和重新推送我同事已经提交并推送到中央存储库的更改。