Додатак D. Аутоматизовање ТортоисеСВН

Садржај

ТортоисеСВН команде
Тсвнцмд УРЛ руковалац
ТортозИДиф команде
ТортоисеУДифф команде

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

Важно

Запамтите да је ТортоисеСВН ГУИ клијент, и овај аутоматизациони водич приказује како да учините да се ТортоисеСВН дијалог појави да сакупи корисникове улазе. Ако желите да напишете скрипт који не захтева улаз, треба да користите званичан Субверзиони линијски клијент уместо тога.

ТортоисеСВН команде

ТортоисеСВН ГУИ програм се зове TortoiseProc.exe. Све команде су специфициране са параметром /command:abcd где је abcd жељено име команде. Већина од ових команди захтева најмање једну путању као аргумент, што је дато са /path:"some\path". У следећој табели команде се односе на /command:abcd параметар и путању која се односи на /path:"some\path" параметар.

Постоји специјална команда која не тражи параметар /command:abcd али ако се ништа не специфицира у командној линији покреће се пројектни монитор уместо тога. Ако се /tray специфицира пројектни монитор се покреће као сакривен и само дода икону на системском треју.

Како неке од команди могу узети листу циљних путања (нпр. урезивање више специфичних фајлова) /path параметар може узети више путаљи, одвојених са * карактером.

Такође можете одредити фајл који садржи листу путања раздвојене новом линијом. Фајл морабити УТФ-16 формат без BOM. Ако шаљете такав фајл користите /pathfile уместо /path. Да ТортоисеПроц обрише тај фајл после завршетка команде морате послати параметар /deletepathfile. Ако не пошаљете /deletepathfile, морате сами да обришете фајл или да га оставите.

Прогрес дијалог који се користи за урезивање, обнавља и много више команди обично остаје отворено после заврештка рада команде док корисник не притисне OK дугме. Ово би се могло променити провером одговарајиће опвжције у дијалогу подешавања. Користећи то подешавање затвориће се прогрес дијалог, није битно да ли сте почели команду из беч фајла или из ТортоисеСВН контекст менија.

Да се специфицира различита локација конфигурационог фајла, користите параметар /configdir:"path\to\config\directory". Ово ће променити подразумевану путању, укључујући и подешавање регистра.

Да би се затворио прогрес дијалог на крају команде без коришћења сталног подешавања треба да провучете /closeonend параметар.

  • /closeonend:0 не затвара дијалог аутоматски

  • /closeonend:1 ауто затварање ако нема грешака

  • /closeonend:2 ауто затварање ако нема грешака и конфликата

  • /closeonend:3ауто затварање ако нема грешака, конфликата и стапања

Да затворите дијалог напредовања за локалне операције ако нема грешака и конфликата, провучите /closeforlocal параметар.

Табела која следи листа све команде којима треба да приступи ТортоисеПроц.егзе командна линија. Како је раније описано, ово треба да се користи у облику /command:abcd. У табели, /command префикс недостаје да се уштеди на простору.

Табела D.1. Листа доступних командних опција

КомандаОпис
:aboutПриказује дијалог са описом програма. Овај дијалог је такође приказан ако команда није дата.
:log

Отвара дијалог дневника. /path :

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict омогућава 'стоп копирања' чекбокс,

  • /merge омогућава 'укључи стопљене ревизије' чекбокс,

  • /datemin:"{datestring}" поставља почетни датум филтра, и

  • /datemax:"{datestring}" поставља крајњи датум филтра. Формат датума је исти као коришћен за свн датум ревизије.

  • /findstring:"filterstring" попуњава филтер текст,

  • /findtext форсира филтер да користи текст, не регекс, или

  • /findregex форсира филтер да користи регекс, не једноставно претраживање текста, и

  • /findtype:X са Xкоје је број између 0 и 511. Бројеви су сума следећих опција:

    • /findtype:0 филтер по свему

    • /findtype:1 филтер по порукама

    • /findtype:2 филтер по путањама

    • /findtype:4 филтрирање помоћу атора

    • /findtype:8 филтер по ревизијама

    • /findtype:16не користи се

    • /findtype:32 филтер по баг ИД

    • /findtype:64 не користи се

    • /findtype:128 филтер по датуму

    • /findtype:256 филтер по опсегу датума

  • Ако је /outfile:path\to\file специфицирано, изабране ревизије су записане у тај фајл када се дијалог затвори. Ревизије су уписане у истом формату као што је коришћено да се специфицирају ревизије у дијалогу стапања.

