SVN (Apache Subversion)

SVN (Subversion) je centralizovaný systém správy verzí (VCS). Slouží k ukládání a sledování změn ve zdrojových kódech, dokumentaci a jiných souborech. Na rozdíl od modernějších distribuovaných systémů (jako je Git) sází SVN na model „jednoho centrálního úložiště“ (Single Source of Truth).

V naší digitální architektuře SVN stále využíváme pro údržbu starších (legacy) systémů a pro ukládání velmi rozsáhlých binárních souborů (např. grafické podklady v TIFF), kde je centralizovaná správa výhodnější.

Architektura a princip fungování

SVN využívá model Client-Server:

Server: Hostuje centrální databázi (repository) se všemi verzemi souborů. V naší síti běží typicky na VPS s operačním systémem Linux.

Klient: Vývojář si „vytáhne“ (Checkout) pracovní kopii souborů na svůj lokální stroj, provede změny a následně je „odevzdá“ (Commit) zpět na server.

Klíčové operace v SVN

Checkout: Stažení nejnovější verze projektu z VPC serveru.

Update: Aktualizace lokální kopie o změny, které mezitím provedli kolegové.

Commit: Odeslání vlastních změn do centrálního úložiště (vyžaduje zadání popisu změny, který se propisuje do systému Jira).

Revert: Vrácení souboru do stavu před úpravami, pokud se objeví chyba.

Výhody a nevýhody v kontextu [[ZIF]]

Vlastnost	Výhoda / Nevýhoda	Popis
Centralizace	Výhoda	Snadná kontrola přístupových práv přes UID.
Zamykání souborů	Výhoda	Ideální pro binární data (TIFF, PDF), kde nelze automaticky slučovat změny.
Závislost na síti	Nevýhoda	Pro commit nebo prohlížení historie je nutné připojení k WAN.
Rychlost	Nevýhoda	Operace s historií jsou pomalejší než u distribuovaných systémů.

Bezpečnost a správa

V rámci kybernetické bezpečnosti uplatňujeme pro SVN tato pravidla:

Šifrování: Přístup k SVN je povolen výhradně přes protokol HTTPS (využívající TLS) nebo skrze tunel SSH.

Zálohování: Centrální repository je každodenně zálohováno, aby nedošlo ke ztrátě historie vývoje.

Audit: Každý commit je logován a musí být spárován s existujícím úkolem v systému Jira.

Doporučení pro vývojáře: Pokud začínáte nový projekt, který se skládá primárně z textových zdrojových kódů, zvažte použití Gitu. SVN používejte pouze v případě, že pracujete na stávajícím projektu nebo potřebujete spravovat objemná data, která by zpomalovala distribuované systémy.

— Související stránky: ZIF, VCS, Vývojový tým, VPS, Tux, VPC, WAN, UID, TLS, SSH, Jira, TIFF