Twórca | CollabNet |
---|---|
Opracowany przez | Fundacja oprogramowania Apache |
Pierwsza wersja | 20 października 2000 |
Ostatnia wersja | 1.14.1 (10 lutego 2021 r) |
Kaucja | svn.apache.org/repos/asf/subversion/trunk |
Napisane w | VS |
System operacyjny | GNU / Linux , Microsoft Windows , macOS i BSD ( d ) |
Rodzaj | Scentralizowane zarządzanie wersjami ( d ) |
Licencja | Licencja Apache w wersji 2.0 |
Stronie internetowej | subversion.apache.org |
Subversion (w skrócie svn ) to oprogramowanie do kontroli wersji , wydane na licencji Apache . Został zaprojektowany, aby zastąpić CVS . Jego autorzy dobrowolnie opierają się na tych samych koncepcjach (w szczególności na zasadzie scentralizowanego i pojedynczego repozytorium ) i uważają, że model CVS jest dobry, tylko jego implementacja może zostać ulepszona.
Dlatego Subversion działa w trybie klient-serwer , z:
Projekt został uruchomiony w Luty 2000przez CollabNet , z zatrudnieniem przez Jima Blandy'ego z Karla Fogela , który już pracował nad nowym oprogramowaniem do kontroli wersji.
Plik 14 lutego 2010, SVN oficjalnie stało się projektem Fundacji Apache , przyjmując nazwę Apache Subversion .
Subversion zostało napisane w celu wypełnienia niektórych luk w CVS .
Oto główne wkłady:
Z punktu widzenia zwykłego użytkownika, główne zmiany przy przejściu na Subversion to:
Jedną z osobliwości Subversion jest to, że nie rozróżnia etykiety , gałęzi i katalogu . To prosta konwencja nazewnictwa dla użytkowników. To sprawia, że porównanie etykiety i gałęzi lub innego krzyża jest bardzo łatwe .
Niezależnie od systemu kontroli wersji, wielocyfrowe numery wersji są trudne do zapamiętania. Z tego powodu wiele systemów pozwala użytkownikowi zdefiniować tagi jako łatwiejsze do zapamiętania synonimy. Ale to, co Subversion zaleca używanie jako znacznika, ma zupełnie inny charakter: po wykonaniu polecenia svn copyznacznik Subversion absolutnie nie pamięta, z jakiego numeru wersji pochodzi. Podczas gdy w większości innych systemów tag jest odniesieniem , „tag” Subversion jest tylko kopią. Dostępnych jest tylko kilka predefiniowanych odniesień: HEAD, PREV, BASE, COMMITTED.
Inną różnicą jest to, że tagi w innych systemach są punktami w czasie, podczas gdy Subversion zaleca definiowanie tagów jako punktów w przestrzeni systemu plików.
Ten brak tagu w zwykłym sensie sprawia, że niektóre operacje w Subversion są trochę mniej praktyczne. Na przykład znalezienie tego, co zmieniło się z jednego znacznika na inny w pliku, jest nieco bardziej skomplikowane niż uruchomienie prostego polecenia: svn diff -r tag1:tag2 monfichierw katalogu roboczym.
Inne operacje stają się niemożliwe: na przykład polecenie takie jak svn log -r tag1:tag2 monfichiernie działa i nie ma alternatywy, która działa.
Aby przezwyciężyć te niedociągnięcia, na listach dyskusyjnych SVN zaproponowano dodanie „etykiet” lub „aliasów”. Etykiety te byłyby równoważne tagom z innych systemów, takich jak CVS , git lub inne. W 2010 r. Sugestia ta nie wyszła poza etap dyskusji.
Zamówione | Znaczenie |
---|---|
Dodaj | Zadeklaruj dodanie nowego zasobu dla następnego zatwierdzenia. |
winić | Pozwala dowiedzieć się, który współautor przesłał wiersze pliku. |
kasy (co) | Lokalnie pobiera wersję i jej metadane z repozytorium. |
sprzątać | Wyczyść kopię lokalną, aby przywrócić ją do stabilnego stanu. |
zatwierdzić (ci) | Zapisuje lokalne zmiany w repozytorium tworząc nową wersję. |
kopiuj (cp) | Skopiuj zasoby do innej lokalizacji (lokalnie lub w repozytorium). |
usuń (rm) | Zadeklaruj usunięcie istniejącego zasobu dla następnego zatwierdzenia (lub bezpośrednio usuń zasób z repozytorium). |
diff (di) | Oblicza różnicę między dwiema wersjami (umożliwia utworzenie poprawki do zastosowania w kopii lokalnej). |
eksport | Pobiera wersję bez metadanych z repozytorium lub kopii lokalnej. |
import | Wysyła lokalne drzewo do repozytorium. |
info | Zawiera informacje o pochodzeniu lokalnej kopii. |
lista (ls) | Wyświetla wpisy w katalogu repozytorium. |
zamek | Blokuje plik. |
log | Daje komunikaty o zatwierdzeniu zasobu. |
łączyć | Oblicza różnicę między dwiema wersjami i stosuje tę różnicę do kopii lokalnej. |
ruch (mv) | Deklaruje ruch zasobu. |
propdel (pd) | Usuwa własność pliku. |
propedit (pe) | Edytuj wartość właściwości. |
propget (pg) | Zwraca wartość właściwości. |
proplist (niemęskoos.) | Wyświetla listę właściwości. |
propset (ps) | Dodaje właściwość. |
zdecydowany | Służy do deklarowania, że konflikt modyfikacji został rozwiązany. |
Odwracać | Przywraca daną wersję zasobu. Lokalne zmiany są nadpisywane. |
status (st) | Wskazuje wprowadzone zmiany. |
przełącznik (sw) | Przełącz się na inną wersję / gałąź repozytorium. |
aktualizacja (w górę) | Aktualizuje istniejącą kopię lokalną z ostatniej wersji dostępnej w repozytorium. |
odblokować | Usuń blokadę. |
Dostęp do serwera subversion można uzyskać za pomocą jego natywnego protokołu (domyślny port TCP: 3690) lub przez połączenie HTTP (serwer musi wtedy obsługiwać rozszerzenia WebDAV). Te dwa tryby dostępu można zabezpieczyć w warstwie transportowej (tunel SSH lub HTTPS), co jest szczególnie zalecane w przypadku serwerów w sieci publicznej takiej jak Internet.
Oprócz narzędzia wiersza poleceń istnieje kilka programów wyposażonych w interfejs graficzny, w postaci samodzielnych plików wykonywalnych , ale także wtyczek, w szczególności dla EDI .
Obecnie dostępne są dwa typy serwerów subversion:
Na serwerach Windows oprogramowanie VisualSvn Server umożliwia pakowanie Apache + Subversion z automatyczną konfiguracją i graficzną konsolą administracyjną serwera do zarządzania prawami z serwera Active Directory ...