文件解析"tampered with before resolve"是什么意思?



我正试图将main流合并到development流,一些文件需要解决。

filepath在解析-编辑或恢复之前被篡改。

我试着像这里描述的那样解决它,但没有成功。这是verify命令显示给我的:

为目标
filepath - branch change 9070 (text) A3269695246A89D21F341D8A5BB70B5B

为来源
filepath - edit change 22793 (text) 171BA2F3E0FFCEF3F7A34FDB7A2CEF69
filepath - add change 9049 (text) A3269695246A89D21F341D8A5BB70B5B

branch change, edit change, add change是什么意思?为什么MD5是相同的,但我仍然有一个错误?如何解决?

Perforce的客户端-服务器架构在这里让你有点困惑:'verify'命令报告的是服务器上的文件状态,但是'p4 resolve'的'tampered with before resolve'消息提醒你的客户端上的文件状态有问题。

从你提供的一点信息来看,似乎:

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

在大多数情况下,这种集成将是一个直接的"安全解决",因为文件只在源中被更改,而目标是源的前一个版本的完美副本。

然而,resolve命令查看了目标文件的实际工作站副本,并发现您在那里的文件是而不是具有摘要A3269的文件…

由于'resolve'命令只是要用合并的结果替换你在工作站上的目标文件的副本,如果有可能你对该文件进行了更改(没有打开文件进行编辑),它不想这样做,你不想丢失。

所以'resolve'试图告诉你看看当前在你的工作站上的目标文件的副本(例如使用你的文本编辑器),看看你是否真的对该文件做了更改。

如果你做了,并且你想保存这些更改,那么你不能在这个时候执行这个集成;你需要打开文件进行编辑(当然,使用'edit -k'来保留你修改过的文件副本),以便Perforce可以将你的编辑过的副本与change 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编辑"第一)。我相信我在做集成时也见过这种情况,然后在提交之前更改文件。

最新更新