Obecné informace o SVN

Subversion je nástroj pro správu verzí zdrojových kódů při vývoji aplikací. Umožňuje tak spolupráci několika lidí na jednom projektu. Tento nástroj je vyvíjen firmou CollabNet, Inc. a je šířen pod licencí, která umožňuje jeho bezplatné komerční použití, k dispozici jsou zdrojové kódy. Z části je Subversion systémem inspirován z CVS, je však mnohem flexibilnější a jeho používání je snazší. Skládá se ze dvou hlavních částí – klientská část a serverová. Klientská část poskytuje nástroje pro práci s verzemi přímo v pracovním adresáři a komunikaci se serverovou částí, která se stará o repository (centrální úložiště). K repository lze přistupovat různými způsoby (lokálně, přes nativní protokol svn://, DAV). Klientských nástrojů existuje celá řada. Od příkazové řádky, přes webové rozhraní až po nástroje integrované do GUI operačního systému.

Správa verzí pomocí Subversion

Pro příklad kdy máte již v repository importovaný projekt. Vyzvedněte si projekt (tzv. checkout) z repository do adresáře v počítači. Tím se vytvoří pracovní kopie, která je Vašim pracovním prostorem. Nyní můžete soubory editovat, mazat nebo přidávat. Po ukončení práce odešlete vše do repozitáře (tzv. commit). Vámi provedené změny, včetně času odeslání do repository, autora a komentáře, jsou pak viditelné pro všechny uživatele repository.

GUI klienti pro Subversion

Klient pro Windows: tortoisesvn.net/downloads.html (doporučujeme používat verzi 1.8.10)

Klient pro KDE: kdesvn.alwins-world.de

Klient pro MAC: versionsapp.com

Z vývojových prostředí podporují SVN například www.eclipse.org

Administrace repozitáře

SVN repozitář založíte v administraci hostingového účtu, sekce Subversion.

Pokud v administraci svn repozitář odstraníte, není z bezpečnostních důvodů na serveru odstraněn. Lze jej pak smazat (přesunout) ručně přes SSH přístup.

Rozkopírování projektu na (sub)doménu

Pokud je vyvíjen projekt za pomocí subversion je tu možnost jak pomocí shellu zařídit rozkopírování dat do prostoru www serveru.

V domovském adresáři si vytvořte soubor a pojmenujte jej například export.sh

touch export.sh; mcedit export.sh

Vložte následující text a uložte klávesou F2

#!/bin/bash

cd [adresa k rozkopírování]

$USER [uživatelské jmeno k subversion]

$PASSWD [uživatelksé heslo k subversion]

svn --trust-server-cert --no-auth-cache --non-interactive --username $USER --password $PASSWD --force export https://subversion.NAZEV_UCTU.savana-hosting.cz/nazev_subversion

Pro samotný proces rozkopírování poté stačí po přihlášení k SSH spustit vytvořený skript - sh export.sh

Pokročilá oprávnění

Příklad konfigurace pro pokročilé oprávnění. Vychází ze souboru authz. Lze v něm definovat jen uživatele nebo i složitější konstrukce přes skupiny. Všichni použití uživatele musí být definování v položce “Povolení uživatelé”.

[groups]

cte = kremilek, mochomurka

pracuje = kremilek, mochomurka, ja

[/] @cte = r] kremilek = rw

[/app/trunk] @cte = r @pracuje = rw ja = rw

Vytvoří prvni skupinu “cte” s dvema cleny (kremilek a mochomurka)
Vytvoří druhou skupinu s nazvem “pracuje” a cleny (kremilek, mochomurka, ja)

Pro přistup do kořenu repozitaře se pak nastaví prava přístupu
- skupina “cte” ma prava pouze na cteni
- uzivatel kremilek ma pravo pro cteni a zapis

Pro trunk v app jsou prava nastavena takto
- skupina “cte” muze pouze cist
- “pracuje” ma pravo cteni a zapisu
- uzivatel ja ma take pravo pro cteni a zapis

Nastaveni na základě událostí

Pro pokročilejší uživatele je pak dostupná možnost aktivovat a využívat tzv HOOKy.

Jejich editaci lze provádět pomocí SSH přístupu v adresari /mnt/napoveda/data/svn/NAZEV_SVN/hooks

English Česky Dutch