Poglavje 3. Skladišče

Kazalo

Ustvarjanje skladišča
Ustvarjanje skladišča z odjemalcem za ukazno vrstico
Ustvarjanje skladišča s programom TortoiseSVN
Krajevni dostop do skladišča
Dostop do skladišča na deljenem omrežnem pogonu
Postavitev skladišča
Varnostna kopija skladišča
Server side hook scripts
Povezave za prevzem
Accessing the Repository

Ne glede na uporabljen protokol za dostop do skladišča morate vedno ustvariti vsaj eno skladišče. To lahko storite preko ukazne vrstice (Subversion) ali preko grafičnega vmesnika (TortoiseSVN).

Če še niste ustvarili skladišča Subversion, je sedaj čas, da to storite.

Ustvarjanje skladišča

Ustvarjanje skladišča z odjemalcem za ukazno vrstico

  1. Ustvarite prazno mapo z imenom SVN (n.pr. D:\SVN\), ki se uporablja kot korenska mapa za vsa vaša skladišča.

  2. Ustvarite še eno mapo iz imenom MojeNovoSkladišče znotraj D:\SVN\.

  3. Open the command prompt (or DOS-Box), change into D:\SVN\ and type

    svnadmin create --fs-type fsfs MyNewRepository
              

Sedaj imate novo skladišče na lokaciji D:\SVN\MojeNovoSkladišče.

Ustvarjanje skladišča s programom TortoiseSVN

Slika 3.1. Menu TortoiseSVN za datoteke brez različic

Menu TortoiseSVN za datoteke brez različic

  1. Odprite Raziskovalca

  2. Ustvarite novo mapo in jo poimenujte npr. SkladiščeSVN

  3. Right click on the newly created folder and select TortoiseSVNCreate Repository here....

    Skladišče se ustvari znotraj nove mape. Datotek v v novi mapi ne urejajte sami!!!. Če se pojavijo kakšne napake, preverite, ali je mapa res prazna in da ni zaščitena proti pisanju.

    You will also be asked whether you want to create a directory structure within the repository. Find out about layout options in “Postavitev skladišča”.

    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.

Namig

We also recommend that you don't use file:// access at all, apart from local testing purposes. Using a server is more secure and more reliable for all but single-developer use.

Krajevni dostop do skladišča

Za dostop do krajevnega skladišča potrebujete le pot do skladišča. Zapomnite si, da Subversion pričakuje pot do skladišč oblike file:///C:/SkladiščeSVN/. Upoštevajte, da morate uporabljati poševnico in ne obrnjeno poševnico.

Za dostop do skladišča na mapi v skupni rabi v omrežju lahko uporabite preslikavo pogona ali pa pot UNC. Za poti UNC je oblika naslova URL file://ImeStrežnika/pot/do/skladišča/. Upoštevajte, da je potrebno na začetku uporabiti le dve poševnici.

Pred različico Subversion 1.2 so morale biti poti UNC podane v nekoliko bolj obskurni obliki file:///\ImeStrežnika/pot/do/skladišča. Ta oblika je še vedno možna, vendar ni priporočljiva.

Dostop do skladišča na deljenem omrežnem pogonu

Although in theory it is possible to put a FSFS repository on a network share and have multiple users access it using file:// protocol, this is most definitely not recommended. In fact we would strongly discourage it, and do not support such use for various reasons:

  • Prva težava je, da uporabniku omogočite popoln dostop do skladišča, tako da ga lahko ta po pomoti izbriše ali pa ga pokvari s kakšno drugo operacijo.

  • Druga težava je, da vsi omrežni protokoli ne omogočajo zaklepanja datotek, ki ga Subversion za svoje delovanje potrebuje. Zato se skladišče lahko pokvari. Mogoče se to ne bo zgodilo takoj, vendar bosta slej ko prej dva uporabnika dostopala do skladišča istočasno.

  • Tretja težava je, da je potrebno nastaviti ustrezne pravice na datotekah. Na navadnem omrežnem pogonu sistema Windows bo to morda celo delovalo, pri uporabi strežnika SAMBA pa nastanejo težave.

  • If one person installs a newer version of the client which upgrades the repository format, then everyone else will be unable to access the repository until they also upgrade to the new client version.

