Мы используем hudson для наших сборок, и мы обнаружили, что если мы используем мастер для сборки, представление perforce не загружается. В консоли нет ошибок, за исключением того, что если это новый проект, плагин perforce, кажется, обнаруживает неправильную версию и пытается загрузить список изменений 0. Кроме этого, выполняются те же самые команды, которые показаны в консоли на главном устройстве, что и Пользователь hudson работает правильно. Вот консольный вывод для нового проекта, построенного на главном сервере Linux (обратите внимание, что это не делает ничего, кроме загрузки представления. Последующая проверка каталога показывает, что ничего не было загружено):
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/...@1,@5561
Sync'ing workspace to changelist 0 (forcing sync of unchanged files).
[workspace] $ /usr/local/bin/p4 sync -f //hudson_alec_test/...@0
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/...@1,@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/...@5554
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/...@5555,@5561
Sync'ing workspace to changelist 5554 (forcing sync of unchanged files).
[workspace] $ /usr/local/bin/p4 sync -f //hudson_alec_test/...@5554
Sync complete, took 229 ms
Finished: SUCCESS
Я видел, что другие вопросы ссылаются на журнал perforce-hudson, но я не могу найти никаких журналов perforce, кроме того, что показано в консоли. Мы будем очень благодарны за любые предложения о том, как отладить это дальше.
Когда я писал этот вопрос, я заметил, что на главном сервере плагин perforce, похоже, не устанавливает клиентское представление в журнале, как это происходит на подчиненном устройстве. Я не знаю, связано ли это с проблемой, но это подозрительно.