【发布时间】:2014-08-20 15:04:10
【问题描述】:
我很难理解 mercurial 下的场景。
假设我有 2 个用户在同一个存储库上工作。假设 repo 被称为“测试”并且它当前有文件:a.txt 和 b.txt(两个文本文件当前都是空的,其中没有文本)
事情是这样的:
用户 1:
用“Line 1”这句话修改a.txt 将代码提交到本地仓库(未发出推送命令)
用户 2:
用“Line 1”这句话修改b.txt 将代码提交到本地仓库 也发出推送命令
用户 1:
发出拉动命令 发出更新命令
结果:在用户1的工作目录中,文件a.txt不再包含“第1行”这句话,文件b.txt包含用户2的更改。a.txt的初始更改到哪里去了?覆盖?我可以在历史日志中看到它们(使用 TortoiseHG),但这些变化不再是最重要的了。
这里到底发生了什么?我的理解如下:当用户 1 发出请求时,他的本地仓库上的更改应该以某种方式将来自用户 2 的更改与用户 1 已经提交的更改合并。
你能告诉我我的假设/理解哪里错了吗?如果上述问题的解决方案是关于提交/推送/更新/拉取的正确顺序,那么对于多个开发人员在同一代码上的环境,建议的操作顺序是什么?
【问题讨论】: