1

私たちのビルド システムでは、ビルドが終了すると、アセンブリもチェックインされます。しかし、UCM に移行したとき、アーキテクトはこの意見で意見が分かれました。コンパイルされたアセンブリと msi のチェックインを支持する人はほとんどおらず、反対する人もほとんどいませんでした。

チェックインするときは、シンボリックリンクを作成するだけで、大きな利点が得られました。さらに、チェックインが行われると、コピーではなく bin および release フォルダーからエントリが削除されます。とても助かりました。毎日、人々はナイトリー ビルドで最新のアセンブリ チェックインを使用して作業することができました。今、彼らはそれを行うことができません。彼らは、Nightly ビルド DLL を共通の場所にコピーするように求めています。

一方で、毎日のチェックインにより、私たちのリポジトリは巨大になります。

何が最善の選択肢だったのかわかりません。

どちらの方法が優れているかについて、あなたの考えを共有できますか? アセンブリを UCM/Clearcase にチェックインする方が良いですか?

4

2 に答える 2

2

慣例として、すべてのビルド出力をソース管理下に置くべきではありません。ただし、有効期限が切れるまで、それらを共通の場所に保持する必要があります。この実践の背後にある哲学は次のとおりです。

  1. バイナリを追加すると、リポジトリのサイズが大きくなります。
  2. ナイトリービルド(2年前のもの)で作成された古いバージョンのアセンブリは役に立ちません。一方、古いバージョンのソースコードとその履歴は常に役立ちます。
  3. ビルド結果に加えて、ソフトウェア製品は通常、サードパーティのコンポーネントに依存しています。これらのサードパーティコンポーネントは通常進化しており、それらの新しいバージョンは通常リリースされています。ビルド結果をソース管理に保持するには、サードパーティコンポーネントの適切なバージョンを別の場所に保持する必要があります。
于 2012-01-04T18:47:40.430 に答える
1

ClearCase でアセンブリをチェックインしないもう 1 つの理由は、可能なクリーンアップ機能がないことrmverです。Vob リポジトリを潜在的に危険にさらすことなく、不要なバージョンを簡単に作成することはできません。

これは、メタデータとハイパーリンクがバージョンに追加される UCM で特に当てはまり、1 つを削除すると、それに依存する他のオブジェクト (UCM ベースラインなど) の整合性にとって非常に危険になります。

バイナリをバージョン管理しないその他のより一般的な理由については、「フレームワーク ランタイムをソース管理下に格納することは適切な方法ですか?」とhsalimi回答を参照してください。

于 2012-01-05T11:27:50.583 に答える