2011-10-14 13 views
38

git add -pの水銀換算はありますか?hg相当のgit add -p?

次ない男、オプション-p(または--patch)で、追加のgitからの引用:

が対話的にインデックスと仕事 ツリー間のパッチのハンクを選択し、それらを追加インデックス。これにより、ユーザーは の変更内容を索引に追加する前に確認する機会が与えられます。

+0

これは新しいポートより前のTortoiseHgの少なくとも一部であり、現在は新しいポートで実装されていません。 https://bitbucket.org/tortoisehg/thg/issue/188/what-happened-to-change-selection-in-the –

+1

@ LasseV.Karlsenを参照してください。最新のTortoiseHgではまだシェルブ機能が利用できます。 'Repository - > Shelve'メニューやコミットウィンドウのアイコンからアクセスできます。 –

+0

[Mercurial cherry picking changes for commit]重複している可能性があります(http://stackoverflow.com/questions/854930/mercurial-cherry-picking-changes-for-commit) –

答えて

33

record extension(Mercurialにバンドルされています)をご覧ください。

Mercurialにはgitのようなステージング領域の概念がないため、hg recordを実行すると、作業コピーの変更を単純に調べることができます。記録することを選択した変更はすべてコミットされ、記録するではなくの変更は、作業コピーに変更として残されます。

7

TortoiseHgを使用している場合は、Shelveという機能があり、一時的な領域にコミットしたくない変更を保存することができます。 gitのように、ハンクの選択が可能です。 Commitウィンドウで

  1. クリックRepository -> Shelve
  2. 、シェルフツールアイコンを選択します、このツールは、2通りの方法でアクセスすることができますTortoiseHgのワークベンチで

    。それは次のようになります。

enter image description here

+3

シェルフのアプローチの利点は、コミットする前に変更されます。 –

+1

+1 Laurens、 'git add -p'を実行すると、変更のサブセットが作業コミットを形成していると推測し、エラーの起こりやすい手動プロセスを使用してその推測を入力するということは、トラブルを求める –

15

Record Extentionは、このための標準的なツールです。コミットに含めるかどうかを決めるハンクを選ぶことができます。あなたのhgrcに拡張子を有効にしたら、コマンドはちょうど

hg record 

CRecord Extensionはあなたが含めたいどのラインまで行くことができますこのの上にTUI(テキストユーザーインターフェイス)を与えるれます。これは標準ではないので、hgrcで有効にする前にディレクトリにダウンロードする必要があります。

hg crecord 

編集:

  1. 録音拡張子はもはや必要です。さまざまなコマンドが -iまたは—interactiveフラグをサポートしています。例:

    hg commit -i 
    

    ...あなたが含めることをおしゃべりして尋ねます。

  2. CRecordは3.8をコアフィーチャーにしました。さて、—interactiveコマンドは古い CRecord拡張として同じインターフェイスが表示されますあなたの .hgrc

    [ui] 
    interface = curses 
    

    に以下を追加します。

7

Mercurial 3.8.1では、crecord拡張が組み込まれています。 .hgrcの「ui」セクションにinterface = cursesが含まれていることを確認するか、不快な質問と回答のインターフェースが表示されます。

[ui] 
interface = curses 

次に、そのコミットに含めるハンクまたはラインについて質問するために、対話的にコミットしてください。

hg commit --interactive 
+0

右https://www.mercurial-scm.org/wiki/RecordExtensionを参照してください。 –