Git czy Mercurial
Z funus.net
Git czy Mercurial? Pewnie nie ja jeden zadaję sobie takie pytanie. Dodatkowo zadaję je sobie z perspektywy osoby, która nigdy nie miała tak naprawdę do czynienia z rozproszonymi systemami kontroli oprogramowania, nie licząc bardzo przelotnej znajomości z SVK. Ta strona ma mi służyć do podsumowania "za" i "przeciw" obu systemów.
[edytuj] No to Git czy Mercurial?
Jak na razie bardziej podoba mi się Mercurial. Interfejs użytkownika (wiersz poleceń) jest moim zdaniem bardziej intuicyjny, być może dlatego, że dość podobny do Subversion. Także implementowane koncepcje są łatwiej przyswajalne. Po krótkim czasie mogłem już wykonywać dość swobodnie podstawowe operacje. Zupełnie inaczej, niż w przypadku gita.
[edytuj] Co mi się podoba w Gicie
- Stworzony przez Linusa Torvaldsa, autora Linuksa, co jest jakby nie patrzeć jakąś rekomendacją.
- Aktywny development, spory ruch na liście dyskusyjnej.
- Git napisany jest w głównie w C (jak Subversion), a nie w jakichś pythonowych skryptach.
- GUI pod Windows. Sportowany TortoiseGit przypomina pierwowzór - TortoiseSVN - nie tylko z nazwy, jak to ma miejsce w przypadku TortoiseMercuriala.
[edytuj] Co mi się podoba w Mercurialu
- Interfejs command line. Mercurial, tak jak Subversion, pozwala na skracanie komend, niektóre mają też kilka intuicyjnych aliasów. Na przykład zamiast pisać "hg commit" czy "hg update", wpisuję "hg ci" i "hg up". Niby drobiazg, ale przy codziennym użytkowaniu konieczność wpisywania pełnych komend w gicie daje mi się we znaki. Nadto zestaw poleceń i opcji wygląda na bardziej przemyślany. Przykład: dlaczego gdy chcę skomitować parę zmian muszę pisać "git commit -a"? Dlaczego nagla pojawiają się jakieś dziwne ścieżki typu /remotes/origin/cośtam? Oczywiśćie, gdy poczytam co i jak, to się dowiem, ale to jest po prostu nieintuicyjne.
- Model. Anonimowe branche (heads) i powiązanie kopii roboczej z dowolną rewizją pozwalają uniezależnić operacje push/pull od update/commit. Bardziej mi to odpowiada niż pojedynczy gitowy HEAD (tak, wiem o detached heads, ale to jest jakieś toporne rozwiązanie).