Bijlage D. Automatisering van TortoiseSVN

Inhoudsopgave

TortoiseSVN commando's
Tsvncmd URL verwerker
TortoiseIDiff Commando's
TortoiseUDiff Commands

Omdat alle commando's voor TortoiseSVN worden bestuurd via commandoregel parameters kunt u dit automatiseren door middel van batch scripts of specifieke commando's of schermen van andere programma's opstarten. (bijvoorbeeld uw favoriete tekstverwerker).

Belangrijk

Onthoudt dat TortoiseSVN een GUI client is en deze automatiserings handleiding aangeeft hoe de TortoiseSVN schermen te tonen welke gebruikersinvoer verzamelen. Als u een script wilt schrijven dat geen enkele invoer van de gebruiker vereist, dient u de officiele Subversion commando-regel client gebruiken.

TortoiseSVN commando's

Het TortoiseSVN GUI programma wordt TortoiseProc.exe genoemd. Alle commando's worden opgegeven met de parameter /command:abcd waarbij abcd de naam is van het vereiste commando. De meeste van deze commando's hebben ten minste één pad-argument nodig, welke wordt gegeven met /path:"some\path". In de volgende tabel verwijst het commando naar de /command:abcd parameter en het pad verwijst naar de /path:"some\path" parameter.

There's a special command that does not require the parameter /command:abcd but, if nothing is specified on the command line, starts the project monitor instead. If /tray is specified, the project monitor starts hidden and only adds its icon to the system tray.

Omdat sommige commando's een lijst van doelpaden kunnen aannemen (bijv. een aantal specifieke bestanden vastleggen), kan de /path parameter meerdere paden, gescheiden door een * teken, bevatten.

You can also specify a file which contains a list of paths, separated by newlines. The file must be in UTF-16 format, without a BOM. If you pass such a file, use /pathfile instead of /path. To have TortoiseProc delete that file after the command is finished, you can pass the parameter /deletepathfile. If you don't pass /deletepathfile, you have to delete the file yourself or the file gets left behind.

Het voortgangsvenster, dat wordt gebruikt voor vastleggingen, bijwerkingen en vele andere commando's, blijft gewoonlijk geopend nadat het commando is beëindigd totdat de gebruiker op de OK knop klikt. Dit kan worden gewijzigd door de corresponderende optie in het instellingenvenster aan te vinken. Maar als die instelling wordt gebruikt, zal het voortgangsvenster sluiten hoe het commando ook vanuit het batch-bestand of vanuit de TortoiseSVN contextmenu wordt opgestart.

Om een andere locatie van het configuratiebestand aan te geven gebruikt u de parameter /configdir:"path\to\config\directory". Dit zal het standaardpad, alsook elke registry instelling overschrijven.

Om het voortgangsscherm aan het einde van een commando automatisch te sluiten zonder de permanente instelling te gebruiken, kunt u de /closeonend parameter opgeven.

  • /closeonend:0 het venster niet automatisch sluiten

  • /closeonend:1 automatisch sluiten indien er geen fouten zijn

  • /closeonend:2 automatisch sluiten indien er geen fouten of conflicten zijn

  • /closeonend:3 automatisch sluiten indien er geen fouten, conflicten of samenvoegingen zijn

Om het voortgangsvenster voor locale operaties te sluiten als er geen fouten of conflicten zijn, geeft u de /closeforlocal parameter op.

De onderstaande tabel toont alle commando's welke kunnen worden benaderd met de TortoiseProc.exe commando regel. Zoals hierboven is beschreven, dienen deze in de vorm /command:abcd te worden gebruikt. In de tabel wordt het voorvoegsel /command weggelaten om ruimte te sparen.

Tabel D.1. Lijst van alle beschikbare commando's en opties

CommandoBeschrijving
:aboutToont het 'over' scherm. Dit wordt ook getoond als geen enkel commando is opgegeven.
:log

Opens the log dialog. The /path specifies the file or folder for which the log should be shown. Additional options can be set:

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict enables the 'stop-on-copy' checkbox,

  • /merge enables the 'include merged revisions' checkbox,

  • /datemin:"{datestring}" sets the start date of the filter, and

  • /datemax:"{datestring}" sets the end date of the filter. The date format is the same as used for svn date revisions.

  • /findstring:"filterstring" fills in the filter text,

  • /findtext forces the filter to use text, not regex, or

  • /findregex forces the filter to use regex, not simple text search, and

  • /findtype:X with X being a number between 0 and 511. The numbers are the sum of the following options:

    • /findtype:0 filtert op alles

    • /findtype:1 filtert op berichten

    • /findtype:2 filtert op pad

    • /findtype:4 filtert op auteurs

    • /findtype:8 filtert op revisies

    • /findtype:16 not used

    • /findtype:32 filtert op bug ID

    • /findtype:64 not used

    • /findtype:128 filter by date

    • /findtype:256 filter by date range

  • If /outfile:path\to\file is specified, the selected revisions are written to that file when the log dialog is closed. The revisions are written in the same format as is used to specify revisions in the merge dialog.

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}

