2016-11-09 13 views
1

私は水銀リポジトリ内のチェンジセットを誤って削除して、あまりにも多くのチェンジセットを削除しました。私はそれが子孫を削除することを知っていましたが、何らかの理由で私はその支店の子孫を削除すると仮定しました。代わりに、削除されたリビジョンの後にコミットされたすべてのブランチからすべてのチェンジセットを削除しました。削除された変更セットを復旧する方法

mercurial documentation状態次の:

stripは歴史書き換え操作ではありません、それは書き換えの歴史ではありませんので、チェンジがどこかに存在しているので、公共のチェンジ

上で使用することができますどうすれば復旧できますか?

答えて

2

Mercurialは、リポジトリ内の「strip-backup」と呼ばれるフォルダ内の削除されたパッチ(つまり:strip、amendなど)のすべてのバックアップバンドルをバックアップします。このディレクトリは<repository-root>/.hg/strip-backupにあります。

このフォルダ内にはすべての変更のバックアップが表示されますが、#hash#[ - amend] -backup.hgという形式の名前のハッシュがあります。これを時系列順にソートすると、不良ストリップ操作を実行したときにわかっていると仮定して正しいものを見つけるのに役立ちます。そうしないと、正しいチェンジセットが復元されるまで、すべてのバンドルを逆順に復元する必要があります。

復元操作を実行するためのコマンドは次のとおりです。

hg unbundle <path-to-bundle-file> 
hg update 
関連する問題