Mercurialではじめる分散構成管理

第3回 安全な「リリース」 ~ 複数リポジトリによる作業の隔離

この記事を読むのに必要な時間:およそ 3 分

今回は,不安定な成果物が混在するメイン開発ラインに対して,リリース作業の構成管理の独立性・平行性を,分散リポジトリを使って確保する方法について説明します。

「リリース」における成果混交の問題

「一度だけリリースしてしまえば,後は野となれ山となれ」という開発は皆無である,とは言いませんが, 一般的な開発の場合,以下のような契機での「リリース」が必要とされるのではないでしょうか。

  • 製品の出荷
  • 本リリース前の試用版の提供
  • 個別カスタマイズ版の提供
  • 障害修正版の提供
  • 開発期間途中での中間納品

こういった「リリース」の際,例えばCVSやSubversionといったモダンな構成管理ツールであれば,「タグ付け」「ブランチ」といった機能により,以下のようなことを実現します(体系的な詳細に関しては,パターンによるソフトウェア構成管理を参照されるのが良いでしょう)。

  • ベースとなる版の決定
  • 固有の成果物の作成
  • 継続的な保守

しかし,中央集約リポジトリ形式の構成管理ツールの場合,「メイン開発」「リリース作業」のブランチが物理的に同一のリポジトリで運用されるため,不注意や誤操作,運用上の問題による両者間での予期せぬ成果の混交,といった問題には決定的な対応策がありません。

図1 成果の混交

図1 成果の混交

一方,分散されたリポジトリで構成管理可能なMercurialの場合,「メイン開発」「リリース作業」の2つの (必要であればもっと多くの)用途向けに,物理的に異なるリポジトリを用意することで,両者間での作業成果の混交を容易に回避することができます。

著者プロフィール

藤原克則(ふじわらかつのり)

Mercurial三昧の日々が嵩じて, いつの間にやら『入門Mercurial Linux/Windows対応』を上梓。凝り性なのが災いして,年がら年中アップアップな一介の実装屋。最近は仕事の縁が元で,OpenSolarisに入れ込む毎日。

コメント

コメントの記入