Gitextensions: Dialogfeld "Festschreiben" - Ausgewählte Leitungen nicht funktionieren

Erstellt am 28. Okt. 2011  ·  25Kommentare  ·  Quelle: gitextensions/gitextensions

Wenn ich eine Reihe von Zeilen in der Diff-Ansicht einer nicht bereitgestellten Datei auswähle und versuche, sie zu inszenieren, sagt GitExtension die meiste Zeit etwas wie "Fehler ..... Patch gilt nicht".

In Bezug darauf wäre es klarer, wenn die gesamte Linie ausgewählt worden wäre und nicht nur ein Teil davon.

bug

Hilfreichster Kommentar

Dies ist mir mit 2.48 im folgenden Szenario passiert:
Tools->Settings->Git config->Line Endings: Not set
Durch Festlegen der Zeilenenden auf eine der Optionen wurde das Problem behoben. Es sieht so aus, als ob not set in der Ansicht effective ein Konfigurationsproblem ist und meiner Meinung nach als solches angezeigt werden sollte.

Alle 25 Kommentare

gut für den üblichen Kopier- / Einfügevorgang funktioniert die Auswahl der gesamten Zeile nicht ...

Ich stimme jedoch zu, dass der Algorithmus neu erstellte Dateien unterstützen sollte. Ich bin mir nicht sicher, wie ich es machen soll ...

Nun, denke einfach. In der Situation des Festschreibens ist es sehr ungewöhnlich, Text aus einem Diff zu kopieren. Ich habe andere Lösungen gesehen, bei denen die gesamte Zeile kopiert wird, was in Ordnung ist. Ich würde mir die Kopierfunktion in diesem Fall als eine nette Funktion vorstellen. Ich weiß, dass Sie dieselbe Ansicht verwenden, wenn Sie eine Datei unterscheiden. Vielleicht würde hier eine separate Klasse (Delegat?) Ausführen, die nur die Funktionalität des Festschreibungsdokuments übernimmt.

