Subversion

del.icio.us del.icio.us
Digg Digg
Furl Furl
Reddit Reddit
Rojo Rojo
Add to OnlyWire

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.

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 utworzenia 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.

Pozostałe funkcje

  • Własny protokół klient/serwer.
  • Protokół umożliwia przesyłanie różnic w plikach od klienta do serwera i odwrotnie.
  • Rozmiar przesyłanych danych przy zmianie pliku jest proporcjonalny do rozmiaru zmian, a nie pliku.
  • Efektywna obsługa plików binarnych.
  • Licencja Open Source typu Apache.
  • Repozytorium przechowywane w bazie danych lub w systemie plików.

Zobacz też

Wikibooks
Zobacz publikację na Wikibooks:
Subversion

Linki zewnętrzne

This article is from Wikipedia. All text is available under the terms of the GNU Free Documentation License.


Giant Panda

Mercedes Car
James Bond Guide
This site monitored by SitePinger.net