git p4 clone卡在p4 -G files步骤,出现TCP超时错误求助
Git P4 Clone 卡超时:P4 -G 命令执行失败的解决办法
问题场景
执行git p4 clone -v //path/to/my/depot/branches/mybranch时,进程卡在Opening pipe: p4 -r 3 -G files //path/to/my/depot/branches/mybranch...#head步骤,最终报错:
Perforce client error: TCP receive failed. read: socket: Operation timed out p4 returned an error: TCP receive failed. read: socket: Operation timed out
单独执行不带-G参数的p4 files //path/to/my/depot/branches/mybranch...#head可正常运行,但添加-G参数后超时。已完成p4 login,~/.zshrc中配置了P4相关环境变量,运行环境为MacOS 15.1、Python 3.9.6。
解决办法
延长P4 socket超时时间
-G参数会让P4输出机器可读格式,数据量更大易触发超时。在~/.zshrc中添加超时配置:export P4SOCKETTIMEOUT=300000 # 设置为5分钟,单位毫秒执行
source ~/.zshrc生效后重新尝试克隆命令。更新P4客户端版本
MacOS 15.1(Sequoia)可能和旧版P4客户端存在兼容性问题,尤其是-G模式的输出处理。卸载现有客户端,下载安装最新稳定版P4客户端后重试。缩小克隆范围
...#head会查询分支下所有历史文件,数据量过大导致-G模式处理超时。可以指定变更集范围缩小克隆量:git p4 clone -v //path/to/my/depot/branches/mybranch@[起始变更集号],head或者先克隆单个子目录,再逐步扩展。
临时禁用P4HOST环境变量
配置的P4HOST可能导致连接异常,临时取消该变量后重试:unset P4HOST git p4 clone -v //path/to/my/depot/branches/mybranch切换Python版本
Python 3.9.6与git-p4脚本可能存在兼容性问题,尝试切换到Python 3.10+版本:# 假设用pyenv安装了3.10.12 PATH=$(pyenv prefix 3.10.12)/bin:$PATH git p4 clone -v //path/to/my/depot/branches/mybranch
内容的提问来源于stack exchange,提问作者arvind
相关产品推荐
相关产品推荐

