Kapitola 3. Úložisko

Obsah

Vytvorenie úložiska
Vytvorenie úložiska pomocou príkazového radku.
Vytváranie úložiska s TortoiseSVN
Lokálny prístup do úložiska
Prístup k úložisku v zdielanej sieti.
Návrh úložiska
Záloha úložiska
Serverovské pripnuté (hook) skripty
Získané odkazy
Pristupovanie k úložisku
Server založený na Svnserve
Úvod
Inštalácia svnserve
Spustenie svnserve
Základná auhentifikácia so svnserve
Lepšie zabezpečenie pomocou SASL
Authentication with svn+ssh
Path-based Authorization with svnserve
Server na báze Apache
Úvod
Installing Apache
Inštalácia subversion
Konfigurácia
Multiple Repositories
Path-Based Authorization
Authentication With a Windows Domain
Multiple Authentication Sources
Zabezpečenie servera pomocou SSL
Using client certificates with virtual SSL hosts

Nezáleží na toma, aký protokol používate pre prístup k svojim úložiskám, vždy je potrebné vytvoriť aspoň jedeno úložisko. To sa môže vykonať s pomocou príkazového riadku subverzie klienta alebo s TortoiseSVN.

Ak nemáte vytvorené úložisko so subverziou, je čas to urobiť teraz.

Vytvorenie úložiska

Môžete si vytvoriť úložisko s backend FSFS alebo starší formát Berkeley databázy (BDB). Formát FSFS je všeobecne rýchlejší a jednoduchší na správu, a funguje aj v zdielaných sietiach aj vo Windows 98 bez problémov. Formát BDB bolo kedysi považovaný za viac stabilný, pretože sa používal veľmi dlhú dobu, ale odkedy FSFS sa používa v oblasti už niekoľko rokov, tento argument je teraz skôr nepostačujúci. Prečítajte si Výber dátoveho skladu v Subversion knihe pre viac informacií.

Vytvorenie úložiska pomocou príkazového radku.

  1. Vytvorte prázdnu zložku s názvom SVN (napr. D:\SVN\), ktorý sa používa ako root pre všetky vaše úložiská.

  2. Vytvorte si ďalšiu zložku MyNewRepository v D:\SVN\.

  3. Otvorte príkazový riadok (alebo DOS-Box), nastavte sa na D:\SVN\ a napíšte

     
    svnadmin create --fs-type bdb MyNewRepository 
    

    alebo

     
    svnadmin create --fs-type fsfs MyNewRepository 
    

Teraz máte nové úložisko nachádzajúce sa vD:\SVN\MyNewRepository.

Vytváranie úložiska s TortoiseSVN

Obrázok 3.1. Menu TortoiseSVN pre neverzované zložky

Menu TortoiseSVN pre neverzované zložky

  1. Otvorte Windows prieskumník

  2. Vytvorte novú zložku s názvom napr. SVNRepository

  3. Right-click na novo vytvorenú zložku a vyberte TortoiseSVN vytvoriť úložisko tu...

    Potom je úložisko vytvorené vo vnútri novej zložky. Neupravujte tieto súbory!!! Ak sa vyskytnú nejaké chyby, preverte, aby zložka bola prázdna a nebola chránená proti zápisu.

    You will also be asked whether you want to create a directory structure within the repository. Find out about layout options in “Návrh úložiska”.

    TortoiseSVN will set a custom folder icon when it creates a repository so you can identify local repositories more easily. If you create a repository using the official command line client this folder icon is not assigned.

Tip

TortoiseSVN už neponúka možnosť vytvoriť BDB úložiská, aj keď môžete stále používať príkazový riadok klienta na ich vytvorenie. FSFS úložiská sú všeobecne jednoduhšie na údržbu a taktiež má jednoduchšiu údržbu TortoiseSVN s kompatibilitou medzi rôznymi BDB verziami.

TortoiseSVN does not support file:// access to BDB repositories due to these compatibility issues, although it will of course always support this repository format when accessed via a server through the svn://, http:// or https:// protocols.

Samozrejme taktiež odporúčame, aby ste nepoužívali file:// prítup vôbec, okrem lokálnych testov. Používanie servera je viacej bezpečnejšie a splahlivejšie pre viacerých ako pre samotného vývojára.

Lokálny prístup do úložiska

Pre prístup k vašemu lokálnemu úložisku potrebujete cestu ku tej zložke. Len pre pirpomenutie, Subversion očakáva, že všetky úložiská sa nachádzajú v file:///C:/SVNRepository/. Všimnite si použitie lomítok pri zápise.

Pre prístup k úložisku, ktoré sa nachádza v zdielanej sieti môžete použit mapovanie disku, alebo použiť UNC cestu. Pre UNC csety je formát zápisu file://ServerName/path/to/repos/. Všimnite si, že na začiatku sú iba 2 lomítka.

Pred SVN 1.2, UNC cesty mali trochu nezrozumiteľný tvar file:///\ServerName/path/to/repos. Tento zápis je stále podporovaný, ale nie je odporúčaný.

Varovanie

Nevytvárajte ani neotvárajte Berkeley DB úložisko v zdielanej sieti. Berkeley DB úložisko nemôže existovať na vzdialenom súborovom systéme. Dokonca ani keď máte sieťovú mechaniku zmenenú na drive letter. Ak sa pokúsite použiť Berkeley DB na sieťové zdieľanie, výsledky sú nepredvídateľné - môžte hneď vidieť záhadné errors, alebo môžu prejsť mesiace než objavíte, že vaša databáza úložiska je nepatrne poškodená.

Prístup k úložisku v zdielanej sieti.

