clone
コマンドは機能しますが、リポジトリに複数のブランチがある場合、そのクローンにはそれらが含まれません。したがって、それらを個別に慎重に取り込まない限り、意図した以上に失う可能性があります. おそらくこれはあなたが望むものではありません...
リビジョンを削除する最も簡単な方法は、 MQ 拡張機能strip
のコマンドを使用することです。これをコマンド ( Rebase extension )と組み合わせて使用すると、保持したい子が既にある変更セットを削除できます。最初に子を親に、次に問題のあるチェンジセットに。rebase
rebase
strip
ただし、これらは履歴の変更操作であることに注意してください。変更セットが既に他のユーザーと共有されている場合は、引き続きそのユーザーのリポジトリに残ります。彼らが引っ張った後でも。彼らはそれらを取り除くためにあなたの手順を繰り返す必要があります. 変更が誤ってメイン リポジトリに戻ってしまうことさえあります。(注:これはあなたの方法にも当てはまりますclone
。)
したがって、これを行う必要がある場合は、すべてのユーザーに新しいクローンを作成するか、少なくとも変更を取り除き、変更セットが再導入されないようにフックを作成するように指示するのが最善です。すべてのユーザーに連絡したり、信頼したりできない場合 (たとえば、オープン ソースであるため) は、変更セットをそこに残して、本番の資格情報を変更することをお勧めします。とにかく、それはすでに野生に出ています。
将来的には、Mercurial 2.4 で予定されている「廃止」機能を使用して、変更セットを削除または変更するためのより良い方法が提供される予定です。これが完全に実装されると、ユーザーがリポジトリからプルすると、それに応じてリポジトリの履歴が自動的に更新されます。そのため、その機能に注目してください。