あまり知られていない?Mercurialのサブコマンドやオプション #mercurialjp
このエントリは Mercuiral Advent Calendar 2012 の14日目です。
開発中によく質問されることを気ままに紹介しようと思います。
リポジトリのクローン時に専用の鍵を利用する
hg clone
、 hg pull
、 hg push
には --ssh
オプションが存在します。
このオプションを利用して次の用に鍵を指定出来ます。
hg clone --ssh 'ssh -i /path/to/id_rsa' ssh://hg@bitbucket.org/jython/jython
常に指定するのは。。という方は .hg/hgrc
に次の記述をしてください
[ui] ssh = ssh -i /path/to/id_rsa
現在のリビジョンの過去のみをpushする
mercurial
で hg push
を行うと全ての変更を push
してしまいます。「このブランチはまだ公開したくないんだけど。。」ということ、よくあると思います。「今いるリビジョン=現在の作業領域のリビジョンだけpushしたいんだけど、、」という場合は、次のコマンドを使ってください。
hg push --rev .
hgtip.com ではNudge — 穏やかな Push ということで、このコマンドのエイリアス hg nudge
を定義しています。
指定したリビジョンの変更内容のサマリーを表示する
どんなファイルをどれだけ変更したんだっけ?という時は、次の --stat
オプションを利用します。
hg log -r tip --stat hg diff -c tip --stat
実行例
% hg log -r 8bc8e6d4928f --stat チェンジセット: 13231:8bc8e6d4928f ブランチ: stable 親: 13230:fdde19e206c6 親: 13229:1f7dfd2a0e6d ユーザ: Steve Borho <steve@borho.org> 日付: Mon Nov 05 16:15:48 2012 -0600 要約: Merge with default (2.6 Code Freeze) tests/nosehgenv.py | 5 ----- tortoisehg/hgqt/chunks.py | 20 ++++++++------------ tortoisehg/hgqt/commit.py | 50 +++++++++++++++++++++++++++++++++----------------- tortoisehg/hgqt/graft.py | 6 +----- tortoisehg/hgqt/manifestdialog.py | 17 +++++++++++++++-- tortoisehg/hgqt/matching.py | 8 +------- tortoisehg/hgqt/mq.py | 68 ++++++++------------------------------------------------------------ tortoisehg/hgqt/mqutil.py | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ tortoisehg/hgqt/qtlib.py | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------- tortoisehg/hgqt/repomodel.py | 32 +++++++++++++++++++++++++++++++- tortoisehg/hgqt/repoview.py | 6 +++++- tortoisehg/hgqt/repowidget.py | 30 +++++++++--------------------- tortoisehg/hgqt/resolve.py | 45 +++++++++++++++++++++++++++++++++++++++++++++ tortoisehg/hgqt/status.py | 5 +++++ tortoisehg/hgqt/sync.py | 8 ++------ tortoisehg/hgqt/thgrepo.py | 8 +------- tortoisehg/hgqt/thgstrip.py | 8 +------- tortoisehg/util/hgversion.py | 2 +- tortoisehg/util/menuthg.py | 3 +++ 更新ファイル数 19、 追加 299 行(+)、 削除 159 行(-)
特定のリビジョンのファイルを取り出したい
特定のリビジョンを取り出したい場合は hg cat
を利用します。
hg cat -r 'tag("1.0")' setup.py
hgrcを書かずに一時的に設定を有効にする
「一時的に拡張を有効にしたい」という様な場合は --config
オプションを利用します。
hg --config "extensions.patchbomb=" help patchbomb
現在の設定内容を表示する
次のコマンドで設定内容が確認出来ます。
hg showconfig
開発中にメンバーから質問されたことをまとめてみました。このほかにもいろいろオプションがあるので「こんなオプション有るかな?」と思ったら mercurial-users.jp のマニュアルで調べてみてください。