はじめに
Gitのstashって一時的に変更を退避できてめっちゃ便利ですよね。
しかし大人の都合でGit以外を使わなきゃいけないシーンに直面したりしますよね。ワガママ言ってられないもんです。
というわけで表題にもあるようにstashをMercurial(hg)でも使えるようにします。
以前は
Version 2.7までは標準機能ではなかったので以下のExtentionをインストールして使う必要がありました。
現在は
Version 2.8からは本体に取り込まれたので.hgrc
に記述してあげるだけで利用できるようになりました。
セットアップ
.hgrc
の[extensions]
に設定を追加してあげます。
~/.hgrc
[extensions]
shelve=
利用方法
hg shelve
変更を加えたファイルを一時的に退避できます。
git stash
と同じですね。
➜ hg status
M app/controllers/users/sessions_controller.rb
➜ hg shelv
shelved as stg
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
➜ hg status
hg unshelve
shelveしたファイルを戻します。
git stash pop
と同じですね。
➜ hg status
➜ hg unshelve
unshelving change 'stg'
➜ hg status
M app/controllers/users/sessions_controller.rb
その他
git stash
と同様に複数のshelveできたり名前付きshelveを作成したりできます。詳しくは本家のドキュメントをご覧くださいな。