3

私たちのプロジェクトグループは、私たちが取り組んでいるプロジェクトのバイナリファイルを1年以上SVNリポジトリに保存しましたが、最終的にリポジトリが制御不能になり、チェックインされる各バイナリが約20MB。

現在、TFSに切り替えました。リポジトリのバックアップは担当していません。ITチームがそれを処理し、そのためにバックアップ用のネットワークとストレージの容量が増えましたが、バイナリをどうするかを決定したいと思います。私の知る限り、TFSはデルタとバイナリファイルを保存しますが、デルタは巨大になりますが、いつかディスク容量の割り当てに達する可能性があるので、最初からより良い計画を立てたいと思います。問題を解決するには遅すぎると、悪い状況に巻き込まれました。

ソース管理でビルドを保持したくないのですが、プロジェクトグループは、本番システムで発生する問題を再現するために、すべてのバイナリのコピーを保持することを主張しています。TFSからソースコードを取得してビルドすることはできません。彼らによれば、それは単純ではないので、バイナリを作成します。

TFSはより良いビルドバージョン管理方法を提供しますか?誰かが洞察を共有できれば、私は本当に感謝しています。

4

3 に答える 3

5

原則として、ビルド出力を TFS に保存しないでください。多くのアプリケーションで使用される共通ライブラリのバイナリを保存したい場合がありますが、nuget などのツールはそれを回避します。

ビルド出力にはいくつかの段階があり、各段階は別々の場所に保存する必要があります。例えば

ビルド出力:コードが (TFS / Jenkins / Hudson などによって) ビルドされると、出力はドロップ場所に格納されます。大量のビルドを生成し、その多くが破棄されるため、このストレージは揮発性であると見なす必要があります。

テスターに​​渡されたビルド:これらは、いくつかの非常に基本的な QA に合格したビルドです。たとえば、コンパイル、静的コード分析ツールは満足、単体テストに合格しています。ビルドがテストに使用するのに十分であると判断されたら、ドロップ場所から別の場所に移動する必要があります。これはネットワーク共有である可能性があります (ビルドを再現できるため、本番環境ではありません) プロジェクトの存続期間中にプロモートされる多数のビルドが存在する可能性があり、テスターが各環境で使用しているバージョンを追跡する必要があります。

テストに合格し、本番環境にあるビルド:テスト チームは、ビルドが出荷に十分な品質であると見なします。稼働開始プロセスの一環として、テストによってサインオフされたビルドを取得し、3 番目の場所に保存する必要があります。ITILで言えば、これはDefinitive Media Libraryです。これは単純なファイル共有である可能性がありますが、「運用」であると見なされ、他の運用システムと同じバックアップおよび復元基準を持つ必要があります。

DML は、運用中のバイナリ (およびインストール手順、シンボル ファイルなどの関連する構成アイテム) を格納する場所です。ビルドを生成するツールは、TFS でソースにラベルを付けて、コードを特定できるようにする必要があります。バイナリの生成に使用されました。分岐戦略は、バイナリをコードに接続できるようにするのにも役立ちます。

また、「ライブのような」環境を用意することをお勧めします。これは、通常の開発環境やテスト環境とは別にする必要があります。名前が示すように、本番環境にリリースされたコードのみが含まれています。これにより、本番環境でバグを迅速に再現できます

于 2013-02-15T16:40:43.990 に答える
1

あなたを助けるかもしれない2つの方法:

  1. Team Foundation ビルド システムを使用します。利点の 1 つは、完成したビルドの保持期間を設定できることです。たとえば、成功した最新の 10 個のビルドと、失敗した最新の 2 個のビルドを格納するように TFS を注文できます。TFS に特定のビルド (「製品ビルド」/最終リリースなど) を無期限に保存するように指示することもできます。もちろん、これらのバイナリ フォルダーは、必要に応じて外部にバックアップすることもできます。

  2. 別の (頻度の低い) バックアップ スケジュールを使用して、バイナリに別のコレクションを使用します。TFS はコレクション全体をバックアップする必要がありますが、ソースほど頻繁に変更されないデータを分離することで、バックアップ コストを下げることができます。これはもちろん、バイナリをバックアップする必要がある頻度によって異なります。

于 2013-02-15T15:43:02.887 に答える
1

TFS でビルド定義を作成して、プロジェクト グループが特定のブランチからソース コードを取得し、それをビルドして場所にドロップするための簡単な「ワン ボタン」プッシュを提供することを検討したい場合があります。そうすれば、彼らはバイナリを手に入れることができ、それらをソース管理する必要はありません。

何かを本番環境にプッシュするときにリリース ブランチまたは RTM ブランチを作成する分岐戦略を使用している場合は、ビルド定義をそれらのブランチに向けることができ、TFS ポータルまたは Visual Studio 内から手動でトリガーできます。

于 2013-02-15T16:38:19.883 に答える