12

いくつかのリビジョンをキューにインポートし、それらすべてをポップしようとしました。残念ながら、同じリポジトリにアクセスしている他のMercurialクライアントによると、hg qpop -a正常に完了しませんでした。

> hg qpop -a
popping 115.diff
popping 114.diff
popping 113.diff
popping 112.diff
popping 111.diff
abort: The process cannot access the file because it is being used by
another process
C:\Program Files (x86)\Mercurial\library.zip\mercurial\dispatch.py:217:
DeprecationWarning: use lock.release instead of del lock

これで、パッチを元に戻すことができなくなりました。Mercurialは常に「不明なノード」について不平を言います。

> hg qpush -a
mq status file refers to unknown node b6fb614866f1
abort: working directory revision is not qtip

これはどういう意味で、この問題をどのように解決できますか?

4

1 に答える 1

19

失敗した操作によって dirstate が破損したようです。同様の問題がhgかなり前にメーリング リストに報告されました (リンク)。Andreas West によるこのブログ投稿を参照してください。回復手順について説明しています。

基本的には次のようになります。

$ > .hg/patches/status          # force mq to think no patches are applied
$ hg debugrebuildstate -r tip   # rebuild your working copy

これによってパッチ キューが破棄されることはなく、パッチの一部ではない作業コピーの変更が失われることもありません。ただし、クリーンな作業コピーに戻すには、ファイルのバージョンを注意深く検査 (および場合によっては修正) する必要があります。

于 2012-06-08T13:49:58.667 に答える