Systemy kontroli wersji takie jak Mercurial są nieodzownym narzędziem dla każdego programisty. Pozwalają śledzić zmiany w kodzie, cofać błędne modyfikacje oraz współpracować z innymi developerami. Jednak dla osób stawiających pierwsze kroki, ogrom możliwości Mercuriala może być przytłaczający. Dlatego przygotowaliśmy ten poradnik, aby przeprowadzić Cię przez podstawy pracy z Mercurialem i pokazać, jak wykorzystać go na co dzień w projektach programistycznych.
Podstawy pracy z Mercurialem
Mercurial jest systemem kontroli wersji rozproszonym, bazującym na modelu rozgałęzianym (DVCS). Oznacza to, że każda kopia repozytorium zawiera pełną historię wszystkich zmian. Daje to dużą elastyczność - możesz pracować w trybie offline, tworzyć dowolną ilość gałęzi, a następnie scalać je ze sobą.
Podstawowymi pojęciami w Mercurialu są:
- Repozytorium - folder zawierający wszystkie pliki projektu i historie zmian.
- Rewizja (commit) - zatwierdzenie zestawu zmian, wraz z notatką opisującą wprowadzone modyfikacje.
- Gałąź (branch) - niezależna linia rozwoju kodu, będąca kopią repozytorium.
Zalety pracy z Mercurialem
Mercurial oferuje wiele korzyści, dzięki którym jest chętnie wykorzystywany przez programistów:
- Prosta obsługa - interfejs linii poleceń hg jest intuicyjny i łatwy w opanowaniu.
- Szybkość - operacje takie jak commit czy checkout są bardzo szybkie.
- Rozproszenie - każda kopia repozytorium jest pełnowartościowa.
- Gałęzie - łatwe tworzenie gałęzi i scalanie ich ze sobą.
- Graficzne interfejsy - wsparcie popularnych IDE i menedżerów pakietów.
Porównanie z innymi systemami kontroli wersji
Mercurial jest bardzo podobny w działaniu do takich systemów jak Git czy SVN. Różni się od nich przede wszystkim sposobem przechowywania danych. Oto krótkie porównanie Mercuriala z Gitem i SVN:
- Git - podobny model rozproszony, Mercurial jest prostszy w obsłudze.
- SVN - scentralizowany model repozytorium, wolniejszy przy pracy offline.
Instalacja i konfiguracja Mercuriala
Aby móc korzystać z Mercuriala, należy najpierw zainstalować go na swoim komputerze. Proces instalacji jest bardzo prosty i sprowadza się do pobrania odpowiedniego pakietu instalacyjnego ze strony mercurial-scm.org.
Instalacja
Mercuriala można zainstalować na większości popularnych systemów operacyjnych, w tym Windows, Linux i macOS. Wystarczy pobrać odpowiedni instalator i uruchomić go, a następnie postępować zgodnie z instrukcjami instalacji.
Sprawdzenie poprawności instalacji
Aby sprawdzić, czy instalacja przebiegła prawidłowo, wystarczy otworzyć wiersz poleceń i wpisać polecenie hg
. Jeśli zobaczysz listę dostępnych komend, oznacza to, że Mercurial został poprawnie zainstalowany.
Konfiguracja
Przed rozpoczęciem pracy, warto dostosować globalną konfigurację Mercuriala. Służą do tego następujące polecenia:
hg config --edit
- edycja pliku konfiguracyjnegohg config --global user.name "Imię Nazwisko"
- ustawienie nazwy użytkownikahg config --global user.email "[email protected]"
- ustawienie adresu email
Dane te będą wykorzystywane przy każdym commicie jako informacje o autorze zmian.
Czytaj więcej: Git dla programistów - najważniejsze komendy i dobre praktyki
Tworzenie repozytorium i zarządzanie plikami
Repozytorium Mercuriala to miejsce, gdzie przechowywany jest cały kod projektu oraz pełna historia wprowadzonych zmian. Zanim zaczniesz wprowadzać modyfikacje w kodzie, musisz najpierw utworzyć repozytorium.
Inicjowanie repozytorium
Aby zainicjować nowe, puste repozytorium Hg, przejdź do folderu projektu i wykonaj polecenie:
hg init
Spowoduje to utworzenie ukrytego folderu .hg, w którym przechowywane będą wszystkie dane repozytorium.
Dodawanie i commitowanie plików
Teraz możesz dodać pliki projektu do repozytorium. Robi się to w dwóch krokach:
hg add nazwa_pliku
- dodanie plików do śledzenia przez Hghg commit -m "wiadomość"
- zatwierdzenie zmian i utworzenie nowego commita
Każdy commit powinien zawierać krótką, ale treściwą wiadomość opisującą wprowadzone zmiany. Dobrze opisane commity ułatwiają późniejsze przeglądanie historii.
Przeglądanie historii commitów
Aby zobaczyć listę wszystkich commitów w repozytorium, użyj polecenia:
hg log
Pokaże ono datę modyfikacji, hash commita, autora, oraz treść komentarza dla każdej rewizji. Możesz także podać zakres dat lub hash commita, aby zobaczyć tylko część historii.
Gałęzie i merge'owanie

