p4 status检测相同的文件以进行协调以进行编辑

时间:2016-12-22 20:34:57

标签: perforce

在我运行p4 status的工作空间中,它将一堆文件标记为“可以协调编辑”。但是,如果我调和它们并做差异,那么所有这些文件都是相同的。

有没有人知道原因是什么?

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

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

我猜测行结束是原因,但是文件包含png,在我实际提交更改列表并执行p4 status之后,它仍然报告相同的文件列表(好吧,我注意到一些文件已经消失了,无论出于何种原因,也许还有什么东西。)

我的工作区是新的,因此文件确实不应该有任何更改。

3 个答案:

答案 0 :(得分:1)

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

p4 verify -q files ...

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

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

p4 verify -v file

答案 1 :(得分:0)

这种行为似乎有几个原因。 @SamStafford答案肯定可能就是其中之一。

就我而言,事实证明这些文件的版本因大小写而异。由于Windows不区分大小写,因此将其搞砸并始终将其标记为已更改。

答案 2 :(得分:0)

OP在问题中提到“我猜测行尾是原因”,但这对我来说有点神秘,我错过了这实际上是 I 的确切原因寻找。

在相关的问题与解答https://stackoverflow.com/a/49803790/74296中,@ Samwise解释说,当将文件以perperforce的形式存储为“ Windows样式”行结尾时,工作区行结尾配置“ Shared”会导致这种情况。