2011-06-06 61 views
1

我们使用hudson作为我们的构建,我们发现如果我们使用master来构建perforce视图,则不会加载。在控制台中没有错误,除非如果它是一个新项目,perforce插件似乎检测到错误的版本并尝试加载更改列表0.除此之外,在主控制台上显示的命令完全相同哈德森用户正常工作。下面是在Linux主一个新项目建设的控制台输出(注意这并不会做其他任何事情比加载视图检查后显示没有被加载的目录。):由hudson slave加载但不是master的perforce视图

Started by user anonymous 
Building on master 
Clearing workspace... 
Cleared workspace. 
Using master perforce client: hudson_alec_test 
[workspace] $ /usr/local/bin/p4 workspace -o hudson_alec_test 
Last sync'd change: 0 
[workspace] $ /usr/local/bin/p4 counter change 
[workspace] $ /usr/local/bin/p4 -s changes //hudson_alec_test/[email protected],@5561 
Sync'ing workspace to changelist 0 (forcing sync of unchanged files). 
[workspace] $ /usr/local/bin/p4 sync -f //hudson_alec_test/[email protected] 
Sync complete, took 259 ms 
Finished: SUCCESS 

下面是该输出项目一旦我把它绑定到我们MAC从(在项目配置比它结合到从其他没有变化 - 记现在正确的Perforce检测到变化并正确加载视图):

Started by user anonymous 
Building remotely on xxx.xxx.xxx.xxx 
Clearing workspace... 
Cleared workspace. 
Using remote perforce client: hudson_alec_test--yyy 
[alec_test] $ /usr/local/bin/p4 workspace -o hudson_alec_test--yyy 
[alec_test] $ /usr/local/bin/p4 login -p 
[alec_test] $ /usr/local/bin/p4 -P xxx workspace -o hudson_alec_test--yyy 
Changing P4 Client Root to: /Users/hudson/hudson_builds/workspace/alec_test/ 
Changing P4 Client View from: 
//depot/... //hudson_alec_test--yyy/... 

Changing P4 Client View to: 
    //depot/webservices/dev/projects/parents/... //hudson_alec_test-yyy/webservices/dev/projects/parents/... 
Saving new client hudson_alec_test--yyy 
[alec_test] $ /usr/local/bin/p4 -P xxx -s client -i 
Last sync'd change: 0 
[alec_test] $ /usr/local/bin/p4 -P xxx counter change 
[alec_test] $ /usr/local/bin/p4 -P xxx -s changes //hudson_alec_test--yyy/[email protected],@5561 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5554 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5552 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5551 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5550 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5213 
[alec_test] $ /usr/local/bin/p4 -P xxx describe -s 5211 
Sync'ing workspace to changelist 5554 (forcing sync of unchanged files). 
[alec_test] $ /usr/local/bin/p4 -P xxx sync -f //hudson_alec_test--yyy/[email protected] 
Sync complete, took 409 ms 
Finished: SUCCESS 

现在改变回控制台输出的主控制器是:(除了将它绑定到主控制器和从控制器之外,项目配置中没有改变但现在没有文件被加载在

Started by user anonymous 
Building on master 
Clearing workspace... 
Cleared workspace. 
Using master perforce client: hudson_alec_test 
[workspace] $ /usr/local/bin/p4 workspace -o hudson_alec_test 
Last sync'd change: 5554 
[workspace] $ /usr/local/bin/p4 counter change 
[workspace] $ /usr/local/bin/p4 -s changes //hudson_alec_test/[email protected],@5561 
Sync'ing workspace to changelist 5554 (forcing sync of unchanged files). 
[workspace] $ /usr/local/bin/p4 sync -f //hudson_alec_test/[email protected] 
Sync complete, took 229 ms 
Finished: SUCCESS 

我所看到的其他问题引用Perforce的哈德逊日志,但我无法找到任何Perforce的记录比控制台中显示的其他主服务器上的工作区)。任何有关如何进一步调试的建议将不胜感激。

正如我在写这个问题,我注意到,在主人的perforce插件似乎没有设置客户端视图在日志中的方式,它在奴隶。我不知道这是否与这个问题有关,但它是可疑的。

+0

你使用的是什么版本?你遗漏了很多信息,比如Hudson版本,P4版本,P4版本,OS版本,最重要的是,Perforce插件版本。 引用的perforce-hudson日志通常是perforce轮询日志,与您的问题无关。 我会首先通过从命令行运行'/ usr/local/bin/p4 workspace -o hudson_alec_test'来检查p4是否能正常工作在你的从设备上。如果没有任何明显的问题,您可能需要直接联系开发人员寻求帮助。 ;) – rpetti 2011-06-07 00:09:55

回答

2

您正在使用2个不同的客户端。你的奴隶看起来是由插件管理的,也许?所以尽管你说没有什么不同,你的客户是不同的。请注意0​​,然后它同步到@ 0,这意味着它在该库中找不到任何更改。您在第二次测试[workspace] $ /usr/local/bin/p4 -s changes //hudson_alec_test/[email protected],@5561中再次看到它,然后它会同步到@ 5554。 @ 5555和@ 5561之间的仓库没有变化。很有可能是因为您的2个客户之间的仓库路径不同?

+0

显然他配置了插件来管理他的客户端视图,所以应该没有理由让它们有所不同。这就是说,这仍然是一个很好的观点,值得检查,以防万一插件无论出于何种原因出现故障。 – rpetti 2011-06-08 03:51:37

+1

是的,我认为这是发生了什么事。尽管rpetti说我配置了hudson来管理工作空间,但似乎主服务器上的客户端视图并不是哈德森管理的视图。经过一番搜索后,我在主服务器上的hudson用户的主目录中发现了一个.p4config文件,该.p4config文件设置了P4CLIENT env var。我删除这个文件后,似乎事情工作正常。我认为这个故事的寓意是非常小心,没有任何P4 env vars被设置在哈德森build env之外。 – Alec 2011-06-09 21:49:51