2009-09-01 11 views
3

私たちはすべてCVSを使用しているさまざまなプラットフォーム上に多数のプログラマーを持っています。CVSの行末

は、我々は、開発者が、我々は2つのボックスのUbuntuとWindowsを持っている開発者が持っている8.04

Ubuntuのに利用している開発者を持っている(CVSNTを使用する)

のTortoiseCVSでWindowsを使用しています。

さまざまなプラットフォームの異なる開発者がさまざまなエディタを使用しています。

私たちは行末に大きな問題を抱えています。ファイル内の行末の数が連続的に増加していることを示します。

私が理解しているように、TortoiseCVSは、リポジトリ内でUNIXの行末を想定したcvsNTを使用しています。チェックアウトすると、UNIXの行末がWindowsの行末に変換され、コミットすると、Windowsの行末がUNIXの行末に変換されます。

ubuntuでは、リポジトリはUNIXの行末でなければならず、linuxはUNIXの行末も使用するため、cvsクライアントは変換を行いません。

これは、Windows上の全員がcvsNTベースのクライアントを使用していればうまく動作します。そして、誰もOSを切り替えることはできません。

悲しいことに、UbuntuとWindowsボックスを持つ人は、さまざまなオペレーティングシステムで切り替えたり、チェックアウトしたり、編集したり、コミットしたりすることがあります。

そして結果として、ウィンドウの行末を持つlinux CVSクライアントを使用してファイルをコミットします。

WindowsでcvsNTクライアントを使用してこれをチェックアウトすると、CRLFは2行で表示されるCRCRLFに変換されます。これが繰り返されるほど、新しい行がファイルに表示されます。

Linux上でCVSを実行する方法は、これが起こらないように、コミット時にUNIXの行末にWindowsの行末を変換する方法ですか?このようにして、CVSサーバはUNIXの行末のみを持ちます。

これを克服する方法の他の提案も歓迎します。

答えて

3

開発チームに行末の適用を要求するアプローチがあります。

linuxとunixの両方でdos2unixとunix2dosがうまくいきます。 Windows上のcywginは実装を提供します。

あなたは彼らがチェックする前に、人々が実行行末をクリーンアップするスクリプトを持つことができます。

私の主な提案は、他のバージョン管理システムに切り替えるか、魔法のラインフィードをオフにするのどちらかになります。マジックラインフィードの変換は私には提供されておらず、私の開発チームは常に標準のエンコーディングを持っていました。それは完全には機能しませんでしたが、かなりうまく機能しました。

また、継続的な統合環境で実行され、改行を増やす更新をスキャンする簡単なスクリプトを作成することもできます。変更を拒否したり、問題を解決したりすることができます。あなたが他の1つのOSからファイルをコピーした場合

グッドラック、 ヤコブ

+0

をアップ--lf私は見つけることが特に難しい特定のCVSNTオプションを発見したので、ここにある:http://evscm.org/manual/html/Substitution-modes.html。 – Leo

3

私はCVSで行末をめちゃくちゃにするために見てきた唯一の理由です。これを行うと、VCSを手動で回避することになります。それはもちろん、トラブルを求めています。だからこそこれをやめるか、自分自身の後で掃除することを忘れないでください。

私はCVSでこれを自動的にチェックしたり修正したりする方法がわかりません。あなたはSVNへの切り替えを考えましたか?これは、事前コミットのフックがこれを行う方法かもしれないです。 OTOH、あなたがSVNの土地にいたら、私的なブランチを素早く作成して破壊することをサポートしているので、VCSをもう邪魔することはありません。ブランチを作成し、あるプラットフォームでそのブランチの変更をチェックし、プラットフォームをそのブランチに切り替え、そこで作業を続けます。完了するまで繰り返し、ブランチをトランクにマージして削除します。 VCSの背後にあるマシンから別のマシンへのファイルの移動はありません。一つの事を心配することはあまりありません。

+0

多分gitに切り替えることを検討しますか?今はTortoiseGitもあります。 –

+0

私はgitについて知らない。私はCVSからSVNに切り替えましたが、実際には何度か。殆ど違いはありませんが、すべての機能が常に動作するようになります。私はgitへの切り替えは、多少、um、_different_ですか? – sbi

0

汎用コマンドオプション "--lf"を使用して、unix行の終了を強制することができます。例えば

: CVSは