Mercurial のbranchの話

Mercurialを使ってバージョン管理しているプロジェクトで、
BTSでチケットを切るたびにbranchを切るという運用方針のものがあるそうです。
こうすると各チケットのソース変更がconflictしてウボァーみたいにならないというのと、
merge済みのbranchはinactiveになるので、
hg branches -a
とやって、active branchの一覧を表示させたときに、
default等にmergeしていない=リリース前で作業中のbranchのみ表示させることができて、
関心のあるものの情報が見やすいというメリットがあります。


ただ、作業を開始したチケットの作業分が必ずリリースされる訳ではなく、
没になるものもあると考えるとこの方式だけだと、
没になって閉じたチケットのbranchも一覧に残り続けてまずそうです。


任意のbranchをinactiveにするコマンドは今のところ知らないのですが、
昨日偶然面白いコマンド(のオプション)を見つけました。
hg commit --close-branch
とやれば、今作業しているbranchをclosedの状態にでき、
hg branches -a
でも
hg branches
でも表示出来なくなります。
なので、没になったbranchはこれで閉じてしまえば良いでしょう。


閉じてしまったbranchも
hg branches -c
でなら表示出来ますが、どうもこれはMercurial1.3から追加されたオプションのようです。