TortoiseHgでAmendを使うと2つ前のコミットをやり直せる

Koonies2012-05-11

TortoiseHgはバージョン管理ソフトMercurialWindows用フロントエンドで、つい先日にリリースされた最新版v2.4でAmendというコマンドが追加されました。Amendを使えば、お手軽に直前のコミットをやり直すことが可能になります。
以前のバージョンでもロールバックして、コミットし直せば同様のことが可能だった訳ですが、実際の操作手順としてはAmendを使った方がコミットのメッセージをコピーする必要もないため地味に便利です。リリースされてからまだ数日ですが、既に何度もお世話になってます。
さてタイトルにも書いた「2つ前」の修正の話。
これまでは「1つ前」の修正ならロールバック、それ以上前の修正をやりたい場合はMQなどのエクステンションを使う必要がありました。
最新版では「1つ前」の修正ならロールバックまたはAmendのどちらでもOKになりました。という事はロールバックして、更にAmendすれば「2つ前」を修正できる??という疑問が湧いてきますよね。それで試してみたら、本当に出来ました

手順

1. まずはロールバック
2. 直前の変更点をシェルフで待避
3. コミットの画面にする
4. コミットボタンの隣の▼をクリックし、"Amend current revision"をクリック*1
5. するとボタン表示がコミット→Amendに変わり、「2つ前」のコミットメッセージが表示されるので、修正してAmendボタンをクリック
6. シェルフで待避した変更点を戻し、あとは普通にコミットをやり直す。

さいごに

Mercurialでも同様のことが出来そうな気がしますね。試してないけど。それでは。

*1:ただしAmendはMQエクステンションが有効でないと使用できないみたいなので注意!