« MSのTestManagerはTestLinkと全く同じ! | トップページ | 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart2 #tidd »

2010/10/27

Mercurialで独立並行リリース管理

「Mercurialで独立並行リリース管理」という良い記事があったのでメモ。

【元ネタ】
Computing Memo of 2008/02/26

パッチを作った場合、そのパッチを取り込む方法はCVS・SVN・Mercurialで違いがある。
例えば、コードラインAのリビジョン修正2にコードライン3のリビジョン修正3を取り込む場合、下記のようになる。

cvs up -j 修正2 -j 修正3

svn merge -r r修正2:r修正3

(A側) hg transplant -s (A')修正3

(前略)
むっちゃ簡単! 「どのパッチを取り込む」かを指定するので指定には 「修正3」 とか一個だけでなく何個でも書け,「修正x:修正y」のようにコロンで区切って範囲指定もできる。
そして,既に適用したパッチかどうかはチェンジセットIDで確実に判別してくれるから,リバースパッチなんていうアホな自体に陥ることがない。すごい,速い,簡単!
cvsやsvnよりずっとイイ!

Mercurialの場合、パッチの単位で履歴管理しているから、取り込みたいリビジョンを指定すればいいだけ。
リバースパッチもチェックしてくれるらしい。

リバースパッチとは、UNIXの部屋 コマンド検索:patch (*BSD/Linux)によれば、「diff コマンドでパッチを作る際、ファイルの引数を逆にしてしまうと、リバースパッチと呼ばれる正反対のパッチが作成される」ものらしい。
つまり、パッチの取り込み先が真逆という間違いなのだが、Mercurialがリバースパッチも判断してくれるのはありがたい。

上記のような方法を使いたい状況は、複数のバグ修正を別々のトピックブランチで直していて、開発順序とリリース順序が異なる場合があるだろう。
バグ修正のリリース順序は、顧客の要望の重要度やプロジェクトにおける作業の優先度によって変わりやすいから、マージ作業をサポートするツールは必須だろうと思う。

Agile開発は自然に並行開発になるため、MercurialやGitのような優れたバージョン管理ツールは必須だと思う。

なお、Mercurialのコマンド一覧は下記のPDFがお手軽でよい。
GitやSVNのコマンド一覧も1頁に納まっているので、印刷しておけば楽だ。

Mercurial Cheat Sheet 日本語版 | textdrop

そして、SW構成管理のパターンは、下記PDFを参考にすればいい。
パターンによるソフトウェア構成管理 (IT Architects’ Archive―ソフトウェア開発の課題)」にある構成管理パターンを一覧化したものなので、手元に置いておくと参考になると思う。

Software Configuration Management Patterns

|

« MSのTestManagerはTestLinkと全く同じ! | トップページ | 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart2 #tidd »

廃止Mercurial」カテゴリの記事

構成管理・Git」カテゴリの記事

Agile」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: Mercurialで独立並行リリース管理:

« MSのTestManagerはTestLinkと全く同じ! | トップページ | 「Redmineによるタスクマネジメント実践技法」の感想を集めてみたpart2 #tidd »