git fatal: пакет содержит 1 неразрешенную дельту (сбой индекса)

У меня ОЧЕНЬ странная и не очень освещенная проблема с конкретным сервером сборки Windows (Jenkins Slave).

В Jenkins у меня есть Job, который извлекает последний код из определенной ветки.

Фактическая команда, которую пытается выполнить git:

git fetch -t origin +refs/heads/*:refs/remotes/origin/*

Через несколько часов, после хорошей работы в течение 1 месяца, работа неожиданно завершается с этой ошибкой:

ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
hudson.plugins.git.GitException: Command "C:\Program Files (x86)\Git\bin\git.exe fetch -t origin +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: fatal: pack has 1 unresolved delta
fatal: index-pack failed

Я пытался найти некоторые посты об этом в Интернете, но ничего не вышло...

Вещи, которые я уже пробовал:

  1. Удалите git и установите снова
  2. Удалить рабочую область (которая также удаляется заданием при выборе варианта удаления)
  3. Удалить ВСЕ рабочее пространство из системы
  4. git fsck - нет интересных результатов
  5. git verify-pack - нет интересных результатов
  6. git index-pack + соответствующий файл пакета - здесь тоже нет интересных результатов

Еще немного (надеюсь, важная) информация:

  1. С этого сервера, когда я работаю через CMD / GitBash - та же проблема сохраняется
  2. С других серверов / ПК я могу выполнить эту команду с тем же Git Repo, что доставляет мне неприятности...
  3. Другие задачи, которые работают с другими Git Repo на одном и том же сервере сборки, работают свободно.

Я потерян. Может кто-то пролить свет на это?

3 ответа

Коренная причина всего этого беспорядка мне пока неизвестна.

Но теперь мне удалось преодолеть это так:

В задании Jenkins в конфигурации Git SCM были включены следующие лаги:

  1. Протрите рабочее пространство перед сборкой
  2. Используйте неглубокий клон

Удаление 2 из них решило проблему.

После этого их можно вернуть обратно, и это все равно будет работать.

WEIRD!!!

Причиной, по которой у меня возникла эта проблема, была git clone была сделана "мелкой", следовательно, она не имела полной истории коммитов (следовательно, fetch не мог видеть полную историю для вычисления дельт).

Проверьте журнал Git в рабочем дереве, в которое вы пытаетесь выбрать, у него не должно быть полной истории - у меня было только несколько коммитов в списке, самый старый из которых говорил, что он добавляет "новый файл" для всех файлы в репо - раздавленный, я думаю.

Убедитесь, что нет GIT_DEPTH переменная установлена, то

git pull --unshallow

или же

git pull 

и попробуйте получить снова.

Я столкнулся с той же проблемой. Сначала я создал новую ветку master и проверил, нормально ли работает развертывание из этой ветки, и так оно и было. Поэтому я попытался удалить рабочую область для основной ветки (сделал это вручную), и это исправило мой случай.

Другие вопросы по тегам