16

Mercurial キュー拡張機能を使用すると、次のようなコミット メッセージで空のコミットを作成できます。

hg qnew patch_name -m "message"

Mercurial キューなしでこれを行う方法はありますか? 私は簡単に試しました:

hg commit -m "message"

しかし、hg は「何も変更されていません」と言うだけでコミットを行わず、それをオーバーライドする「強制」オプションは表示されません。

これを行う動機について疑問がある場合は、特別なリポジトリにプッシュするテスト インフラストラクチャがあり、自動テストの実行がトリガーされます。どのテストを実行するかを示す特別な文字列を、一番端のコミットのコミット メッセージに入れる必要があります。明らかに、実際のリポジトリにプッシュするときに、この文字列をそこに入れたくありません。コミットを 2 回修正する (1 回目は特別な文字列を追加し、2 回目はそれを削除する) よりも、空のコミットを追加してロールバックする方がクリーンだと思います。mq でこれを行うことができます。しかし、mq なしでそれを行う方法を見つけたいと思います。

4

3 に答える 3

18

hg commit --amend空のコミットを作成するために使用できます。

任意のコミットを作成し、変更をバックアウトするだけです。その後、両方のコミットをまとめます。

例:

touch tmp                               # create dummy file
hg add tmp                              # add file and...
hg commit -m "tmp"                      # ... commit
hg rm tmp                               # remove the file again and ...
hg commit --amend -m "empty commit"     # ... commit
于 2014-11-12T17:18:22.367 に答える