【问题标题】:How does Perforce deal with changes made after merge/integrate, but before submit?Perforce 如何处理合并/集成之后但在提交之前所做的更改?
【发布时间】:2012-06-12 09:33:29
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: merge perforce


    【解决方案1】:

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

    【讨论】:

    【解决方案2】:

    您犯了第一个错误,直接在您的主干副本上编辑内容。始终使用任务分支。它可能不会导致您看到的问题,但如果您弄乱了任务分支,它不会破坏构建。查看本地主干副本时,请确保已从仓库刷新它。如果您的主干文件的本地副本已过期,您将获得黄色小三角形,在您的主干副本上编辑和提交过期文件必然会导致“奇怪”行为。

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

    主干一份,每个任务分支一份。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 1970-01-01
      • 2017-07-07
      • 2019-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多