【问题标题】:perforce p4 sync issueperforce p4 同步问题
【发布时间】: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

【问题讨论】:

    标签: version-control perforce


    【解决方案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 可以抛出此错误的原因之一,我花了一些时间才弄清楚。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多