2013-10-21 11 views
14

direkt bezogen werden: svn diff: file marked as binary type(Pro den Kommentar auf die Antwort)SVN Diff: Warum werden einige Dateien markiert als binäre

Warum sollte mein SVN-Client Marke einige Dateien als binäre?

Speziell .sql hat Prop svn:mime-type = application/octet-stream bei Verwendung von TortoiseSVN.

Ich habe einen Rechtsklick> Menü Tortoise Kontext> Einstellungen> Allgemein> Subversion Konfigurationsdatei, und nichts ist uncommented in [miscellany] oder [auto-props], so woher kommt die Entscheidung?

Von dem, was ich in den verwandten Posts sehen kann, kann ich es "beheben", indem Sie entweder die Eigenschaft auf betroffenen Dateien löschen, oder global das Verhalten auf neue Dateien über Config/Setting ändern, aber gibt es einen "einfachen" Weg beides für alle betroffenen Dateien zu tun?

Etwas verwandten:

+0

Jeez, und das Entfernen der "Mime-Typ" -Eigenschaft (vorausgesetzt, es ist standardmäßig auf "text/plain") zeigt eine Reihe von 'NUL' Zeichen Müll jedes zweite Zeichen. Ist mein Szenario einfach nicht anwendbar? Der TortoiseMerge Viewer vergleicht es gut ... – drzaus

+1

Ich habe das selbe genaue Problem ... '.sql' Dateien werden immer als' application/octet-stream' hochgeladen, wenn sie eindeutig 'text/plain' sind, ohne' auto-props' Set. Schade, niemand hat eine Antwort geliefert :( – brazilianldsjaguar

Antwort

14

Nun, fand ich das Problem in meinem Fall:

Ein Entwickler eine Vorlage .sql Datei gespeichert hatte er mit wurde für neue Skripte. Diese Datei wurde irgendwie mit UCS-2 (oder Unicode) Codierung gespeichert. Wann immer er Dateien hinzufügte, stellte TortoiseSVN fest, dass es eine binäre Datei war. Durch das Umschalten der Codierung auf UTF-8 werden die Vorlage und die davon abgeleiteten Dateien korrekt als text/plain hinzugefügt.

Zusätzliche Informationen (Edit)

fand ich, was könnte die Ursache gewesen sein. Beim Generieren einiger Skripts mit der GUI schreibt SQL Server Management Studio sie im Abfragefenster als Unicode. Wenn die Datei gespeichert wird, wird sie als Unicode gespeichert. Interessanterweise speichern Dateien, die über die File>New geöffnet werden, nicht so. Im Jahr 2007 wurde diesbezüglich ein Problem mit Microsoft angesprochen (gefunden here), das anscheinend nicht gelöst wurde.

+0

Nun, das wird ein Schmerz sein, aufzuspüren ... aber einen Versuch wert – drzaus

+0

Ich konnte es wegen 'Notepad ++', die eine schöne 'Codierung hat ... 'Menü, das Ihnen erlaubt, aktuelle und ändernde Kodierung zu sehen. – brazilianldsjaguar

+0

Yeah, Notepad ++ macht es leicht, pro Datei zu reparieren, aber wenn Sie viele Dateien haben, scheint es ein [Batch-Skript] (http://www.msfn.org/ Board/Thema/158633-how-to-check-Text-Datei-Encoding-from-Kommandozeile /) (oder [dies] (http://StackOverflow.com/Questions/18684793/Powershell-Batch-change-files (encoding-to-utf-8)) wird benötigt – drzaus

6

Hier ist ein schneller Weg, um dieses Problem zu beheben:

notepad %APPDATA%\Subversion\config 

Blättern Sie zu und Kommentar- diese Zeile:

enable-auto-props = yes 

Unter [auto-props] fügen Sie diese Zeile:

*.sql = svn:mime-type=text/plain 

Jetzt, wenn Sie .SQL-Dateien zu SVN hinzufügen, werden sie automatisch als Text (nicht Oktett-Stream) markiert.

BEARBEITEN: Entfernte unnötige Zeilenende-Dateiänderung.

+0

Interessant: Ich hatte das gleiche gemacht, nur der Unterschied war th Bei meinen Auto-Requisiten wurde stattdessen '* .sql = svn: mime-type = application/x-sql' gesetzt (nicht sicher warum). Wenn ich es zu deinem Vorschlag ändere, tauchte es so auf, wie ich es wollte. Aber ich würde darauf hinweisen, dass die 'svn: eol-style = native' nicht notwendig ist, und es ändert tatsächlich die Datei auf der Festplatte. – drzaus

+0

Ich würde dies die Antwort markieren, aber es scheint nicht für bestehende Dateien zu helfen. – drzaus

+2

Vorhandene Dateien müssen ausgecheckt, ihre Eigenschaften geändert und erneut eingecheckt werden. Aber das ist wirklich eine andere Frage. – user95209

Verwandte Themen