"Fatal: korrupter Patch in Zeile XX" beim Staging einer einzelnen Zeile
Ich bin immer folgende Fehlermeldung, wenn ich versuche auf der Bühne eine einzelne Zeile oder mehrere Zeilen mit den git gui (Rechtsklick -> stage lines for commit). Es ist nicht das erste mal, es passieren zu mir, und ich habe gefunden, andere vor.Konnte ich aber nicht finden wie es zu lösen.
Haben Sie jemals begegnet diesem problem? gibt es etwas, was ich tun kann (staging alle die Datei ist keine wirkliche Lösung)
Update:
Hier ist eine Datei gibt mir folgende Fehlermeldung, wenn ich versuche auf der Bühne die gelöschte Zeile.
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/texture"
android:tileMode="repeat"
- android:dither="true"
>
</bitmap>
\ No newline at end of file
Hier ist die Fehlermeldung:
fatal: corrupt patch at line 14
seltsam der folgenden fine hat noch nicht mal 14!? Hinweis: Ende der Datei eine neue Zeile hat das problem nicht lösen
InformationsquelleAutor der Frage Kirill Kulakov | 2012-08-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anscheinend Git-GUI erfordertdie Dateien enden mit einem Zeilenumbruch, wenn die Inszenierung die einzelnen Linien.
Ich bin mir ziemlich sicher, dass an mindestens einem Punkt in der Zeit, staging einzelnen Linien war ok, auch ohne einen Zeilenumbruch am Ende der Datei, aber anscheinend ist das nicht mehr möglich. Gerade lief in dieses problem selbst, dass Zeilenumbrüche am Ende der Datei behebt es, und entfernen Sie es bewirkt.
InformationsquelleAutor der Antwort Kyle
Eigentlich, das passiert oft, wenn Sie " Bearbeiten '-' Linien.
Wenn Sie entfernen " - "und vergessen Sie '' (space) anstatt es
Oder aus versehen, fügen Sie zwei Leerzeichen ein und verwenden Sie 'Reiter' wie Einrückung
Öffnen Sie Ihre patch und überprüfen, dass alle Zeilen, die Sie möchten, lassen Sie unberührt, beginnen mit '' (ein Leerzeichen)
Habe ich gesehen, dass einige Leute verwenden
--ignore-space-change
--ignore-whitespace
--whitespace=fix
als workaround aber das ist eine andere Sache, die Sie müssen, nicht mischen in.Öffnen Sie Ihre patch und überprüfen, dass alle Zeilen, die Sie möchten, lassen Sie unberührt, beginnen mit '' (space)
UPD
es auch möglich, dein editor hat die option: "Löschen von Leerzeichen am Ende der Zeile"
So, wenn Sie in Ihrem editor save patch:
Editor entfernen Sie Leerzeichen und patch werden wie diese:
Dieser patch wird SCHEITERN, weil die origin-Datei hat keine Linie:
es hat:
UPD2
Also, wenn in Ihrem patch in der nächsten Zeile
Editor entfernen trainling Raum. Patch FEHL
InformationsquelleAutor der Antwort Eugen Konkov
Git-GUI schlägt fehl, zum hinzufügen/entfernen von Zeilen aus dem index, wenn der chunk mit der Sie arbeiten, ist zu groß (d.h. zu viele aufeinander folgende Zeilen geändert).
Mein workaround : wenn die änderungen nicht zu einer "wall of pink" (wenn es einige unveränderte Linien in der Mitte des chunks), gehen Sie zu Bearbeiten - > Optionen und reduzieren Sie die Anzahl der Zeilen in der Kontext-diffs. Wenn das nicht funktioniert, Sie geschraubt sind ; verwenden Sie ein anderes Werkzeug (wie die Befehlszeile für das Beispiel).
InformationsquelleAutor der Antwort Zonko
Wurde ich immer diese Fehlermeldung beim staging der Gruppen.
Den "Leerraum", der hier erwähnt erinnerte mich daran, dass ich habe, in meinem git-diff-Optionen "-w", die überspringt, white-space, während diff.
Habe ich entfernt, die fahne (mit git-gui "Optionen..."), und war in der Lage, auf der Bühne hunks ohne den Fehler. Ich habe dann Hinzugefügt, es zurück (weil ich in der Regel nicht wollen, um zu sehen, whitespace-diffs bei der Prüfung was geändert hat).
Nicht sicher, ob dies wird Ihnen helfen, aber es ist eher harmlos, um zu versuchen und einfach rückgängig zu machen ist.
InformationsquelleAutor der Antwort Mike B
Inspiriert von kyl191 Antwort kam ich auf eine einfache Lösung für dieses problem:
hinzufügen neue-Zeile-Zeichen an das Ende der Datei
stash alle änderungen
hinzufügen neue-Zeile-Zeichen an das Ende der Datei wieder, so haben Sie ein newline-Zeichen in der aktuellen Datei als auch in Ihrer verstaut version
Bühne der entsprechenden Brocken (enthält nur Ihre newline)
pop Ihre änderungen vom stash
Nun sollten Sie in der Lage sein, auf der Bühne einzelne Zeilen per gui ohne diesen Fehler. Dies funktioniert, weil, nachdem Sie inszeniert nur das newline mit Teil, ist der Unterschied zu der version, die wiederhergestellt stash sieht schon ein wich-Datei endet mit einem Zeilenumbruch.
InformationsquelleAutor der Antwort xmoex
Hatte ich dieses problem nicht, da habe ich versucht, um einen Zeilenumbruch zu meinen patch in emacs, und es wird automatisch entfernt den Zeilenumbruch am Ende wieder, wenn ich es gespeichert.
Wenn Sie emacs hinzufügen eines Zeilenumbruchs am Ende des Patches, kann es auch sein, entfernen Sie es wieder. Ich öffnete einen anderen text-editor, um meinen newline und es funktionierte.
InformationsquelleAutor der Antwort stanri