Scripts no cliente de linha de comando para Team Foundation Server o cruzamento-plataforma
Você gostaria de automatizar as tarefas, como fazer check-in e check-out no código-fonte?Você pode usar a autenticação externa ou interna para obter o trabalho feito.Primeiro, vamos examinar esses dois modos de automação.Ou você pode ir diretamente para pros and cons.
Automação externa
A automação externa configura outro processo para chamar repetidamente a ferramenta de linha de comando tf com argumentos totalmente contextuais cada vez.Você não precisa de qualquer sintaxe especial para ativar esse modo.Você pode usar um dos processos externos para implementar esse método:
Um shell do Unix, como sh, ksh, bash ou csh
Perl ou outra linguagem de programação usada em scripts
O Apache Ant ou outra ferramenta orientada para compilação
Alguma outra ferramenta que pode iniciar os argumentos de alimentação e programa de tf
Automação interna
A automação interna configura a ferramenta da linha de comando tf para levar o processo de automação e interpretar um arquivo de comando que é passado como um argumento.Você pode chamar a automação interna fornecendo o símbolo @ seguido imediatamente de um caminho local a um arquivo de comando.Todos os argumentos adicionais que você forneça nesta linha de comando estão disponíveis para comandos no arquivo de comando como argumentos posicionais.
Observação |
---|
Para processar a entrada padrão como seu arquivo de comando, forneça o símbolo @ sem o nome do arquivo depois dele (tf@).O fluxo de entrada é interpretado como texto de acordo com a codificação padrão e o conjunto de caracteres da plataforma. |
O seguinte arquivo de comando obtém a versão especificada de um arquivo e imprime informações de histórico detalhadas sobre essa versão.
# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"
O arquivo de comando, chamado /home/john/get-and-history.tfc, espera dois argumentos posicionais, o que pode executá-lo como exemplo a seguir mostra:
tf @/home/john/get-and-history.tfc README.doc C5087
O primeiro argumento, README.doc, é substituído por %1 quando cada linha é interpretada.C5087 é substituído para %2.
Observação |
---|
No arquivo de comando, ambos os argumentos posicionais são rodeados por aspas duplas porque seus valores substituídos podem conter espaços (por exemplo, um nome de arquivo ou uma especificação de versão de data). |
O formato do arquivo de comando pode ser descrito pela Forma de Backus-Naur Estendida (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 pode ser qualquer comando tf válido, como get, workfold e workspace.
tf option pode ser qualquer opção tf válida, como -login, -profile e -format.
tf free argument pode ser qualquer cadeia de caracteres destinada como um argumento livre para tf, como um caminho do servidor e um caminho local.
positional argument é um espaço reservado para texto que é substituído nos argumentos externos de linha de comando tf.O número é um inteiro positivo que corresponde ao índice do argumento da linha de comando que você deseja substituir, como “%1 " e “%2".%1 refere-se ao primeiro argumento.Você pode usar argumentos posicionais como opções ou liberar argumentos e em qualquer ordem após o comando.
Observação |
---|
Use marcas de aspas duplas para colocar as opções e os argumentos que contêm espaços.Por exemplo, use “-version:LRelease 2.1” para um especificador de rótulo, “$/Inventory/Client Project/main.c” para um argumento livre e “%1 " para um argumento posicional que pode conter espaços.Somente aspas duplas denotam limites de opção em arquivos de comando.Aspas simples são interpretadas literalmente.Para especificar aspas duplas literal em sua linha de ação, você deve usar duas aspas duplas juntas ("").As regras de aspas nos arquivos de comando podem diferir das regras que seu shell usa, pois ele não processa as linhas no arquivo de comando. |
Prós e contras dos dois métodos
Assim, qual método você deverá usar — automação interna ou externa?Vamos dar uma olhada nos prós e contras de cada método:
Automação externa |
Automação interna |
|
Prós |
|
|
Contras |
|
É menos flexível do que a automação externa.Aqui está porque:
|