[ Pobierz całość w formacie PDF ]

w którym kod można zatwierdzać bez żadnych przeszkód, a także można współpracować z innymi
tak, jak się chce.
Znacznik (ang. tag) to po prostu czytelna nazwa reprezentująca określony moment w czasie
w repozytorium. Znaczników zazwyczaj używa się do oznaczania wybranych wersji, np. tej, którą
się opublikowało.
Istnieje kilka szkół korzystania z katalogów branches i tags. W większości zespołów stosuje się jedno
ze standardowych rozwiązań lub jego zmodyfikowaną wersję. Zobaczmy, na czym te rozwiązania
polegają.
Ga dla ka dej wersji
Tego typu organizację katalogów stosuje się najczęściej w projektach opakowaniowych i w bi-
bliotekach programistycznych. Jest katalog główny, ale wraz z pojawieniem się każdej wersji zo-
staje utworzona nowa gałąz. Za każdym razem, gdy wychodzi podwersja, dodaje się znacznik.
Przedstawiono to schematycznie na rysunku 8.5.
Rysunek 8.5. Struktura repozytorium z ga ziami i znacznikami w organizacji katalogów wed ug wersji programu
10
Jest to tylko zalecany standard, ale nie ma obowiązku tworzenia katalogów branches i tags.
Poleć ksi k
Kup ksi k
KONTROLA JAKO CI 253
W tym modelu nowe wersje są wyprowadzane w postaci gałęzi. Praca nad nową wersją odbywa się
na pniu, po czym następuje wydanie głównej wersji, a mniejsze wersje i poprawki błędów są roz-
mieszczone wzdłuż gałęzi. Gdy w użyciu jest kilka wersji oprogramowania jednocześnie, poprawki
usterek można też połączyć między gałęziami (więcej na temat łączenia piszemy nieco dalej).
Ga dla ka dej funkcji
Tę strategię zarządzania najczęściej stosuje się w projektach internetowych, głównie dlatego, że
koszty przesyłania są bardzo niskie (zwłaszcza gdy korzysta się z automatycznych rozwiązań
wdrażania, o których będzie mowa w podrozdziale  Automatyzacja procesu wdrażania ). W tym
podejściu tworzy się nową gałąz dla każdej nowej funkcji programu. Większość zespołów godzi się
na pewne szybkie poprawki bezpośrednio na pniu, ale tylko wtedy, kiedy dany zespół uważa, że
jest to akceptowalne. Struktura repozytorium w tym wypadku wygląda tak jak na rysunku 8.6.
Rysunek 8.6. Repozytorium z ga ziami utworzonymi dla wi kszych funkcji
Dla każdej nowej funkcji programu  np. dla opcji logowania do systemu przy użyciu Twittera
 tworzona jest nowa gałąz. Pózniej programiści zajmujący się tą funkcją mogą współpracować
w normalny sposób, aż do jej ukończenia. Następnie można wszystko scalić z pniem.
Poleć ksi k
Kup ksi k
254 Mistrz PHP. Pisz nowoczesny kod
Rozproszone systemy kontroli wersji
Coraz częściej zespoły programistyczne  głównie pracujące nad projektami otwartymi, ale
zdarzają się i komercyjne  decydują się na używanie rozproszonych systemów kontroli wersji.
Istnieje sporo programów tego typu, a najważniejsze z nich to:
Git,
Mercurial11 (znany też pod nazwą Hg, która jest symbolem chemicznym pierwiastka rtęć 
czyli mercury po angielsku),
Bazaar12 (znany też pod nazwą bzr).
Wszystkie wymienione programy mają podobną funkcjonalność i każdy z nich działa na podob-
nych zasadach, dlatego też nie będziemy koncentrować się na żadnym konkretnym, lecz opiszemy
koncepcje rozproszonej kontroli wersji w ujęciu ogólnym.
Cechą charakterystyczną odróżniającą systemy rozproszone od innych jest brak centralnego
punktu. W systemie znajduje się wiele repozytoriów i każde z nich może wymieniać zatwierdzenia
z pozostałymi. Na rysunku 8.4 przedstawiono schemat scentralizowanego repozytorium. W sys-
temie rozproszonym nie pobiera się kodu z centralnego repozytorium, zamiast tego klonuje się je
w celu utworzenia nowego własnego repozytorium. Zamiast kopii roboczych wszyscy mają repo-
zytoria, a każde z nich jest połączone z wszystkimi pozostałymi. Schematycznie układ ten można
przedstawić tak jak na rysunku 8.7.
Rysunek 8.7. Repozytoria typowego systemu rozproszonego
11
http://mercurial.selenic.com/.
12
http://bazaar.canonical.com/en/.
Poleć ksi k
Kup ksi k
KONTROLA JAKO CI 255
Użytkownicy mogą przesyłać zmiany ze swoich repozytoriów do innych oraz pobierać je z innych
do swoich. Daje to szersze pole działania niż w scentralizowanych systemach, ale oznacza rów-
nież, że jest więcej rzeczy, które trzeba wiedzieć, przez co nauka korzystania z systemów rozpro-
szonych zazwyczaj trwa dłużej. Zwyczajowo jednemu z repozytoriów nadaje się rangę głównego,
ale znajduje to odzwierciedlenie tylko w nazwie i nie pociąga za sobą nadania żadnych specjal-
nych właściwości. Po prostu głównym repozytorium jest to, które uwzględnia się w wykonywaniu
kopii zapasowej i którego używa się jako bazy do wdrażania.
Jeśli planujesz zamienić system scentralizowany na rozproszony, musisz pamiętać o kilku istot- [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kajaszek.htw.pl