Příloha D. Automatizace TortoiseSVN

Obsah

Příkazy TortoiseSVN
Obslužná rutina URL Tsvncmd
Příkazy TortoiseIDiff
Příkazy TortoiseUDiff

Protože všechny příkazy TortoiseSVN jsou řízeny přes parametry příkazového řádku, můžete je automatizovat pomocí dávkových skriptů nebo spustit konkrétní příkazy a dialogová okna z jiných programů (např. Váš oblíbený textový editor).

Důležité

Nezapomeňte, že TortoiseSVN je klient grafického uživatelského rozhraní a tento průvodce automatizací Vám ukáže, jak zobrazit dialogová okna TortoiseSVN pro sběr vstupů uživatele. Pokud chcete napsat skript, který nevyžaduje žádné vstupy, měli byste místo toho použít oficiální příkazový řádek klienta Subversion.

Příkazy TortoiseSVN

Program grafického uživatelského rozhraní TortoiseSVN se nazývá TortoiseProc.exe. Všechny příkazy jsou uvedeny s parametrem /command:abcd kde abcd je povinný název příkazu. Většina těchto příkazů potřebujete alespoň jeden argument cesty, který je předáván s /path:"nějaká\cesta". V následující tabulce se příkaz vztahuje k parametru /command:abcd a cesta se vztahuje k parametru /path:"nějaká\cesta".

Existuje zvláštní příkaz nevyžadující parametr /command:abcd, ale, pokud na příkazovém řádku není nic zadáno, bude místo toho spuštěn monitor projektů. Pokud je předáno /tray, bude monitor spuštěn na pozadí a pouze přidá svoji ikonu do systémové lišty.

Protože některým z těchto příkazů můžete předat seznam cílových cest (např. odevzdání několika konkrétních souborů) parametr /path může mít i několik cest, oddělených znakem *.

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.

Dialogové okno průběhu, který se používá pro odevzdání, aktualizace a mnoho dalších příkazů obvykle zůstane otevřené i po dokončení příkazu, dokud uživatel nestiskne tlačítko OK. Toto může být změněno zaškrtnutím příslušné volby v dialogovém okně nastavení. Ale použitím tohoto nastavení se bude dialogové okno průběhu bez ohledu na to, pokud spustíte příkaz z dávkového souboru nebo z kontextového menu TortoiseSVN.

Chcete-li zadat jiné umístění konfiguračního souboru, použijte parametr /configdir:"cesta\k\adresáři astavení". Tím se přepíše výchozí cesta, včetně všech nastavení registru.

Chcete-li automaticky zavřít dialogové okno průběhu na konci příkazu, bez použití trvalého nastavení, můžete předat parametr /closeonend.

  • /closeonend:0 dialogové okno se automaticky nezavře

  • /closeonend:1 automaticky zavřít, pokud nejsou žádné chyby

  • /closeonend:2 automaticky zavřít, pokud nejsou žádné chyby a konflikty

  • /closeonend:3 automaticky zavřít, pokud nejsou žádné chyby, konflikty a sloučení

Chcete-li zavřít dialogové okno průběhu pro místní operace, pokud nedošlo k chybám nebo konfliktům, předejte parametr /closeforlocal.

Níže uvedená tabulka uvádí všechny příkazy, ke kterým lze přistupovat pomocí příkazového řádku TortoiseProc.exe. Jak je uvedeno výše, tyto by měly být použity ve formě /command:abcd. V tabulce je předpona /command vynechána pro úsporu místa.

Tabulka D.1. Seznam dostupných příkazů a možností

PříkazPopis
:aboutZobrazuje informace o programu. Také je zobrazen, není-li zadán příkaz.
:log

