Teamcity 上的 Perforce VCS 根代理端结帐映射

Perforce VCS root agent side checkout mapping on Teamcity

当我在 teamcity 代理上执行 Perforce vcs root checkout 时,我看到创建了一个以 "TC_p4_" 开头的工作区,但我在我的代理上找不到这个文件夹。此 "TC_p4_" 的映射在 Teamcity 中的何处完成? 我没有为 teamcity 中的 vcs root 启用任何签出规则。

我的 vcsroot 客户端映射设置在 teamcity 中如下所示:
//vcsroot/stream_name/... //team-city-agent/...

此外,当我使用 p4 命令行命令(如 p4 sync、p4 revert 等)在 vcs root 中使用的 Perforce 流上进行结帐、还原或提交时,我在 Teamcity 中不断收到以下错误。

警告:无法从非流客户端提交

有人可以帮我解决我在这里遗漏的问题吗?感谢任何类型的指示,并通过您的回复提供帮助!

首先查看客户端的详细信息。您不需要在 TC 代理上执行此操作 - 任何连接到您的 P4 服务器的盒子都可以。您的选择是:

  1. 在 P4V 中,按 Ctrl-G > 选择工作区 > 输入 TC_p4_... 名称。
  2. p4 命令行客户端中,运行 p4 client -o TC_p4_....

其中任何一个都会向您显示工作区的 "Root"(以及 "Host",这应该是您的 TC 代理的主机名)。这会提示您在何处查看代理。

现在,我怀疑您无法同步、还原等,因为当您 运行 这些命令时,您的环境设置不正确。尝试 运行ning p4 set 而不是 p4 sync 和类似的。它是否正确识别服务器 (P4PORT) 和客户端 (TC_p4_...)?如果没有,您必须先解决这个问题,这可以完成 .

解决方案是在 Teamcity 中创建一个 vcs root,并将 P4 连接作为流,而不是在创建 vcs root 时使用客户端映射来执行 perforce 提交、还原、同步等,而不是得到错误 "warning: cannot submit from a non-stream client"

https://confluence.jetbrains.com/display/TCD9/Perforce