2011年12月3日土曜日

tortoiseHgでrebaseしてみた

12月ということで各所で「Advent Calendar」やってますね。
リンク先は各所のカレンダーをまとめてくれているブログの記事となっています。
お陰で毎朝仕事にならない勉強になります。
ちなみにこの記事はそれとは全然関係なく、通常運転ですがw


ケーススタディで学ぶMercurialのRebase拡張(Mercurial Advent Calendar 2011 1日目)

を見て、そういや「tortoiseHg」でもできるんかな?と思い実行。
結果から言うとできたり出来なかったり。
いや出来たんですがやや反則な気が…



まず拡張設定を有効にしないとなんにも始まらないので「mercurial.ini」を編集。
多分C:\User\PC名\ の下にいると思われます。
普通に「.hgrc」に書くのと一緒。先日行われたらしいSCMBCのMercurialの資料
おすすめ「hgrc」ってのがあったので、参考にするのがいいかと。

こんな感じ?

[extensions]
graphlog =
color =
mq =
hgext.purge=
rebase =
…


graphlogとかcolorとかtortoiseHg使うだけなら不要な気がしますが、tortoiseHgを入れるとなんとHgコマンドがDos窓からも実行できる!(tortoiseHg以外でHg入れていないから多分あっている)
ついでに言うとcygwinからも使えるようになっている気がします。
なので設定しておいて損はないかと。


before

after 履歴修正とか増えている




個人的にはstripがWorkbenchのグラフからできるって素晴らしいと思う。



さていざrebase
(さきほどのケーススタディで学ぶMercurialのRebase拡張で公開されているex1-1-basicで
実行した場合)


…ってrebase元と先が一緒じゃん…

当然上記で実行しても意味無いです。当たり前ですが。

多少試行錯誤した結果、destとしたいリビジョンにupdateし、
かけたいリビジョンのグラフ上で
・右クリック→履歴修正→リベース
で目的は大体果たせそうです…

ってなんか違う…

コマンドライン的に書くと

hg rebase --source グラフ上で右クリックしたリビジョン --dest 今のリビジョン

という動作以外できないようです。(きっと)

ダイアログ上でリビジョン指定できればいいのに…と思いますが、
そもそも拡張機能&タダで使わせていただいているので文句はいいません。


結局細かいことをやろうと思ったらコマンドラインからやるしかなさそうなんですが、
それでも tortoiseHg は凄かった。



Workbenchから 表示→コマンドログ を選択すると、画面下にコマンドログが表示されます。
が、これ表示だけじゃなくて、入力できる




このコマンドログ上でコマンド叩くのが楽。
グラフも見やすいし、コマンド実行直後にグラフに結果が反映するしで
色々と捗る気がします。

なんか反則な気がするけど、無理にツール上のメニューを探さなくてもいいし、
これが一番な気がする。



なおmacでおすすめするHgのGUIツールはEclipseのプラグイン(EclipseMercurial)です。
そしてsourcetreeとかMacHgよりターミナルからコマンド叩くほうが楽な気がするのは俺だけ…?


0 件のコメント:

コメントを投稿