Perforce 的 p4 同步无法捕获更改

问题描述 投票:0回答:2

我有一个奇怪的问题,我的

p4 sync <path>/...
总是返回

- file(s) up-to-date.

这种情况大约 2 周前开始间歇性地发生,然后慢慢发展到 100% 不起作用,即

p4 sync
没有任何变化。

如果我跑步

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> '

运行

p4 sync <path>/...
并获得了 文件最新响应。

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

  • 光盘
  • p4 同步…#0
  • rm -rf *
  • p4 同步 -f ...

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

顺便说一下,我确实表演过

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

并验证视图所有参数均正常。

我的构建管道已经工作了一年多。我该如何解决这个问题?

synchronization client perforce
2个回答
3
投票

比您的

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

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

  1. p4 have
    显示什么已同步到工作区?是头部修改还是旧版本?
  2. 如果
    p4 have
    显示您有旧版本,但
    p4 sync
    不想更新它们,请选中
    p4 opened
    - 请记住
    p4 sync
    不会立即更新打开的文件(它会安排一个
    resolve
    )这样您就可以合并更改)

我将继续假设

p4 have
显示您已经进行了头部修订,问题不在于文件是
opened

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

如果您不确定这些问题的答案,您可以检查服务器日志以查看使用此客户端规范发出了哪些命令。您可能还需要考虑将客户端规范设置为

locked
以防止可能破坏构建管道的恶作剧使用。


0
投票

我解决了这个问题。我找不到解决方案,因此创建了一个新的工作区并复制到客户端配置和工作区视图中。我们的构建现在又可以工作了。

© www.soinside.com 2019 - 2024. All rights reserved.