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?
Odpowiedz
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
.
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).
Klon tworzy nowe repozytorium jako kopię istniejącego repozytorium.
pull importuje wszystkie zestawy zmian (jeszcze nieobecne) z innego repozytorium do istniejącego repozytorium .
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
Świetne linki. Bardzo pomocne. Dziękuję Ci. – tent
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