Что означает "Предупреждение: здесь есть несколько изменений в ветвях"?

Мы используем Jenkins как наш CI-движок, который знает, как контролировать репозиторий git. По какой-то причине я обычно вижу

Started by user anonymous
Building in workspace /var/lib/jenkins/jobs/X/workspace
Checkout:workspace / /var/lib/jenkins/jobs/X/workspace - [email protected]
Using strategy: Default
Last Built Revision: Revision 8422864a9745535d808435bd33ece764fd250358 (origin/HEAD, origin/master)
Fetching changes from 1 remote Git repository
Fetching upstream changes from [email protected]
Seen branch in repository origin/HEAD
Seen branch in repository origin/master
Commencing build of Revision c1e71af117df3cd63da972f361ad260af6f16bf5 (origin/HEAD, origin/master)
Checking out Revision c1e71af117df3cd63da972f361ad260af6f16bf5 (origin/HEAD, origin/master)
Warning : There are multiple branch changesets here
Parsing POMs
Modules changed, recalculating dependency graph

Мой вопрос в том, что означает "Предупреждение: Есть несколько ветвей изменений здесь" line actual_mean_?

Ответ 1

Я не эксперт Jenkins, но я нашел эту проблему, которая, казалось бы, объяснила бы предупреждение:

https://issues.jenkins-ci.org/browse/JENKINS-6856

Кажется, Дженкинс строит в состоянии отдельной головы, и это происходит, когда он проверяет удаленную ветку (исходник/мастер в этом случае), и я предполагаю, что предупреждение вызвано тем, что HEAD не указывает на локальную ветвь. Таким образом, Дженкинс создал анонимную ветвь.

EDIT: выполнил поиск кода в Github и нашел методы в плагине GitSCM для Jenkins, которые генерируют это предупреждение. См. здесь

Если revision (который вы можете увидеть в другом плагине Jenkins под названием git -client-plugin), имеет более одной ветки, указывающей на него, тогда плагин GitSCM предупреждает о наличии нескольких ветвей. Версия представляет собой созданный git коммит, который можно построить в git, чтобы иметь несколько ветвей, указывающих на одну и ту же фиксацию.

Комментарий к классу Revision объясняет это:

A Редакция - это SHA1 в дереве объектов, а коллекция ветки, которые используют этот идентификатор. В отличие от других SCM, git может иметь > 1 ветки указывают на одно и то же commit.