Subversionタイプのチェックアウトを実行できる分散ソース管理システムを探しています。私はいくつかの異なるプロジェクトを持っており、それらを1つのリポジトリに結合したいと思います。Subversionと同じように、各プロジェクトが独自のリポジトリである必要はありませんが、作業ディレクトリを使用できるようにしたいと思います。Mercurialを見ると、変更を追跡するためにファイルをリポジトリに保存する必要があるため、これは不可能です。作業ディレクトリを使用できる分散ソース管理システムを誰かが知っているなら、それをいただければ幸いです。
5 に答える
.svn
各チェックアウトが独自のリポジトリであるという事実は、どこにでもあるディレクトリよりも不便であってはなりません。
- CVSはメタデータ(ほんの少量)を
CVS
ディレクトリに保存し、どこにでも散らばっています - Subversionは、メタデータ(すべてのファイルの完全なベースコピーを含む)を
.svn
ディレクトリに格納し、至る所に散らばっています - Gitは、さらに多くのメタデータ(すべてのファイルの完全な履歴を含む)を単一の
.git
ディレクトリに保存します
関係するサブディレクトリが1つしかないため、GitチェックアウトはSubversionチェックアウトよりも便利だと思います.git
。また、Gitチェックアウトは通常、同等のSubversionチェックアウトよりも小さくなります。これは、すべての履歴リビジョンが、個々の非圧縮ファイルとしてではなく、効率的な圧縮形式で保存されるためです。
作業を容易にするために、いくつかの異なるモジュールを 1 つのプロジェクト リポジトリに結合することについての質問ですか?
Subversion では、これは svn:externals で処理されます。
Mercurial でこれに相当するのは、ネストされたリポジトリです。
次の質問が役立つ場合があります。
- 複数の (Mercurial) リポジトリに保存されている共通ライブラリ ファイルへの変更をどのように管理するのでしょうか?
- Mercurial Subrepos - どのように作成し、どのように機能しますか?
- Mercurial 1.4.x の subprepos 機能は本番環境で使用できますか?
私があなたの質問を誤解した場合はお詫び申し上げます。
「分散ソース管理」における「分散」のポイントの一部は、すべてのコピーが等しいということです。「マスター」コピーも「スレーブ」または「作業」コピーもありません。
あなたが求めているように見えるのは、「分散ソース管理ですが、実際にはそうではありません」です。
Bazaar VCS には、SVN/CVS のものと同様のチェックアウト モデルがあります。
SourceGear の Vaultはこれをサポートし、1 人のユーザーは無料で、Mono をサポートすることでクロス プラットフォームで動作します。