:checkoutOpens the checkout dialog. The /path specifies the target directory and the /url specifies the URL to checkout from. If you specify the key /blockpathadjustments, the automatic checkout path adjustments are blocked. The /revision:XXX specifies the revision to check out.
:importOpens the import dialog. The /path specifies the directory with the data to import. You can also specify the /logmsg switch to pass a predefined log message to the import dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where pad points to a file containing the log message.
:updateUpdates the working copy in /path to HEAD. If the option /rev is given then a dialog is shown to ask the user to which revision the update should go. To avoid the dialog specify a revision number /rev:1234. Other options are /nonrecursive, /ignoreexternals and /includeexternals. The /stickydepth indicates that the specified depth should be sticky, creating a sparse checkout. The /skipprechecks can be set to skip all checks that are done before an update. If this is specified, then the Toon logboek button is disabled, and the context menu to show diffs is also disabled after the update.
:commitOpent het vastleggen venster. De /path geeft de doelmap of de lijst met bestanden op om vast te leggen. U kunt ook de /logmsg optie aangeven om een voorgedefiniëerd logbericht aan het vastleggen venster door te geven. Of, als u geen logbericht op de commandoregel wilt doorgeven gebruikt u dan /logmsgfile:path, waarbij pad een bestand aangeeft dat het logbericht bevat. Om het bug ID veld van tevoren te vullen (voor het geval dat u integratie met bug trackers naar behoren heerft ingesteld) kunt u de /bugid:"het id van de bug hier" gebruiken.
:addVoegt de bestanden in /path toe aan versiebeheer.
:revertDraait alle locale aanpassingen aan de werkkopie terug. De /path geeft aan welke items terug te draaien.
:cleanupCleans up interrupted or aborted operations and unlocks the working copy in /path. You also have to pass the /cleanup to actually do the cleanup. Use /noui to prevent the result dialog from popping up (either telling about the cleanup being finished or showing an error message). /noprogressui also disables the progress dialog. /nodlg disables showing the cleanup dialog where the user can choose what exactly should be done in the cleanup. The available actions can be specified with the options /cleanup for status cleanup, /breaklocks to break all locks, /revert to revert uncommitted changes, /delunversioned, /delignored, /refreshshell, /externals, /fixtimestamps and /vacuum.
:resolveMarkeert een conflicterend bestand dat wordt aangegeven in /path als opgelost. Als /noquestion is ingesteld, dan wordt het probleem opgelost zonder de gebruiker van tevoren te raadplegen of het daadwerkelijk moet worden uitgevoerd.
:repocreateMaakt een archief aan in /path
:switchOpens the switch dialog. The /path specifies the target directory and /url the URL to switch to.
:exportExports the working copy in /path to another directory. If the /path points to an unversioned directory, a dialog will ask for an URL to export to the directory in /path. If you specify the key /blockpathadjustments, the automatic export path adjustments are blocked.
:dropexportExports the working copy in /path to the directory specified in /droptarget. This exporting does not use the export dialog but executes directly. The option /overwrite specifies that existing files are overwritten without user confirmation, and the option /autorename specifies that if files already exist, the exported files get automatically renamed to avoid overwriting them. The option /extended can specify either localchanges to only export files that got changed locally, or unversioned to also export all unversioned items as well.
:dropvendorCopies the folder in /path 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.
:mergeOpens the merge dialog. The /path specifies the target directory. For merging a revision range, the following options are available: /fromurl:URL, /revrange:string. For merging two repository trees, the following options are available: /fromurl:URL, /tourl:URL, /fromrev:xxx and /torev:xxx.
:mergeallOpent het samenvoeg scherm. De /path geeft de doeldirectory aan.
:copyBrings up the branch/tag dialog. The /path is the working copy to branch/tag from. And the /url is the target URL. If the urls starts with a ^ it is assumed to be relative to the repository root. To already check the option Switch working copy to new branch/tag you can pass the /switchaftercopy switch. To check the option Tussenliggende mappen aanmaken pass the /makeparents switch. You can also specify the /logmsg switch to pass a predefined log message to the branch/tag dialog. Or, if you don't want to pass the log message on the command line, use /logmsgfile:path, where pad points to a file containing the log message.
:settingsOpent het instellingen scherm.
:removeVerwijdert één of meerdere bestanden van versiebeheer.
:renameHernoemt het bestand in /path. De nieuwe naam voor het bestand wordt in een venster gevraagd. Om de vraag om gelijksoortige bestanden in dezelfde handeling te hernoemen te voorkomen, geeft u /noquestion op.
:diffStarts the external diff program specified in the TortoiseSVN settings. The /path specifies the first file. If the option /path2 is set, then the diff program is started with those two files. If /path2 is omitted, then the diff is done between the file in /path and its BASE. If the specified file also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option /ignoreprops. To explicitly set the revision numbers use /startrev:xxx and /endrev:xxx, and for the optional peg revision use /pegrevision:xxx. If /blame is set and /path2 is not set, then the diff is done by first blaming the files with the given revisions. The parameter /line:xxx specifies the line to jump to when the diff is shown.
: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

