GitとCVSバージョン管理システムの違いは何ですか?
私は10年以上CVSを喜んで使用していますが、今ではGitの方がはるかに優れていると言われています。誰かが2つの違いが何であり、なぜ一方が他方よりも優れているのか説明してください。
Gitは [〜#〜] dvcs [〜#〜] であり、CVSは一元化されています。簡単に説明すると、複数の可能なリポジトリのanyに接続していないときにバージョン管理のすべての利点が得られ、さらに操作が高速になります。
GitのWebサイト はおそらくこれを最もよく説明しています。
私のペット機能は、オフライン時にコミットを実行できることです。そして、速度、押したり引いたりする以外のすべてのことが起こる非常に燃える速度。 (また、これらの操作は非破壊的であるため、中央レポが遅れている場合、コーヒーをつかむときにプッシュ/プルすることができます。)もう1つの良い点は、バッテリーが付属していることです:組み込みのgitk
十分な履歴ビューア; git gui
は、十分なコミットツールです。出力の色付けあり、git add -i
、git add -p
、git rebase -i
は十分なインタラクティブなインターフェースです。 git daemon
およびgit instaweb
は、中央レポジトリを使用したくない/使用できない場合に、アドホックコラボレーションに十分です。
私は10年以上もcvsのユーザーとして最も満足していますが、gitも好きですが、やがてそれを好むようになりますが、現在取り組んでいるプロジェクトのほとんどはcvsまたはsvnを使用しており、私が仕事をしている官僚制を手に入れるには、ファイアウォールにgit-holeをパンチできるようにします。
Cvsを他の方法よりも優れたものにするいくつかのことはcvspsであり、もう1つはAndrew Mortonのパッチスクリプトまたはキルトです。 Cvspsを使用すると、キルト中に複数のコミットファイルを単一のパッチに再構成(およびCVSから「変更セット」を抽出)することができます。また、Andrew Mortonのパッチスクリプトを使用すると、コミットする前にそれらを分離したまま、同時に複数の物に取り組みます。 CVSには癖がありますが、私はそれらのほとんどに慣れています。
「x年以上にわたってCVSを喜んで使用している」というのは興味深いアイデアです。
私はあなたがそれのすべての癖に慣れているか、あまりブランチとマージをしないと推測しています。より悪い可能性があります。
あなたの組織の人々はcvsの制限に慣れており、あなたの仕事の慣習はそれに応じて適応しています。
たとえば、一度に1つのパッケージで複数の開発者が作業することはなく、緊急時などにのみ分岐を使用します。
基本原則は、何かが難しいほど、それをやる人が減ることです。