【问题标题】:p4 status detects identical files as reconcile to editp4 状态将相同的文件检测为协调编辑
【发布时间】:2017-05-08 13:24:40
【问题描述】:

在我的工作区中,当我运行p4 status 时,它会将一堆文件标记为“协调编辑”。但是,如果我协调它们并进行比较,所有这些文件都是相同的。

有人知道是什么原因吗?

这些文件包括png、js、php、ttf、xsl文件。

我的工作区配置为:“Allwrite”和“文本文件的行尾字符:UNIX”(这是 Windows 2012 R2)。

我猜测行结尾是原因,但文件包括 png,在我实际提交更改列表并执行 p4 status 后,它仍然报告相同的文件列表(嗯,我注意到一些文件不见了, 可能出于某种原因那里有什么东西)。

我的工作区是新的,所以文件真的不应该有任何变化。

【问题讨论】:

  • 您是否进行了“p4 验证”以确保这些文件在服务器端没有错误的校验和信息?
  • 谢谢,我会请我们的 IT 部门对此进行调查。会让你知道结果如何。谢谢。
  • 遇到了同样的问题,@SamStafford 的p4 verify 确实指出了文件上的错误校验和信息。如果这是一个答案,我将能够正确地投票。

标签: perforce


【解决方案1】:

一个可能的原因是存储的校验和与实际文件内容不匹配。作为管理员,您可以运行:

p4 verify -q files ...

在服务器端比较文件和它们存储的校验和——如果你得到“糟糕!”结果这意味着它们彼此不匹配(这意味着它们在客户端计算机上也总是显示为“不同”,因为在那里使用了相同的校验和)。校验和与仓库修订内容不匹配可能是一件坏事(给定的修订应该是不可变的)并且应该立即进行调查,因为它可能表明硬件故障、篡改等。修订内容也可能以良性方式更改,使其不再匹配其校验和 - 例如,如果您在文件中动态扩展了 $DateTime$ 关键字并更改了服务器的时区。

如果内容没问题,并且您想更新校验和以匹配,请执行以下操作:

p4 verify -v file

【讨论】:

    【解决方案2】:

    这种行为似乎有几个原因。 @SamStafford 的回答肯定是其中之一。

    在我的例子中,这些文件的版本因大小写而异。由于 Windows 不区分大小写,因此搞砸了,总是将它们标记为已更改。

    【讨论】:

      【解决方案3】:

      OP 在问题中提到“我猜测 Line 结尾是原因”,但这对我来说有点神秘,我错过了这实际上正是 发生的事情正在寻找。

      在相关问答https://stackoverflow.com/a/49803790/74296 中,@Samwise 解释说,当文件以“Windows 样式”行结尾存储在 perforce 中时,工作区行尾配置“共享”可能会导致此问题。

      【讨论】:

        猜你喜欢
        • 2012-02-07
        • 1970-01-01
        • 2020-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-10-19
        • 1970-01-01
        相关资源
        最近更新 更多