специфицира фајл или фолдер за који је дневник приказан. Додатне опције се могу подесити:

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict омогућава 'стоп копирања' чекбокс,

  • /merge омогућава 'укључи стопљене ревизије' чекбокс,

  • /datemin:"{datestring}" поставља почетни датум филтра, и

  • /datemax:"{datestring}" поставља крајњи датум филтра. Формат датума је исти као коришћен за свн датум ревизије.

  • /findstring:"filterstring" попуњава филтер текст,

  • /findtext форсира филтер да користи текст, не регекс, или

  • /findregex форсира филтер да користи регекс, не једноставно претраживање текста, и

  • /findtype:X са Xкоје је број између 0 и 511. Бројеви су сума следећих опција:

    • /findtype:0 филтер по свему

    • /findtype:1 филтер по порукама

    • /findtype:2 филтер по путањама

    • /findtype:4 филтрирање помоћу атора

    • /findtype:8 филтер по ревизијама

    • /findtype:16не користи се

    • /findtype:32 филтер по баг ИД

    • /findtype:64 не користи се

    • /findtype:128 филтер по датуму

    • /findtype:256 филтер по опсегу датума

  • Ако је /outfile:path\to\file специфицирано, изабране ревизије су записане у тај фајл када се дијалог затвори. Ревизије су уписане у истом формату као што је коришћено да се специфицирају ревизије у дијалогу стапања.

An svn date revision can be in one of the following formats:

  • {2006-02-17}

  • {15:30}

  • {15:30:00.200000}

  • {"2006-02-17 15:30"}

  • {"2006-02-17 15:30 +0230"}

  • {2006-02-17T15:30}

  • {2006-02-17T15:30Z}

  • {2006-02-17T15:30-04:00}

  • {20060217T1530}

  • {20060217T1530Z}

  • {20060217T1530-0500}

