Dodatak D. Automatizovanje TortoiseSVN

Sadržaj

TortoiseSVN komande
Tsvncmd URL rukovalac
TortozIDif komande
TortoiseUDiff komande

Pošto su sve komande TortoiseSVN kontrolisane kroz parametre kontrolne linije, možete automatizovati to sa beč skriptom da pokrenete posebne komande i dijaloge iz drugih programa (npr. vašeg najdražeg tekst uređivača).

Važno

Zapamtite da je TortoiseSVN GUI klijent, i ovaj automatizacioni vodič prikazuje kako da učinite da se TortoiseSVN dijalog pojavi da sakupi korisnikove ulaze. Ako želite da napišete skript koji ne zahteva ulaz, treba da koristite zvaničan Subverzioni linijski klijent umesto toga.

TortoiseSVN komande

TortoiseSVN GUI program se zove TortoiseProc.exe. Sve komande su specificirane sa parametrom /command:abcd gde je abcd željeno ime komande. Većina od ovih komandi zahteva najmanje jednu putanju kao argument, što je dato sa /path:"some\path". U sledećoj tabeli komande se odnose na /command:abcd parametar i putanju koja se odnosi na /path:"some\path" parametar.

Postoji specijalna komanda koja ne traži parametar /command:abcd ali ako se ništa ne specificira u komandnoj liniji pokreće se projektni monitor umesto toga. Ako se /tray specificira projektni monitor se pokreće kao sakriven i samo doda ikonu na sistemskom treju.

Kako neke od komandi mogu uzeti listu ciljnih putanja (npr. urezivanje više specifičnih fajlova) /path parametar može uzeti više putalji, odvojenih sa * karakterom.

Takođe možete odrediti fajl koji sadrži listu putanja razdvojene novom linijom. Fajl morabiti UTF-16 format bez BOM. Ako šaljete takav fajl koristite /pathfile umesto /path. Da TortoiseProc obriše taj fajl posle završetka komande morate poslati parametar /deletepathfile. Ako ne pošaljete /deletepathfile, morate sami da obrišete fajl ili da ga ostavite.

Progres dijalog koji se koristi za urezivanje, obnavlja i mnogo više komandi obično ostaje otvoreno posle zavreštka rada komande dok korisnik ne pritisne OK dugme. Ovo bi se moglo promeniti proverom odgovarajiće opvžcije u dijalogu podešavanja. Koristeći to podešavanje zatvoriće se progres dijalog, nije bitno da li ste počeli komandu iz beč fajla ili iz TortoiseSVN kontekst menija.

Da se specificira različita lokacija konfiguracionog fajla, koristite parametar /configdir:"path\to\config\directory". Ovo će promeniti podrazumevanu putanju, uključujući i podešavanje registra.

Da bi se zatvorio progres dijalog na kraju komande bez korišćenja stalnog podešavanja treba da provučete /closeonend parametar.

  • /closeonend:0 ne zatvara dijalog automatski

  • /closeonend:1 auto zatvaranje ako nema grešaka

  • /closeonend:2 auto zatvaranje ako nema grešaka i konflikata

  • /closeonend:3auto zatvaranje ako nema grešaka, konflikata i stapanja

Da zatvorite dijalog napredovanja za lokalne operacije ako nema grešaka i konflikata, provučite /closeforlocal parametar.

Tabela koja sledi lista sve komande kojima treba da pristupi TortoiseProc.egze komandna linija. Kako je ranije opisano, ovo treba da se koristi u obliku /command:abcd. U tabeli, /command prefiks nedostaje da se uštedi na prostoru.

Tabela D.1. Lista dostupnih komandnih opcija

KomandaOpis
:aboutPrikazuje dijalog sa opisom programa. Ovaj dijalog je takođe prikazan ako komanda nije data.
:log

Otvara dijalog dnevnika. /path :

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict omogućava 'stop kopiranja' čekboks,

  • /merge omogućava 'uključi stopljene revizije' čekboks,

  • /datemin:"{datestring}" postavlja početni datum filtra, i

  • /datemax:"{datestring}" postavlja krajnji datum filtra. Format datuma je isti kao korišćen za svn datum revizije.

  • /findstring:"filterstring" popunjava filter tekst,

  • /findtext forsira filter da koristi tekst, ne regeks, ili

  • /findregex forsira filter da koristi regeks, ne jednostavno pretraživanje teksta, i

  • /findtype:X sa Xkoje je broj između 0 i 511. Brojevi su suma sledećih opcija:

    • /findtype:0 filter po svemu

    • /findtype:1 filter po porukama

    • /findtype:2 filter po putanjama

    • /findtype:4 filtriranje pomoću atora

    • /findtype:8 filter po revizijama

    • /findtype:16ne koristi se

    • /findtype:32 filter po bag ID

    • /findtype:64 ne koristi se

    • /findtype:128 filter po datumu

    • /findtype:256 filter po opsegu datuma

  • Ako je /outfile:path\to\file specificirano, izabrane revizije su zapisane u taj fajl kada se dijalog zatvori. Revizije su upisane u istom formatu kao što je korišćeno da se specificiraju revizije u dijalogu stapanja.

