git fatal: Pack hat 1 nicht aufgelöstes Delta (Indexpack fehlgeschlagen)

5526
GorovDude

Ich habe ein sehr seltsames und nicht so behandeltes Problem mit einem bestimmten Windows Build Server (Jenkins Slave).

In Jenkins habe ich einen Job, der den neuesten Code aus einer bestimmten Branche bezieht.

Der eigentliche Befehl, den der Git ausführen will, lautet:

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

Vor einigen Stunden, nachdem Sie 1 Monat gut gearbeitet haben, schlägt der Job plötzlich mit diesem Fehler fehl:

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 

Ich habe versucht, über das Web ein paar Beiträge dazu zu finden, aber es kam nichts dazu ...

Dinge, die ich bereits ausprobiert habe:

  1. Deinstallieren Sie git und installieren Sie es erneut
  2. Löschen Sie den Arbeitsbereich (der auch vom Job gelöscht wird, wenn die Option zum Löschen ausgewählt wird. "
  3. Löschen Sie den gesamten Arbeitsbereich aus dem System
  4. git fsck - Keine interessanten Ergebnisse
  5. git verify-pack - Keine interessanten Ergebnisse
  6. git index-pack + relevante packdatei - Auch hier keine interessanten Ergebnisse

Weitere (hoffentlich wichtige) Informationen:

  1. Von diesem Server aus, wenn ich über CMD / GitBash arbeite - Das gleiche Problem bleibt bestehen
  2. Von anderen Servern / PCs aus kann ich diesen Befehl mit demselben git Repo ausführen, das mir Probleme bereitet ...
  3. Andere Aufgaben, die mit verschiedenen Git Repo-Vorgängen auf dem SAME Build Server ausgeführt werden, funktionieren problemlos.

Ich bin verloren. Kann jemand etwas Licht auf dieses werfen?

3
Sie müssen nicht zu jeder Frage und Antwort Ihren Namen hinzufügen. Ihr Avatar, Ihr Benutzername und ein Link zu Ihrem Profil sind standardmäßig deutlich sichtbar. Karan vor 11 Jahren 1
Wird Ihr Git-Repository zufällig auf Gerrit gehostet? sschuberth vor 9 Jahren 0
Ja, es wird auf Gerrit gehostet GorovDude vor 9 Jahren 0

2 Antworten auf die Frage

2
GorovDude

Die Ursache für all das Durcheinander ist mir noch unbekannt.

Aber jetzt habe ich es so geschafft:

Im Jenkins-Job waren unter der Git SCM-Konfiguration die folgenden Verzögerungen zu verzeichnen:

  1. Wischen Sie den Arbeitsbereich vor dem Erstellen aus
  2. Verwenden Sie flachen Klon

Das Entfernen der 2 von ihnen löste das Problem.

Danach ist es möglich, sie wieder einzusetzen, und es funktioniert immer noch.

SELTSAM!!!

Ich hatte das gleiche Problem, aber "Use shallow clone" und "Wipe out workspace before build" waren bereits deaktiviert. tony19 vor 10 Jahren 0
1
user2720924

Ein Grund, warum ich dieses Problem hatte, git clonewar "seicht". Daher hatte es nicht die gesamte Geschichte der Commits (daher konnte fetch nicht die volle Historie sehen, um Deltas zu berechnen).

Überprüfen Sie das Git-Protokoll in dem Arbeitsbaum, in den Sie abrufen möchten. Es sollte nicht die vollständige Historie angezeigt werden - bei meinem waren nur ein paar Commits aufgeführt, wobei das älteste auf der Liste besagte, es würde eine "neue Datei" für alle hinzugefügt Dateien im Repo - ein zerquetschter, denke ich.

Stellen Sie sicher, dass keine GIT_DEPTHVariable gesetzt ist

git pull --unshallow 

oder

git pull 

und versuchen Sie es erneut.