如何在 TeamCity 上使用 p4 检出文件?
How can I check out file with p4 on TeamCity?
到目前为止我有这个命令:
p4 -p port:host -u user -P password edit -c default C:\tc90hagn\text.txt
但是它的响应是 Client 'MYMACHINE' unknown - use 'client' command to create it.
我该如何解决这个问题?我必须 运行 在 TeamCity 上执行此结帐命令,理想情况下我会使用 TeamCity 的 perforce 会话。
(端口、主机、用户、密码、C:\tc90hagn\text.txt 和 MYMACHINE 只是问题的虚拟名称)
您是否定义了覆盖您的仓库区域的 VCS 根目录?
你说你想使用 TeamCity 的 Perforce 工作区,因此你需要有一个 VCS root。我认为 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 root。
旁注:使用 TeamCity 的工作区可能看起来很方便(必须创建自己的工作区的替代方案似乎很复杂)但有一个缺点:如果您的构建中途中断,您将留下一个未决的带有 TeamCity 工作区中签出文件的更改列表。然后,当 TeamCity 尝试清理该工作区时(它会不时这样做),它会报告一个问题,因为它无法删除已在其中打开文件的工作区。
到目前为止我有这个命令:
p4 -p port:host -u user -P password edit -c default C:\tc90hagn\text.txt
但是它的响应是 Client 'MYMACHINE' unknown - use 'client' command to create it.
我该如何解决这个问题?我必须 运行 在 TeamCity 上执行此结帐命令,理想情况下我会使用 TeamCity 的 perforce 会话。
(端口、主机、用户、密码、C:\tc90hagn\text.txt 和 MYMACHINE 只是问题的虚拟名称)
您是否定义了覆盖您的仓库区域的 VCS 根目录?
你说你想使用 TeamCity 的 Perforce 工作区,因此你需要有一个 VCS root。我认为 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 root。
旁注:使用 TeamCity 的工作区可能看起来很方便(必须创建自己的工作区的替代方案似乎很复杂)但有一个缺点:如果您的构建中途中断,您将留下一个未决的带有 TeamCity 工作区中签出文件的更改列表。然后,当 TeamCity 尝试清理该工作区时(它会不时这样做),它会报告一个问题,因为它无法删除已在其中打开文件的工作区。