specificira fajl ili folder za koji je dnevnik prikazan. Dodatne opcije se mogu podesiti:

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict omogućava 'stop kopiranja' čekboks,

  • /merge omogućava 'uključi stopljene revizije' čekboks,

  • /datemin:"{datestring}" postavlja početni datum filtra, i

  • /datemax:"{datestring}" postavlja krajnji datum filtra. Format datuma je isti kao korišćen za svn datum revizije.

  • /findstring:"filterstring" popunjava filter tekst,

  • /findtext forsira filter da koristi tekst, ne regeks, ili

  • /findregex forsira filter da koristi regeks, ne jednostavno pretraživanje teksta, i

  • /findtype:X sa Xkoje je broj između 0 i 511. Brojevi su suma sledećih opcija:

    • /findtype:0 filter po svemu

    • /findtype:1 filter po porukama

    • /findtype:2 filter po putanjama

    • /findtype:4 filtriranje pomoću atora

    • /findtype:8 filter po revizijama

    • /findtype:16ne koristi se

    • /findtype:32 filter po bag ID

    • /findtype:64 ne koristi se

    • /findtype:128 filter po datumu

    • /findtype:256 filter po opsegu datuma

  • Ako je /outfile:path\to\file specificirano, izabrane revizije su zapisane u taj fajl kada se dijalog zatvori. Revizije su upisane u istom formatu kao što je korišćeno da se specificiraju revizije u dijalogu stapanja.

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}

