it-swarm.com.de

Alptraum "inkonsistenter Zeilenabschluss"

Beim Festschreiben von 2447-Dateien auf einmal stecke ich mit einem SVN-Fehler fest. Ich verwende TortoiseSVN (neueste Version) unter Windows 7 mit 64 Bit.

Tatsache ist, dass einige Dateien auf dem Mac und andere auf dem PC erstellt wurden, weshalb TortoiseSVN das Festschreiben mit einem ärgerlichen Inconsistent line ending style-Fehler stoppte.

Um dieses Problem zu lösen, habe ich anfangs die inkribierte Datei manuell in netbeans geöffnet, ein Leerzeichen hinzugefügt, entfernt und die Datei gespeichert, sodass Netbeans alle Zeilenendezeichen ordnungsgemäß konvertiert hat, aber es scheint mehr als "einige" zu geben Dateien "belastet.

Natürlich habe ich im Internet nach einer Lösung gesucht, aber ich habe keine für Windows geeignete Umgebung gefunden.

Ich bin momentan mit dem Kopf gegen die Wände gestoßen.

17
Epoc

Unter Windows 7 können Sie Notepad++ v5.6.8 verwenden, um EOL zu konvertieren

Bearbeiten -> EOL-Konvertierung -> Windows/Unix/Mac

23
Tuan Dang

Wählen Sie in Notepad ++ "Ansicht -> Symbol anzeigen -> Zeilenende anzeigen".

Wählen Sie im Suchfeld (Strg-F) den Suchmodus für reguläre Ausdrücke aus und suchen Sie nach der Zeichenfolge:

[^\r]\n $

(Übersetzung:\n ohne a\r davor).

Dadurch gelangen Sie direkt zu den Problemzeilen, in denen die Zeile mit LF endet, und nicht mit dem Paar CR-LF

3
Dror Harari

Also beantworte ich meine eigene Frage mit der Antwort von @ assylias :

Sie können das w: (\w)\n$ erfassen und durch $1\r\n ersetzen, wobei $1 das Zeichen ist.

Suchen und Ersetzen mit Netbeans mit dieser Regex erledigt die Aufgabe.

Bearbeiten: Mein Problem war, dass ein benutzerdefiniertes Skript falsche EOL-Zeichen (\n anstelle von \r\n) in diese Dateien eingefügt hat.)

3
Epoc

Wenn Ihre Zeilenenden alle in Ordnung sind, kann es sein, dass Ihre Textdatei eine UTF16 Byte Order Mark (BOM) enthält.

Sie können das mit Notepad ++ beheben. Kodierung -> In UTF-8 konvertieren.

2
jla

Ich habe das Fenster mit den Projekteigenschaften geöffnet, indem ich mit der rechten Maustaste auf den Datei-Explorer geklickt habe, während ich das zu bearbeitende Repo durchsucht habe, und dann Folgendes ausgewählt:

TortoiseSVN > Properties > New... > EOL > As is (no specific EOL).

0
iggy12345

In Vim oder GVim unter Windows wurden in den defekten Dateien am Ende jeder Zeile ^M angezeigt.

Um es zu beheben: :s/\r//g, um die gebrochenen zusätzlichen Zeilenenden zu entfernen.

0
Fabian Streitel

In Bezug auf den Beitrag oben sollte der vim regexp :1,$s/\r//g. Sein. Eine andere Möglichkeit für * n? X ist die Verwendung von sed:

sed -i '-es/\ r // g' 

0

Um das Problem mit unterschiedlichen Zeilenenden zu lösen, können Sie die SVN-Eigenschaft wie folgt festlegen:

svn propset svn: natives my_file von eol-Stil

Obwohl dadurch die Probleme der Zeilenenden gelöst und das Zusammenführen vereinfacht wird, bedeutet dies, dass die Person, die den EOL-Stil als Wechsler aller Zeilen hinzufügt, durch schuld angezeigt wird. Außerdem werden Ihre Arbeitsdateien in den temporären Ordner kopiert wenn ein diff.

Das Schuldproblem kann anschließend gelöst werden:

svn blame my_file -x "--ignore-space-change --ignore-eol-style"

0
Curg