2011-02-07 18 views
17

ロールバックによってローカルリポジトリの最新のチェンジセットからコミットが削除されることがあります。ただし、共有リポジトリを再クローンする必要なしに、前回のプッシュ以来の最新のコミットをすべて削除することは可能ですか?Mercurialで複数のコミット(公開前に公開)をロールバックする

hg strip REV 

これはそのリビジョン+そのすべての子孫を削除します:

答えて

13

あなたはhg cloneで新しいレポを作ることができる:。

hg clone -r last_good_changeset localrepo newlocalrepo 
+0

これは私の好きな答えです。何も拡張子が必要ないからです。レポのサブセットを簡単に複製することができ、ほぼ即時に実行できます。 –

+0

@ Ry4an ...ちょうどあなたが実際にその1つに既に答えたことを実感しました:http://stackoverflow.com/questions/4172753/how-to-get-rid-of-some-changeset-in-hg/4173512#4173512! +1あなたの元の答え;) – VonC

+0

ヘイ、心配しないでください。私はこれらのことについて、私は重複して質問をしようとした方が良かった。 –

22

あなたがhg stripコマンド、mq拡張の一部を使用することができます。

あなたがで実験し、リポジトリのコピー/クローンを作成し、これを試してみてくださいする前に

+1

これは質問への本当の答えであると私は信じています。もう1つは、元の質問のオプションではないことを特に要求されたレポのクローンです(「再クローンする必要はありません」)。私はオリジナルの投稿と同じ解決策を探していたので、これは私の質問に答えるものであり、もう一つはクローンによるものではありません...他の人が元のポスターが望んでいた答えは、その質問を反映して助けてください人々は検索しながら? – GazB

+0

私はあなたに同意しますGazB –

+0

'Strip'拡張機能を有効にする方法は、[Hg Wiki for Strip](https://www.mercurial-scm.org/wiki/StripExtension)で利用できます。 –

0

あなたは、水銀日食をすることができます使用している場合一度ロールバックしてから変更を保存した後、複数の順次コミットをパッチとしてエクスポートし、それらのコミットを取り除き、同じ順序でそれらのパッチをインポートすることで、衝突するパッチがある場合は、

最後に、最初のロールバックを取り消すことができます。これにより、複数回ロールバックした場合と同じ効果が得られます。

関連する問題