:checkoutOtvara dijalog preuzimanja. /putanja specificire ciljni folder i /url specificire URL iz kog se preuzima. Ako specificirate taster /blockpathadjustments, blokira se automatsko podešavanje putanje preuzimanja. /revision:XXX specificira reviziju preuzimanja.
:importOtvara dijalog uvoza. /putanja specificira folder sa podacima za uvoz. Možete, takođe, specificirati /logmsg preklopnik da provučete predefinisane poruke dnevnika u dijalog uvoza. Ili, ako ne želite da provučete poruke dnevnika u komandnoj liniji, koristite /logmsgfile:path, gde putanja pokazuje na fajl koji sadrži poruku dnevnika.
:updateUskladi radnu kopiju u /putanja prema GLAVNOJ. Ako je opcija /rev data onda je dijalog prikazan da pita korisna koju reviziju treba uskladiti. Da se izbegne dijalog specificirajte revizioni broj /rev:1234. Ostale opcije su /nonrecursive, /ignoreexternals i /uključieksternale. Tada /stickydepth indicira da je specificirana dubina tanka kreirajući prazno preuzimanje. /skipprechecks može biti setovano da preskoči sve provere koje su date pre usklađivanja, onda je digme Prikaži dnevnik onemogućeno i kontekst meni koji prikazuje razlike je takođe onemogućen pri usklađivanju.
:commitOtvara dijalog urezivanja. /putanja specificira ciljni folder ili listu fajlova za obnavljanje. Možete takođe specificirati /logmsg prekidač da provučete predefinisane dnevnik poruke u dijalog urezivanja. Svakako, ako ne želite da provučete dnevnik poruku na komandnoj liniji, koristite /logmsgfile:path, gde putanja ukazije na fajl koji sadrži dnevnik poruku. Da bi se pre-popunio bag ID (u slučaju da ste odgovarajuće podesili integraciju sa bag tragačem), možete koristiti /bugid:"bag id ovde" da to uradite.
:addDodaje fajlove u /putanja za kontrolu verzije.
:revertVraća lokalne izmene radne kopije. /putanja kaže koje stavke vratiti.
:cleanupBriše prekinute ili zaustavljene operacije i otključava radnu kopiju u /putanja. Imate takođe da omogućite /cleanup da se uradi čišćenje. Koristi /noui da preduprediš dijalog rezultata da iskoči (ili obaveštavajući da je čišćenje gotovo ili prikazujući poruku greške). /noprogressui takođe onemogućava dijalog napredovanja. /nodlg onemogućava prikazivanje dijalog čišćenja gde korisnik može izabrati šta tačno treba uraditi pri čišćenju. Moguće akcije mogu biti specificirane opcijama /cleanup za status čišćenja, /breaklocks da se uklone sve brave, /revert da se vrate neurezane izmene, /delunversioned,/delignored, /refreshshell, /externals, /fixtimestamps i /vacuum.
:resolveOznačava konfliktne fajlove specificirane u /putanja kao rešene. Ako je /noquestion dat, rešavanje je dato bez prethodnog pitanja korisnika da li da se to uradi.
:repocreateKreira spremište u /putanja
:switchOtvara dijalog skretanja. /putanja određuje ciljni direktorijum i /url URL za skretanje.
:exportIzvozi radnu kopiju u /putanja za dugi folder. Ako /putanja ukazuje na neverzionisani folder, dijalog će vas pitati za URL za izvoz u folder u /putanja. Ako specificirate taster /blockpathadjustments, automatsko podešavanje izvozne putanje je blokirano.
:dropexportIzvozi tadnu kopiju u /putanja u direktorijum određen u /droptarget. Izvoz ne koristi izvozni dijalog već se izvodi direktno. Opcija /overwrite određuje da se postojeći fajlovi prepisuju bez potvrđivanja, a opcija /autorename određuje da svi fajlovi već postoje, izvozni fajlovi se automatski preimenuju da se izbegne da se prepišu. Opcija /extended može određuje ili lokalne izmene da se samo izvezu fajlovi koji su izmenjeni lokalno, ili neverzionisan da se takođe izvezu sve neverzionisane stavke takođe.
:dropvendorCopies the folder in /putanja 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 /noui to skip the confirmation dialog, and /noprogressui to also disable showing the progress dialog.
:mergeOtvara dijalog stapanja. /putanja specificira ciljni direktorijum. Za stapanje opsega revizija sledeće opcije su moguće: /fromurl:URL, /revrange:string. Za stapanje dva stabla spremišta sledće opcije su moguće: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx.
:mergeallOtvara dijalog stapanja. /putanja specificira ciljni folder.
:copyPodignite grana/znak dijalog. /putanja je radna kopija iz grana/znak. I /url je ciljni URL. Ako url-ovi kreću sa ^ uzima se da su relativno u odnosu na koren spremišta. Za već proverenu opciju Skreni radnu kopiju u novu granu/znak. možete provući /switchaftercopy prekidač. Da proverite opciju Kreiraj posredne foldere provucite /makeparents prekidač. Možete takođe specificirati /logmsg prekidač da provučete predefinisani dnevnik poruka ka grana/znak dijalogu. Ili, ako ne želite da povučete dnevnik poruka u komandnoj liniji, koristite /logmsgfile:path, gde
:settingsOtvara dijalog podešavanja.
:removeUklanja fajl(ove) u /putanja iz kontrole verzija.
:renamePreimenuje fajl u /putanja. Novo ime za fajl pita dijalog. Da se izbegne pitanje o preimenovanju sličnih fajlova u jednom koraku, prevuci /noquestion.
:diffPokreće eksterni dif program označen u TortoiseSVN podešavanju. /putanja specificira prvi fajl. Ako je opcija /path2 izabrana onda dif program počinje sa ta dva fajla. Ako /path2 nedostaje onda dif radi između fajla u /putanja i OSNOVE. Ako je specificiran fajl sa izmenjenim osobinama eksterni dif alat takođe počinje za svaku izmenjenu osobinu. Da se predupredi to pošaljite opciju /ignoreprops. Da se eksplicitno izaberu revizioni brojevi koristite /startrev:xxx i /endrev:xxx, i za opcione peg revizije koristite /pegrevision:xxx. Ako je /krivac izabrana i /path2 nije izabrana onda dif najpre okrivi fajlove datom revizijom. Parametar /linija:xxx specificira liniju za skok gde je dif prikazan.
: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

U zavisnosti od URLa i revizija za poređenje, ovo ili prikazuje diff (ako je opcija ujedinjen podešen), dijalog sa listom fajlova koji su izmenjeni ili ako URL ukazuju na fajlove koji pokreću diff pregledač za ta dva fajla.

Opcije url1, url2, revision1 i revision2 moraju biti specificirani. Opcije pegrevision, ignoreancestry, blame i unified su opcionalni.

Ako specificiran url takođe ima izmene osobina eksterni dif alat takođe se pokreće za svaku izmenjenu osobinu. Da se to predupredi prosledite opiciju /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.

:conflicteditorPokreće konflikt uređivač specificiran u TortoiseSVN podešavanju sa korektnim fajlovima za konfliktni fajl u /putanja.
:relocateOtvara dijalog relociranja. /putanja specificira putanju radne kopije za relociranje.
:helpOtvara fajl pomoći.
:repostatusOtvara dijalog provera-izmena. /putanja specificira folder radne kopije. Ako je /daljinski specificiran, dijalog odmah pri startu kontaktira spremište, kao kad korisnik klikne na Provera spremišta dugme.
:repobrowser