Otevře dialogové okno záznamu. Volba /path udává soubor nebo složku pro které bude záznam zobrazen. Lze nastavit další možnosti:

  • /startrev:xxx,

  • /endrev:xxx,

  • /strict povoluje zaškrtávací políčko 'Zastavit na kopírování'

  • /merge povoluje zaškrtávací políčko 'Zahrnout sloučené revize',

  • /datemin:"{datestring}" nastaví počáteční datum filtru a

  • /datemax:"{datestring}" nastaví koncové datum filtru. Formát data je stejný jako u dat revizí svn.

  • /findstring:"filterstring" vyplní text k filtrování,

  • /findtext donutí filtr použít text, ne regulární výraz, nebo

  • /findregex donutí filtr použít regulární výraz, ne hledání prostého textu a

  • /findtype:X kde X je číslo mezi 0 a 511. Čísla jsou sumou následujících možností:

    • /findtype:0 filtrovat podle všeho

    • /findtype:1 filtrovat podle zpráv

    • /findtype:2 filtrovat podle zpráv

    • /findtype:4 filtrovat podle autorů

    • /findtype:8 filtrovat podle revizí

    • /findtype:16 není využito

    • /findtype:32 filtrovat podle ID chyby

    • /findtype:64 není využito

    • /findtype:128 filtrovat podle data

    • /findtype:256 filtrovat podle časového období

  • Pokud /Outfile:cesta\k\souboru je nastavena, vybrané revize jsou zapsány do tohoto souboru, když je dialogové okno záznamu uzavřeno. Revize jsou vypisovány ve stejném formátu, jaký je použit v dialogovém oknu sloučení.

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}

:checkoutOtevře dialogové okno získání. /path určuje cílový adresář a /url určuje adresu URL, z které získat. Pokud zadáte klíč /blockpathadjustments , jsou automatické úpravy cest získání blokovány. /revision:XXX určuje revizi k získání.
:importOtevře dialogové okno importu. /path specifikuje adresář s daty pro import. Můžete také zadat přepínač /logmsg k předání přednastavené zprávy záznamu dialogu. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta , kde cesta odkazuje na soubor, obsahující zprávu záznamu.
:updateAktualizuje pracovní kopii v /path na HEAD. Pokud je zadána možnost /rev pak se zobrazí dialogové okno se žádostí, aby uživatel vybral revizi, na kterou by aktualizace měla jít. Aby se zabránilo dialogovému oknu zadávat číslo revize /rev:1234. Další možnosti jsou /nonrecursive, /ignoreexternals a /includeexternals. /stickydepth znamená, že daná hloubka by měla být výchozí, čímž vytvoří řídké získání. /skipprechecks může být nastaveno pro přeskočení všech kontrol, které jsou provedeny před aktualizací. Pokud je toto zadáno, pak je tlačítko Zobrazit záznam vypnuté a kontextové menu pro zobrazení rozdílů je po aktualizaci také vypnuté.
:commitOtevře dialogové okno odevzdání. /path určuje cílový adresář nebo seznam souborů k odevzdání. Můžete také zadat přepínač /logmsg pro předání předem nastavené zprávy záznamu v dialogovém okně. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta , kde cesta odkazuje na soubor, obsahující zprávu záznamu. Pro předvyplnění rámečku s ID chyby (v případě, že jste nastavili integraci se systémem pro sledování chyb správně), můžete k tomuto použít /bugid:"id chyby zde".
:addPřidá soubory v /path pod správu verzí.
:revertVrátí místní změny pracovní kopie. /path říká, které položky chcete vrátit.
: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.
:resolveOznačí konfliktní soubor zadaný v /path jako vyřešený. Pokud je předán /noquestion, pak řešení je provedeno, aniž by byl uživatel dotázán, jestli je to opravdu třeba udělat.
:repocreateVytvoří úložiště v /path
:switchOtevře dialogové okno překlopení. /path určuje cílový adresář a /url URL na kterou překlopit.
:exportExportuje pracovní kopii v /path do jiného adresáře. Pokud /path poukazuje na adresáře bez verze, zobrazí se dialogové okno žádající o URL pro export do adresáře, v /path. Pokud zadáte klíč /blockpathadjustments , automatické úpravy cest exportu jsou zablokovány.
:dropexportExportuje pracovní kopii v /path do adresáře uvedeném v /droptarget. Tento export nepoužívá dialogové okno, ale je spuštěn přímo. Možnost /overwrite určuje, jestli existující soubory mají být přepsány bez potvrzení uživatelem, a možnost /autorename určuje, jestli exportované soubory budou automaticky přejmenovány, pokud soubory již existují, aby se zabránilo jejich přepsání. Možnost /extended může zadat buď localchanges pro export pouze těch souborů, které jsou změněny místně, nebo unversioned k exportování také položek bez verze.
: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.
:mergeOtevře dialogové okno sloučení. /path určuje cílový adresář. Pro sloučení rozsahu revizí, jsou dostupné následující možnosti: /fromurl:URL, /revrange:řetězec . Pro sloučení dvou stromů úložiště, jsou dostupné následující možnosti: /fromurl:URL, /tourl:URL, /fromrev:xxx a /torev:xxx.
:mergeallOtevře dialogové okno sloučit vše. /path určuje cílový adresář.
:copyZobrazí dialogové okno větev/značka. /path je pracovní kopie, z které má být větev/značka vytvořena. A /url je cílová URL. Pokud adresa začíná ^, předpokládá se, že je relativní ke kořeni úložiště. Pokud chcete mít volbu Překlopit pracovní kopii do nové větve / značky již zaškrtnutou, můžete předat přepínač /switchaftercopy. Pro zaškrtnutí volby Vytvořit přechodné složky předejte přepínač /makeparents. Také můžete zadat přepínač /logmsg k předání předem nastavené zprávy záznamu do dialogového okna větve/značky. Nebo pokud nechcete předat zprávu záznamu na příkazovém řádku, použijte /logmsgfile:cesta, kde cesta odkazuje na soubor, obsahující zprávu záznamu.
:settingsOtevře dialogové okno nastavení.
:removeOdstraní soubor(y) v /path ze správy verzí.
:renamePřejmenuje soubor v /path. O nový název souboru bude požádáno v dialogovém okně. Chcete-li se vyhnout otázce o přejmenování podobných souborů v jednom kroku, předejte /noquestion.
:diffSpustí externí program rozdílů, jak je uvedeno v nastavení TortoiseSVN. /path určuje první soubor. Pokud je možnost /path2 nastavena, pak je program rozdílů spuštěn s těmito dvěma soubory. Pokud je /path2 vynechán, pak rozdíl je proveden mezi souborem v /path a jeho originálem. Pokud zadaný sobour má také změny ve vlastnostech, nástroj je také spuštěn pro každou změněnou vlastnost. Abyste tomuto zabránili, zadejte volbu /ignoreprops. Chcete-li nastavit konkrétní čísla revizí použijte /startrev:xxx a /endrev:xxx a pro nepovinnou zavěšenou revizi použijte /pegrevision:xxx. Pokud je nastaven /blame a /path2 není, pak je rozdíl proveden tak, že nejprve obviní soubory s danými revizemi. Parametr /line:xxx určuje na který řádek skočit, když je rozdíl zobrazen.
: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

