4

バージョン管理は、コンテンツが本質的にバイナリ データ ファイルであるプロジェクトに適していますか? 大量の BMP ファイルと TGA ファイルを含む、重量が 10 ギガ程度のパッケージを考えています。

Subversion はこのようなことを処理できますか? ユーザーが変更されたものだけをダウンロードできるようなバイナリ パッチを生成することは可能ですか。Rsync はオプションになる可能性がありますが、元に戻すことはできません。以前のバージョンに簡単に戻せるようになりたいです。

私もこの質問を見ましたが、答えに満足していませんでした

4

5 に答える 5

4

あなたが発行するのは、以下を含むリリース管理です。

  • 構築: 配信コンテンツの一部またはすべてをどのように、またどのくらいの速さで再生成できますか?
  • パッケージ化: その配信にはいくつのファイルが存在しますか?
    コンテンツに含まれるファイルが多すぎると、リモート環境で展開 (つまり、コピーまたは rsync) するのが簡単ではなくなります。これは、グローバル サイズの問題ではなく、必要なトランザクションの数が原因です。
  • パブリッシング: 配信をどこに保存し、それを作成した初期開発環境にどのようにリンクしますか?

このような大規模な配信は、VCS で公開するためではなく、ファイルシステムベースのリポジトリに保存し、バージョンを識別してリンクできるようにするための適切な名前 (または version.txt) を使用すると主張します。開発コンテンツ (Subversion に保存およびタグ付け)。
Maven はそのようなレポの一例です。

また、配信するコンテンツには限られた数のファイルを含める必要があることも指摘しておきます。つまり、次のことを意味します。

  • 多数の関連ファイルを 1 つの圧縮ファイルにまとめて圧縮
  • それらのファイルを再同期するだけでなく、圧縮解除するスクリプトを実行します
于 2009-04-01T10:28:35.017 に答える
3

Subversion は、バイナリ ファイルにxdeltaを使用します。

http://subversion.tigris.org/faq.html#binary-files

ところで。関連する質問: Subversion は大量のバイナリ ファイルを格納するのにどれくらい適していますか?

于 2009-04-01T10:29:32.787 に答える
2

Subversion は、更新を行うときに、ファイル全体ではなく、行を介して差分のみを送信します。ただし、ファイルの最初のチェックアウトでは、すべてのファイルをダウンロードする必要があります。これは基本的に10GBのダウンロードを意味します。また、バイナリ ファイルをマージするのは悪夢です。そのため、コミットできるのは 1 人だけで、他の人はファイルを更新するだけのスレーブであるマスター/スレーブ環境で作業している限り、これは非常にうまく機能します。そうしないと、次から次へと衝突してしまう可能性があります。

10GB を複数のリポジトリに分割することはできませんか? それらは本当に全体としてバージョン管理する必要がありますか?

于 2009-04-01T10:20:40.857 に答える
2

短い答えはイエスです。

比較的大規模な (40 GB チェックアウト) ゲーム開発プロジェクトに Subversion を使用しました。バイナリを驚くほどうまく処理したと言えます。欠点は、現時点では、変更に関するテキスト情報しか得られないことです。つまり、「更新されたメイン キャラクター モデルに合わせてテクスチャを変更しました」などです。しかし、このわずかな情報でも、パフォーマンスの問題を探しているときや、すべての開発者が同じバイナリ ファイルを使用していることを確認するときに役に立ちます。私の知る限り、パッチを適用するには完全なファイルが必要です。

于 2009-04-01T22:06:19.007 に答える
1

ソースのバージョン管理システムを自分のニーズに合わせて乱暴に曲げようとするのではなく、専用のアセット管理システムを検討することをお勧めします。私が聞いた唯一の (しかし、経験も提携もしていない) のは、http://www.alienbrain.com/で、費用はかかります。

于 2009-04-01T10:55:18.730 に答える