Kazalo
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.
You can create a repository with the FSFS backend or with the older Berkeley Database (BDB) format. The FSFS format is generally faster and easier to administer, and it works on network shares and Windows 98 without problems. The BDB format was once considered more stable simply because it has been in use for longer, but since FSFS has now been in use in the field for several years, that argument is now rather weak. Read Choosing a Data Store in the Subversion book for more information.
Ustvarite prazno mapo z imenom SVN (n.pr. D:\SVN\), ki se uporablja kot korenska mapa za vsa vaša skladišča.
Ustvarite še eno mapo iz imenom MojeNovoSkladišče znotraj D:\SVN\.
Odprite ukazni poziv (ali okno DOS), spremenite trenutno mapo v D:\SVN\ in vtipkajte
svnadmin create --fs-type bdb MojeNovoSkladišče
ali
svnadmin create --fs-type fsfs MojeNovoSkladišče
Sedaj imate novo skladišče na lokaciji D:\SVN\MojeNovoSkladišče.
Odprite Raziskovalca
Ustvarite novo mapo in jo poimenujte npr. SkladiščeSVN
Na novo ustvarjeno mapo kliknite z desnim gumbom in izberite → .
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.
TortoiseSVN ne ponuja več možnosti ustvarjanja skladišč BSB, lahko pa še vedno uporabite odjemalca ukazne vrstice in z njim ustvarite skladišče. Skladišča FSFS so na splošno lažja za vzdrževanje, prav tako pa nam razvijalcem programa TortoiseSVN olajšajo vzrževanje programa (zaradi težav s kompatibilnostjo različnih revizij BDB).
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.
Seveda priporočamo, da sploh ne uporabljate dostopa file://, razen za preizkušanje. Uporaba strežnika je bolj varna in zanesljiva, razen če skladišče uporablja en sam razvijalec.
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.
Ne ustvarjajte skladišč tipa Berkley DB v mapah skupne rabe v omrežju, prav tako ne dostopajte do njih. Takšno skladišče ne more obstajati na oddaljenem datotečnem sistemu, četudi imate omrežni pogon preslikan v lokalni pogon. Če boste poskušali dostopati do skladišča tipa Berkley DB v mapi v skupni rabi, so rezultati nepredvidljivi - lahko takoj vidite čudne napake, lahko pa traja mesece, preden boste opazili, da je vaša baza podatkov pokvarjena.
Čeprav je teoretično možno postaviti skladišče FSFS na omrežnem deljenem pogonu in dovoliti uporabnikom dostop preko protokola file://, to ni priporočljivo. V bistvu ta način močno odsvetujemo in ga ne podpiramo.
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.
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”.
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:
ustvarite novo prazno mapo na trdem disku
ustvarite željeno strukturo map vrhnjega nivoja znotraj mape - zaenkrat ne vnašajte datotek!
import this structure into the repository via a right click on the folder that contains this folder structure and selecting → 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.
Upoštevajte, da se ime mape, ki jo uvažate, ne pojavi v skladišču, ampak le njena vsebina. Naprimer: ustvarite naslednjo strukturo:
C:\Temp\New\trunk C:\Temp\New\branches C:\Temp\New\tags
Uvozite C:\Temp\New v korensko mapo skladišča, ki potem izgleda takole:
/trunk /branches /tags