2

最後の 4 ~ 5 回のリビジョン/メイン リポジトリへのプッシュで、一部のコードが破損しました。現時点では、このプッシュを完全に削除し、その時点からリポジトリの HEAD を開始したいと考えています。どうやってやるの?SVN には、リポジトリ全体をあるリビジョンから別のリビジョンにコピーする dump コマンドがあります。Mercurial またはその他の方法で代替手段はありますか?

4

2 に答える 2

4

convert 拡張機能を使用してそれを行うことができます。
ただし、VCS の履歴で間違いを犯したことを常に非表示/削除したい理由がよくわかりません。新しいリビジョンで修正する限り、それほど重要ではありません...

于 2010-09-24T11:46:34.373 に答える
2

Quardas さん、「完全に削除する」というのは、Mercurial のデフォルトの語彙には含まれていません。不変の歴史を中心に構築されたシステムです。後悔しているものを元に戻すことはできますが、それを削除することはできません。科学者が実験室でログブックの番号付きページにペンで書いていることを考えてみてください。ページを切り取ることは詐欺と見なされます。盲目的な味方と間違いを保持しておくことには価値があります。

hg backout簡単かつ自動的に変更セットの反転を追加して完全に元に戻すが、変更セットとその反転の両方の記録を保持するのを使用することを検討してください。

あなたが本当にそのコンセプトに賛同できない場合は、調べてみてくださいclone -r。リポジトリを特定のポイントまでクローンできます。例えば:

hg clone -r -6 myrepo partial-myrepo
mv myrepo myrepo-with-stuff-I-regret
mv partial-myrepo myrepo

これにより、リポジトリが最後の 5 つの変更セットを省略した新しいコピーに置き換えられます。

Mercurial のデフォルトのツールセットに含まれていないツール (histedit、strip、mercurial キューなどの拡張機能) を使用して同じことを行う方法は他にもたくさんありますが、履歴をまったく削除せずに実行することをお勧めします。拡張機能なし。

于 2010-09-24T15:56:32.230 に答える