web-dev-qa-db-ja.com

最高の必須のhg / Mercurial拡張機能は何ですか?

私はhg/Mercurialを最近、つまりFogcreekのKilnと組み合わせて手を出してきましたが、私は必須の拡張機能が何であるかを理解しようとしています。説明が素晴らしいように聞こえるとしても、バグのある、または非実用的な拡張機能のテストには興味がないので、拡張機能リストを少し注意深くふるいにかける。

では、どのhg拡張機能を使用しますか?

参照 拡張機能の使用

73
JJ Rohrer

私自身のヒットリスト:

あなたが持っている必要がある簡単なもの:

  1. colordiffstatusなどのコマンドからの出力に色を付けると、評価が容易になります。
  2. pager:一度に1ページずつ長い出力を参照します。
  3. fetch:1つのステップで別のリポジトリからプル、更新、マージします。
  4. graphlog:シェルにリビジョングラフを表示します。ログ履歴のブランチを確認するのに非常に役立ちます。
  5. hgk:グラフィカルインターフェイスを使用してリポジトリを参照します(TortoiseHgおよびMurkyも参照)

pagerを有効にする場合は、特定のコマンドを妨害しないように構成する必要があります。

[pager]
pager = LESS='FSRX' less
ignore = version, help, update, serve, record

私が強く推奨する(そして頻繁に使用する)中間拡張機能:

  1. record:コミットするファイルの塊をインタラクティブに選択できます。1セットの変更の最中にいて、独自のコミットが必要なものを修正する場合に最適です。
  2. extdiff:外部の差分ツール(meldなど)を構成します
  3. share:複数のクローンで同じリポジトリ履歴を使用します

私が欠かすことのできない高度な拡張機能:

  1. mq:パッチのスタックを管理します。非常に強力で、ツリーの上にパッチを重ねることができます。
  2. notify:リポジトリが変更されたときにメール通知を送信します。
  3. rebase:ローカルの変更を新しい親リビジョンの上に再適用します。
  4. largefiles:hgストア外の大きなバイナリファイルを操作する

上記のすべてはMercurialにバンドルされており、安定しており、十分にテストされています。私はそれらすべてを強くお勧めします。

調査する価値のある非コア拡張:

  1. shelve:変更を(ハンクの細かさで)選択的に取り除き、それらを復元します。
  2. acl:リポジトリツリーのさまざまな部分へのアクセスを選択的に許可します

置き換えられた拡張機能とコアへの移行(@ durin42からの情報):

  • forestは、v1.3で導入されたsubrepoサポートに置き換えられました
  • bookmarksはコアにあり、常に有効になっています
  • transplantは、コアコマンドgraftに置き換えられました。
  • histeditはv2.3以降のコアにありますが、デフォルトでは無効になっています
  • inotifyは、競合状態が原因であると思われるバグがあるため、推奨されません。
98
gavinb

graphlogmqは特に美味しいです。

  1. 変換:他のシステムとの間で変換
  2. Mq(Mercurial Queues):パッチのスタックとして変更を処理します
  3. フォレスト:ネストされた多くのMercurialリポジトリを一度にコミットして更新できます
  4. 共有:同様のリポジトリで作業するときに時間とディスク容量を節約する
  5. Hgk:履歴をグラフィカルに表示します
  6. グラフログ:「hg log」ではなく、常に「hg glog」と入力します。歴史のアスキーアートビュー
  7. 移植:別のブランチからいくつかのチェンジセットをマージしたい場合に便利です。新しいhg rebaseが一部重複している可能性があります。
  8. リベース:ブランチの上にある一連のチェンジセットとして変更を処理する別の方法。 gitユーザーはリベースを好みます。多くのユースケースでmqを置き換える可能性があります。
  9. Shelve:しばらく他の作業をしなければならない場合に、作業コピーの変更を隠しておく場所。
  10. ブックマーク:特定のブランチの最新のコミットに名前を付けます。 gitブランチに似ています。
9
joeforker

まだ言及されていません:Mercurial_keyring

https://www.Mercurial-scm.org/wiki/KeyringExtension

「キーリング拡張機能は、キーリングライブラリのサービスを使用して、システム固有のパスワードデータベース(Gnomeキーリング、KDE ​​KWallet、OSXKeyChain、Win32およびコマンドラインの専用ソリューション)を使用して、認証パスワード(HTTP/HTTPSおよびSMTP)を安全に保存します。」

私はsshを使用してGitHubとBitbucketのリポジトリにアクセスし、キーフレーズはキーチェーンに保持されています。この拡張機能により、Mercurialは必要なときにいつでも取得できます。

私にも必要:hg-git

http://hg-git.github.com/

Mercurialプラグインを使用すると、クライアントとしてhgを使用してgitリポジトリをプルおよびプッシュできます。いつもそれを使用してください。

9
Bill Garrison

Bitbucketのような遅いホストを使用している場合は、 progress が不可欠です。さもないと hg Pushハングしているようです:\

7
Rob Agar

私のリスト:

  1. グラフログ。私はhg logよりもはるかに多く使用します。 (それがブランチに制限できることを望みます)

  2. パージ。 Mercurialにないすべてのファイルを削除します。私はこれをmake cleanの代わりに、またはよりクリーンなバージョンとして使用します。

あまり使用されていませんが、ニース:

  • 子供(「hg子供-r XXX」と言います)
  • parentrevspec:「foo〜2 = foo ^ 1 ^ 1 = foo ^^ = fooの最初の親の最初の親」のようなものを言うことができます

私は履歴編集ツールを使用しようとし続けていますが、制限に突き当たっています。私は働きたい.

  • 崩壊
  • histedit
  • 履歴編集ツールもリベースすることを検討します

ちなみに、注意:hgkとfetchは「愛されていない」: https://www.Mercurial-scm.org/wiki/UnlovedFeatures 。しかし、SubReposは愛されているわけではなく、ラストリゾートの機能であり、私はsubReposを使用しています。

1
Krazy Glew