web-dev-qa-db-ja.com

「一貫性のないラインエンディングスタイル」の悪夢

2447個のファイルを一度にコミットすると、SVNエラーで完全に行き詰まりました。 Windows 7 64ビットでTortoiseSVN(最新バージョン)を使用しています。

実際には、Macで作成されたファイルとPCで作成されたファイルがあるため、TortoiseSVNは煩わしいInconsistent line ending styleエラーでコミットを停止しました。

最初に、この問題を解決するために、私は手動で netbeans で問題のあるファイルを開き、1つの空白スペースを追加し、それを削除してファイルを保存したので、Netbeansはすべての行末文字を適切に変換しました。 「一部のファイル」よりも有罪。

もちろんウェブで解決策を探しましたが、Windows環境に適したものは見つかりませんでした。

私は現在、壁に頭をぶつけています。

18
Epoc

Windows 7では、Notepad++ v5.6.8 EOLを変換する

編集-> EOL変換-> Windows/Unix/Mac

23
Tuan Dang

Notepad ++で、「表示->記号を表示->行末を表示」を選択します。

検索ボックス(Control-F)で正規表現検索モードを選択し、文字列を検索します。

[^\r]\n $

(翻訳:\ nの前の\ rなし)。

これにより、問題のある行が直接表示され、CR-LFのペアではなく、LFで終わる行が表示されます。

3
Dror Harari

だから私は @ assyliasの答え で自分の質問に答えます:

W:(\w)\n$をキャプチャして$1\r\nに置き換えることができます。ここで、$1は文字です。

この正規表現を使用してNetbeansで検索および置換することで、この作業を実行できます。

編集:私の問題は、カスタムスクリプトがこれらのファイルに誤ったEOL文字(\nではなく\r\n)を挿入したことでした)

3
Epoc

行末がすべて正しい場合、テキストファイルにUTF16バイトオーダーマーク(BOM)が含まれている可能性があります。

Notepad ++を使用して修正できます。エンコーディング-> UTF-8に変換。

2
jla

私がしたことは、編集したいリポジトリを参照しながらエクスプローラーを右クリックしてプロジェクトプロパティウィンドウを開き、選択しました:

TortoiseSVN > Properties > New... > EOL > As is (no specific EOL).

0
iggy12345

WindowsのVimまたはGVimでは、壊れたファイルはすべて^M各行の終わりに。

修正するには::s/\r//gは、壊れた余分な行末を削除します。

0
Fabian Streitel

上記の投稿に関連して、実際にはvimの正規表現は:1,$s/\r//g。 * n?xの別の方法は、sedを使用することです。

sed -i '-es/\ r // g'

0

さまざまな行末の問題を解決するには、SVNプロパティを次のように設定します。

svn propset svn:eol-styleネイティブmy_file

これにより、行末の問題が解決され、マージが容易になりますが、非難により、すべての行のチェンジャーとしてEOLスタイルを追加した人が表示され、作業ファイルが一時フォルダーにコピーされることになります差分を行うとき。

責任の問題は、これを行うことで後で解決できます。

svn blame my_file -x "--ignore-space-change --ignore-eol-style"

0
Curg