Jedną z największych zalet Mercuriala jest łatwość pracy z gałęziami. Pozwalają one na niezależny rozwój różnych funkcjonalności, które później można scalic ze sobą.
Tworzenie i przełączanie gałęzi
Aby utworzyć nową gałąź, użyj polecenia:
hg branch nazwa_gałęzi
Natomiast, aby przełączyć się na inną gałąź, wykonaj:
hg checkout nazwa_gałęzi
Zalecane jest tworzenie osobnych gałęzi dla każdej nowej funkcjonalności lub fixa.
Scalanie gałęzi za pomocą merge'a
Gdy praca w gałęzi zostanie ukończona, można scalić ją z gałęzią główną (zwykle default) poleceniem:
hg merge nazwa_gałęzi
Spowoduje to wprowadzenie wszystkich zmian z gałęzi docelowej do aktualnej gałęzi.
Rozwiązywanie konfliktów podczas merge'a
Czasami podczas scalania gałęzi mogą wystąpić konflikty, gdy ta sama linijka kodu została zmodyfikowana w obu gałęziach. W takim przypadku Mercurial wymaga ręcznego rozwiązania konfliktu przez programistę.
Współpraca zdalna i hosting
Mercurial umożliwia współpracę zdalną z wykorzystaniem repozytoriów hostingowych takich jak Bitbucket czy Kiln. Pozwala to na pracę grupową i synchronizację zmian między programistami.
Klonowanie zdalnych repozytoriów
Aby sklonować zdalne repozytorium na swój komputer, użyj polecenia:
hg clone adres_repozytorium
Spowoduje to pobranie pełnej kopii repozytorium wraz z całą historią.
Wysyłanie i pobieranie zmian przez push i pull
Po wprowadzeniu lokalnych zmian, możesz wysłać je na serwer poleceniem:
hg push
Natomiast aby zsynchronizować swoje repozytorium z serwerem, użyj:
hg pull
Korzystanie z hostingu kodu np. Bitbucket
Serwisy takie jak Bitbucket umożliwiają tworzenie repozytoriów, zarządzanie dostępem użytkowników oraz przeglądanie kodu poprzez interfejs webowy. Ułatwia to znacznie współpracę zespołową.
Rozszerzone możliwości Mercuriala
Oprócz podstawowych funkcji, Mercurial oferuje także szereg zaawansowanych możliwości, które pomogą usprawnić Twój workflow.
Zarządzanie wieloma repozytoriami
Możliwe jest pobranie wielu zdalnych repozytoriów do jednego folderu na dysku i zarządzanie nimi za pomocą wspólnego configa użytkownika.
Rozszerzenia i zagnieżdżanie repozytoriów
Dostępne są dodatkowe rozszerzenia rozwijające funkcjonalność Mercuriala, a także mechanizm subrepozytoriów pozwalający na zagnieżdżanie projektów.
Automatyzacja i integracja z innymi narzędziami
Mercurial pozwala na automatyzację wielu zadań przy pomocy skryptów hoook. Możliwa jest również integracja z popularnymi narzędziami CI/CD czy IDE.
Mamy nadzieję, że ten poradnik pomoże Ci sprawnie rozpocząć pracę z Mercurialem. Jego możliwości sprawiają, że jest to doskonałe narzędzie dla każdego programisty pracującego w zespole. Zapraszamy do testowania Mercuriala w Twoich projektach!