Mercurial でパッチを作成するプロセスは次のとおりです。
qnew でパッチを作成 -> 変更を加える -> パッチを更新
既に (コミットされていない) 変更を行っていて、それらをキューに追加したい場合はどうすればよいですか?
Mercurial でパッチを作成するプロセスは次のとおりです。
qnew でパッチを作成 -> 変更を加える -> パッチを更新
既に (コミットされていない) 変更を行っていて、それらをキューに追加したい場合はどうすればよいですか?
バージョンによって異なりますが、1.5.1 で変更されたようです。
1.5.1以降
このコマンドは、デフォルトでコミットされていない変更を追加します
qnew は、現在適用されているパッチ (存在する場合) の上に新しいパッチを作成します。パッチは、作業ディレクトリ内の未解決の変更で初期化されます。
1.5.1より前
を使用しますqnew -f
。ドキュメントから:
-f: 作業ディレクトリの内容が変更された場合、新しいパッチを作成します。未処理の変更は新しく作成されたパッチに追加されるため、このコマンドが完了すると、作業ディレクトリは変更されなくなります。
実際、パッチプロセスは、コミットされていない変更があるかどうかに関係なく同じように機能します。私はいつも次のようにそれをします:
[... make changes ...]
hg qnew -m "foo bar changes" foobar.patch
--> new empty patch at top of queue
hg qrefresh
--> this adds all diffs from 'hg diff' into the current top patch
編集:@CaseBashは、現在のデフォルトの動作について間違っていることを正しく指摘しています!