В нескольких филиалах задание Jenkins не выполняется - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть ветка Jenkins Multi, которая проверяет и создает код из GitLab. До недавнего времени это работало без проблем, но теперь некоторые (но не все) ветки от хорошего мастера не в состоянии построить. Мастер всегда строит без проблем. Когда я разветвляю master либо из репозитория в GitLab, либо через git checkout -b локально и возвращаюсь в Gitlab, а затем разрешаю многоотраслевому заданию подобрать новую ветку, она не может ее построить. Я получаю сообщение от класса SCMBinder плагина конвейера: «Не удалось определить точную ревизию наконечника [ответвления]; откат к недетерминированной проверке». Когда я делаю git-статус в рабочей области на главном или подчиненном устройстве, голова отключается. Когда я делаю клон кода локально и проверяю ветку, все в порядке, и голова правильно прикреплена. Кроме того, когда я создаю простую конвейерную работу в Jenkins с веткой проблемы, она строится нормально, и проверка рабочей области показывает присоединенную головку. Я обновил Jenkins и плагины, но это не помогло.

Смущает то, что у меня есть несколько других веток, которые я создал на том же мастере, которые прекрасно сочетаются в одном и том же многоканальном конвейерном задании. Также, если я разветвляю хорошую ветвь, то я получаю ту же проблему в многоотраслевом конвейере.

Кто-нибудь может подсказать, что идет не так?

1 Ответ

0 голосов
/ 11 ноября 2019

Я нашел ответ на этот вопрос, поэтому отвечая на него здесь, чтобы помочь другим и не дать никому тратить свое время на это.

По сути, это было вызвано проблемами совместимости linux / windows / различий в использовании caseв наименовании ветвей, которое приводит к проблеме именования папок, потому что Windows не заботится о регистре, а GIT это делает.

Проще говоря, первые ветки, которые я ранее создал для репозитория проблем, который я использовал с префиксом, позволяют вызывать его "Приставка "с заглавной буквы" P ". Эти ветви были вытянуты в многоотводную трубу и построены нормально. Затем я создал ветку с префиксом «префикс» с строчными буквами «р». Эту ветку не удалось встроить в многоотраслевой конвейер.

Как мы знаем, Windows не заботится о регистре и поэтому не создает новую структуру папок в .git для "префикса", так как считает, что она уже есть. называется «Префикс». Соответствующая информация HEAD и коммита помещается в исходную файловую структуру в разделе «Префикс». Однако GIT, когда он пытается извлечь код, не может найти информацию заголовка / коммита для ветки, начинающей «префикс», так как он ищет в .git подробности фиксации / заголовка под «префиксом», а не «Префикс», который, следовательно, не существуетприводит к отстраненной голове.

Я собираюсь начать применять некоторые синтаксические правила для именования ветвей в будущем, чтобы это больше не повторилось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...