我已做过相当多的研究,找到其他有类似问题的人,但我最接近的是那些在平台上使用TeamCity的人(Mac OS X或Windows)因此可以负担得起p4的完整路径(例如/ usr / local / bin / p4或C:\ Program Files(x86 \ Perforce \ p4.exe)。
但是,我的服务器在Mac OS X上运行,我在OSX和Windows 8上都有代理。所以这就是我的问题所在。
在普通用户帐户下运行我的团队城市时,让我们通过launchctl给他打电话,这是一个VCS问题。
Failed to collect changes, error: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
请注意,p4是我所有构建配置VCS设置中p4可执行文件的路径。 (默认)
另一个问题是我使用我的VCS作为代理检查而不是服务器检查。
当我运行我的服务器而不是作为守护程序而是登录为&#39; joe&#39;通过ssh并通过<TeamCity Server Data Dir>/bin/teamcity-server.sh
启动它然后没有问题,他可以在我的服务器和代理上访问p4。
这使我很沮丧,因为我似乎无法找到它为什么会出现这个问题。我尝试的另一件事是将我的构建配置中的路径定义为%env.P4PATH
,并确保我的所有代理都有完整的perforce路径(即使这很荒谬,因为它显然是我的服务器出现问题,不是我的经纪人。)
可悲的是,由于%env.P4PATH
未在我的服务器上定义,因此无法正常工作。
现在我只是通过我知道它工作的唯一方式使用我的TeamCity服务器,但我真的想将它作为守护进程(启动)运行,因为它会确保我的服务器始终处于活动状态权力放出。
如果您需要更多详细信息以帮助我,请告诉我。
编辑:再次手动启动我的TeamCity后,我发现我的OS X构建代理有同样的问题。该代理程序在与服务器相同的OS X计算机上运行,也通过launchctl
启动。
该代理的错误消息说:
Failed to perform checkout on agent: Unable to find P4 command-line client at path 'p4' on joe-his-computer for user joe
答案 0 :(得分:1)
感谢同事,我发现了这个问题。在该特定计算机上,p4
位于/usr/local/bin
,但/usr/local/bin
不在我的路径中。将p4
移至/usr/bin
我解决了OSX Agent
和OSX Server
的问题。