6

単一の Mercurial リポジトリにバンドルされたデータとコードを持つプロジェクトがあります。データはコードと同じくらい重要です (ビジネス ロジックのパラメーターや一部の入力などが含まれます)。ただし、データ ファイルの形式が変更されることはめったになく、コードとは別にデータ ファイルを変更するのはごく自然なことです。

統合リポジトリの利点の 1 つは、複数のリビジョンを追跡する必要がないことです。以前の実行から出力を再作成する必要がある場合は、出力ログに保存されている単一のリビジョン番号にシステムを更新するだけで済みます。

欠点の 1 つは、複数のヘッドがアクティブなときにデータを変更すると、それらの変更を各ヘッドに手動でコピーしない限り、データの変更が失われる可能性があることです。

コードとデータを別々のリポジトリに分割することの長所/短所はありますか?

4

2 に答える 2

1

複数のリポジトリ:

  • 長所

    • コンポーネントベースのアプローチ(互いに独立して進化できるファイルのグループを特定します)
    • 構成仕様: システムが機能するために必要な参照 (ここでは「リビジョン」) をリストします。一方を変更せずに他方を変更する場合は、そのリストを更新します。
    • 部分クローン: すべてのコンポーネントが必要ない場合は、必要なコンポーネントのみをクローンできます (この場合は適用されません)。
  • 短所

    • 構成管理: その構成を追跡する必要があります (通常は親リポジトリを介して、サブリポジトリを登録します)
    • あなたの場合、データはプロジェクトの特定のバージョンに大きく依存しています(プロジェクトの古いバージョンでは意味をなさない新しいデータを持つことができます)

1 つのレポ

  • 長所
    • システムベースのアプローチ: モジュールを 1 つのシステム (プロジェクトとデータ) として見ることができます。
    • レポ管理: オールインワン
    • モジュール間の緊密なリンク (これはデータにとって意味のあることです)
  • 短所
    • データの伝播(あなたが言及したように、いくつかのHEADがアクティブな場合)
    • 中間リビジョン (新しい機能を反映するためではなく、一部のデータが変更されたため)
    • より大きなクローン (データに大きなバイナリが含まれていない限り、ここでは関係ありません)

非バイナリ データの場合、変更の頻度が低いため、それらを同じリポジトリに保持します。

于 2012-11-30T08:07:05.667 に答える