デスクトップがクラッシュしたときに、EclipseワークスペースをLinuxからWindowsに移動する必要がありました。1週間後、私はそれをLinuxにコピーして戻し、コードを作成し、CVSにコミットします。そして残念ながら、Windowsの改行は多くのファイルを汚染しているため、CVS diffは、1行か2行を変更した場合でも、ファイル全体をダンプします。
スクリプトを作成することはできますが、Eclipseプロジェクトファイルが台無しになるのではないかと思います。
ファイルのエンコーディングをUnixに設定
UTF-8
し、新しいファイルの行末をUnixに設定して、テキストファイルがWindows OSに固有ではない形式で保存され、異種の開発者デスクトップ間で最も簡単に共有されるようにします。
- ワークスペース設定に移動します(一般:ワークスペース)
- テキストファイルのエンコーディングをに変更します
UTF-8
- 新しいテキストファイルの行区切り文字を[その他]に変更し、選択リストから[Unix]を選択します
- 注:既存のファイルの行末を変換するには、Eclipseでファイルを開き、[
File : Convert Line Delimiters to : Unix
ヒント:パッケージエクスプローラーで[次に]を選択し、メニューエントリに移動すると、既存のファイルを簡単に変換できます。File : Convert Line Delimiters to : Unix
便利なbashユーティリティがあります---dos2unix
これはDOS/MACからUNIXへのテキストファイル形式のコンバーターであり、ディストリビューションにまだインストールされていない場合は、パッケージマネージャーを介して簡単にインストールできるはずです。 dos2unixのマニュアルページ
Eclipseソリューションと別の回答で言及されているツールに加えて、 flipを検討してください。通常の改行とWindowsの改行の間でどちらの方向にも「反転」でき、ファイルのタイムスタンプやその他の統計を保持するなどの優れた機能を実行します。
このように使用して、問題を解決できます。
find . -type f -not -path './.git/*' -exec flip -u {} \;
(gitを使用する場合に備えて、.gitディレクトリを無視する句を挿入しましたが、flipはデフォルトでバイナリファイルを無視するため、これは必要ない場合があります。)
あなたはそれを試してみることができます。問題は、新しい行が与えられると、Windowsが改行と改行を挿入することです。Unixシステムは改行を挿入するだけです。したがって、余分なキャリッジリターン文字が、Eclipseが改行を台無しにする理由である可能性があります。
プロジェクトから1つまたは2つのファイルを取得し、それらを変換します。Notepad++を使用してこれを行うことができます。ファイルを開き、[フォーマット]-> [Unixに変換]に移動します(Windowsを使用している場合)。
Linuxでは、コマンドラインでこれを試してください。
sed 's/$'"/`echo \\\r`/" yourfile.java > output.java
すべての子ディレクトリのCVS/*ファイルからキャリッジリターン(\r
)を再帰的に削除するには、UNIXシェルで次のコマンドを実行します。
find ./ -wholename "\*CVS/[RE]\*" -exec dos2unix -q -o {} \;