hg qnew
には、パッチに未解決な変更が含まれていることを認識せずに発行されました。私はそれを取り返し、特定の変更のみをhg qrecord
を使って選択したいと思います。 qnew
を元に戻すにはどうすればよいですか?あなたが知っていれば「hg qnew」を元に戻す方法は?
hg qpop
hg import --no-commit .hg/patches/patch-name
hg qdelete patch-name
は、より良い方法を追加してください:
hg qnew
には、パッチに未解決な変更が含まれていることを認識せずに発行されました。私はそれを取り返し、特定の変更のみをhg qrecord
を使って選択したいと思います。 qnew
を元に戻すにはどうすればよいですか?あなたが知っていれば「hg qnew」を元に戻す方法は?
hg qpop
hg import --no-commit .hg/patches/patch-name
hg qdelete patch-name
は、より良い方法を追加してください:
あなたの答えは間違いなく動作します - 新しいMercurialのインポートステップを行うことを避けるためにhg strip --keep
を使用することができて:
$ hg strip --keep .
$ hg qdelete patch-name
--keep
フラグは、作業中にstripが作業コピーを無視するようにします(つまり、hg qpop
のように)コミットを削除しますが、ファイルへの変更は取り消しません。ストリップした後も、あなたのシリーズにパッチが残っている(適用されていない)ので、それを削除することができます。あなただけの最新qnew
保持すべてのローカルの変更を元に戻したい場合は
私はanwer hereを見つけました。
更新:アルドの答えに基づいて、別の方法があります:
hg qnew test
# We can undo the above qnew as:
hg qrefresh -X '*'
hg qpop -f
hg qdelete test
は、一つの選択肢は次のとおりです。ちょうどランダムな文字列である
qcrefresh 123
hg qpop -f
hg qdelete <name of the patch>
お知らせ123
こと:あなただけは、(うまくいけばnonexistsntに水銀言っています)123
現在のパッチ内のファイル。 Mercurialの新しいバージョンを発行すると、実際に123
というファイルが存在しないという警告が表示されますが、これはまさにここで欲しいものです。
現在のパスに変更を残す場合は、crecordextensionのqcrefresh
コマンドを使用すると、現在のパッチに含める変更をグラフィカルに選択できます。あなたは、のBitbucketからそれをdownloadアーカイブを解凍し、.hgrc
でそれを設定する必要があります。
[extensions]
crecord = <path/to/crecord/package>
この拡張は非常に有望と思われる、とdarcsのユーザーとして、私は対話的に変更を選択するこの方法が好きです。しかし、私の質問には答えられません。すでに起こった 'qnew'を元に戻す必要がありました。 –
あなたの質問をよく理解していれば、実際には 'qnew'を取り消す必要はありません:' qcrefresh'コマンドを直接使用して、含まれていない変更を除外することができます。除外された変更はローカル変更のままになります。したがって、 'qcrefresh'の後に' qnew'を使ってそれらをすべて新しいパッチに含めることも、 'qcrecord'を使ってそれらのサブセットのみを選択することもできます。 – Aldo
おそらく、エクステンションを正しく使用する方法がわかりません。変更されたリポジトリに 'hg qnew'で始まる一連のコマンドを追加してください。これは' qnew'が呼び出されなかったかのように終了しますか?私は前に 'qrefresh'を使ってこれを試みました(これは' qcrefresh'と同じことを、非対話的にしか行いません)。しかし成功しません。 –