Mercurialでのブランチの使い方がわかりました
ちょっと前に友人から入門Gitを安く譲ってもらったんですけど,そっちも読みつつ,結局いつもはMercurialを使っています.2年くらい前に,Subversionから移行して,そのままなんですよね.基本的にはGitに移行したいんです.でも,そもそも私がバージョン管理システムに求めるのは,複数の計算機で作業するときにちゃんと同期してくれることと,履歴を取っておいてくれることくらいなんで,GitとかMercurialみたいな大袈裟な機能は要らないのかもしれない.
- 作者: 濱野純(Junio C Hamano)
- 出版社/メーカー: 秀和システム
- 発売日: 2009/09/19
- メディア: 単行本
- 購入: 31人 クリック: 736回
- この商品を含むブログ (158件) を見る
と言いつつ,入門Gitを読んで思ったのは,とりあえずブランチをちゃんと使ってみようということでした.ブランチのユースケースで挙げられっていたのが,
- 問題点はそれぞれブランチを切って作業する
- ある作業の途中で,急に他のが気になったときなんかに,ブランチを切り替える
- それだけで,それぞれの作業がごっちゃにならなくて幸せ
みたいな感じなんですが,これは良さげに見える.
さすがにそのためだけにGitに乗り換えるのはダルいので,Mercurialでブランチをどうするのか調べます.
マニュアル(いつのまにかMercurialのページがかっこよくなってますね)を読むといろいろ書いてあるんですが,だいたい次のような手順で良いみたい.
まず,ブランチを新しく作成する
$ hg branch new-branch-name
ブランチ一覧で確認します.
$ hg branches
ちなみに現在のブランチを確認するのは,
$ hg branch
ブランチを切り替える
$ hg update branch-name
もし未コミットの変更があると,mergeしようとしちゃうので,commitしておくか,
$ hg update -C branch-name
とします.
他のブランチの変更を取り込む
$ hg merge other-branch
みたいな感じ.
mergeされていないブランチを見るには,
$ hg heads
します.
$ hg branches
したときに,たまに(inactive)とか出るやつがあって,不愉快ですが,それはheadsが無いブランチのことです.
ブランチを消す
作業が終ったら(つまりブランチの内容を全てmergeしたら,)ブランチをcloseします.
$ hg commit --close-branch
closeすると,hg branchesで出てこなくなります.ところでopenするのはどうするんでしょうね?
さて,問題はhg headsで,close-branchしたcommitが残るので,headsでclosedなブランチが出てきて嫌な感じです.とりあえずmergeすれば消えますが,なんとかならんのでしょうか.