2009-08-21 10 views
12

Używam Mercurial v 1.1 przez kilka miesięcy do wersji dokumentów i innych plików. Wczoraj nagle nie powiodła się z komunikatem:Mercurial nagle myśli, że wszystkie pliki się zmieniły - oczekiwanie na blokadę katalogu roboczego

waiting for lock on working directory 

Dzieje się tak we wszystkich projektach mam pod .hg kontrolą. Mercurial uważa również, że wszystkie pliki we wszystkich projektach uległy zmianie.

Nie ma pliku .hg/store/lock w projekcie, który mówi, że czeka na blokadę.

Jedyną rzeczą, która mogła spowodować to jest to, że Windows zainstalował poprawkę bezpieczeństwa na moim komputerze z dnia na dzień.

Czy ktoś jeszcze widział to z Mercurialem?

Odpowiedz

9

Dla katalogu roboczego blokada to .hg/wlock. Czy plik istnieje? Aby odbudować dirstate (uwaga: nie spowoduje przywrócenia zmian, takich jak dodawanie/usuwanie/zmiana nazwy/kopii), można użyć hg debugrebuildstate.

0

Zaktualizowałem do wersji 1.3.1 i wszystko działa teraz.

Musiałem mieć korupcję w plikach binarnych 1.1.1 (z Cygwin).

Cygwin jest wciąż w wersji 1.1.

15

Odniosłem sukces, usuwając całkowicie ten plik .hg/wlock, jeśli on istnieje, a następnie wszystko wróci do normy. Jeśli martwisz się o utratę czegoś, po prostu zrobić kopię

0

dowiedzieć się, który plik jest Blokowanie numerów w katalogu roboczym:

hg debuglocks 

To powinno dać wynik wskazujący, który plik jest blokowanie katalogu na przykład

lock: free 
wlock: (461232s) 

Aby odblokować użycia siły:

hg debuglocks --force-wlock 

czyli

hg debuglocks --force-lock 

uzyskać więcej informacji:

hg debuglocks -h 

Uwaga: Ten paragraf:

Zamki chronią integralność danych Mercurial, dlatego należy je traktować ostrożnie pod numerem . Awarie systemu lub inne zakłócenia mogą powodować, że blokady nie będą prawidłowo odblokowywane, ale Mercurial zwykle wykrywa i automatycznie usuwa takie nieaktualne blokady.

Powiązane problemy