首页 > 解决方案 > 奇怪的问题 Perforce 的 p4 同步没有捕捉到变化

问题描述

大家好,我急需帮助。

我的 p4 同步有一个奇怪的问题 /... 总是返回

- file(s) up-to-date.

大约 2 周前开始间歇性地发生这种情况,然后慢慢发展到 100% 无法正常工作,即 p4 同步不会产生任何变化。

如果我跑

p4 changes -m5
Enter password: 
User <p4user> logged in.
Change 1523039 on 2019/09/19 by *********************************************online fix read me info'
Change 1523038 on 2019/09/19 by *********************************************config ids to Part'
Change 1523037 on 2019/09/19 by **********************************************pending* 'Created item-definition cache f'
Change 1523036 on 2019/09/19 by ********************************************* '<saved by Perforce> '
Change 1523035 on 2019/09/19 by ********************************************* '<saved by Perforce> '

Ran p4 sync /... 并获得了最新的文件响应。

我现在已经执行了几次以下步骤

然后,这将成功同步所有文件。我将其用作我的自动构建管道的一部分,因此我可能不得不手动执行上述操作。

顺便说一句,我确实表演了

export P4CONFIG=~/.p4settings; /bin/p4 login < ~/.p4p; p4 workspace

并验证视图所有参数都可以。

我的构建管道已经工作了一年多。我不知道如何解决这个问题。非常感谢任何指针。

标签: synchronizationclientperforce

解决方案


比您的解决方法稍快的替代p4 sync -f方法是p4 clean. 与正常同步相比,这仍然相当慢,因为它需要对整个工作区进行校验和,但它至少比通过网络重新传输所有文件快一点。

至于找到并修复根本原因,以便您可以满怀信心地全速同步,这里有一些基本的事情需要预先检查:

  1. 什么p4 have显示为正在同步到工作区?是头部修订,还是修订旧?
  2. 如果p4 have显示您有旧版本但p4 sync不想更新它们,请检查p4 opened- 请记住,它p4 sync不会立即更新打开的文件(它会安排 aresolve以便您可以合并更改)

我将继续假设p4 have您已经有了头部修订,问题不在于文件是opened.

  1. 您是否曾经使用p4 sync -kp4 flush强制更新拥有列表而不更新工作区?如果是这样,您的工作空间显然会在之后不一致;您可能不想使用这些命令。
  2. 您是否使用相同的客户端规范来同步多台机器?如果是这样,他们正在共享一个拥有列表,而不是物理工作区,因此您没有进行同步的机器将与拥有列表不一致。 不要跨多个工作区共享客户端规范。 客户端规范中的Host字段将帮助提醒您不要这样做,只要您不删除或覆盖它P4HOST

如果您不确定这些问题的答案,您可以检查服务器日志以查看此客户端规范已发出哪些命令。您可能还需要考虑将客户端规范设置为locked以防止可能会破坏您的构建管道的恶作剧使用。


推荐阅读