V závislosti na URL a revizích k porovnání, buď ukazuje sjednocený rozdíl (v případě, že volba sjednocený je nastavena), dialogové okno se seznamem souborů, které se změnily, nebo pokud adresa URL odkazuje na soubory, spustí prohlížeč rozdílů pro tyto dva soubory.

Možnosti url1, url2, revize1 a revize2 musí být zadány. Možnosti pegrevision, ignoreancestry, blame a unified jsou volitelné.

Pokud zadaná url také mění vlastnosti, pak je externí nástroj rozdílů také spuštěn pro každou změněnou vlastnost. Abyste tomuto zabránili, musíte předat volbu /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.

:conflicteditorSpustí editor konfliktů, který je uveden v nastavení TortoiseSVN se správnými soubory pro konfliktní soubor v /path.
:relocateOtevře se dialogové okno přemístit. /path Určuje cestu pracovní kopie k přemístění.
:helpOtevře soubor nápovědy.
:repostatusOtevře dialogové okno zjistit změny. /path určuje adresář pracovní kopie. Pokud je zadán /remote dialogové okno zkontaktuje úložiště hned při startu, jako kdyby uživatel klikl na tlačítko Zkontrolovat úložiště.
:repobrowser

Spustí dialogové okno průzkumníka úložiště, odkazující na adresu URL pracovní kopie uvedená v /path nebo /path odkazuje přímo na URL.

Další možnost /rev:xxx může být použita k určení revize, kterou by průzkumník úložiště měl ukázat. Pokud je /rev:xxx vynechána, nastaví se na výchozí hodnotu HEAD.

Pokud /path poukazuje na adresu URL, /Projectpropertiespath:cesta/do/pracovní kopie určuje cestu z, které číst a použít vlastnosti projektu.

