Закључавање

Субверзија генерално ради најбоље без закључавања, користећи Копирај-Измени-Стопи методе описане раније у одељак под именом „Копирај-Мењај-Стопи решење“. Ипак, постоји неколико примера када можете имати потребу да примените неку врсту политике закључавања.

Најпре треба обезбедити да Субверзиони сервер дограђен најмање на верзију 1.2. Раније верзије уопште не подржавају закључавање. Ако користите file:// приступ, свакако само ваш клијент треба да буде обновљен.

Стабло значења закључавања

У овом поглављу, и скоро свуда у овој књизи, речи катанац и закључавање описују механизам межусобног искључивања корисника да се избегну судари при урезивању. На несрећу, постоје две друге врсте ознаке катанац са којим Субверзија, и ова књига, понекад морају да рачунају.

Друго је катанци радне копије, који се користи интерно од Субверзије за превенцију судара између више Субверзионих клијената који раде на истој радној копији. Уобичајено је да ставите ове катанце кад год је команда као усклади/урежи/... прекинута због грешке. Ови катанци се уклањају док ради команда чишћења на радној копији, како је описано у одељак под именом „Чишћење“.

И треће, фајлови и фолдери се могу закључати ако их користи други процес, на пример ако имате документ у ворду отворен програмом Ворд, онда је тај фајл закључан и не може му се приступити са ТортоисеСВН.

Можете генерално заборавити ове друге врсте закључавања све док нешто не пође лоше и захтева бригу о закључавању. У овој књизи катанац значи прву врсту све док насупрот не буде брисања из контекста или експлицитни стање.

Како закључавање ради на Субверзији

Подразумевано, ништа није закључано и свако ко има приступ урезивању може урезивати измене у сваки фајл у било које време. Остали ће ускладити своје радне копије периодично и измене у спремишту ће бити стопљене са локалним изменама.

Ако ви Ставите Катанац на фајл, онда само ви можете урезивати тај фајл. Урезивање свих осталих корисника је блокирано све док не скинете катанац. Закључан фајл не може бити измењен на било који начин у спремишту, он не може бити обрисан или преименован, осим од власника катанца.

Важно

Закључавање није придружено специфичном кориснику, али специфичном кориснику и радној копији. Закључавање у радној копији брани да исти корисник урезује закључан фајла из друге радне копије.

Као пример, замислимо да корисник Џон има радну копију у канцеларијском ПЦ. Он започиње рад на некој слици, и закључава фајл. Када напусти своју канцеларију он још није завршио са тим фајлом, тако да га није откључао. Враћа се кући, где Џон такође има радну копију, и одлучи да још мало ради на пројекту. Али не може да мења или урезује исти фајл слике јер је закључавање остало у радној копији на послу.

Међутим, други корисници неће неопходно знати да сте уклонили катанац. Осим да провере статус закључавања регуларно, најпре они морају знати о томе када урезивање уткаже, што у већини случајева није много крисно. Да бисте учинили то лакшим за манипулацију постоји нова Субверзиона особина svn:needs-lock. Када је ова особина подешена (на било коју вредност) на фајлу, кадгод се фајл преузима или усклади, локална копија постаје само за читање осим ако та радна копија држи катанац за фајл. Ово делује као упозорење тако да не можете уређивати тај фајл осим ако најпре не добијете катанац. Фајлови који су верзионисани и само за читање означени су специјалним прекривачем у ТортоисеСВН да укажу да треба да добијете катанац пре уређења.

Закључавање је уписано у локацији радне копије као и власник. Ако имате више радних копија (кући, на послу) ви можете само да држите катанац на једној од тих радних копија.

Ако један од ваших сарадника тражи катанац и оде на одмор без откључавања шта да се ради? Субверзија омогућава начин да се форсира закључавање. Откључавање од још неког означено је као Разбијање катанца, а насилно откључавање које неко уради зове се Крађа катанца. Природно, ово нису ствари које треба да радите олако ако желите да останете пријатељ са сарадницима

Закључавање се уписује у спремишту и катанац жетон се креира у вашој локалној радној копији. Ако постоји различитос, на пример ако још неко има сломљен катанац, локални жетон катанац постаје неисправан. Спремиште је увек дефинитивна референца.

Закључавање

Изаберите фајл(ове) у вашој радној копији за које желите да добијете катанац, затим изаберите команду ТортоисеСВНЗакључај....

Слика 4.60. Дијалог закључавања

