2010-11-11 9 views

Odpowiedz

76

Być może brakuje mi tutaj niuansów. Ktoś może mnie poprawić.

Dokumentacja w Mercurial wiki mówi po około gołymi repozytoriach.

"Chociaż jest to niewielki problem, Mercurial można oczywiście obsługiwać gołego repozytorium, to jest repozytorium bez kopii roboczej W Git potrzebujesz opcja konfiguracji, że podczas gdy w Hg trzeba tylko sprawdzić zerową rewizji, tak: "update

Hg zerowy

Wersja pusta jest pustym stanem, który masz, kiedy właśnie skończyłeś hg init. Jest rodzicem wersji 0 (i drugim rodzicem wszystkich wersji non-merge) i poprzez aktualizację do niego ponownie otrzymujesz pustą kopię roboczą.

Link może wyglądać ironiczny:

+3

Aha! To załatwia sprawę. RTFM. Lub w tym przypadku RTFW. Przeczytałem "hg clone --help", co wskazuje na to rozwiązanie ... ale tylko wtedy, gdy znasz odpowiedź. Dzięki! – richq

+0

@rq: Zdarza się nam wszystkim. Mam kilka momentów RTFM co tydzień. – pyfunc

+2

Jeśli masz niezatwierdzone zmiany: 'aktualizacja hg --clean null' – Laymain

-18
rm -rf * 

Usuwa wszystkie pliki "widoczny" (pod * nix). Ponieważ repozytorium Mercurial przechowywane jest w "ukrytym" pliku .hg, nie zostanie ono dotknięte. Niestety, nie będzie żadnych ukrytych plików własnych, takich jak .hgignore.

Aby przywrócić kopię roboczą, jestem pewien, że AN hg update flaga, która działa, ale będzie to także:

hg revert --all 
+10

-1 Zupełnie nie tak. To jest to, co próbowałem, i oznacza cały egzemplarz roboczy jako "!" usunięty, co może zepsuć popychania i ciągnięcia. – richq

+0

@rq - być może powinieneś był to powiedzieć w oryginalnym pytaniu. Osobiście nie mam pojęcia, dlaczego chcesz skopiować repozytorium bez katalogu roboczego. Uruchamianie wielu pchnięć i ciągnięć bez próby budowania pośredniego jest receptą na kłopoty. – Anon

+8

Jednym z zastosowań jest utworzenie kopii zapasowej lokalnego klonu na dysku sieciowym, przy użyciu zatwierdzania zatwierdzenia, który automatycznie przesuwa się do kopii zapasowej. –

Powiązane problemy