"tampered with before resolve" 对文件解析意味着什么?

What does "tampered with before resolve" mean on file resolve?

我正在尝试将 main 流合并到 development 流,一些文件需要解析。解决后出现错误:

filepath tampered with before resolve - edit or revert.

我尝试按照 here 所述解决它,但没有成功。 这是 verify 命令向我展示的内容:

for the target
filepath - branch change 9070 (text) A3269695246A89D21F341D8A5BB70B5B

for the source
filepath - edit change 22793 (text) 171BA2F3E0FFCEF3F7A34FDB7A2CEF69
filepath - add change 9049 (text) A3269695246A89D21F341D8A5BB70B5B

branch changeedit changeadd change是什么意思?为什么我的MD5完全一样,但还是报错?如何解决?

Perforce 的客户端-服务器架构在这里让您有点困惑:'verify' 命令正在报告 服务器 上文件的状态,但是 [=来自 'p4 resolve' 的 57=] 消息提醒您 您的客户端 .

上的文件状态存在问题

从您提供的少量信息看来:

  1. 更改 9049 添加了源文件,摘要 A3269...
  2. 更改 9070 将该源文件分支到目标文件。当然,源和目标的摘要是相同的,因为分支是文件的完美副本。
  3. Change 22793 修改了源文件,因此其摘要发生了变化
  4. 然后您正在尝试将更改 22793 从源集成到目标。

在大多数情况下,此集成会很简单 "safe resolve",因为文件仅在源中更改,而目标是源先前修订版的完美副本。

但是,解析命令查看了目标文件的实际工作站副本,发现您拥有的文件不是[=42] =] 摘要文件 A3269...

由于 'resolve' 命令正要用合并结果替换您工作站上的目标文件副本,如果您有可能对您不想丢失的那个文件(无需打开文件进行编辑)。

所以 'resolve' 试图告诉您查看当前在您工作站上的目标文件的副本(例如,使用您的文本编辑器),看看您是否真的对那个文件。

如果您这样做了,并且您想要保存这些更改,那么您此时无法执行此集成;您需要打开文件进行编辑(当然,使用 'edit -k' 来保留文件的修改副本),以便 Perforce 可以将您的 edited 副本与来自更改 22793.

如果您没有对目标文件进行更改,或者如果您进行了更改但您不想要它们,那么您需要明确放弃这些更改,例如通过:

  1. 将挂起的集成恢复到目标文件
  2. 运行 'p4 sync -f target-file'

这就是 'resolve' 试图以非常简洁的方式传达的信息

filepath tampered with before resolve - edit or revert.

我在对某些文件执行 p4 resolve -am 时也遇到过这个问题。解决方案是执行 p4 edit <filename>,然后对该文件执行 p4 resolve -am

这意味着您的本地文件在应用程序不知道的情况下被编辑了(例如,您忘记先执行 "p4 edit")。我相信我在进行集成然后在提交之前更改文件时也看到了这一点。