Wstęp do Mercurial

2009-03-31 // Kategoria: Artykuł // Komentarze: 0 // Tagi: Python, Programowanie

Po tym jak Guido von Rossum (twórca Pythona) zdecydował że kod źródłowy języka Pythona będzie zmigrowany do rozproszonego systemem kontroli wersji Mercurial, zdecydowałem wypróbować to narzędzie.

Poniżej przedstawiam krótki wstęp do Mercurial, w którym opisuję tworzenie nowego repozytorium, konfigurację i podstawowe czynności.

Mercurial

Mercurial, nazywany również Hg (ang. Mercury oznacza rtęć), jest rozproszonym i międzyplatformowym systemem kontroli wersji napisanym głównie w języku Python. Jedynie funkcja diff (porównanie dwóch rewizji) jest napisana w języku C.

Pierwsza wersja Mercuriala został wydana w roku 2005 w odpowiedzi na zapowiedź firmy Bitmover, która postanowiła wycofać się z bezpłatnej wersji systemu Bitkeeper (Bitkeeper był używany w projekcie jądra Linuksa).

Tworzenie nowego repozytorium

Aby stworzyć nowe repozytorium wystarczy w pustym katalogu wykonać polecenie hg init, w następujący sposób:

mkdir projekt
cd projekt
hg init

Po prawidłowym wykonaniu polecenia, w katalogu projekt zostanie stworzony ukryty katalog .hg, w którym będziemy umieszczać pliki konfiguracyjne dla naszego repozytorium.

Identyfikacja

Mercurial pozwala na konfigurację identyfikacji (adres email), czyli Twojego podpisu. Podpis będzie dodawany do każdej zmiany w repozytorium.

Aby ustawić swój podpis należy otworzyć (lub utworzyć jak go wcześniej nie było) plik hgrc, który znajduje się w katalogu .hg. Następnie wystarczy dodać sekcje [ui]:

[ui]
username = Jan Kowalski <jan@kowalski.pl>

Push i Pull

Poleceniem pull będziemy synchronizować nasze lokalne repozytorium z centralnym repozytorium, a poleceniem push będziemy wysyłać nasze zmiany do centralnego repozytorium.

Domyślnie wszystkie operacje są wykonywane na naszym lokalnym repozytorium (nie musimy mieć stałego połączenia do serwera). Aby synchronizować nasze lokalne repozytorium z centranlym wykonujemy polecenie hg pull [adres repozytorium], np.

hg pull http://hg.kowalki.pl/centralne-repozytorium

W ten sposób ściągniemy najnowsze zmiany z centralnego repozytorium, które znajduje się pod adresem http://hg.kowalki.pl/centralne-repozytorium.

Aby ułatwić nam życie, możemy na stałe zdefiniować adres do centralnego repozytorium, i wówczas nie będziemy musieli wpisywać adresu przy poleceniach pull i push. W tym celu należy otworzyć plik hgrc, który znajduje się w katalogu .hg. A następnie dodać sekcję [path]:

[paths]
default = http://hg.kowalki.pl/centralne-repozytorium
default-push = http://hg.kowalki.pl/centralne-repozytorium

Dostęp do centralnego serwera może odbywać się przez połaszenie SSH, w tym celu wystarczy zmienić nazwę protokoły z http na ssh i dodać nazwę użytkownika:

[paths]
default = ssh://jan@kowalki.pl//home/kowalski/hg/centralne-repozytorium
default-push = ssh://jan@kowalki.pl//home/kowalski/hg/centralne-repozytorium

Cykl pracy

Jak mamy już skonfigurowanego Mercuriala i mamy stworzone repozytorium, spróbujmy przejść cały cykl pracy, czyli:

  • synchronizacja naszego lokalnego repozytorium z centralnym repozytorium,
  • commitowanie zmian,
  • wysyłanie naszych zmian do centralnego repozytorium.

Aby zsynchronizować nasza lokalna wersję z centralnym repozytorium należy wykonać polecenia:

hg pull
hg update

Jak wcześniej wspomniałem polecenie pull ściganie najnowszą wersję z centralnego repozytorium, a polecenie update zastosuje zmiany na naszym lokalnym repozytorium.

Możemy wykonać te dwa kroki za pomocą jednego polecenia:

hg pull -u

Jeżeli zrobiliśmy jakieś zmiany, to możemy spróbować je zakommitować do naszego lokalnego repozytorium, przez polecenie:

hg commit -m "Komentarz"

Po udanym commicie, możemy wysłać nasze zmiany do centralnego repozytorium.

hg push
searching for changes
adding changesets
adding manifests
adding file changes
added 2 changesets with 2 changes to 2 files

Podsumowanie

Z punktu widzenia użytkownika, Mercurial jest bardzo podobny do innych systemów kontroli wersji jak CVS, SVN czy Bazaar. Przejście z innego systemu na Mercurial jest bardzo proste i praktycznie od razu użytkownik jest w stanie w pełni wydajnie pracować.





  E-mail nie bedzie pokazany
  Kompletny link z http://