TortoiseHG 0.9.0のincoming,pull/outgoing,push

Bitbucket | The Git solution for professional teams
Bitbucket | The Git solution for professional teams
TortoiseHGでのリモートリポジトリとの同期機能が、
リポジトリブラウザと統合されかなり強化された。

初期状態

まず、localのリポジトリが↓

remoteのリポジトリが↓となっているとする。

incoming/pull

incomingではpullしたときにremoteリポジトリからlocalリポジトリ
持ってくる事になるchangesetを見る事ができる。
下棒なしの下矢印をclickすると、

リモートリポジトリからchangesetを持ってくる。

が、実際にローカルのリポジトリに追加するのではなく、
リモートリポジトリから持ってきたchangesetを追加したらどうなるか、
つまり、実際にpullしたらどうなるかを表示してくれる。
下棒ありの下矢印がついたchangesetがそれである。

赤線で括ったチェック印をclickすれば、

このように実際に取り込まれる。

incoming機能自体はTortoiseHG0.8系の時点でもあったというか、
Mercurial本体のコマンドにもまさしくあるが、
取り込む対象がどこのどんなchangesetかグラフィカルに見られるのは嬉しい。
リポジトリブラウザ上でincoming/pullを行う場合、
incomingでとってきたchangesetはローカルにキャッシュされ、
続くpullではローカルのキャッシュの方を使う。
リモートリポジトリがあるサーバとの通信が無駄に発生しないのは軽くて良い。

outgoing/push

outgoing/pushはincoming/pullの逆。
上棒無しの上矢印をclickすれば、

どのchangesetがpushの対象なのか示してくれる。

実際にpushする際は上棒ありの上矢印をclick

リモートリポジトリを見ると、
無事ローカルリポジトリの変更がpushされた事が分かる。

Push to here

例えば複数headがoutgoingでマークされている時、
どれかのリビジョン、ここでは片方のheadにて、
右クリックして"Push to here"を選ぶと、
そのリビジョン自身と祖先の中のoutgoingでマークされたchangesetのみpushされる。

リモートリポジトリに該当のchangesetのみpushされていることがわかる。

また、ローカルリポジトリで別headとそれに繋がるchangesetは、
outgoingでマークされたままである事が分かる。