如何在TeamCity上使用p4签出文件?

如何在TeamCity上使用p4签出文件?,teamcity,perforce,Teamcity,Perforce,到目前为止,我有以下命令: p4-p端口:主机-u用户-p密码编辑-c默认c:\tc\1890hagn\text.txt 但是,它会以客户端“MYMACHINE”unknown响应-使用“Client”命令创建它。我如何修复它?我必须在TeamCity上运行这个checkout命令,理想情况下我会使用TeamCity的performe会话 (端口、主机、用户、密码、C:\tc\1890hagn\text.txt和MYMACHINE只是问题的虚拟名称)您是否定义了覆盖仓库区域的VCS根目录 你说你

到目前为止,我有以下命令:

p4-p端口:主机-u用户-p密码编辑-c默认c:\tc\1890hagn\text.txt

但是,它会以
客户端“MYMACHINE”unknown响应-使用“Client”命令创建它。
我如何修复它?我必须在TeamCity上运行这个checkout命令,理想情况下我会使用TeamCity的performe会话


(端口、主机、用户、密码、C:\tc\1890hagn\text.txt和MYMACHINE只是问题的虚拟名称)

您是否定义了覆盖仓库区域的VCS根目录

你说你想使用TeamCity的Performce工作区,因此你需要有一个VCS根目录。我认为TeamCity将其客户命名为
TC\u p4\u MYMACHINE\u a91128fb22f8594\u 28288d26bc0a9d1
(而不是普通的
MYMACHINE
),并使用
%P4CLIENT%
(环境变量)告诉Performance它希望在此客户机中工作。运行构建,然后切换到构建的参数选项卡,查看
env.P4CLIENT
的值

我认为,如果定义了
env.P4CLIENT
/
%P4CLIENT%
,那么您的
p4.exe
命令行应该选择该值。(尽管您描述的情况正好相反:
p4.exe
正试图使用
MYMACHINE
这一事实表明它没有看到
P4CLIENT
;我相信主机名是Perforce的默认客户机名。)如果没有
env.P4CLIENT
,则可能您没有设置VCS根目录


附带说明:使用TeamCity的工作区似乎很方便(创建自己的工作区的替代方案似乎很复杂),但也有一个缺点:如果构建中途中断,您将在TeamCity的工作区中留下一个带有签出文件的挂起更改列表。然后,当TeamCity尝试清理该工作区时(它会不时地这样做),它会报告一个问题,因为它无法删除其中已打开文件的工作区。

为什么您认为使用TeamCity的Performe工作区进行此编辑操作比较理想?你也会提交文件吗?或者总是在你改变它之后恢复它?你需要对“text.txt”做什么样的更改?谢谢你的问题,布莱恩!我在文件中进行文本替换,并在最后将其还原。此外,由于遗留原因,我们可能希望将可执行文件完全提交给perforce。我已定义了VCS根目录,但仍然找不到env.p4客户端集:(在VCS根目录设置中,是否将客户端指定为(a)流、(b)客户端或(c)客户端映射?