3

私が理解しているように、Hgでコメントを修正することはできません。したがって、代わりに私がやりたいのは、まったく同じ変更を再プッシュすることです(または、少なくとも同じファイルに「タッチ」して、コミットしてもう一度プッシュします)。

これが必要な理由は、特定のコメントパターンに依存するバグ追跡およびビルドシステムがあり、正しいファイルがビルドに含まれていることを確認する必要があるためですが、コメントのバグ#を更新するのを忘れた場合私の最後のコミット、そして私は熱心すぎるので誤ってそれを間違った#の下にコミットしてプッシュします、どうすればそれらの同じファイルを手動でそれぞれに入れて、差分を作成するためだけにスペースや改行を追加せずに再プッシュできますか?

明確にするために、私は「ロールバック」または何かをすることはできません。すでに間違ったメッセージでプッシュされています。

4

3 に答える 3

3

私の知る限り、現在のMercurial機能はこれをサポートしていません。チェンジセットがプッシュされた後、サーバーリポジトリや他の開発者のリポジトリから変更セットを削除する以外に、プッシュを解除するためにできることはほとんどありません。

あなたの店でこのワークフローを設定した人に聞いてみるべきだと思います。彼らはそれのためにいくつかの例外ハンドラーを考え出すべきでした。

通常、このような問題は無視し、バグを手動で閉じて、バグが正しいチェンジセットにリンクしていることを確認します。チェンジセットが実際に混乱している場合(通常、これは不正な形式のコミットメッセージではなく、不正な変更を意味します)、ストリッピングに頼ります。

于 2012-06-06T06:32:22.577 に答える
2

変更はすでにプッシュされているため、「hg commit --amend」のような単純な修正を使用することはできませんが、同様のことを行うことができます。基本的に、次のコマンドはMercurialの助けを借りてコミットをやり直します。

CSET=...the changeset to re-do...
hg up -r "p1($CSET)"    # Update the working directory to the parent revision
hg log -r "$CSET" -p > changes.patch
hg import --no-commit changes.patch
hg commit     # And use the appropriate commit message.

次に、マージしてプッシュします。

于 2012-06-06T18:24:09.337 に答える