Дијалог закључавања


Дијалог се појављује дозвољавајући да унесете коментар, тако остали могу видети зашто сте закључали фајл. Коментар није обавезан и тренутно се користи само са Свнсерве основаним спремиштима. Ако ( и само и) требате да украдете катанац од неког проверите Још увек закључан бокс, затим кликните на OK.

Можете сетовати особину пројеката tsvn:logtemplatelock да обезбедите шаблонизовану поруку да их корисници попуне као поруке закључавања . Погледајте одељак под именом „Подешавање пројекта“ за инструкције о подешавању особина пројекта.

Ако изаберете фолдер и онда користите ТортоисеСВНЗакључај... дијалог закључавања ће се отворити са сваким фајлом у сваком под-фолдеру изабраном за закључавање. Ако стварно желите да закључате целу хијерархију, ово је начин да то урадите, али ћете постати јако непопуларни међу сарадницима ако им закључате цео пројекат. Користите пажљиво...

Откључавање

Да бисте осигурали да не заборавите да откључате не треба вам ништа посебно, закључани фајлови су приказани у дијалогу урезивања и изабрани подразумевано. Ако наставите са урезивањем, катанац који држите на изабраним фајлвима се уклања, чак и ако фајлови нису измењени. Ако не желите да уклоните катанац са неких фајлва можете их отчекирати (ако нису измењени). Ако желите да држите катанац на фајлу који сте изменили имате да омогућите Држи катанац чекбокс пре урезивања измена.

Да се уклони катанац ручно, изаберите фајл(ове) у вашој радној копији за које хоћете да уклоните катанац, затим изаберите команду ТортоисеСВНОткључај Ништа даље не треба унети јер ТортоисеСВН контактира спремиште и уклања катанце. Такође можете користити команду на фолдеру да уклоните све катанце рекурзивно.

Провера статуса закључавања

Слика 4.61. Провера дијалога измена

Провера дијалога измена


Да видите које катанце ви и други држите, користите ТортоисеСВНПровера измена.... Локално држан катанац жетони се прикажу тренутно. Да бисте проверили које катанце држе остали (и да видите да ли је неки ваш катанац сломљен или украден) треба да кликнете на Провери Спремиште.

Из контекст менија овде можете такође ставити или откачити катанац, као и сломљене и украдене катанце које држе други.

Избегавање разбијања и крађа катанца

Ако сломите или украдете неком другом катанац без питања можете потенцијално узроковати губитак посла. Ако радите са нестопивим типом фајлва и неком украдете катанац када вратите катанац они су слободни да провере своје измене и прекрију ваше. Субверзија не губи податке али ви можете изгубити радну заштиту тима које ва закључавање омогућава.

Прављење незакључаних фајлова само за читање

Како је напоменуто горе, много ефективнији начин за коришћење закључавања је подешавањем svn:needs-lock особине на фајлу. Упоредите са одељак под именом „Подешавање пројекта“ за инструкције како подесити те особине. Фајлови са тим особинама подешеним ће увек бити преузимани и обновљени са сетованим флегом само-за-читање осим ако ваша копија држи катанац.

Као подсетник, ТортоисеСВН користи специјални прекривач да означи то.

Ако радите са политиком да сваки фајл може бити закључан тада можда схватите да је лакше да користите Субверзиону суто-пропс особину да подесите особине аутоматски сваки пут кад додајете нови фајл. Прочитајте одељак под именом „Аутоматско подешавање особина“ за даље информације.

Закачиве скрипте за закључавање

Када креирате ново спремиште са Субверзијом 1.2 или вишом, четири шаблона закачаљки се креира у спремишту закачаљке фолдер.Оне се позивају пре и после постављања катанца и пре и после скидања катанца.

Добра је идеја да се инсталира пост-закључавања and пост-откључавањаk закачива скрипта на серверу која шаље епошту означивши фајл који је закључан. Са таквом скриптом сви ваши корисници могу бити обавештени ако неко закључа/откључа фајл. Можете наћи пример закачиве скрипте hooks/post-lock.tmpl у вашем фолдеру спремишта

Можете такође користити закачљке да онемогућите ломљење и крађу катанаца, или можда граничити то на именованог администратора. Или можда желите да пошаљете епошту власницима када је неки од њихових катанаца сломљен или украден.

Прочитајте одељак под именом „Закачиве скрипте са серверске стране“ за више инфижормација.