7

私たちの製品はゲームに似ており、バイナリ サポート ファイル (テクスチャ、メッシュ、ムービーなど) が非常に豊富 (~40M - 100M) です 。kai1968のように、コードだけでなく、これらのアセットを同期できるようにしたいと考えています。 、ワンクリックで。

ただし、厳密に言えば、これはバージョン管理とは異なります。これらのファイルの無関係な履歴で TFS に負担をかけたくありません。履歴を TFSに保持せずに何らかの方法でアップロードできますか? すべてのチェックインではなく、特定のポイント (ラベル ポイントなど) で履歴を保持することを選択できれば、さらに良いでしょう。

より一般的には、バイナリ アセットの同期をどのように管理しますか?

(おそらくそのようなタスクにより適した他のツールを知っていますが、TFSから分岐する、または完全に移行することは、現時点ではオプションではありません。)

4

2 に答える 2

5

必要な場合は常にバイナリ アセットを TFS に保持し、その選択の副作用 (余分なストレージ、バイナリの diff を実行できないためチェックインに時間がかかるなど) に対処してきました。手動以外で、特定のファイルの履歴を選択的に破棄する方法はないと思います。これを定期的に手作業で行いたい場合は、次のようにします。

  1. バイナリ ファイルの最新のコピーを取得する
  2. TFS のバイナリ コピーを破棄 (履歴と共に削除) します。
  3. ファイルを手動で TFS に追加し直します

最新のコピーしかありませんが、これには副作用があります。ソース履歴を取得しようとしても、ファイルのこれらの新しいコピーが返されないため、以前のビルドが壊れてしまいます。TFS は、試みているチェックアウトに一致するコピーをチェックし、何も見つからない場合、それらのファイルのコピーを取得しません。古いバージョンをビルドする場合は、ビルド スクリプトを更新して、最新のバイナリと履歴コードをプルする必要がありますが、それでも、それは真の履歴にはなりません。

2 番目のオプションは、定期的にのみチェックインすることです。すべての小さな変更ではありません。たとえば、これらのファイルを安全な場所 ​​(毎日のバックアップを含むファイル共有) に保管し、変更されたバイナリを毎週かそこら、またはすべてのラベルの前などにのみチェックインします。この方法では、増分履歴はありませんが、あなたはまだあなたのレーベルの歴史を持っているでしょう。ラベルを適用するための何らかの自動ルーチンを作成することを検討することもできます。この場合、最初にそのフォルダー内の変更をチェックインしてから、ラベルを適用します。

あなたがやったことを投稿してください - 私は知りたいです!

于 2009-09-30T14:19:34.820 に答える
4

ここにいくつかの考えがあります:

  • 別の VSTS プロジェクトを使用することを検討して、同じプロジェクト内でバイナリとコードを混在させないようにしてください。これにより、管理が少し簡単になります (たとえば、アセットを分離したままにしておくことができ、それらに関連する作業項目は、プロジェクトでフィルタリングすることでより簡単に照会できます)。マイナス面では、これは最新のものを取得するために2回クリックすることを意味します.

  • なぜ履歴を残したくないのですか?ソース管理のポイントは、特定の日の特定のビルドに戻ることができるように履歴を保持することです。それ以外の場合は、ネットワーク ドライブでバックアップ プログラムを使用することもできます (実際にはそうしたくありません!)。

  • ディスク容量の使用だけを心配している場合は、気にしないでください。100MB は小さく、ハード ドライブは安価です。私の最後のゲーム プロジェクトには数百ギガバイトのアセットがあり、すべての変更の履歴を 3 年以上保持していました。

  • 資産は何も遅くしません。ソース管理を使用しない場合でも、これらの作業は両方とも実行する必要があります。実際、ソース管理は「ワンクリックですべてを実行する」ソリューションを提供するため、作業を高速化します。

  • ソース管理のその他の多くの利点は、アセットに非常に役立ち、マイナス面をはるかに上回ります。

于 2009-10-05T07:20:15.193 に答える