Представление Perforce, загруженное ведомым устройством Hudson, но не ведущим устройством

Мы используем 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, похоже, не устанавливает клиентское представление в журнале, как это происходит на подчиненном устройстве. Я не знаю, связано ли это с проблемой, но это подозрительно.


person Alec    schedule 06.06.2011    source источник
comment
Какие версии вы используете? Вы упустили много информации, такой как версия Hudson, версия p4, версия p4d, версия ОС и, что наиболее важно, версия плагина perforce. Упоминаемый журнал perforce-hudson обычно является журналом опроса perforce, который не имеет отношения к вашей проблеме. Сначала я бы проверил, правильно ли работает p4 на вашем ведомом устройстве, запустив '/ usr / local / bin / p4 workspace -o hudson_alec_test' из командной строки. Если очевидных проблем нет, вы можете обратиться за помощью напрямую к разработчикам. ;)   -  person rpetti    schedule 07.06.2011


Ответы (1)


Вы используете 2 разных клиента. Возможно, ваше ведомое устройство управляется плагином? Итак, хотя вы говорите, что ничего не изменилось, ваши клиенты другие. Обратите внимание на [workspace] $ /usr/local/bin/p4 -s changes //hudson_alec_test/...@1,@5561, затем он синхронизируется с @ 0, это означает, что он не обнаружил никаких изменений в этом хранилище. Вы снова видите это во втором тесте [workspace] $ /usr/local/bin/p4 -s changes //hudson_alec_test/...@5555,@5561, а затем он синхронизируется с @ 5554. В период с @ 5555 по @ 5561 на вашем складе не было изменений. Скорее всего, это потому, что ваш путь депо между двумя клиентами отличается?

person aflat    schedule 07.06.2011
comment
Очевидно, что он настроил плагин для управления представлениями клиентов за него, поэтому не должно быть причин для их различий. Тем не менее, это по-прежнему отличный момент, и его стоит проверить на случай, если по какой-либо причине плагин не работает на главном сервере. - person rpetti; 08.06.2011
comment
Да, я думаю, вот что происходит. Несмотря на то, что, как говорит rpetti, я настроил hudson для управления рабочей областью, кажется, что клиентское представление на главном сервере не является управляемым hudson. После некоторого поиска я обнаружил файл .p4config в домашнем каталоге пользователя hudson на главном сервере, и этот файл .p4config установил переменную env P4CLIENT. После того, как я удалил этот файл, кажется, что все работает правильно. Я думаю, что мораль этой истории такова: будьте очень осторожны, чтобы никакие окружения P4 не устанавливались за пределами окружения сборки hudson. - person Alec; 10.06.2011