perforce p4 同步问题
Posted
技术标签:
【中文标题】perforce p4 同步问题【英文标题】:perforce p4 sync issue 【发布时间】:2015-03-11 09:19:02 【问题描述】:我通过 GUI 使用p4v
在以下路径中创建了一个工作区:
/home/RND/abrodov/Perforce/abrodov_tlv-cc-32_93
我正在尝试使用p4
命令,例如我尝试过:
p4 sync -f
我收到以下错误:
Client 'tlv-cc-32' unknown - use 'client' command to create it.
这是我用于P4
的环境变量:
export p4v=/opt/p4v-2014.2.973065/bin
export P4PORT=IP:PORT
export P4USER=$USER
export P4CLIENT=$HOSTNAME
alias p4v="p4v &"
export PATH=$p4v:$PATH
【问题讨论】:
【参考方案1】:由于服务器不知道客户端“tlv-cc-32”,因此它一定不是您与 P4V 一起使用的客户端的正确名称。
运行
p4 clients -u $P4USER
要获取所有工作区名称的列表,然后找到与 P4V 一起使用的名称。 (或者,在 P4V 中,使用“编辑当前连接”菜单查看您的“工作区名称:”)
然后将 P4CLIENT 设置为您的 P4V 工作区的正确名称,并使用“p4 info”来验证服务器是否将该客户端名称与您工作站的根目录相关联。
然后
p4 sync -f
会正常工作的。
(不过,有人想知道,为什么您觉得需要运行 'p4 sync -f'?)
【讨论】:
你说的“编辑当前连接”在哪里?【参考方案2】:总结
删除所有多余的空格。
详细说明。
P4 命令也会因为额外的空格而引发此错误。 通过环境变量(windows)设置 p4 全局选项时,我遇到了类似的问题。
set GLOBAL_OPTIONS="-c sahil" REM **INCORRECT**
p4 %GLOBAL_OPTIONS% sync //file/path
sahil 是我的工作区名称。 p4 将名称解释为“sahil”(带空格),因此未能找到它。以下工作。
set GLOBAL_OPTIONS="-csahil" REM **CORRECT**
p4 %GLOBAL_OPTIONS% sync //file/path
以下2条命令同理,第1条失败,第2条正常。
p4 "-c sahil" sync //file/path REM **INCORRECT**
p4 -c sahil sync //file/path REM **CORRECT**
空间会导致这个难以察觉的微妙问题。就我而言,工作区名称“sahil”确实存在,但我不知道 p4 如何解释空格。
PS:不是问题作者遇到此错误的原因,但它是 p4 可以抛出此错误的原因之一,我花了一些时间才弄清楚。
【讨论】:
以上是关于perforce p4 同步问题的主要内容,如果未能解决你的问题,请参考以下文章
Perforce unicode问题:使用非ascii字符的同步文件会导致截断
Perforce ( P4 ) 将树中的特定版本移动到树的顶部
Perforce:如何将稍后的提交应用于同步到早期版本的工作区?