Aj keď je teoreticky možne používať FSFS úložisko v zdielanej sieti s prístupom pre viacej užívateľov s použitím file:// protokolu, nie je to odporúčané. Dôrazne vás od tohoto kroku odrádzame a nepodporujeme takéto používanie.

Po prvé dávate užívatelovi právo na zápis do úložiska, takže hociktorý užívateľ môže náhodne zmazať celé úložisko, alebo ho môže nejakým iným spôsobom spraviť nepoužiteľným.

Po druhé nie všetky protokoly na zdielanie súborov podporujú uzamykanie, ktoré Subversion vyžaduje, takže si môžete nájsť svoje úložisko poškodené. Toto sa nemusí stať hneď, ale jedného dňa sa stane, že dvaja užívatelia sa pokúsia otovriť úložiská v rovnakom čase.

Po tretie, prístupové práva musia byť nastavené. Môžete to obísť zdielaním pomocou Windowsu, ale SAMBA je dosť zložitá na nastavenie.

file:// prístup je určený pre miestne zdielanie, pre jedného užívateľa iba a predovšetkým na testovanie a ladenie. Keď chcete zdielať úložisko skutočne potrebujete nastaviť správne server a nie je to až také tažke ako si myslíte. Prečítajte si “Pristupovanie k úložisku” pre pokyny pri výbere nastavenie servera.

Návrh úložiska

Predtým ako importujete údaje do úložiska maly by ste najskôr porozmýšlať, ako ako budú usporadúvané. Ak použijete jeden z odporučených návrhov, neskôr si uľahčíte mnohé veci.

Existuju určité štandardy a odporúčané spôsoby ako organizovať úložisko. Väčšinou stači vytvoriť trunk adresár, v ktorom je “hlavná vetva”, branches adresár, ktorý obsahuje kópie vetiev a tags adresár s obsahom menných kópii. Ak je v úložisku iba jeden projekt, tak stači vytvoriť tieto vrcholové adresáre:

/trunk
/branches
/tags

Because this layout is so commonly used, when you create a new repository using TortoiseSVN, it will also offer to create the directory structure for you.

Ak úložisko obsahuje viacero projektov, ľudia často indexujú ich vrstvy podla vetiev:

/trunk/paint
/trunk/calc
/branches/paint
/branches/calc
/tags/paint
/tags/calc

...alebo podľa projektov:

/paint/trunk
/paint/branches
/paint/tags
/calc/trunk
/calc/branches
/calc/tags

Idexovanie projektu má zmysel iba vtedy, kedy projekty nie sú podobné a každý je udržiavaný osobitne. Pre podobné projekty, ktoré chcete spravovať v kope, alebo projekty, ktoré sú štandardne distribuované v jednom balíčku je lepšie indexovať podľa vetiev. Tento spôsob ma iba jednu hlavnú líniu a a vzťahy medzi podprojektami su jednoduchšie viditeľné.

Ak použijete ako vrcholové adresáre /trunk /tags /branches máte kópiu celej hlavnej línie pre vetvy aj menovky a takáto štrktúra ponúka lepšie felxibility.

Pre nesúvisiace projekty môžete použiť oddelené úložiská. Keď odovzdáte zmeny, tak sa mení revízne čislo celého úložiska, nie revizné číslo projektu. Pri zdielaní 2 roznych projektoch v jednom úložisku môže nastať množstvo prerušení v revíznych číslach. Subversion a TortoiseSVN projekty sa tvaria ako pod jendou adresou, ale ich úplná nezávislosť úložísk poskytuje nezávislý vývoj a žiadny zmätok v build číslach.

Samozrejme nemusíte dodržiavať tieto štandardné návrhy. Môžete si vytvoriť hociaké rozčlenenie, ktoré vyhovuje najviac vášmu tímu. Zapamätajte si, že akýkoľvek spôsob si vyberiete nie je to nemeniteľné. Môžete si pretvoriť vaše úložisko kedykoľvek. Pretože vetvy a menovky sú bežné adresáre, TortoiseSVN ich môže premenovať alebo presunúť ako vy chcete.

Zmena jedného návrhu na iný je len záležitosť, ktorú vykonáva server. Ak nemáte redi spôsob akým sú organizované veci v úložisku, stači sa len pohrať s adresármi.

Takže, ak ešte nemáte vytvorenú základnú štruktúru adresaru vo vnútri úložiska mali by ste tak urobiť teraz. Sú dva sposoby ako to docieliť. Ak chcete jednoduch vytvoriť /trunk /tags /branches štruktúru, môžete použiť úložiskový prehliadač na vytvorenie 3 adresárov (3 oddelené odovzdávanie). Ak chcete vytvoriť hlbšiu štruktúru, potom je jednoduhšie vytvoriť adresár na disku a importovať ho v jednom odovzdaní nasledovne

  1. vytvorte si na vašom hardisku prázdny adresár

  2. vytvorte si požadovanú vrcholovú štruktúru adresárov vo vnútri toho adresára - nevkladajte tam žiadne súbory zatiaľ!

  3. importujte túto štruktúru do úložiska cez right click na adresári, ktorý obsahuje túto adresárovú štruktúru a vyberte TortoiseSVNImport.... V import dialógu napíšte URL vášho úložiska a kliknite OK. Toto importuje váš dočasný adresár to koreňa úložiska pre vytvorenie základného rozčlenenia úložiska.

Meno adresára, ktorý importujete sa nukáže v úložisku, iba jeho obsah. Napríklad vytvorte adresárovú štruktúru nasledovne:

C:\Temp\New\trunk
C:\Temp\New\branches
C:\Temp\New\tags

Imoprtujte C:\Temp\Newdo korena úložiska, ktroý vyzrá takto:

/trunk
/branches
/tags