:checkoutОтвара дијалог преузимања. /путања специфицире циљни фолдер и /урл специфицире УРЛ из ког се преузима. Ако специфицирате тастер /blockpathadjustments, блокира се аутоматско подешавање путање преузимања. /revision:XXX специфицира ревизију преузимања.
:importОтвара дијалог увоза. /путања специфицира фолдер са подацима за увоз. Можете, такође, специфицирати /логмсг преклопник да провучете предефинисане поруке дневника у дијалог увоза. Или, ако не желите да провучете поруке дневника у командној линији, користите /logmsgfile:path, где путања показује на фајл који садржи поруку дневника.
:updateУсклади радну копију у /путања према ГЛАВНОЈ. Ако је опција /рев дата онда је дијалог приказан да пита корисна коју ревизију треба ускладити. Да се избегне дијалог специфицирајте ревизиони број /рев:1234. Остале опције су /нонрецурсиве, /игнорееxтерналс и /укључиекстернале. Тада /stickydepth индицира да је специфицирана дубина танка креирајући празно преузимање. /skipprechecks може бити сетовано да прескочи све провере које су дате пре усклађивања, онда је дигме Прикажи дневник онемогућено и контекст мени који приказује разлике је такође онемогућен при усклађивању.
:commitОтвара дијалог урезивања. /путања специфицира циљни фолдер или листу фајлова за обнављање. Можете такође специфицирати /логмсг прекидач да провучете предефинисане дневник поруке у дијалог урезивања. Свакако, ако не желите да провучете дневник поруку на командној линији, користите /logmsgfile:path, где путања указије на фајл који садржи дневник поруку. Да би се пре-попунио баг ИД (у случају да сте одговарајуће подесили интеграцију са баг трагачем), можете користити /бугид:"баг ид овде" да то урадите.
:addДодаје фајлове у /путања за контролу верзије.
:revertВраћа локалне измене радне копије. /путања каже које ставке вратити.
:cleanupБрише прекинуте или заустављене операције и откључава радну копију у /путања. Имате такође да омогућите /cleanup да се уради чишћење. Користи /ноуи да предупредиш дијалог резултата да искочи (или обавештавајући да је чишћење готово или приказујући поруку грешке). /noprogressui такође онемогућава дијалог напредовања. /nodlg онемогућава приказивање дијалог чишћења где корисник може изабрати шта тачно треба урадити при чишћењу. Могуће акције могу бити специфициране опцијама /cleanup за статус чишћења, /breaklocks да се уклоне све браве, /revert да се врате неурезане измене, /delunversioned,/delignored, /refreshshell, /externals, /fixtimestamps и /vacuum.
:resolveОзначава конфликтне фајлове специфициране у /путања као решене. Ако је /ноqуестион дат, решавање је дато без претходног питања корисника да ли да се то уради.
:repocreateКреира спремиште у /путања
:switchОтвара дијалог скретања. /путања одређује циљни директоријум и /урл УРЛ за скретање.
:exportИзвози радну копију у /путања за дуги фолдер. Ако /путања указује на неверзионисани фолдер, дијалог ће вас питати за УРЛ за извоз у фолдер у /путања. Ако специфицирате тастер /blockpathadjustments, аутоматско подешавање извозне путање је блокирано.
:dropexportИзвози тадну копију у /путања у директоријум одређен у /droptarget. Извоз не користи извозни дијалог већ се изводи директно. Опција /overwrite одређује да се постојећи фајлови преписују без потврђивања, а опција /autorename одређује да сви фајлови већ постоје, извозни фајлови се аутоматски преименују да се избегне да се препишу. Опција /extended може одређује или локалне измене да се само извезу фајлови који су измењени локално, или неверзионисан да се такође извезу све неверзионисане ставке такође.
:dropvendorCopies the folder in /путања recursively to the directory specified in /droptarget. New files are added automatically, and missing files get removed in the target working copy, basically ensuring that source and destination are exactly the same. Specify /ноуи to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog.
:mergeОтвара дијалог стапања. /путања специфицира циљни директоријум. За стапање опсега ревизија следеће опције су могуће: /фромурл:УРЛ, /ревранге:стринг. За стапање два стабла спремишта следће опције су могуће: /фромурл:УРЛ, /тоурл:УРЛ, /фромрев:xxx and /торев:xxx.
:mergeallОтвара дијалог стапања. /путања специфицира циљни фолдер.
:copyПодигните грана/знак дијалог. /путања је радна копија из грана/знак. И /урл је циљни УРЛ. Ако урл-ови крећу са ^ узима се да су релативно у односу на корен спремишта. За већ проверену опцију Скрени радну копију у нову грану/знак. можете провући /switchaftercopy прекидач. Да проверите опцију Креирај посредне фолдере провуците /макепарентс прекидач. Можете такође специфицирати /логмсг прекидач да провучете предефинисани дневник порука ка грана/знак дијалогу. Или, ако не желите да повучете дневник порука у командној линији, користите /logmsgfile:path, где
:settingsОтвара дијалог подешавања.
:removeУклања фајл(ове) у /путања из контроле верзија.
:renameПреименује фајл у /путања. Ново име за фајл пита дијалог. Да се избегне питање о преименовању сличних фајлова у једном кораку, превуци /ноqуестион.
:diffПокреће екстерни диф програм означен у ТортоисеСВН подешавању. /путања специфицира први фајл. Ако је опција /патх2 изабрана онда диф програм почиње са та два фајла. Ако /патх2 недостаје онда диф ради између фајла у /путања и ОСНОВЕ. Ако је специфициран фајл са измењеним особинама екстерни диф алат такође почиње за сваку измењену особину. Да се предупреди то пошаљите опцију /ignoreprops. Да се експлицитно изаберу ревизиони бројеви користите /стартрев:xxx и /ендрев:xxx, и за опционе пег ревизије користите /pegrevision:xxx. Ако је /кривац изабрана и /патх2 није изабрана онда диф најпре окриви фајлове датом ревизијом. Параметар /линија:xxx специфицира линију за скок где је диф приказан.
:shelveShelves the specified paths in a new shelf. The option /shelfname:name specifies the name of the shelf. An optional log message can be specified with /logmsg:message. If option /checkpoint is passed, the modifications of the files are kept.
:unshelveApplies the shelf with the name /shelfname:name to the working copy path. By default the last version of the shelf is applied, but you can specify a version with /version:X.
:showcompare

У зависности од УРЛа и ревизија за поређење, ово или приказује дифф (ако је опција уједињен подешен), дијалог са листом фајлова који су измењени или ако УРЛ указују на фајлове који покрећу дифф прегледач за та два фајла.

Опције url1, url2, revision1 и revision2 морају бити специфицирани. Опције pegrevision, ignoreancestry, blame и unified су опционални.

Ако специфициран урл такође има измене особина екстерни диф алат такође се покреће за сваку измењену особину. Да се то предупреди проследите опицију /ignoreprops.

If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.

:conflicteditorПокреће конфликт уређивач специфициран у ТортоисеСВН подешавању са коректним фајловима за конфликтни фајл у /путања.
:relocateОтвара дијалог релоцирања. /путања специфицира путању радне копије за релоцирање.
:helpОтвара фајл помоћи.
:repostatusОтвара дијалог провера-измена. /путања специфицира фолдер радне копије. Ако је /даљински специфициран, дијалог одмах при старту контактира спремиште, као кад корисник кликне на Провера спремишта дугме.
:repobrowser

Започиње дијалог претраживача спремишта, управљен према УРЛ радне копије дате у /path или /path указује директно на УРЛ.

