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

5497
GorovDude

У меня ОЧЕНЬ странная и не очень освещенная проблема с конкретным Windows Build Server (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
Нет необходимости добавлять свое имя к каждому вопросу и ответу. Ваш аватар, имя пользователя и ссылка на ваш профиль хорошо видны по умолчанию. Karan 11 лет назад 1
Ваш Git-репозиторий размещен на Gerrit случайно? sschuberth 10 лет назад 0
Да, это размещено на Геррите GorovDude 10 лет назад 0

2 ответа на вопрос

2
GorovDude

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

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

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

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

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

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

WEIRD !!!

Я столкнулся с той же проблемой, но `Использовать мелкое клонирование` и` Очистить рабочее пространство перед сборкой` уже были отключены. tony19 11 лет назад 0
1
user2720924

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

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

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

git pull --unshallow 

или же

git pull 

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