Pokud /Outfile:cesta\k\souboru je nastavena, vybraná URL a revize jsou zapsány do tohoto souboru, když je průzkumník úložiště uzavřen. První řádek v tomto textovém souboru obsahuje adresu URL, druhý řádek revizi v textovém formátu.

:ignorePřidá všechny cíle v /path do seznamu k ignorování, tj. přidá vlastnost svn:ignore k těmto souborům.
:blame

Otevře dialogové okno obvinění souboru uvedeném v /path.

Pokud jsou volby /startrev a /endrev nastaveny, pak se dialogové okno s dotazem o rozsahu obvinění nezobrazí, ale místo toho jsou použity hodnoty revizí těchto voleb.

Pokud možnost /line:nnn je nastavena, TortoiseBlame bude otevřen zobrazující zadané číslo řádku.

Možnosti /ignoreeol, /ignorespaces a /ignoreallspaces jsou také podporovány.

:catUloží soubor z adresy URL nebo z cesty pracovní kopie uvedené v /path na místo uvedené v /savepath:path. Revize je uvedena v /revision:xxx. Toto může být použito k získání souboru s konkrétní revizí.
: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

Zobrazí graf revizí pro cesty uvedené v /cesta.

Pro vytvoření obrázkového souboru grafu revizí pro určitou cestu, ale bez zobrazení okna grafu, předejte /output:cesta spolu s cestou k výstupnímu souboru. Výstupní soubor musí mít příponu, do které graf revizí může skutečně exportovat. Jsou to: .svg, .wmf, .png, .jpg, .bmp a .gif.

Protože graf revizí má spoustu možností, které ovlivňují to, jak je zobrazen, můžete tyto možnosti také nastavit při vytváření výstupního souboru. Tyto možnosti předejte pomocí /options:XXXX, kde XXXX je desítková hodnota. Nejlepší způsob, jak najít požadované možnosti je spustit graf revizí tak, jako obyčejně, nastavit všechny možnosti v uživatelském rozhraní a graf zavřít. Pak volby, které potřebujete předat na příkazovém řádku, mohou být přečteny z registru HKCU\Software\TortoiseSVN\RevisionGraphOptions.

:lockZamkne soubor nebo všechny soubory v adresáři uvedené v /path. Zobrazí se dialogové okno, takže uživatel může zadat komentář k zámku.
:unlockOdemkne soubor nebo všechny soubory v adresáři uvedené v /path.
:rebuildiconcacheZnovu obnoví windows rozhraní uložených ikon. Použijte pouze v případě, že ikony Windows jsou poškozené. Vedlejším efektem tohoto (kterému se nelze vyhnout) je, že ikony na ploše budou zpřeházeny. Chcete-li potlačit rámeček se zprávou, předejte /noquestion.
:properties

Zobrazí dialogové okno vlastností pro cestu zadanou v /path.

Pro práci s vlastnostmi s verzí tento příkaz vyžaduje pracovní kopii.

Vlastnosti revize můžou být zobrazeny/změněny pokud /path je URL a je zadáno /rev:XXX.

Pro otevření dialogového okna vlastností přímo pro určitou vlastnost, předejte její název jako /vlastnost:název.

:sync

Exportuje/Importuje nastavení, buď na základě aktuálnosti současných, nebo exportovaných nastavení, nebo podle zadání.

Pokud je s volbou /path předána cesta, pak je použita pro uložení, nebo načtení nastavení.

Parametr /askforpath zobrazí dialogové okno otevření/uložení souboru umožňující uživateli zvolit cestu pro export/import.

Pokud není zadáno /load ani /save, pak TortiseSVN rozhodne, zda se jedná o import nebo export nastavení na základě jejich novosti. Pokud exportovaný soubor je novější než současná nastavení, pak jsou ze souboru načtena. Pokud jsou novější současná nastavení, pak jsou exportována do souboru.

Pokud je zadána volba /load, je nastavení ze souboru importováno.

Pokud je zadána volba /save, jsou současná nastavení exportována do souboru.

Parametr /local donutí při exportu souboru zahrnout i místní nastavení, tj. nastavení odkazující na místní cesty


Příklady (které by měly být uvedeny na jednom řádku):

TortoiseProc.exe /command:commit
                 /path:"c:\svn_wc\file1.txt*c:\svn_wc\file2.txt"
                 /logmsg:"zkouška zprávy záznamu" /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