Protokol file:// je namenjen krajevnemu dostopu za enega uporabnika, predvsem za testiranje in razhroščevanje. Če želite deliti skladišče, morate zares razmisliti o postavitvi strežnika. To pa sploh ni tako težko, kot se sliši. Za več informacij o izbiri in navodila za postavitev preberite “Accessing the Repository”.

Postavitev skladišča

Preden uvozite podatke v skladišče, premislite, kako jih boste organizirali. Če uporabite katero od priporočenih postavitev, vam bo kasneje laže.

Obstaja nekaj standardnih, priporočenim načinov, kako organizirati skladišče Subversion. Večina ljudi naredi mapo trunk za glavno vejo razvoja, mapo branches za stranske veje in mapo tags, ki vsebuje oznake. Če se v skladišču nahaja samo en projekt, uporabniki pogosto ustvarijo naslednjo strukture vrhnjih map:

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

Če skladišče vsebuje več projektov, uporabniki pogosto indeksirajo njihovo postavitev glede na veje:

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

... ali po projektu:

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

Indeksiranje po projektih je smiselno, če projekti med sabo niso povezani in se prevzemajo neodvisno drug od drugega. Za povezane projekte, kjer želite narediti prevzem z eno potezo, ali pa v primeru, kjer so projekti povezani v en distribucijski paket, pa je indeksiranje po vejah pogosto boljša odločitev. V tem primeru imate le eno glavno vejo (trunk), relacije med podprojekti pa so lažje vidne.

Če izberete izgled /trunk /tags /branches, to ne pomeni, da morate prekopirati celotno glavno vejo za vsako vejo ali oznako, tako da ta struktura prinaša več prilagodljivosti.

Za nepovezane projekte boste verjetno uporabili različna skladišča. Ko objavite spremembe, se spremeni številka revizije celotnega skladišča, ne številka revizije projekta. Če imate v enem skladišču dva projekta, lahko to vodi do velikih "lukenj" pri številkah revizij. Projekta Subversion in TortoiseSVN se nahajata na istem strežniku, vendar sta postavljena v različna skladišča, kar omogoča neodvisen razvoj in reši zmedo glede številk gradenj.

Seveda vam teh postavitev ni treba upoštevati. Lahko naredite kakršnokoli variacijo, karkoli najbolj ustreza vam ali vaši ekipi sodelavcev. Postavitev, ki jo izberete, pa ni nujno trajna. Skladišče lahko kadarkoli na novo organizirate. Ker so veje in oznake navadne mape, jih lahko TortoiseSVN premakne ali preimenuje po vaših željah.

Sprememba iz enega načina postavitve v drugega se naredi z nizom premikov na strani strežnika. Če vam ni všeč, kako so stvari v skladišču organizirane, enostavno premaknite mape.

Če še niste ustvarili osnovne strukture map znotraj skladišča, je čas, da to storite sedaj. Ostajata dva načina. Če želite ustvariti le strukturo /trunk /tags /branches, lahko za to uporabite brskalnik po skladišču, kjer v posamičnih objavah naredite zgornje mape. Če želite izdelati globljo hierarhijo, potem je enostavneje, da strukturo map naredite na disku in jo nato v eni objavi uvozite:

  1. ustvarite novo prazno mapo na trdem disku

  2. ustvarite željeno strukturo map vrhnjega nivoja znotraj mape - zaenkrat ne vnašajte datotek!

  3. import this structure into the repository via a right click on the folder that contains this folder structure and selecting TortoiseSVNImport... In the import dialog enter the URL to your repository and click OK. This will import your temp folder into the repository root to create the basic repository layout.

Note that the name of the folder you are importing does not appear in the repository, only its contents. For example, create the following folder structure:

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

Import C:\Temp\New into the repository root, which will then look like this:

/trunk
/branches
/tags