Perforce 如何处理合并/集成之后、提交之前所做的更改?

psy*_*ych 0 merge perforce

我在 Perforce 中看到了我无法解释的行为。我选取了主干的一个分支,并定期提交更改,并偶尔从主干合并到我的分支,以确保重新集成时不会出现重大冲突。

这项工作完成后,我使用 Perforce 合并/集成选项将更改应用到主干。在发送这些更改进行代码审查后,我对主干进行了一些更改。此时,没有任何更改已提交到主干。

当我提交所有这些更改时,差异显示的文件完全符合我的预期。提交更改列表后,提交的更改与 diff 窗口中显示的更改不同。相反,自合并/集成以来我所做的更改并不存在。在服务器和主干上的本地副本之间进行比较,在代码审查后对相同文件进行了所有更改。因此,我必须进行第二次提交来修复损坏的构建。

我很困惑这是如何发生的,因为我认为 Perforce 只在客户端上保留每个文件的一个本地副本?

即使有一个标志显示文件已被篡改,它提交的文件在哪里?它确实在提交窗口中显示了主干路径,但我想它可能已经从分支获取了文件?

另一个问题是,在使用 Perforce 版本控制时,我应该如何最好地处理上述场景?

Bry*_*ton 5

我们都犯过的一个错误是(a)将文件从一个分支集成到另一个分支,(b)将其解析为“接受合并”,(c)在(d)提交之前对文件进行本地更改。如果您在步骤 (b) 之后和步骤 (c) 之前未明确打开文件进行编辑,则服务器不知道您的本地更改。