Mercurialでリポジトリが壊れたので黒魔術で乗り切ったはなし
お仕事で使っているMercurialリポジトリの履歴が壊れていました。
ある変更をpushした後、push先のリポジトリで hg update しようとすると
empty or missing revlog xxx/xxx/xxx.java
と表示されupdateに失敗します。
最終的に
黒魔術っぽい方法で乗り切ったので嬉しくてつぶやいたら
黒魔術を駆使してMercurialのマージを無事に軟着陸させた。。。
フィードバックがきたのでシェアしようと思います。
@fumito_ito #mercurialjp 機能(or ドキュメント)改善の元ネタに出来るかもしれませんので、どういった or どのような手順において『黒魔術』を使った(つかわざるをえなかった)のかお聞かせ頂ければ幸いです
2012-05-16 22:18:19 via web to @fumito_ito
状況の整理
リポジトリの構成はこんな感じ。Repo1, Repo2から各開発者のローカルにcloneして開発しています。
エラーの状況としてはこんな感じ。
- MasterからRepo2をpullしようとすると「中止:data/xxx/xxx/xxx.java.i@00000000000: 該当する ID はありませんでした」というエラーで失敗する
- Repo2からMasterにpushはできる
- Repo2からMasterにpushした後にMasterでhg updateしようとすると「empty or missing revlog xxx/xxx/xxx.java」というエラーで失敗する
- Repo2からMasterにpushした後にRepo1でMasterをpullしようとすると「中止:data/xxx/xxx/xxx.java.i@00000000000: 該当する ID はありませんでした」というエラーで失敗する
おんなじような目にあった方もいるみたい。。。
Mercurialで特定のブランチのリビジョンにupdateしようとすると 中止:data/xxx/xxx/xxx.java.i@00000000000: 該当する ID はありませんでした! って表示されてしまう。。。[転職活動中]