「svn propedit svn:ignore」を実行すると私のsvnリポジトリのルートで、このエラーが表示されます:svn:Inconsistent line ending style
このスクリプトを実行しようとしました: http://blog.eflow.org/archives/1 dos2unixを実行し、すべてのファイルにeolスタイルを設定しますが、この問題は引き続き発生します。何が間違っているのでしょうか?
Subversionは、ファイルの内容については文句を言いませんが、svn:ignoreプロパティの内容については文句を言います。これを解決する1つの方法は、svn:ignore
でsvn propdel
プロパティを削除してから再作成することです。
svn:ignore
に多くの行がある場合に簡単な別の方法:
次のような一時ファイルでsvn:ignoreの値を取得します。
svn propget svn:ignore . > temp
temp
ファイルの行末を修正します次のように固定ファイルからsvn:ignoreの値を設定します。
svn propset svn:ignore -F temp .
私の場合、 svn:eol-style
プロパティがファイルに設定されました。また、「ファイルの一部の行はUNIXの行末文字(LF文字)で区切られ、その他の行はDOSスタイルの行末文字(CR + LF文字)で区切られています」。 ここ は、この問題の詳細な説明です。"Edit"->"EOL Conversion"->"Windows format"
in Notepad ++ この問題を解決しました。
私の場合、Windowsで編集していました。修正するには:
これでした。
ランニング
unix2dos [file]
cygwin経由でこれを修正してくれました。
私の問題は、Visual Studio.NETでこれを取得していたことです。それを修正するために、ファイルのすべてのテキストをメモ帳にコピーし、メモ帳から「xxx.aspx」または適切なファイル名に保存しました。次に、Visual Studioで、変更されたファイルをリロードするように求められました。行末を正規化するかどうかを尋ねるダイアログボックスが表示されます。問題が解決しました。
1つまたは2つのファイルでのみ発生する場合は、ファイルを開いて、コンテンツをコピーして新しいファイルに貼り付け(通常のテキストエディターを使用)、保存することもできます。その後、このファイルを追加できます(名前を変更するか移動して、正しい名前にします)。
このエラーが発生しましたが、最後のEnd-of-lie(不完全な最後の行)が欠落しているファイルになりました。
VIでファイルを開いて保存することでこれを修正し、解決しました。
viは悪い行を表示しなかったので、コメントセクションから行の終わりを削除し、(ENDまで)それらを再読み込みしてファイルを保存しました。それはその後働きました。
注:微調整する前に、revpropファイルをバックアップしてください。あなたがそれを芝にすれば、戻ることはありません
スクリプトは間違いなくすべてのテキストファイルに触れましたか(dos2unixがインストールされていると仮定してください。
私が考えることができる他のことは、すべてのファイルのMIMEタイプが正しく設定されていることを確認することです(何らかの形でチェックインされたテキストファイルとしてマークされたバイナリファイルはありませんか?).
つまり、マルチOS環境にいる場合、上記のブログ投稿で説明されているように、svn:eol-styleをCRLFに設定するのは良い考えではないと思いますifあなたはテキストファイルを共有および編集していますOS間。そのようにすると、Windowsでは問題ないように見えるファイルに、Unixでは制御文字が散らばっているからです。 EOLスタイルとして「ネイティブ」を使用することをお勧めします。
svn propset eol-style:native
a PHP emacsのファイルをしようとすると、同じエラーメッセージが表示されます。
次のようなものがありました。
str_replace('</li>^M<br>', '</li>', $text);
^M
は単一文字です(キャリッジリターンのキャレットエスケープ)。
修正は、その行を同等のものに変更することでした:
str_replace("</li>\r<br>", '</li>', $text);
単一引用符の代わりに二重引用符に注意してください!
Propeditの実行中にそれを取得した場合、SVNは、プロパティに使用しているテキストファイルの形式について不平を言っているようです。
どのOSを使用していますか?どのエディターをpropeditに使用していますか?それでもpropeditコマンドがエディターを起動する場合、このエディターを使用して、行末がそこにあるかどうかを確認します(viはこのIIRCを実行します)。
私の場合、ファイルのエンコーディングが「UCS-2 LE BOM」であるため、エラーが発生しました。 ANSIのファイルは大丈夫でした。すべてのファイルが正しいことを確認して、行末を確認しました。 (少なくとも私のSVNバージョンでは)ワイド文字ファイルは時々正しく認識されないようです。
最も簡単な解決策は、「svn:eol-style」プロパティを削除することです。
NetBeansでは、「 行末の表示と変更 」プラグインを使用できます。
インストールしてNetBeansを再起動すると、ステータスバーの右側に行末スタイルが表示されます。クリックして、ファイルの変換先を選択できます。
Windowsマシンでantタスクを介してjavadocを実行しているときにも同じ問題が発生しました。
Javadoc antタスクの下に<fixcrlf srcdir="${dir.javadoc}" eol="dos"/>
を追加して修正しました。
上記の「Marius Matioc」が示唆するように、簡単かつ迅速な修正1.Notepad ++でファイルを開く2.編集メニュー-> EOL変換-> Unix 3.保存4.編集メニュー-> EOL変換-> Windows 5.保存
Mac osxの場合、ファイルに対してこのエラーが発生し、dos2macを使用してからmac2unixを使用して変換する必要がありました。私がそれをやった後、それは行末文句の問題を修正しました。
Perl(1)を使用してWindowsをUNIXの行末に一貫して変換するには:
Perl -p -i.bak -e 's#\r\n#\n#go' my-file.txt
UNIXからWindowsに戻すには:
Perl -p -i.bak -e 's#\n#\r\n#go' my-file.txt
これは長い間私を悩ませ、SVNでマルチシステムチームで働いていました。この便利なアプリを作成しました。テキストファイルを検索するサブフォルダーでフォルダーをナビゲートし、すべてのUNIX EOLをDOS EOLに変換します。これはAIRアプリであり、WindowsとMacの両方で動作します。それが役に立てば幸い
フィリッポ
以前にうまく機能していたアーカイブでも同じ問題が発生しました。 notepad ++では、フォーマットをUTF-8に変換することを選択しました。これは私のために働いた。
この問題は、いくつかのテキストファイルにいくつかの変更を加えて、特定の行を分離するために\n
のみが追加され、通常\r\n
がすべての行を終了した後に発生しました。そのため、修正はNotepad ++を使用して([^\r])\n
を検索し、$1\r\n
に置き換えることでした。このようにして、行末文字はどこでも一貫していました。