Mercurial jest fajny (a Git jest git:) ) – znalezienie większości funkcjonalności, nawet jeśli nie znamy odpowiedniej komendy, zajmuje chwilę i nie wymaga przekopywania się przez długaśny manual. Wystarczy wpisać “hg help” i dostaniemy naprawdę zwięzłe, pomocne i konkretne opisy dostępnych poleceń.
Zachciało mi się postawić repozytorium HG w domu, lokalnie. Zrobienie tego przez file share to pestka, więc postanowiłem spróbować z HTTP. Okazało się, że to (do czego mnie już Mercurial przyzwyczaił) banał:
hg serve
i już. Nie dość, że możemy się do tego podpiąć jakimś narzędziem (domyślny port to 8000), to jeszcze po wejściu przez przeglądarkę dostaniemy całkiem wypasione centrum informacji o repozytorium, włącznie z przeglądarką kodu, diffem a nawet graficznym przedstawieniem gałęzi! Naprawdę cool.
Ale… to wszystko tylko do odczytu. Jak pisałem kiedyś niestety moje próby postawienia read/write repozytorium Gita na IIS zakończyły się sromotną porażką. Z HG przynajmniej nie muszę babrać się w zewnętrznym serwerze http, skoro mamy cwany wbudowany. Z tym że w dokumentacji napisane jest jasno:
“Mercurial has a built-in light-weight web server which can be used for browsing a repository with a web browser or for allowing remote machines to pull from you.”
Ani słowa o wysyłaniu doń jakichkolwiek zmian…
Ale znalazł się sposób i na to! Nie jest to cecha mocno wyeksponowana (w właściwie można rzec – jest ukryta), jak wszystko inne w HG, ale są ku temu dobre powody. Wystawianie read/write repozytorium na takim mikroserwerku bez żadnych zabezpieczeń, szyfrowania, uwierzytelniania itd może skończyć się bardzo źle. Dlatego też należy to robić wyłącznie w określonych, ściśle kontrolowanych warunkach.
A że moje warunki są określone i ściśle kontrolowane to do pliku konfiguracyjnego ~/.hg/hgrc dodałem sekcję:
[web]
push_ssl = false
allow_push = *
i… to wszystko. W Mercurialu nawet jak coś jest ukryte, to i tak jest banalnie proste:).
Chciałbym wdrożyć Mercuriala w firmie, ale właśnie brakuje mi czegoś na miarę VisualSVN żeby było prosto i szybko.
@twk:
Zobacz: http://stackoverflow.com/questions/2428870/hosting-mecurial-hg-via-visualsvn-server . Nie próbowałem, ale jeśli faktycznie działa jak trzeba to całkiem nieźle:).
Sprawdziłem – działa pod https na apache który jest z visualsvn i jego zarządzaniem prawami :)
Dzięki za tego linka, było tam wszystko co trzeba (ważne również komentarze). Muszę teraz poczytać o migracji z svn.