2

git に移動したところ、ここで詳しく説明されている問題が発生しました

デフォルトで core.autocrlf=true を設定しており、膨大な量の Java I/O を処理しているため、同じものに対してさまざまなテスト ケースがあることを理解したいと思いました。Win の開発者によって開発された単体テスト ケースが Linux の開発者に対して正しく実行され、その逆も同様であることを確認するにはどうすればよいでしょうか。

たとえば。単体テスト ケースは、テキスト ファイル (*.ext) を読み取り、期待どおりのバイト長と実際のバイト長を比較し、次に win で比較します。core.autocrlf=true を指定した git pull により、テキスト ファイルが取り込まれ、すべての LF が CRLF に変換されます。たとえば、テスト ケースがバイト カウントに関心があるため、勝つとバイト カウントが多くなるとします。コミット時に CRLF wud は LF に変換されます。しかし、テスト wud は Linux の dev で失敗します。

これは .gitattributes で管理できますか?

.gitattributes -> *.ext テキスト

これにより、コミット時にファイルが正規化され、上記の問題が引き続き発生しますか? ポインタを歓迎します、事前に感謝します

4

1 に答える 1

1

前に言ったように、決してcore.autocrlftrue に設定せず、常に false に設定してください。

これは、意図しない結果をもたらすグローバルな設定です。

eol の観点から管理したい特定のタイプのドキュメントがある場合は、.gitattributesファイルとcore.eolディレクティブのみを使用してください。

あなたの場合、gitattributes変換したいものをきめ細かく制御するための良い解決策です。

ただし、一般的な考え方は、絶対に必要になるまで何も変換しないことです。
これらのテキスト ファイル (テストに使用される) を正しい eol (基礎となる OS が何であれ) で生成または保存できれば、テスト ケースは一貫したものになります。

于 2013-09-11T05:32:44.160 に答える