Započinje dijalog pretraživača spremišta, upravljen prema URL radne kopije date u /path ili /path ukazuje direktno na URL.

Dodatna opcija /rev:xxx se može koristiti da se specificira revizija koju treba da prikaže pretraživač spremišta. Ako /rev:xxx nedostaje, uobičajena je GLAVNA revizija.

Ako /path ukazije na URL, /projectpropertiespath:path/to/wc specificira putanju odakle se čitaju i koriste osobine projekta.

Ako je /outfile:path\to\file specificirano, izabrani URL i revizija su upisani u taj fajl kada je pretraživač spremišta zatvoren. Prva linija u tom tekst fajlu sadrži URL, druga linija reviziju u tekstualnom obliku.

:ignoreDodaje sve ciljeve u /putanja u listu zanemarivanja, tj. dodaje svn:ignore karakteristike tim fajlovima.
:blame

Otvara dijalog okrivljavanja za fajlove specificirane u /path.

Ako opcije /startrev i /endrev su podešeni, zatim se poziva dijalog za opseg okrivljavanja koji nije prikazan ali revizione vrednosti ovih opcija su korišćene umesto toga.

Ako je opcija /line:nnn podešena, TortoiseBLAME će se otvoriti sa prikazanim specifičnim brojevima linija.

Opcije /ignoreeol, /ignorespaces i /ignoreallspaces su takođe podržani.

:catČuva fajlove iz URL ili foldera radne kopije dat u /putanja ka lokaciji datoj u /savepath:path. Revizija je data u /revision:xxx. Ovo može biti korišćeno da se dobije fajl sa specifičnom revizijom.
:createpatchCreates a patch file for the path given in /putanja. To skip the file Save-As dialog you can pass /savepath:path 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

Prikazuje revizioni graf za putanju datu u /path.

Da creirate fajl sliku revizionog grafa za specifičnu putanju, ali bez prikazivanja prozora grafa, pošaljite /output:path sa putanjom ka izlaznom fajlu. Izlazni fajl mora da ima ekstenziju koju revizioni graf stvarno izvozi. To su: .svg, .wmf, .png, .jpg, .bmp and .gif.

Pošto revizioni graf ima mnogo opcija koje utiču kako je prikazano, možete takođe podesiti opcije da ih koristite kada kreirate izlazni fajl slike. Prosledite ove opcije sa /options:XXXX, gde je XXXX decimalna vrednost. Najbolji način da se nađe željena opcija je da se započne revizioni graf na uobičajeni način, podesite sve opcije interfejsa korisnika i zatvorite graf. Zatim opcije koje želite da prosledite na komandnoj liniji mogu biti pročitane iz registra HKCU\Software\TortoiseSVN\RevisionGraphOptions.

:lockZaključava fajl u folderu datom u /putanja. 'Katanac' dijalog je prikazan tako da korisnik može unese urezivanje za katanac.
:unlockOtključaj fajl ili sve fajlove u folderu datom u /putanja.
:rebuildiconcachePrerađuje keš ikona prozora. Samo koristite ovo u slučaju da su ikone prozora uništene. Sporedni efekat ovoga je (koji može biti izbegnut) to da ikone na desktopu budu preuređene. Da se spreči boks poruke, provucite /noquestion.
:properties

Prikazuje dijalog osobina za putanju datu u /path.

Za rad sa verzionisanim osobinama ova komanda zahteva radnu kopiju.

Revizione osobine mogu biti viđene/izmenjene ako je /path URL i /rev:XXX je specificiran.

Da se otvori dijalog osobina za određenu osobinu provucite ime osobine kao /property:name.

:sync

Izvoz/uvoz podešavanja, ili zavise da li su tekuća podešavanja ili izvezena podešavanja novija, ili kao specificirana.

Ako je putanja prosleđena sa /path, onda je putanja korišćena da zapamti ili pročita otud.

Parametar /askforpath će prikazati fajl otvori/sačuvaj dijalog korisniku da izabere izvoz/uvoz putanju.

Ako nije ni /load ni /save specificirano onda TortoiseSVN određuje da li izvesti ili uvesti podešavanja posmatranjem koji je skoriji. Ako je izvozni fajl skoriji od tekućih podešavanja, onda se podešavanja unose iz fajla. Ako su tekuća podešavanja skorija od izvoznih podešavanja onda se podešavanja izvoze u fajl podešavanja.

Ako je /load specificirana podešavanja se uvoze iz fajla podešavanja.

Ako je /save specificirana tekuća podešavanja su izvezena u fajl podešavanja.

Parametar /local forsira izvoz podešavanja da uključe lokalna podešavanja, tj. podešavanja koja se odnose na lokalne putanje.


Primer (koji će biti unet na jednoj liniji):

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