Mercurialで独立並行リリース管理
「Mercurialで独立並行リリース管理」という良い記事があったのでメモ。
【元ネタ】
Computing Memo of 2008/02/26
パッチを作った場合、そのパッチを取り込む方法はCVS・SVN・Mercurialで違いがある。
例えば、コードラインAのリビジョン修正2にコードライン3のリビジョン修正3を取り込む場合、下記のようになる。
cvs up -j 修正2 -j 修正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―ソフトウェア開発の課題)」にある構成管理パターンを一覧化したものなので、手元に置いておくと参考になると思う。
| 固定リンク
「廃止Mercurial」カテゴリの記事
- GitHubはオープンソースのプロセスを標準化した(2015.06.11)
- 「反復型ソフトウェア開発」はソフトウェア工学の良書(2013.02.09)
- Mercurialに取り込まれたコミュニティ由来の機能一覧(2013.01.12)
- WordやExcelから直接Mercurialへコミットできるアドオンmsofficehg(2012.12.07)
- RedmineでSubversion リポジトリ表示を高速化する方法(2012.11.23)
「構成管理・Git」カテゴリの記事
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- パッケージ設計の原則の意義は変化しているのか(2023.09.30)
- 小説活動にプルリクエスト駆動が必要になってきた(2022.05.08)
- 【資料公開】チケット駆動開発の解説~タスク管理からプロセス改善へ #redmine(2022.01.14)
- プログラミングしてる時はでっかいピタゴラ装置を作ってるみたいな感じ(2022.01.09)
「Agile」カテゴリの記事
- 「システムアーキテクチャ構築の原理」の感想part2~非機能要件がシステムのアーキテクチャに影響を与える観点をプロセス化する(2024.05.06)
- 「スクラムの拡張による組織づくり」のScrum@Scaleの感想(2024.03.31)
- ソフトウェア工学の根本問題から最近のソフトウェア設計を考えてみる(2024.03.03)
- 「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の感想(2023.12.10)
- 概念モデリングや設計原則は進化しているのか(2023.10.21)
コメント