我在 Perforce 中看到了我无法解释的行为。我采用了主干的一个分支,并定期提交我的更改并偶尔从主干合并到我的分支,以确保在我重新集成时不会发生重大冲突。
这项工作完成后,我使用 Perforce Merge/Integrate 选项将更改应用到主干。在将这些更改发送给代码审查后,我对主干进行了一些更改。此时,没有任何更改被提交到主干。
当我提交所有这些更改时,差异显示的文件完全符合我的预期。提交更改列表后,提交的更改与差异窗口中显示的不同。相反,自合并/集成以来我所做的更改不存在。在服务器和我在主干上的本地副本之间进行比较,在代码审查后对相同文件进行了所有更改。因此,我不得不进行第二次提交来修复损坏的构建。
我很困惑这是怎么发生的,因为我认为 Perforce 只在客户端上保留了每个文件的一个本地副本?
即使有标记显示文件已被篡改,它提交的文件在哪里?它肯定在提交窗口中显示了主干路径,但我猜它可能已经从分支中获取了文件?
另一个问题是,在使用 Perforce 版本控制时,我应该如何最好地处理上述情况?