3

多くの xml ファイルがあり、それらのほとんどは UTF-16 でエンコードされています。

SmartSVN を使用して Subversion にファイルを追加すると、常に svn:mime-type=application/octet-stream が取得されます。

これにより、SmartSVN のビジュアル DIFF ツールがこれらのファイルに対して機能しなくなり、非常に煩わしくなります。

SVN FAQ から: http://subversion.apache.org/faq.html#binary-files

Subversion に初めてファイルを追加またはインポートすると、そのファイルがバイナリ ファイルであるかどうかが調べられます。現在、Subversion はファイルの最初の 1024 バイトだけを調べます。いずれかのバイトがゼロの場合、または 15% 以上が ASCII 印刷文字でない場合、Subversion はファイルをバイナリと呼びます。ただし、このヒューリスティックは将来的に改善される可能性があります。

UTF-16 ファイルが使用されている場合、ほとんどの場合 50% までのゼロが含まれているため、これは非常にばかげています。

また、SVN クライアントから自動的にプロパティを設定する方法があることも読みました: http://www.mediawiki.org/wiki/Subversion/auto-props

これにより、自動検出されたバイナリ MIME タイプを削除することもできますか?

これを何らかの方法でリポジトリ/svnサーバーに設定することは可能ですか?すべてのワークステーションに設定する必要はありませんか?

4

2 に答える 2

3
  1. UTF-16 XML のみの MIME タイプを再定義することはできません (ただし、すべての XML に対しては再定義できます)。
  2. サーバーまたはリポジトリごとに mim-type を再定義する良い方法がわかりません

上記の点に驚かない場合は、グローバルに (クライアントのホストごとに) クライアントの subversion 構成ファイルで MIME タイプを再定義できます:%AppData%\Subversion\configセクション[auto-props]。何かのようなもの

*.xml = svn:mime-type=text/xml
于 2012-11-30T10:46:26.343 に答える
2

svn:mime-typeはSVNプロパティなので、変更できるはずです。あるマシンに設定してコミットすると、更新後に他のマシンに反映されるはずです。

ただし、「バイナリ ファイル パラダイム」は SVN の内部動作の強力な部分であり、特に現在変更できないコミット アルゴリズムです。差分は実際にはバイナリで保持され、リポジトリ内のすべてのファイルに追加されます。うーん、これは私がSVN 1.6のドキュメントから覚えていることです。したがって、「自動 MIME タイプ」アプリケーションを変更できるかどうかはわかりません。

フック (おそらくポストコミット?) を使用して、いくつかの基準でコミットされているファイルを検出し、コミット後にその (それらの) ファイルのプロパティの変更を適用できます。もちろん、フックサブシステムを利用して、もちろんコーディングを行うことでこれを行うことができます。(あなたが使用しているSVNのバージョンがわからないので、最新の安定バージョンのリンクを提供しました-1.7ブック)

ああ、SVN ドキュメントから少しコピー/貼り付けします。

コンテキスト マージが可能かどうかを判断するために、Subversion は svn:mime-type プロパティを調べます。ファイルに svn:mime-type プロパティがない場合、または MIME タイプがテキスト (例: text/*) の場合、Subversion はそれがテキストであると想定します。それ以外の場合、Subversion はファイルがバイナリであると想定します。Subversion はまた、svn import および svn add コマンドでバイナリ検出アルゴリズムを実行することにより、ユーザーを支援します。これらのコマンドは適切な推測を行い、(おそらく) 追加するファイルにバイナリ svn:mime-type プロパティを設定します。(Subversion が間違っていると判断した場合、ユーザーはいつでもプロパティを削除または手動で編集できます。)

したがって、簡単な答えは、SVNにこれを自動検出させることはできないかもしれませんが、そうするようにプログラムすることはできます。:)

これが役に立ったことを願っています。

于 2012-11-30T09:39:11.253 に答える