24

したがって、一部のファイルで行末に一貫性がないため、大きなSVNコミットを実行する準備が整いました。楽しい部分は、さまざまな深さの数十のフォルダーにまたがる数千のファイルを見ていることです。

職業はなんですか?

4

5 に答える 5

32

pre-commitフックがコミットされているデータを実際に変更できるとは思いません。コミットを禁止することはできますが、変換を行うことはできないと思います。

プロパティ'svn:eol-style' を 'native' に設定したいようです。これにより、改行がプラットフォームで使用されているものに自動的に変換されます ('CRLF'、'CR'、または 'LF' を使用して、 OS が必要とするもの)。

今後作成するすべてのファイルにこのプロパティが設定されるように、自動プロパティを使用できます (自動プロパティはクライアント側で処理されるため、ユーザーごとに設定する必要があります)。

于 2008-08-19T11:35:09.270 に答える
6

まず、すべてをきれいにすることです。Windows または Unix/Linux/Mac を使用していますか?

Unix/Linux/Mac を使用している場合は、次のようなことを試すことができます。

$ find . -type f -name "*.java" -exec dos2unix {}\;

それはあなたがdos2unixあなたの箱に持っている場合です。私の Mac にも、私たちが持っている 6 台の Linux マシンにもありません。この特定のパッケージをインストールしなかったようです。幸いなことに、見つけるのは簡単です。

バイナリ ファイルをマンジしたくないので、注意して使用してください。

すべてをクリーンアップしたら、svn:eol-styleプロパティをファイルに配置する必要があります。ネイティブに設定すると、マシンの正しい行末でファイルがチェックアウトされますが、Unix 行末形式で保存されます。他の 3 つのオプションは、Unix の場合は「LF」、Windows の場合は「CRLF」、Mac OS X 以前の Mac の場合は「CR」です。ほとんどの人は、「ネイティブ」が最も効果的だと感じています。Native の唯一の問題は、"LF" と "CRLF" は行末が混在しているファイルをチェックインしないことです。

これを行ったら、特定のファイルに行末を適用できるpre-commit フックを取得する必要があります。次に、開発者にautopropertiesを使用するように教えます。pre-commit フックは、プロパティがファイルに配置されない限り、コミットを防ぎます。開発者はコミットを 1 回か 2 回拒否され、独自に自動プロパティをセットアップします。

于 2012-03-15T20:20:24.920 に答える
2

ファイルの内容を解析し、S​​VNに書き込まれる前に、CRLF / LF / CR/etcの変更を実行するpre-commitフックを追加します。

于 2008-08-19T04:39:21.107 に答える
2

変換にはLinux のdos2unixのようなコマンドを使用することを検討してください。Linuxコマンドなので、スクリプトなどでバッチモードで使いやすいです。他のOSに相当するものがあるかどうかはわかりません。

于 2008-08-19T05:43:20.307 に答える