Wstęp do systemów kontroli wersji

Transkrypt

Wstęp do systemów kontroli wersji
KOŁO NAUKOWE
INFORMATYKÓW
SYSTEMY KONTROLI WERSJI – CZ.1 16 XII 2009
OPRACOWAŁ: PRZEMYSŁAW PARDEL
Katedra Informatyki, Uniwersytet Rzeszowski
2009
Agenda




System kontroli wersji
CVS
SVN
Praca z SVN i Visual Studio
 Narzędzia
 Tworzenie
repozytorium
 Dodawanie
Solucji do repozytorium
 Dodawanie plików do repozytorium
 Otwieranie
projektu z repozytorium
 Lock-owanie i od-lock-owanie pliku
System kontroli wersji
System kontroli wersji


System kontroli wersji (ang. version/revision control
system) służy do śledzenia zmian głównie w kodzie
źródłowym oraz pomocy programistom w łączeniu
i modyfikacji zmian dokonanych przez wiele osób w
różnych momentach.
Systemy kontroli wersji można podzielić na
scentralizowane, oparte na architekturze klient-serwer (np.
CVS, Subversion) - istnieje jedno centralne repozytorium,
z którym wszyscy użytkownicy systemu synchronizują swoje
zmiany
 rozproszone, oparte na architekturze P2P (np. BitKeeper,
Code Co-op, svk, Git) - pozwalają na prowadzenie
równoprawnych, niezależnych gałęzi, które można dowolnie
synchronizować ze sobą nawzajem, np. poprzez e-mail
(Code Co-op)

Rola kontroli wersji


Zarządzanie kodem źródłowym w trakcie realizacji
projektu jest jednym z najważniejszych aspektów,
które mogą decydować o powodzeniu lub porażce
przedsięwzięcia.
System do składowania i obsługi procesu tworzenia
kodu źródłowego powinien być stale dostępny,
utrzymywany i wykorzystywany na co dzień.
Rola kontroli wersji cd…

Podstawowym zadaniem systemu kontroli wersji jest:
składowanie kolejnych wersji kodu źródłowego,
 umożliwienie
jednoczesnej pracy wieloosobowym
zespołom programistycznym, minimalizując konflikty
zmian kodu, a także łatwe odwoływanie się do
dowolnej wersji kodu.


Taki system działa jednocześnie jako kopia
zapasowa oraz jako archiwum wszystkich zmian
kodu.
CVS
CVS



CVS (ang. Concurrent Versions System) to popularny
system kontroli wersji udostępniany na licencji GPL.
Został stworzony do pracy grupowej nad kodem
programów lub innych projektów realizowanych
w zapisie elektronicznym. CVS zbudowany jest
w architekturze klient/serwer.
Od początku lat 90. XX wieku CVS jest
wykorzystywany jako narzędzie pracy grupowej
w wielu projektach programistycznych, których
współpraca opiera się na wykorzystaniu Internetu m.in. całe systemy operacyjne jak FreeBSD czy NetBSD
oraz wielu mniejszych przedsięwzięciach.
Stopniowo zastępowany przez bardziej niezawodny
Subversion.
SVN
SVN


Subversion (znany również jako SVN) - system
kontroli wersji, który powstał w celu zastąpienia
CVS. Funkcjonalnie jest z nim zgodny w większości
przypadków, z kompatybilności zrezygnowano
tylko tam, gdzie było to niezbędne. SVN jest
wolnym oprogramowaniem na licencji Apache.
Strona domowa Subversion http://subversion.tigris.org/
SVN …

Zmiany w stosunku do CVS












Historia zmian nazw katalogów i plików
Brak historii wprowadzanych zmian nazw katalogów był jedną z najczęściej krytykowanych wad CVS. Subversion
zapisuje nie tylko zawartość pliku oraz informacje czy dany plik istnieje, ale także położenie pliku w katalogach, jego
kopie, zmiany nazw. Pozwala również zapamiętywać właściwości danego pliku lub katalogu np. flagi wykonywalności
itp.
Zmiany są transakcjami atomowymi
Zmiany w kilku plikach lub katalogach odnoszą skutek tylko wtedy, gdy wszystkie modyfikacje zostały zakończone
pomyślnie. W CVS możliwa była sytuacja, gdy część plików została zaktualizowana, a część nie, np. w przypadku
zerwania połączenia sieciowego.
Możliwość użycia serwera Apache
Subversion może używać protokołu bazującego na HTTP - WebDAV/DeltaV do komunikacji sieciowej, serwer webowy
Apache zapewnia dostęp do sieci po stronie repozytorium. To daje Subversion przewagę nad CVS i wprowadza za
darmo ważne funkcje takie, jak: uwierzytelnianie i autoryzację użytkowników, kompresję przesyłanych danych, oraz
podstawowy dostęp do repozytorium.
Dostępny samodzielny serwer
Subversion umożliwia dostęp do repozytorium przez dedykowany serwer, niezależny od serwera http. Jest on
uruchamiany jako usługa inetd, lub oddzielny demon. Oferuje on podstawowe uwierzytelnianie i autoryzację
użytkowników. Umożliwia także tworzenie połączeń szyfrowanych.
Szybkie tworzenie gałęzi i znaczników
W odróżnieniu do CVS gdzie dodawanie gałęzi (branches) i znaczników (ang. tags) z powodu organizacji mogło być
czasochłonne, w SVN operacje te bazują na szybkim kopiowaniu – kopie zajmują małą, stałą przestrzeń.
Podział kodu na moduły
Subversion zaprojektowano w architekturze klient–serwer. W celu ominięcia niektórych problemów CVS kod został
podzielony na moduły. Aplikacje zewnętrzne mogą się z nimi komunikować za pomocą dobrze opisanych interfejsów.
Praca z SVN i Visual Studio
Narzędzia
 TortoiseSVN
– SVN klient i serwer
http://tortoisesvn.tigris.org/
 AnkhSVN
– plugin do Visual Studio
http://ankhsvn.open.collab.net/
Tworzenie repozytorium

W wybranej lokalizacji (Folder)

Przeglądanie repozytorium
Dodawanie Solucji do repozytorium
Dodawanie Solucji do repozytorium
cd…
Solucja w repozytorium
Dodawanie plików do repozytorium
Dodawanie plików do repozytorium
cd…
Dodawanie plików do repozytorium
cd…
Otwieranie projektu z repozytorium
Lock-owanie plików
Lock-owanie plików
Od-lock-owanie pliku
Dziękuję

Podobne dokumenty