1

従業員が SQL ファイル *.SQL ファイルを誤って、または誤ってテキストではなくバイナリとしてコミットするという問題が発生しています。Collabnet Subversion で末尾が *.SQL のファイルの形式をテキストに変更する簡単な方法はありますか。問題は、Subversion がテキスト ファイルとバイナリの間で DIFF を実行するときに、リビジョンを正しく表示しないことです。テキストとして再度コミットすると、テキストからテキストへの DIFF になります。バイナリ DIFF へのテキストは、変更がある場合にこれを以下に示します。

- No changes -
Diff Legend

–   Removed lines
+   Added lines
<   Changed lines
>   Changed lines

誤ったチェックインを変換または防止する簡単な方法はありますか? サブバージョンがファイル拡張子が *.sql であるかどうかを確認し、それをバイナリとしてコミットされるように変換/防止する方法はありますか? Subversion でテキストではなくバイナリとして保存される *.SQL で終わるすべてのファイルを特定する方法はありますか? これは、他のツールなしで Subversion 内または Tortoise で実行できますか?

4

1 に答える 1

3

Subversion には、ファイルを使用した Text vs Binary モードは実際にはありません。すべてのファイルは同じ形式で保存されます。

Subversion では、バイナリファイルが意味することは、Subversion がこのファイルをマージしたり、テキスト diff を実行したりしてはならないということです。

Subversion は、 というファイル プロパティを設定することによって、ファイルがテキスト ファイルかどうかを判断しますsvn:mime-type。これが設定されていない場合、ファイルはテキスト ファイルです。設定されている場合、ファイルはバイナリであると見なされます。(MIME タイプが で始まる場合でも、テキスト ファイルと見なされる可能性がありますが、text/100% 確実ではありません...)

*.sqlファイルがテキスト ファイルであることを理解するために、MIME タイプ ファイルを構成する必要があります。Subversion サーバーに Apache httpd を使用している場合はmime-types、通常は があるconfディレクトリにあるファイルを編集できますhttpd.conf

$HOME/.subversion/configUnix でファイルを設定するか、Windows で Subversion レジストリ エントリを編集することにより、ユーザーごとにこれを設定することもできます。

あなたがすることは、MIME タイプmime-types-fileファイルをセットアップし、そのファイルへのエントリをポイントすることです。

MIME タイプ ファイルは、最初の列がMIME タイプで、2 番目の列がサフィックスの単純な 2 列です。次のようなものを追加する必要があります。

text/sql              sql

これにより、 で終わるファイルはすべてテキスト ファイルであることが保証され*.sqlます。

入力したファイルについては、それらのプロパティを削除するだけです:

$ svn propdel svn:mime-type *.sql
$ svn commit -m"Making my SQL files text files"
于 2013-09-25T00:32:23.537 に答える