Afhankelijk van de URL's en de revisienummers welke moeten worden vergeleken, toont dit of een unified diff (als de optie unified is ingesteld), of een lijst met bestanden welke zijn gewijzigd, of start de vergelijkingskijker als de URL's verwijzen naar twee bestanden.

De opties url1, url2, revision1 en revision2 dienen te zijn opgegeven. De opties pegrevision, ignoreancestry, verklaren en unified zijn optioneel.

If the specified url also has property modifications, the external diff tool is also started for each modified property. To prevent that, pass the option /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.

:conflicteditorStart de conflict bewerker, welke is ingesteld in de TortoiseSVN instellingen, met de correcte bestanden voor het conflicterende bestand in /path.
:relocateOpent het verhuis scherm. De /path geeft de werkkopie aan om te verhuizen.
:helpOpent het help bestand.
:repostatusOpent het scherm voor controle op wijzigingen. De /path geeft de map van de werkkopie aan. Als /remote is opgegeven maakt het scherm bij opstarten direct contact met het archief alsof de gebruiker op de Controleer archief knop heeft geklikt.
:repobrowser

Starts the repository browser dialog, pointing to the URL of the working copy given in /path or /path points directly to an URL.

An additional option /rev:xxx can be used to specify the revision which the repository browser should show. If the /rev:xxx is omitted, it defaults to HEAD.

If /path points to an URL, the /projectpropertiespath:path/to/wc specifies the path from where to read and use the project properties.

If /outfile:path\to\file is specified, the selected URL and revision are written to that file when the repository browser is closed. The first line in that text file contains the URL, the second line the revision in text format.

:ignoreVoegt alle doelen in /path toe aan de negeren lijst. Oftewel, voegt de svn:ignore eigenschap toe aan die bestanden.
:blame

Opent het verklaar scherm voor het bestand dat wordt gegeven in /path.

Als de opties /startrev en /endrev zijn ingesteld wordt niet het scherm dat het te verklaren bereik vraagt getoond, maar worden de waarden van deze opties in de revisie gebruikt.

Als de optie /line:nnn is ingesteld zal TortoiseBlame worden geopend met het aangegeven regelnummer in beeld.

De opties /ignoreeol, /ignorespaces en /ignoreallspaces worden ook ondersteund.

:catSlaat een bestand op vanuit een URL of werkkopiepad gegeven in /path naar de locatie gegeven in /savepath:path. De revisie wordt gegeven in /revision:xxx. Dit kan worden gebruikt om een bestand met van een bepaalde revisie op te halen.
:createpatchCreates a patch file for the path given in /path. 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

Shows the revision graph for the path given in /path.

To create an image file of the revision graph for a specific path, but without showing the graph window, pass /output:path with the path to the output file. The output file must have an extension that the revision graph can actually export to. These are: .svg, .wmf, .png, .jpg, .bmp and .gif.

Since the revision graph has many options that affect how it is shown, you can also set the options to use when creating the output image file. Pass these options with /options:XXXX, where XXXX is a decimal value. The best way to find the required options is to start the revision graph the usual way, set all user-interface options and close the graph. Then the options you need to pass on the command line can be read from the registry HKCU\Software\TortoiseSVN\RevisionGraphOptions.

:lockBlokkeert één of meerdere bestanden in de in /path gegeven map. Het 'blokkeer' venster wordt getoond zodat de gebruiker commentaar op de blokkade kan ingeven.
:unlockVerwijdert de blokkering van één of meerdere bestanden in de in /path gegeven map.
:rebuildiconcacheBouwt de windows pictogrammen cache opnieuw op. Gebruik dit alleen voor het geval dat de windows pictogrammen corrupt zijn geraakt. Een bijwerking hiervan is (wat niet kan worden voorkomen) dat de pictogrammen op het werkblad worden herschikt. Geef /noquestion mee om het meldingsscherm te onderdrukken.
:properties

Shows the properties dialog for the path given in /path.

For dealing with versioned properties this command requires a working copy.

Revision properties can be viewed/changed if /path is an URL and /rev:XXX is specified.

To open the properties dialog directly for a specific property, pass the property name as /property:name.

:sync

Exports/imports settings, either depending on whether the current settings or the exported settings are newer, or as specified.

If a path is passed with /path, then the path is used to store or read the settings from.

The parameter /askforpath will show a file open/save dialog for the user to chose the export/import path.

If neither /load nor /save is specified, then TortoiseSVN determines whether to export or import the settings by looking at which ones are more recent. If the export file is more recent than the current settings, then the settings are loaded from the file. If the current settings are more recent, then the settings are exported to the settings file.

If /load is specified, the settings are imported from the settings file.

If /save is specified, the current settings are exported to the settings file.

The parameter /local forces a settings export to include local settings, i.e. settings that refer to local paths.


Voorbeelden (welke op één regel dienen te worden ingegeven):

TortoiseProc.exe /command:commit
                 /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"test logbericht" /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