到目前为止,我有这个命令:
p4 -p port:host -u user -P password edit -c default C:\tc\1890hagn\text.txt
然而它以Client 'MYMACHINE' unknown - use 'client' command to create it.
回复我该如何解决?我必须在TeamCity上运行这个checkout命令,理想情况下我会使用TeamCity的perforce会话。
(端口,主机,用户,密码,C:\ tc \ 1890hagn \ text.txt和MYMACHINE只是该问题的虚拟名称)
答案 0 :(得分:2)
您是否定义了涵盖您的软件仓库区域的VCS根目录?
您说您想使用TeamCity的Perforce工作区,因此您需要拥有VCS根目录。我认为TeamCity将其客户命名为TC_p4_MYMACHINE_a91128fb222f8594_282888d26bc0a9d1
(而非普通MYMACHINE
),并使用%P4CLIENT%
(环境变量)告诉Perforce它希望在此客户端中工作。运行构建,然后切换到构建的 Parameters 选项卡,查看env.P4CLIENT
的值是什么。
我认为如果定义了env.P4CLIENT
/ %P4CLIENT%
,那么您的p4.exe
命令行应该选择值。 (虽然你所描述的内容恰恰相反:p4.exe
试图使用MYMACHINE
的事实表明它没有看到P4CLIENT
;我相信主机名是Perforce'默认客户端名称。)如果缺少env.P4CLIENT
,您可能无法设置VCS根目录。
附注:使用TeamCity的工作空间看起来很方便(必须创建自己的工作空间的替代方案似乎很复杂)但有一个缺点:如果你的构建中途中断了,你就可以了。将在TeamCity的工作区中留下一个带有签出文件的待定更改列表。然后,当TeamCity尝试清理该工作区时(它会不时地这样做)它将报告一个问题,因为它无法删除已打开其中文件的工作区。