2009-09-09 9 views
6

Widzę polecenie "pociągnij" i zastanawiam się, jak to się różni od "klona". Oba terminy wydają się sugerować pobieranie kodu z jakiegoś zdalnego repozytorium. Czy jest tu jakieś subtelne rozróżnienie?Czy 'pull' jest synonimem 'clone' w repozytorium Mercurial?

+1

Ponieważ wydaje się, że właśnie zaczynasz z Mercurial, prawdopodobnie powinieneś przeczytać to pytanie dotyczące przepełnienia stosu: http://stackoverflow.com/questions/1170338/mercurial-for-beginners-the-definitive-practical-guide You powinien także przeczytać i/lub opracować kilka pierwszych rozdziałów "Mercurial: The Definitive Guide": http://hgbook.red-bean.com/read/ Wreszcie, możesz chcieć stworzyć zabawkowy projekt na http: // bitbucket.org/ w celu uzyskania praktyki w pracy z Mercurial. – las3rjock

+0

Świetne linki. Bardzo pomocne. Dziękuję Ci. – tent

+0

http://hginit.com/ zapewnia również doskonały samouczek. Wszyscy moi nowi pracownicy i stażyści pracują nad tym, kiedy dołączą do mojego zespołu. – JSmitty

Odpowiedz

11

hg clone to sposób tworzenia lokalnej kopii zdalnego repozytorium. Odpowiednikiem Subversion jest svn checkout.

hg pull ciągnie zmiany z innego repozytorium. hg update stosuje te zmiany do lokalnego repozytorium. hg pull -u jest odpowiednikiem hg pull; hg update. Subversion równoważne z hg pull -u jest svn update.

19

Użyj klonu, gdy potrzebujesz utworzyć nowe repozytorium na podstawie innego. Użyj później pull, aby przenieść nowe zestawy zmian do klonu. Nie możesz użyć klona do pobrania tylko najnowszych zestawów zmian - do tego właśnie służy ciągnięcie. Polecenie "pull" porówna dwa repozytoria, znajdzie brakujące zestawy zmian w repozytorium i ostatecznie je przeniesie.

Jednak masz rację, że istnieją podobieństwa między klonami i pull: oba przenoszą historię między repozytoriami. Jeśli sklonować pierwszy

hg clone https://www.mercurial-scm.org/repo/hg/ 

wtedy to ma dokładnie ten sam efekt, co robi

hg init hg 
cd hg 
hg pull https://www.mercurial-scm.org/repo/hg/ 
hg update 

uzyskać dokładnie taką samą historię w obu przypadkach. Komenda klon jest bardziej wygodne, choć, ponieważ również edytuje plik .hg/hgrc dla Ciebie, aby ustawić domyślną ścieżkę:

[paths] 
default = https://www.mercurial-scm.org/repo/hg/ 

jest to, co pozwala zrobić hg pull w repozytorium bez podania adresu URL. Kolejną zaletą korzystania z klonu jest praca z repozytoriami na tym samym dysku: hg clone a b będzie bardzo szybki i tani pod względem miejsca na dysku, ponieważ b udostępni historię za pomocą a. Odbywa się to za pomocą twardych linków i działa na wszystkich platformach (Windows, Linux, Mac).

2

Klon tworzy nowe repozytorium jako kopię istniejącego repozytorium.

pull importuje wszystkie zestawy zmian (jeszcze nieobecne) z innego repozytorium do istniejącego repozytorium .

Powiązane problemy