Ponekad je korisno da se izradi radna kopija koja je od brojnih različitih preuzimanja. Na primer, možete želeti različite fajlove ili podfoldere da dođu sa različitih lokacija u spremište, ili možda sve zajedno iz različitih spremišta. Ako želite da svaki korisnik ima isti pregled možete definisati svn:spoljašne
osobine da vučete specifične resurse na lokaciju gde su vam potrebni.
Recimo da preuzimate radnu kopiju /project1
u D:\dev\project1
. Izaberite folder D:\dev\project1
, desni klik i izaberite → iz kontekst menija. Pojaviće se dijalog osobina. Tada idite na Subverzioni tab. Tada možete podesiti osobine. Kliknite . U dijalogu osobina ili dvostruki klik na svn:externals
ako već postoji, ili kliknite na dugme i izaberite externals
iz menija. Da dodate novi eksternal kliknite na i zatim popunite traženu informaciju u prikazanom dijalogu.
URLovi moraju biti odgovarajuće istaknuti ili oni neće raditi, npr. morate zameniti svaki razmak sa %20
.
Ako želite da lokalna putanja uključi razmake ili druge specijalne karaktere, možete ih okružiti dvostrukim navodnicima, ili možete koristiti \
(inverzna kosa crta) karakter izbegavanja kao u stilu Juniks školjke da prethodi specijalnom karakteru. Svakako ovo takođe znači da možete koristiti /
(kosa crta) kao razdvajač putanje. Primetimo da je ovo ponašanje novo u Subverziji 1.6 i neće raditi sa starijim klijentima.
Morate čvrsto da rešite da koristite eksplicitno revizione brojeve u svim vašim eksternim definicijama, kako je opisano gore. Takav rad znači da ste odlučili kada povući različite slike eksternih informacija i tačno koje slike povući. Pored zajedničkog osećaja da nema iznenađenja spremišta trećeg-lica koja mogu da nemaju bilo kakvu kontrolu nad tim, koristeći eksplicitne revizione brojeve takođe znači to da ako unazad datirate vašu radnu kopiju prema prethodnoj reviziji vaše eksterne definicije će se vratiti na način kako su izgledali u prethodnoj reviziji, što znači da ćete eksterne radne kopije uskladiti sa načinom njihov po izgledu kada je vaša radna kopija imala prethodnu reviziju. Za projekat softvera ovo može biti razlika između uspešne i neuspešne izrade starije slike vaše kompleksne osnove koda.
Dijalog uređenja za svn:externals
osobine omogućava vam da izaberete eksternal i automatski ga podesite eksplicitno na GLAVNU reviziju.
Ako je spoljašnji projekat u istom spremištu, bilo koja izmena koju tamo napravite biće uključena u listu za urezivanje kada urezujete glavni projekat.
Ako je eksternalni projekat u različitim spremištima svaka promena koju napravite u eksternom projektu biće prikazan ili će indicirati kada urezujete glavni projekat, ali imaćete da urežete ove eksterne promene separatno.
Ako koristite apsolutne URLove u svn:spoljašnje
definicije i imate da relocirate vašu radnu kopiju (npr. ako je URL vašeg spremišta izmenjen), tada vaši eksternali se ne mogu izmeniti niti uopšte raditi.
Da se izbegnu takvi problemi Subverzioni klijenti od verzije 1.5 podržavaju relativne spoljašnje URLove. Četiri različita metoda specificiranja relativnih URLova je podržano. U sledećem primerima uzmimo da imamo dva spremišta: jedno na http://example.com/svn/repos-1
i drugo na http://example.com/svn/repos-2
. Preuzeli smo http://example.com/svn/repos-1/project/trunk
u C:\Working
i svn:spoljašnje
osobine su podešene na deblo.
Ovi Urlovi uvek počinju stringom../
na primer:
../../widgets/foo common/foo-widget
Ovo će ekstratovati http://example.com/svn/repos-1/widgets/foo
u C:\Working\common\foo-widget
.
Primetimo da je URL relativno u odnosu na URL foldera sa svn:spoljašnje
osobine, nije ka folderu gde su spoljšnje osobine upisane na disku.
Ovi URLovi uvek počinju stringom ^/
na primer:
^/widgets/foo common/foo-widget
Ovo će ekstratovati http://example.com/svn/repos-1/widgets/foo
u C:\Working\common\foo-widget
.
Možete se lako pozvati na drugo spremište istim SVNParentPath
(zajednički direktorijum koji sadrži više spremišta). Na primer:
^/../repos-2/hammers/claw common/claw-hammer
Ovo će ekstraktoviti http://example.com/svn/repos-2/hammers/claw
u C:\Working\common\claw-hammer
.
Urlovi koji počinju stringom //
kopiraju samo šema deo URLa. Ovo je korisno kada isto ime domaćina mora da bude u pristupu raznim šemama u zavisnosti od lokacije mreže; npr. klijent na internetu koristi http://
dok eksterni klijenti koriste svn+ssh://
. Na primer:
//example.com/svn/repos-1/widgets/foo common/foo-widget
Ovo će ekstraktovati http://example.com/svn/repos-1/widgets/foo
ili svn+ssh://example.com/svn/repos-1/widgets/foo
u zavisnosti od toga koji je metod korišćen za preuzimanje C:\Working
.
URLovi koji počinju stringom /
kopiraju šemu i domaćinov deo URLa, na primer:
/svn/repos-1/widgets/foo common/foo-widget
Ovo će ekstraktovati http://example.com/svn/repos-1/widgets/foo
u C:\Working\common\foo-widget
. Ali ako preuzmete vaše radnu kopiju sa drugog servera sa svn+ssh://another.mirror.net/svn/repos-1/project1/trunk
tada će eksternal ekstrahovati svn+ssh://another.mirror.net/svn/repos-1/widgets/foo
.
Takođe možete specificirati peg i operativnu reviziju za URL ako se trži. Da naučite više o peg i operativnim revizijama, molil pročitajte odgovarajuća poglavlja u Subverzionoj knjizi.
Ako specificirate ciljni folder za eksternal kao subfolder kao u gornjem primeru, budite sigurni da ti svi folderi između su takođe verzionisani. Tako za gornji primer folder common
treba da bude verzionisan!
Mada će eksternali raditi u većini situacija ispravno ako folderi između nisu verzionisani, ima nekih operacija kada neće raditi kako očekujete. I status ikone prekrivanja u pretraživaču takođe neće prikazati korektan status.
Ako vam treba više informacija kako TortoiseSVN rukuje sa Osobinama pročitajte odeljak pod imenom „Podešavanje projekta“.
Da biste našli više o raznim metodama pristupa zajedničkim podprojektima čitajte odeljak pod imenom „Uključi sličan sub-projekat“.
Kao Subverzija 1.6 možete dodati pojedinačni spoljašnji fajl u vašu radnu kopiju koristeći istu sintaksu kao za foldere. Međutim, postoje neke restrikcije.
Putanja do fajl eksternal mora biti direktni potomak foldera gde je postavljena svn:externals
osobina.
URL za fajl eksternal mora biti u istom spremištu kao URL gde će fajl eksternali biti ubačeni; inter-spremište fajl eksternali nisu podržani.
Fajl eksternal postaje baš kao bilo koji drugi verzionisani fajl u mnogo pogleda, ali ne može biti pomeren ili obrisan koristeći normalne komande; svn:externals
osobine se moraju izmeniti umesto toga.
Ako već imate radnu kopiju fajlova ili foldera koje želite da uključite kao eksternale u drugoj radnoj kopiji možete jednostavno da ih dodate preko vuci i pusti u vindous pretraživaču.
Jednostavno desno vuci fajla ili foldera iz jedne radne kopije tamo gde vi to želite da bude uključena kao eksternal. Kontekst meni se pojavljuje kada otpustite dugme miša: ako kliknete na ulaz kontekst menija osobina svn:eksternali
se automatski dodaje. Sve što treba da uradite je da urežete izmene osobine da bi ste dobili da su ovi eksternali odgovarajuće uključeni u radnu kopiju.