fbpx
devstyle.pl - Blog dla każdego programisty
devstyle.pl - Blog dla każdego programisty
2 minut

Dostęp read/write do repozytorium Mercurial po HTTP


19.04.2010

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:).

0 0 votes
Article Rating
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
twk
twk
13 years ago

Chciałbym wdrożyć Mercuriala w firmie, ale właśnie brakuje mi czegoś na miarę VisualSVN żeby było prosto i szybko.

procent
13 years ago

@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:).

twk
twk
13 years ago

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.

Kurs Gita

Zaawansowany frontend

Szkolenie z Testów

Szkolenie z baz danych

Książka

Zobacz również