Додатна опција /rev:xxx се може користити да се специфицира ревизија коју треба да прикаже претраживач спремишта. Ако /rev:xxx недостаје, уобичајена је ГЛАВНА ревизија.

Ако /path указије на УРЛ, /projectpropertiespath:path/to/wc специфицира путању одакле се читају и користе особине пројекта.

Ако је /outfile:path\to\file специфицирано, изабрани УРЛ и ревизија су уписани у тај фајл када је претраживач спремишта затворен. Прва линија у том текст фајлу садржи УРЛ, друга линија ревизију у текстуалном облику.

:ignoreДодаје све циљеве у /путања у листу занемаривања, тј. додаје свн:игноре карактеристике тим фајловима.
:blame

Отвара дијалог окривљавања за фајлове специфициране у /path.

Ако опције /startrev и /endrev су подешени, затим се позива дијалог за опсег окривљавања који није приказан али ревизионе вредности ових опција су коришћене уместо тога.

Ако је опција /line:nnn подешена, ТортоисеБЛАМЕ ће се отворити са приказаним специфичним бројевима линија.

Опције /ignoreeol, /ignorespaces и /ignoreallspaces су такође подржани.

:catЧува фајлове из УРЛ или фолдера радне копије дат у /путања ка локацији датој у /савепатх:патх. Ревизија је дата у /ревисион:xxx. Ово може бити коришћено да се добије фајл са специфичном ревизијом.
:createpatchCreates a patch file for the path given in /путања. To skip the file Save-As dialog you can pass /савепатх:патх to specify the path where to save the patch file to directly. To prevent the unified diff viewer from being started showing the patch file, pass /noview. If a unified diff is requested, an optional prettyprint option can be specified which will show the merge-info properties in a more user readable format.
:revisiongraph

Приказује ревизиони граф за путању дату у /path.

Да цреирате фајл слику ревизионог графа за специфичну путању, али без приказивања прозора графа, пошаљите /output:path са путањом ка излазном фајлу. Излазни фајл мора да има екстензију коју ревизиони граф стварно извози. То су: .svg, .wmf, .png, .jpg, .bmp and .gif.

Пошто ревизиони граф има много опција које утичу како је приказано, можете такође подесити опције да их користите када креирате излазни фајл слике. Проследите ове опције са /options:XXXX, где је XXXX децимална вредност. Најбољи начин да се нађе жељена опција је да се започне ревизиони граф на уобичајени начин, подесите све опције интерфејса корисника и затворите граф. Затим опције које желите да проследите на командној линији могу бити прочитане из регистра HKCU\Software\TortoiseSVN\RevisionGraphOptions.

:lockЗакључава фајл у фолдеру датом у /путања. 'Катанац' дијалог је приказан тако да корисник може унесе урезивање за катанац.
:unlockОткључај фајл или све фајлове у фолдеру датом у /путања.
:rebuildiconcacheПрерађује кеш икона прозора. Само користите ово у случају да су иконе прозора уништене. Споредни ефекат овога је (који може бити избегнут) то да иконе на десктопу буду преуређене. Да се спречи бокс поруке, провуците /ноqуестион.
:properties

Приказује дијалог особина за путању дату у /path.

За рад са верзионисаним особинама ова команда захтева радну копију.

Ревизионе особине могу бити виђене/измењене ако је /path УРЛ и /rev:XXX је специфициран.

Да се отвори дијалог особина за одређену особину провуците име особине као /property:name.

:sync

Извоз/увоз подешавања, или зависе да ли су текућа подешавања или извезена подешавања новија, или као специфицирана.

Ако је путања прослеђена са /path, онда је путања коришћена да запамти или прочита отуд.

Параметар /askforpath ће приказати фајл отвори/сачувај дијалог кориснику да изабере извоз/увоз путању.

Ако није ни /load ни /save специфицирано онда ТортоисеСВН одређује да ли извести или увести подешавања посматрањем који је скорији. Ако је извозни фајл скорији од текућих подешавања, онда се подешавања уносе из фајла. Ако су текућа подешавања скорија од извозних подешавања онда се подешавања извозе у фајл подешавања.

Ако је /load специфицирана подешавања се увозе из фајла подешавања.

Ако је /save специфицирана текућа подешавања су извезена у фајл подешавања.

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


Пример (који ће бити унет на једној линији):

TortoiseProc.exe /command:commit
                 /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"test log message" /closeonend:0

TortoiseProc.exe /command:update /path:"c:\svn_wc\" /closeonend:0

TortoiseProc.exe /command:log /path:"c:\svn_wc\file1.txt"
                 /startrev:50 /endrev:60 /closeonend:0