違い: 1. CVS のバージョン番号はファイルの自動増加シリアル番号に基づいていますが、SVN はファイルだけでなく、ファイルの自動増加シリアル番号にも基づいています。ディレクトリ; 2. CVS は RCS ファイルに基づいていますが、SVN はリレーショナル データベースまたは一連のバイナリ ファイルに基づいています; 3. CVS は任意のロールバックを許可しますが、SVN は送信後のロールバックを許可しません; 4. SVN は「ゼロまたは1 つのトランザクション原則ですが、CVS はサポートしません。 5. CVS はローカル ファイル名の変更送信をサポートしませんが、SVN はサポートします。 6. CVS には 4 つの権限がありますが、SVN には 3 つの権限しかありません。
このチュートリアルの動作環境: Windows 7 システム、Subversion バージョン 1.14、Dell G3 コンピューター。
CVS (同時バージョン システム):
は、ソース コードを開発するための同時バージョン システムです。 Linux、Unix、Windows NT/2000/XP など、さまざまなプラットフォームで利用できます。 CVS は無料のオープンソースであり、プロジェクトのバージョン管理を提供します。
機能紹介:
1. コードを一元管理し、すべてのコード ファイルの変更履歴を保存します。コードの一元的かつ統合管理により、新しく追加または削除されたファイルを簡単に表示し、コード変更のすべての痕跡を追跡できます。以前の履歴バージョンに自由に復元できます。また、バージョンの違いによって発生する深刻なバグを回避します。
2. 完全な競合解決ソリューションにより、他のファイル比較ツールを使用したり、手動で貼り付けたりコピーしたりする必要がなく、ファイルの競合の問題を簡単に解決できます。
3. コードの権限の管理。ユーザーごとに異なる権限を設定できます。アクセスユーザーのパスワード、読み取り専用、変更などの権限を設定でき、CVS ROOT ディレクトリ内のスクリプトを通じて、対応する機能拡張のためのインターフェイスが提供され、きめ細かい権限制御を完了できるだけでなく、より詳細な権限制御も完了できます。パーソナライズされた機能。
4. 便利なバージョンリリースとブランチ機能をサポートします。
SVN (Subversion):
(SVN) 集中管理ワークフロー:
集中コード管理の中核はサーバーです。すべての開発者は新しい一日を始めます。これは、サーバーからコードを取得して開発し、最後に競合を解決して送信する前に行う必要があります。すべてのバージョン情報はサーバー上に配置されます。サーバーから切断されると、開発者は基本的に作業できなくなります。 管理プロセスは次のとおりです:svn と cvs の違い
SVN | ||
ファイルベースの自動増加シリアル番号。 | ファイルだけでなくディレクトリなどもグローバルに自己増加するシリアル番号に基づきます。 | |
CVS は、RCS ファイルに基づくバージョン管理システムです。すべての CVS ファイルは、いくつかの追加情報を備えた通常のファイルです。これらのファイルは、ローカル ファイル ツリー構造を繰り返すだけです。したがって、データ損失を心配する必要はなく、必要に応じて RCS ファイルを手動で変更できます。 | SVN は、リレーショナル データベース (BerkleyDB) または一連のバイナリ ファイル (FS_FS) に基づいています。一方で、これにより多くの問題 (共有ファイルの並列読み取りと書き込みなど) が解決され、多くの新機能 (ランタイムのトランザクション機能など) が追加されます。その一方で、データストレージは不透明になるか、あまりユーザーフレンドリーではなくなります。そのため、ウェアハウス (データベース) にとってソフトウェア ツールが非常に重要になっています。 | |
ネットワーク上で送信する情報はほとんどなく、より多くのオフライン モード機能をサポートします。しかし、それにはコストがかかります。速度の代償として、巨大なストレージ (すべての作業ファイルの完全バックアップ) が必要になります。 | メタデータ | ファイルの保存のみが許可されます|
ファイル タイプ | は、もともとテキスト ファイルの保存用に設計されていました。したがって、他のファイル タイプ (バイナリ、Unicode) はほとんどサポートされていないため、必要に応じて追加情報を提供し、クライアントとサーバーの両方を調整する必要があります。 | |
ロールバック | CVS コミットされたバージョンを任意にロールバックできますが、時間がかかります (すべてのファイルを個別に処理する必要があります)。 | |
トランザクション | CVS の「ゼロまたは 1」トランザクション原則はまったく実装されていません。複数のファイルをチェックインする (サーバーに追加する) 場合、一部のファイルは完了するが、他のファイルは完了しない可能性があります。経験則として、これらを手動で修正し、残りのファイル (すべてのファイルではない) を再度チェックインします。これらのファイルは 2 段階でチェックインされます。しかし、これまでのところ、この機能の欠如によってデータ ウェアハウスに損害が発生した例はありません。 | |
アーキテクチャ、コード、スケーラビリティ | CVS は古いシステム。当初、CVS は RCS を使用した単なるスクリプト ファイルでした。その後、これらのスクリプトは 1 つのアプリケーションにグループ化されましたが、内部構造にはまだ改善が必要でした。今日に至るまで、CVS を最初から書き直そうとする人がいますが、失敗しています。以前、統合を改善するためにクライアント コードを書き直そうとしましたが、失敗しました。現在、CVS が機能の点でそれほど進歩できるとは考えていません。 | |
名前の変更と削除の操作 | ローカル ファイルの名前変更の送信はサポートされていません; | |
ファイルの名前変更と送信をサポートします。システムは古いファイルを削除して新しいファイルを作成するように求めるプロンプトを表示します | ローカル ファイルの削除とライブラリ内のファイルの送信も削除されます。 | |
ユーザー アクセス権限 | 権限には、読み取り、書き込み、作成、なしの 4 つがあります。フォルダーを削除します (管理者はサーバーにアクセスして、対応するフォルダーを残酷に削除することしかできません。現時点ではこの方法しか知りません...) | 権限は読み取り、書き込み、なしの 3 つだけです。 Together |
ブランチとベースラインの作成 | CVS ブランチを作成するときは、すべてのブランチ ファイルを操作する必要があります。そのため、ブランチを確立するコスト (主にブランチの確立に必要な時間、または消費されるコンピューティング リソース) は、ブランチに参加するファイルの数に比例します。プロジェクトが大きくなるほど、バージョン ライブラリも大きくなり、ファイルの場合、ブランチを確立するコストが高くなります。ベースライン (タグ) の確立も同様です。 | SVN のブランチとベースラインは、「コピー」を実行することによって確立されます。バージョン管理ツールが導入される前に、いわゆる「ブランチ」および「ベースライン」管理をどのように実行したかを思い出してください。答えは明らかに「コピー」です。「コピー」または「バックアップ」を通じてベースラインを確立します。同様に、同時に開発する複数の開発者をサポートするために、開発者ごとに「コピー」を作成します。 |
(学習ビデオ共有: 基本プログラミング ビデオ)
以上がsvnとcvsの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。