Ich verstehe nicht, was du redest. Das Problem besteht schon lange und ist sehr ärgerlich. Ich erlebe es nicht, wenn Zeilen aus neu erstellten, sondern aus bereits verfolgten, sondern auch nur aus geänderten Dateien bereitgestellt werden. Traurig, aber ich habe immer noch nicht die Schritte zum Reproduzieren bekommen (((es erscheint unerwartet)

Ich hatte seit einiger Zeit keine Probleme mehr mit dieser Funktion. Sobald Sie es reproduzieren können, lassen Sie es uns bitte wissen, sonst ist eine Lösung fast unmöglich ...

Nun, es hat definitiv nicht in 2.25 funktioniert, in 2.26 scheint es irgendwie zu funktionieren, aber es gab keine offizielle Lösung dafür. Ich hatte ein Commit, das ich aufgrund dieses Verhaltens nicht aufteilen konnte, also musste ich es "wie es ist" festschreiben. Ich spreche von dem Verhalten in Gitx, das mittlerweile zu den besten Benutzeroberflächen gehört. es ist intuitiv und klar. Wenn Sie während des Festschreibens eine Zeile innerhalb des Diff auswählen, wird die gesamte Zeile ausgewählt und auf der rechten Seite wird genau eine Schaltfläche "Stage Line (s)" angezeigt, je nachdem, ob Sie eine oder mehrere Zeilen ausgewählt haben. Wenn Sie darauf klicken, werden die Zeilen inszeniert oder umgekehrt nicht inszeniert. würde gerne etwas ähnliches in gitextensions sehen.

Fürs Erste: Es scheint zu funktionieren, wenn Sie genau die gesamten Zeilen auswählen, die Sie (un) inszenieren möchten, und nicht mehr oder weniger Zeichen. Vielleicht können wir das Problem schließen und erneut öffnen, wenn mehr Details darüber bekannt sind, was passiert?

"Im Moment: Es scheint zu funktionieren, wenn Sie genau die gesamten Zeilen auswählen, die Sie (un) inszenieren möchten, und nicht mehr oder weniger einen Charakter. Vielleicht können wir das Problem schließen und erneut öffnen, wenn mehr Details darüber klar sind, was passiert?"

Ich kann das nicht gutheißen. Erst gestern habe ich den Fehler bekommen und die Auswahl ganzer Zeilen hat nicht geholfen. Ich erinnere mich, dass dies in einigen alten Versionen manchmal geholfen hat, aber jetzt nicht. (Wahrscheinlich nach einer Version, bei der die Möglichkeit zum Zurücksetzen von Zeilen vor dem Staging entfernt wurde.)

Wie ich bereits sagte: Wenn Sie einen Fall haben, den Sie reproduzieren können, speichern Sie diesen Status, damit andere (oder Sie) versuchen können, das Problem zu beheben !! Ohne einen reproduzierbaren Testfall kann dies niemals behoben werden!

Ich weiß nicht, ob ich besser dran bin, eine neue Ausgabe zu eröffnen oder nicht, aber ich beginne mit einem Kommentar hier. Ich werde gerne eine neue Ausgabe eröffnen, wenn das besser ist.

Ich habe festgestellt, dass der obige Fehler angezeigt wird, wenn ich versuche, Zeilen zu inszenieren, während "Gesamte Datei anzeigen" aktiviert ist. Wenn ich es wieder ausschalte, funktioniert es gut. Das passiert gerade konsequent für mich. Ich habe Version 2.26 verwendet, aber ich habe gerade ein Upgrade auf 2.28 durchgeführt und es passiert immer noch.

Referenzen # 636

Ich hatte gestern das gleiche Problem (nicht weniger beim GitExtensions-Projekt). Einige Zeilen in einer Datei könnten inszeniert werden, andere nicht. Ich werde versuchen, es heute Abend zu reproduzieren.

Ich reproduziere diesen Fehler für die SLN-Datei in UTF8-Codierung mit Stückliste. Das Problem tritt nur auf, wenn die Diff-Codierung im Kombinationsfeld UTF8 ist. Wenn ich zur Standardcodierung wechsle, funktioniert alles richtig.

Ich denke, Hauptproblem, weil Stücklisten Zeilennummern ändern

Ich habe gerade ein ähnliches Problem in Git Extensions v2.28 beobachtet. Bei einer Datei, die mit Unix-Zeilenenden erstellt und mit Git Extensions hinzugefügt wurde, erhielt ich Warnungen, dass die Zeilenenden in meinem Arbeitsbereich nicht geändert, sondern durch Windows-Zeilenenden ersetzt werden, wenn ich die Dateien erneut auschecke. Im Anschluss daran habe ich zwei Änderungen an der Datei vorgenommen. Der Versuch, nur das zweite Stück zu inszenieren, schlägt fehl und behauptet, der Patch sei beschädigt. Die Inszenierung des ersten Teils scheint gut zu funktionieren. Das Befehlszeilen-Git-Tool hat trotz der Zeilenenden kein Problem damit, nur den zweiten Teil bereitzustellen. Dies scheint also ein Fehler in Git Extensions zu sein.

Das Löschen der Datei und das Ausführen eines "Git-Checkout", um eine Version mit den richtigen Zeilenenden zu erhalten, behebt das Problem. Jetzt kann ich Git Extensions verwenden, um den zweiten Teil des Patches isoliert zu inszenieren, ohne Fehler zu verursachen.

Es gab jedoch einen ähnlichen fehlerhaften Patch-Fehler, als ich versuchte, beide Hunks nacheinander zu entfernen - es gefiel mir nicht, wenn keine Hunks mehr im Staging-Bereich vorhanden waren.

Das Problem scheint entweder auf die Codierung einer Datei oder auf die oben erwähnten Zeilenenden zurückzuführen zu sein. Es ist mir gerade heute in einem ac # -Projekt passiert, das einen Kommentar mit deutschen Zeichenfolgen (Latin1, Windows-1251?) Enthält, und in einer Zeile hat es (aus welchem ​​Grund auch immer) die Dateicodierung geändert. Die Datei wurde von VS2010 neu formatiert. Ab genau dieser Zeile kann nicht jede folgende Zeile über GE (2.40, aber auch in früheren Versionen) bereitgestellt werden. Das Staging in Core-Git funktioniert einwandfrei.

Ich habe gerade von 2.31 auf 2.40 aktualisiert und diese Funktion scheint jetzt völlig kaputt zu sein. Ich kann scheinbar keine Zeilen in Dateien inszenieren. Ich habe es sowohl mit ANSI-codierten C ++ - Dateien als auch mit UTF-8-codierten C # -Dateien versucht, die meistens in 2.31 verwendet wurden (um Probleme mit der letzten Zeile der Datei zu bekommen).

"... Patch fehlgeschlagen ... Patch gilt nicht ..."

+1

a670f1501103fbe0d214ab76811a33353cab87af Fehler behoben, der in 2.40 eingeführt wurde

fd96875589f22851a691fa1f0f989816a77458aa behebt das Stücklistenproblem

Vielen Dank Janusz. Ich habe GitExtensions neu erstellt, die Dateien in den Programmdateien ersetzt und es funktioniert großartig.

Ich habe festgestellt, dass GitExtensions diese Änderung nicht durchführen kann, wenn eine Datei am Ende eine leere Zeile enthält und Sie diese entfernen. Dies war jedoch der vorhandene Fehler, den ich in meinem vorherigen Kommentar erwähnt habe.

Dies war eine schnelle Lösung. Als ich es getestet habe, habe ich einen anderen Fall gefunden, bei dem die Phase nicht funktioniert. Ich werde versuchen, den Algorithmus auf einfachere Weise umzuschreiben.

Wenn jemand diesen Fehler mit 2.41 oder höher reproduziert, öffnen Sie ihn bitte erneut.

Ich habe derzeit dieses Problem mit 2.43. Ich kann nirgendwo in einer Datei "Ausgewählte Zeilen inszenieren", wenn "Leerzeichenänderungen ignorieren" aktiviert ist. (Wenn diese Option deaktiviert ist, werden bei vielen Dateien, die ich festschreiben muss, leider alle Zeilen in der Datei entfernt und dann alle Zeilen erneut hinzugefügt. Ich bin mir nicht sicher, warum; es könnte sich möglicherweise um Tabulatoren gegen Leerzeichen handeln, aber das wäre der Fall Seien Sie eigenartig, da eine dieser Dateien eine .csproj-Datei ist, die normalerweise nicht von Hand bearbeitet wird und daher nicht geändert werden sollte.)

Diese Funktion funktioniert nicht mit ignorierten Leerzeichen. Es sieht eher nach einem EOL-Problem aus.

Dies ist mir mit 2.48 im folgenden Szenario passiert:
Tools->Settings->Git config->Line Endings: Not set
Durch Festlegen der Zeilenenden auf eine der Optionen wurde das Problem behoben. Es sieht so aus, als ob not set in der Ansicht effective ein Konfigurationsproblem ist und meiner Meinung nach als solches angezeigt werden sollte.

Die spezifische Variante davon, aber wie zuvor von grantbowering berichtet, tritt für mich auf, wenn "Führende und nachfolgende Whitespace-Änderungen ignorieren" oder "Alle Whitespace-Änderungen ignorieren" mit GitExtensions 2.51.03, Windows 10 64-Bit aktiviert ist:

  1. Ändern Sie eine Datei.
  2. Befehle> Festschreiben
  3. Bewegen Sie die Maus über das Diff-Fenster des Festschreibungsdialogs.
  4. Aktivieren Sie in der oberen angezeigten Symbolleiste die Option "Führende und nachfolgende Leerzeichenänderungen ignorieren" und / oder "Alle Leerzeichenänderungen ignorieren".
  5. Klicken Sie im Diff auf eine geänderte Zeile.
  6. Drücken Sie die Taste "S", um die ausgewählte Zeile zu inszenieren: error: patch failed: ... error: ... patch does not apply .

Siehe # 3493.

Am Fr, 29. Juni 2018, 20:03 Uhr schrieb per1234 [email protected] :

Die spezifische Variante davon ist aber wie schon berichtet
https://github.com/gitextensions/gitextensions/issues/684#issuecomment-12332133 von
Grantbowering tritt bei mir auf, wenn "führende und nachfolgende Leerzeichen ignorieren
Änderungen "oder" Alle Leerzeichenänderungen ignorieren "ist mit GitExtensions aktiviert
2.51.03, Windows 10 64-Bit:

  1. Ändern Sie eine Datei.
  2. Befehle> Festschreiben
  3. Bewegen Sie die Maus über das Diff-Fenster des Festschreibungsdialogs.
  4. Aktivieren Sie in der oberen angezeigten Symbolleiste die Option "Führende und ignorieren"
    nachfolgende Whitespace-Änderungen "und / oder" Alle Whitespace-Änderungen ignorieren ".
  5. Klicken Sie im Diff auf eine geänderte Zeile.
  6. Drücken Sie die Taste "S", um die ausgewählte Zeile zu inszenieren: Fehler: Patch fehlgeschlagen:
    ... Fehler: ... Patch gilt nicht.

- -
Sie erhalten dies, weil Sie diesen Thread abonniert haben.
Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/gitextensions/gitextensions/issues/684#issuecomment-401501721 ,
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/ADdhsSZcDBHHn25q6HhRfvdkTdM5pjbsks5uBsA3gaJpZM4AFHeS
.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen