SVN を使用してビルド アーティフィケーション (大きなバイナリ ファイル) を保存すること の欠点(特にこれ)について読みました。ハドソンが代替案として提案されました。
Hudson はこれらのファイルをどのように処理しますか?
編集:私のプロジェクトは Java ベースではありません。
Hudson can create/keep an archive of build artifacts, and provides a nice browser view for inspecting them.
You need to enable Archive the Artifacts in the job definition.
Hudson は基本的にフラット ファイル ストレージを使用しています。これらのファイルは、Hudson 内の jobs/builds/ フォルダーにあります。「ファイルをソース管理にチェックインする代わりに Hudson を使用してください」と言うかどうかはわかりませんが、代わりに何かを使用することは、以下を提供する場合に適しています。
ハドソンがそれらの点でどれだけ良い点を取っているかはわかりませんが、少なくともそのいくつかはうまくいっていると思います. SVN もソリューションとしては悪くありませんが、保持期間に苦労し (古いビルドはディスク容量を狂ったように消費する傾向があります)、大きなバイナリに対してあまり最適化されていません。ほとんどの SCM システムは小さなテキスト ファイル用に最適化されています。
このプレゼンテーションから上記のリストを盗みました: http://www.anthillpro.com/html/resources/webinars/Role_of_Binary_repositories_in_Software_Configuration_Management.html (登録が必要です)
ビルドには Jenkins を使用しますが、ビルドのアーティファクトも保存します。上で Eric が言ったように、Hudson/Jenkins はフラット ファイル ストレージを使用して artficat を保存します。ビルドに基づいて編成されています。
使用中に気付いたいくつかのこと (バイナリのソース管理の代替案に関する Eric の質問への回答として):
参考までに、私たちのプロジェクトは Java ではなく (C/C++)、アーティファクトは tar.gz/zip ファイルとドキュメントです。
バイナリを保存するのに最適な方法である場合とそうでない場合がありますが、定期的なバックアップ (この場合は毎週) があり、ディスクがフォールト トレラントである限り、間違いなく適切です。