Mercurial で 1 つのハンクを元に戻すにはどうすればよいですか? darcs で行う方法と同様です。つまり、各ハンクとファイルを元に戻すかどうかを尋ねられます。TortoiseHg を使用することは可能ですか?
ありがとう
Mercurial で 1 つのハンクを元に戻すにはどうすればよいですか? darcs で行う方法と同様です。つまり、各ハンクとファイルを元に戻すかどうかを尋ねられます。TortoiseHg を使用することは可能ですか?
ありがとう
実際、水銀とは、少なくともShelveツールでは「チャンク」を指します。それは私にそれらを元に戻すためのお気に入りの方法(そしてTortoiseHgのお気に入りの機能)をもたらします。
削除する目的でのみ作成したシェルフに、元に戻したいチャンクを移動するだけです。これは、チャンクが必要に応じて識別されている限り、非常にうまく機能します。そうでない場合は、手動で何かを行う以外に選択肢はありません。
TortoiseHg WorkbenchまたはVisualHgを使用している場合は、Shelveツールに簡単にアクセスできます。diffモードのトグルボタンの横にボタンがあります。あなたが棚に精通していないならば、あなた自身を支持して、それを使い始めてください。早い段階でコミットするのを忘れたとき、またはコミットから実験的なコードを除外することにしたとき、それは私に多くの悪化を救いました。
単一のファイルで変更セットを元に戻すには、次を試してください。
hg 差分 -c | パッチ -R
これにより、そのファイル名のそのリビジョンによって導入された変更セットが逆になります。同じdarcs / gitスタイルのcherry-picking動作が何らかの形で含まれていれば、私はとても幸せです.
record
拡張機能は に触発されていますdarcs record
。これにより、特定のハンクのみを次のコミットに追加できます。つまり、必要なものとは逆になります。ただし、元に戻したいものを除くすべてのハンクを追加してから、 aを実行しhg revert
て元に戻すことができます。少し後ろに、私は知っています... :-)
hg diff > patch; hg revert
また、編集patch
してハンクを削除しhg import --no-commit
、パッチを再適用することもできます。その方がおそらく高速ですが、パッチを手動で編集する必要があります。私は Emacsdiff-mode
で大きな成功を収めましたが、TortoiseHg について尋ねると、Emacs を使いたくないかもしれません。