Skriptování v platformě příkazového řádku klienta pro Team Foundation Server
Chcete automatizovat úlohy, například kontrolou a rezervací zdrojového kódu?K dokončení úlohy můžete použít externí nebo interní automatizaci.Nejdříve si zkontrolujme tyto první dva režimy automatizace.Nebo můžete přejít přímo k pros and cons.
Externí automatizace
Externí automatizace konfiguruje jiný proces, který opakovaně vyvolá nástroj příkazového řádku tf nástroj příkazového řádku, vždy s plně kontextovými argumenty.K povolení tohoto režimu nepotřebujete žádnou speciální syntaxi.Použijte jeden z následujících externích procesů implementace této metody:
Prostředí Unix, například sh, ksh, bash nebo csh
Perl nebo jiný programovací jazyk, který se používá pro skriptování
Apache Ant nebo jiný nástroj orientovaný na sestavení
Jakýkoli jiný nástroj, který může spustit program tf a zadat argumenty
Interní automatizace
Interní automatizace konfiguruje nástroj příkazového řádku tf pro řízení procesu automatizace a interpretaci souboru příkazů, který se předává jako argument.Vnitřní automatizaci můžete vyvolat zadáním symbolu @, který je ihned následován místní cestou k souboru příkazu.Veškeré další argumenty, které zadáte v tomto příkazovém řádku, jsou k dispozici pro příkazy v souboru příkazů jako poziční argumenty.
[!POZNÁMKA]
Zpracování příkazového souboru jako standardní vstup, dodávání symbolu @, aniž by byl následován názvem souboru (tf@).Vstupní proud je interpretován jako text podle výchozího kódování a znakové sady vaší platformy.
Následující soubor příkazů načte zadanou verzi souboru a vytiskne podrobné historické informace o této verzi.
# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"
Soubor příkazů s názvem /home/john/get-and-history.tfc očekává dva poziční argumenty, takže je možné spustit jako v následujícím příkladu:
tf @/home/john/get-and-history.tfc README.doc C5087
První argument README.doc je nahrazen %1 při interpretaci každého řádku.C5087 je nahrazeno pro %2.
[!POZNÁMKA]
V souboru příkazu jsou oba argumenty umístění uzavřeny do dvojitých uvozovek, protože jejich nahrazené hodnoty mohou obsahovat mezery (například název souboru nebo určení data verze).
Formát příkazu souboru lze popsat pomocí rozšířeného Backusova-Naurova formuláře (EBNF):
command file ::= { line } ;
line ::= comment line | blank line | action line , EOL ;
comment-line ::= "#" | "rem" , { ? any non-EOL character ? } ;
blank line ::= { ? any whitespace character ? };
action line ::= tf command , [ { white space , tf option } ] , [ { white space , tf free argument } ] ;
tf command ::= ? any tf command ?
tf option ::= ? any tf option ? | positional argument ;
tf free argument::= ? any tf free argument ? | positional argument ;
positional argument::= "%" , non-zero digit , [ { digit } ] ;
EOL ::= ? your platform's EOL character or sequence ?
white space ::= { ? any non-EOL whitespace character ? }
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
non-zero digit ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
tf command může být platný příkaz tf, jako například get, workfold, a workspace.
tf option může být jakákoli platná možnost tf, jako například -login, -profile a -format.
tf free argument může být libovolný řetězec, který je určen jako volný argument tf, například serverová cesta a místní cesta.
positional argument je zástupným symbolem pro text, který je nahrazen z vnějších argumentů příkazového řádku tf.Číslo je kladné celé číslo odpovídající indexu argument příkazového řádku, který chcete nahradit, například „%1“ a „%2“.%1 odkazuje na první argument.Za příkazem můžete jako možnosti v libovolném pořadí použít argumenty umístění nebo volné argumenty.
[!POZNÁMKA]
Pomocí uvozovek označte možnosti a argumenty, které obsahují mezery.Například, pro specifikaci popisky použijte “-version:LRelease 2.1”, “$/Inventory/Client Project/main.c” pro volný argument a „% 1“ pro poziční argument, který může obsahovat mezery.Pouze dvojité uvozovky označují hranice možností v příkazových souborech.Jednoduché uvozovky jsou interpretovány doslova.Pokud chcete určit přesné zobrazení uvozovek v řádku akce, je třeba použít dvojité uvozovky společně ("").Pravidla citací uvnitř příkazových souborů se mohou lišit od pravidel, které vaše prostředí používá, protože vaše prostředí nerozdělí řádky v příkazovém souboru.
Výhody a nevýhody dvou metod
Takže jakou metodu byste použili – externí nebo interní automatizaci?Podívejme se na výhody a nevýhody jednotlivých metod:
Externí automatizace |
Interní automatizace |
|
Výhody |
|
|
Nevýhody |
|
Je méně flexibilní než externí automatizace.Zde je důvod, proč:
|