Понекад је корисно да се изради радна копија која је од бројних различитих преузимања. На пример, можете желети различите фајлове или подфолдере да дођу са различитих локација у спремиште, или можда све заједно из различитих спремишта. Ако желите да сваки корисник има исти преглед можете дефинисати свн:спољашне
особине да вучете специфичне ресурсе на локацију где су вам потребни.
Рецимо да преузимате радну копију /project1
у D:\dev\project1
. Изаберите фолдер D:\dev\project1
, десни клик и изаберите → из контекст менија. Појавиће се дијалог особина. Тада идите на Субверзиони таб. Тада можете подесити особине. Кликните . У дијалогу особина или двоструки клик на svn:externals
ако већ постоји, или кликните на дугме и изаберите externals
из менија. Да додате нови екстернал кликните на и затим попуните тражену информацију у приказаном дијалогу.
УРЛови морају бити одговарајуће истакнути или они неће радити, нпр. морате заменити сваки размак са %20
.
Ако желите да локална путања укључи размаке или друге специјалне карактере, можете их окружити двоструким наводницима, или можете користити \
(инверзна коса црта) карактер избегавања као у стилу Јуникс шкољке да претходи специјалном карактеру. Свакако ово такође значи да можете користити /
(коса црта) као раздвајач путање. Приметимо да је ово понашање ново у Субверзији 1.6 и неће радити са старијим клијентима.
Морате чврсто да решите да користите експлицитно ревизионе бројеве у свим вашим екстерним дефиницијама, како је описано горе. Такав рад значи да сте одлучили када повући различите слике екстерних информација и тачно које слике повући. Поред заједничког осећаја да нема изненађења спремишта трећег-лица која могу да немају било какву контролу над тим, користећи експлицитне ревизионе бројеве такође значи то да ако уназад датирате вашу радну копију према претходној ревизији ваше екстерне дефиниције ће се вратити на начин како су изгледали у претходној ревизији, што значи да ћете екстерне радне копије ускладити са начином њихов по изгледу када је ваша радна копија имала претходну ревизију. За пројекат софтвера ово може бити разлика између успешне и неуспешне израде старије слике ваше комплексне основе кода.
Дијалог уређења за svn:externals
особине омогућава вам да изаберете екстернал и аутоматски га подесите експлицитно на ГЛАВНУ ревизију.
Ако је спољашњи пројекат у истом спремишту, било која измена коју тамо направите биће укључена у листу за урезивање када урезујете главни пројекат.
Ако је екстернални пројекат у различитим спремиштима свака промена коју направите у екстерном пројекту биће приказан или ће индицирати када урезујете главни пројекат, али имаћете да урежете ове екстерне промене сепаратно.
Ако користите апсолутне УРЛове у свн:спољашње
дефиниције и имате да релоцирате вашу радну копију (нпр. ако је УРЛ вашег спремишта измењен), тада ваши екстернали се не могу изменити нити уопште радити.
Да се избегну такви проблеми Субверзиони клијенти од верзије 1.5 подржавају релативне спољашње УРЛове. Четири различита метода специфицирања релативних УРЛова је подржано. У следећем примерима узмимо да имамо два спремишта: једно на http://example.com/svn/repos-1
и друго на http://example.com/svn/repos-2
. Преузели смо http://example.com/svn/repos-1/project/trunk
у C:\Working
и свн:спољашње
особине су подешене на дебло.
Ови Урлови увек почињу стрингом../
на пример:
../../widgets/foo common/foo-widget
Ово ће екстратовати http://example.com/svn/repos-1/widgets/foo
у C:\Working\common\foo-widget
.
Приметимо да је УРЛ релативно у односу на УРЛ фолдера са свн:спољашње
особине, није ка фолдеру где су спољшње особине уписане на диску.
Ови УРЛови увек почињу стрингом ^/
на пример:
^/widgets/foo common/foo-widget
Ово ће екстратовати http://example.com/svn/repos-1/widgets/foo
у C:\Working\common\foo-widget
.
Можете се лако позвати на друго спремиште истим SVNParentPath
(заједнички директоријум који садржи више спремишта). На пример:
^/../repos-2/hammers/claw common/claw-hammer
Ово ће екстрактовити http://example.com/svn/repos-2/hammers/claw
у C:\Working\common\claw-hammer
.
Урлови који почињу стрингом //
копирају само шема део УРЛа. Ово је корисно када исто име домаћина мора да буде у приступу разним шемама у зависности од локације мреже; нпр. клијент на интернету користи http://
док екстерни клијенти користе svn+ssh://
. На пример:
//example.com/svn/repos-1/widgets/foo common/foo-widget
Ово ће екстрактовати http://example.com/svn/repos-1/widgets/foo
или svn+ssh://example.com/svn/repos-1/widgets/foo
у зависности од тога који је метод коришћен за преузимање C:\Working
.
УРЛови који почињу стрингом /
копирају шему и домаћинов део УРЛа, на пример:
/svn/repos-1/widgets/foo common/foo-widget
Ово ће екстрактовати http://example.com/svn/repos-1/widgets/foo
у C:\Working\common\foo-widget
. Али ако преузмете ваше радну копију са другог сервера са svn+ssh://another.mirror.net/svn/repos-1/project1/trunk
тада ће екстернал екстраховати svn+ssh://another.mirror.net/svn/repos-1/widgets/foo
.
Такође можете специфицирати пег и оперативну ревизију за УРЛ ако се тржи. Да научите више о пег и оперативним ревизијама, молил прочитајте одговарајућа поглавља у Субверзионој књизи.
Ако специфицирате циљни фолдер за екстернал као субфолдер као у горњем примеру, будите сигурни да ти сви фолдери између су такође верзионисани. Тако за горњи пример фолдер common
треба да буде верзионисан!
Мада ће екстернали радити у већини ситуација исправно ако фолдери између нису верзионисани, има неких операција када неће радити како очекујете. И статус иконе прекривања у претраживачу такође неће приказати коректан статус.
Ако вам треба више информација како ТортоисеСВН рукује са Особинама прочитајте одељак под именом „Подешавање пројекта“.
Да бисте нашли више о разним методама приступа заједничким подпројектима читајте одељак под именом „Укључи сличан суб-пројекат“.
Као Субверзија 1.6 можете додати појединачни спољашњи фајл у вашу радну копију користећи исту синтаксу као за фолдере. Међутим, постоје неке рестрикције.
Путања до фајл екстернал мора бити директни потомак фолдера где је постављена svn:externals
особина.
УРЛ за фајл екстернал мора бити у истом спремишту као УРЛ где ће фајл екстернали бити убачени; интер-спремиште фајл екстернали нису подржани.
Фајл екстернал постаје баш као било који други верзионисани фајл у много погледа, али не може бити померен или обрисан користећи нормалне команде; svn:externals
особине се морају изменити уместо тога.
Ако већ имате радну копију фајлова или фолдера које желите да укључите као екстернале у другој радној копији можете једноставно да их додате преко вуци и пусти у виндоус претраживачу.
Једноставно десно вуци фајла или фолдера из једне радне копије тамо где ви то желите да буде укључена као екстернал. Контекст мени се појављује када отпустите дугме миша: ако кликнете на улаз контекст менија особина свн:екстернали
се аутоматски додаје. Све што треба да урадите је да урежете измене особине да би сте добили да су ови екстернали одговарајуће укључени у радну копију.