2011-08-31 18 views
5

Po krótkiej pracy nad małym projektem z wersją Hg zweryfikowałem lokalne i centralne repozytoria Mercurial. Lokalnie nie mam żadnych błędów ani ostrzeżeń, a "repozytorium używa formatu revlog 1". W centralnym repozytorium otrzymuję jednakMercurial: Jak pozbyć się "ostrzeżenia: xxxx używa formatu revlog 0"?

repository uses revlog format 1 
checking changesets 
checking manifests 
crosschecking files in changesets and manifests 
checking files 
warning: `x' uses revlog format 0 
warning: `xx' uses revlog format 0 
warning: `xxx' uses revlog format 0 
... 

(13 ostrzeżeń tego typu łącznie). Czy mogę pozbyć się tych ostrzeżeń?

+3

Wydaje się, że masz * bardzo * stare repo. Kiedy nie otrzymasz * błędów * z 'hg verify', możesz je sklonować i użyć klonu zamiast aktualnego. – Rudi

+0

@Rudi, byłoby wspaniale, gdyby twoje odpowiedzi na pytania zamiast odpowiedzi były prawdziwe. Wielu ludzi daje pytania, które pokazują zero odpowiedzi na priorytet strony głównej, ale ta już miała świetną odpowiedź od ciebie. Ponadto, jeśli pytający dostanie to, czego potrzebuje od komentarza, jest mniej prawdopodobne, że wróci, by wybrać inną odpowiedź później, co przekreśla strukturę zachęty. –

+0

@ Ry4an Nie odpowiadam, gdy ślepo zgaduję. Odkryłem, że 'clone -pull' nie jest podejściem konwertującym, więc udzielenie odpowiedzi mówiąc 'hg clone' na serwerze byłoby błędne. – Rudi

Odpowiedz

2

Jeśli sklonujesz repo z numerem --pull, zostanie ono odtworzone jako najnowszy typ wersji Mercurial, którą używasz do odczytu/zapisu. Bez starych twardych plików danych używane są twarde linki.

Więc na metę serwerze:

hg clone --pull existingrepo newrepo 
mv existingrepo was-existingrepo 
mv newrepo existingrepo 
+0

Dzięki Ry4an i Rudi! – texnic

1

myślę, że również w inny sposób. Przekształciłem repozytorium z Hg na Hg, używając Convert extension. Repozytorium ma teraz format 1, wszystkie pliki.

+0

Byłbym ostrożny z tym. Konwertuj może zmieniać skróty rewizji, choć wyobrażam sobie, że tak nie będzie, jeśli nie zmienisz niczego innego. – Kevin

0

Odniosłem sukces, tworząc klon zainfekowanego repozytorium w punkcie błędu, a następnie wyciągając zawartość zainfekowanego repozytorium do nowego klonu.

Zakładając błąd rozpoczyna się rewizji 170:

hg clone -r 170 damagedRepo newRepo 
cd newRepo 
hg pull ../damagedRepo 
Powiązane problemy