我有一个奇怪的问题,我的
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>/...
并获得了 文件最新响应。
我已经执行了几次以下步骤
这将成功同步所有文件。我将其用作自动构建管道的一部分,因此我可能必须手动执行上述操作。
顺便说一下,我确实表演过
export P4CONFIG=~/.p4settings; /bin/p4 login < ~/.p4p; p4 workspace
并验证视图所有参数均正常。
我的构建管道已经工作了一年多。我该如何解决这个问题?
比您的
p4 sync -f
解决方法稍快的替代方案是 p4 clean
。与正常同步相比,这仍然相当慢,因为它需要对整个工作区进行校验和,但它至少比通过网络重新传输所有文件快一点。
至于找到并修复根本原因,以便您可以充满信心地全速同步,以下是需要预先检查的一些基本事项:
p4 have
显示什么已同步到工作区?是头部修改还是旧版本?p4 have
显示您有旧版本,但 p4 sync
不想更新它们,请选中 p4 opened
- 请记住 p4 sync
不会立即更新打开的文件(它会安排一个 resolve
)这样您就可以合并更改)我将继续假设
p4 have
显示您已经进行了头部修订,问题不在于文件是 opened
。
p4 sync -k
或 p4 flush
强制更新拥有列表而不更新工作区?如果是这样,你的工作空间显然会在之后变得不一致;您可能不想使用这些命令。Host
字段将帮助提醒您不要这样做,只要您不删除它或覆盖 P4HOST
。如果您不确定这些问题的答案,您可以检查服务器日志以查看使用此客户端规范发出了哪些命令。您可能还需要考虑将客户端规范设置为
locked
以防止可能破坏构建管道的恶作剧使用。
我解决了这个问题。我找不到解决方案,因此创建了一个新的工作区并复制到客户端配置和工作区视图中。我们的构建现在又可以工作了。