新規プロジェクトで作ったソースをSVN(Subversion)に管理します。初版のコミットを行った際に、一部のファイルが何かの問題でsvnサーバーに怒られました。
■エラーメッセージ
svn: xxx has inconsistent newlines
Inconsistent line ending style
■原因
エラーメッセージから推測すると、ファイルの中に、改行コードが混在しているではないかと思います。(基本的に英語のままですね。)
チームで作ったファイルが複数人に触れる可能性があり、Windowsの改行コード(CRLF)とLinuxの改行コード(LF)またはMacの改行コード(CR)が混在するケースが多く見られます。
■対策
対象ファイルをサクラエディタで開いて、Linuxの改行コード(LF)が多いなので、Ctrl+rで、置換前に【\r\n】(CRLF)を、置換後に【\n】(LF)を入力し、正規表現オプションをチェックオンして、すべて置換したら、なんと数ヶ所が置換されました。
置換されたファイルをもう一度コミットしてみたら、正常にサーバーにコミットしました♪♪♪
■最後
改行コードはCRLFなのか、LFなのか、それともCRなのか、コミットした時点で、どちらでも置換して構いません、どちらに統一すれば良いです。コミット後の改行コードはsvn:eol-styleの設定値に決められます。
例えば、今回の場合、svn:eol-styleの値がnative(ローカル環境はwindows)なので、LinuxのLFに統一して、コミットしましたが、コミット後にもう一度ファイルを確認したら、全ての改行コードはCRLF(ローカル環境:windows)に変換されました。
ちなみに、svn:eol-styleの値が下記の通りです。
・native:ローカル環境による
・CRLF:windows
・LF:Linux
・CR:Mac