4

未使用または古いビルドをグローバル リストから消去するベスト プラクティスは何ですか?

現在、各 CI ビルドはそのラベルをビルド リストに追加します。時間の経過とともにリストが肥大化し、使用されていないものをリストから手動で削除することがあります。

4

3 に答える 3

3

TFS グローバル リスト肥大化し、パフォーマンスが低下します。私たち自身も同じ問題を抱えています。

次のことをお勧めします。

  1. 作業項目タイプの定義を変更して、ビルドのリストのグローバル リストに依存する WIT フィールドの既存の値を許可ルールを含めます (たとえば、バグの「ビルドで見つかった」フィールド)。
  2. 古いビルドを定期的に (手動またはスケジュールで) 削除します。各ビルド定義の保持ポリシーを確認できます。保持しないビルド (既定では、定義ごとに最後の 10 個) を削除しても安全です。これを自動化し、TFS データベースにクエリを実行して、削除しても安全なビルドを確認することをお勧めします。
  3. または、ビルドのドロップ場所を調べて、ディレクトリの結果を解析することもできます (つまり、そこに保存されているビルドを保持します)。
于 2012-02-20T09:31:38.240 に答える
1

TFS はこれらのラベルをグローバル リストに追加して、作業項目を特定のビルドにリンクできるようにします。理論的には、ビルドのリストをグローバル リストから「クリーンアップ」するべきではありません。これらのリスト項目を値として使用している作業項目を無効な状態のままにしておくためです。

「割り当て先」ユーザーのリストなど、時間の経過とともに肥大化するリストは他にもあります。そのチーム プロジェクトの有効なユーザーであったことがある人は、上記と同じ理由でそのリストに表示されます。ユーザーを削除すると、そのユーザーの作業項目は無効な状態のままになります。変更セットを無効な作業項目に関連付けたり、他の操作を実行しようとすると、エラーが発生します。

アイテムのリストが長い場合、パフォーマンスの問題は実際にはありません。ドロップダウンの巨大なリストから選択するのは面倒です... しかし、それは一種の TFS ビーストの性質です。あらゆる種類の情報が保存されるため、時間の経過とともにメトリックを取得できます。

ビルドの Tfs_Analysis キューブまたはトランザクション テーブルを調べます。これまでに実行したすべてのビルドのデータ行が見つかります。(ビルドを削除すると、TFS 2008 はトランザクション テーブルから行を削除しました... TFS 2010 では、データは保持され、「IsDeleted」フラグがデータベースに設定されるため、データはそこに永遠に残ります)

于 2012-02-19T19:51:42.210 に答える
1

古いビルドをフラッシュする方法がわかりません - また、何百もの削除されたビルドを含む役に立たない肥大化したリストがあり、バグが「見つかりました」などのフィールドが使用できなくなります。

ただし、CI ビルドではラベルが必要ない/不要な場合があるため、ビルドアップの多くを軽減できます。各ビルド定義を編集して、ビルドの開始時にソース管理へのラベル付けを停止できます。(今はPCから離れているので、恐れ入りますが完全な手順を提供することはできません)

于 2012-02-25T19:49:26.257 に答える