Script nel client della riga di comando di più piattaforme per Team Foundation Server
Si desidera automatizzare attività quali l'archiviazione e l'estrazione del codice sorgente? È possibile utilizzare l'automazione esterna o interna per eseguire il lavoro. Innanzitutto, rivediamo queste due modalità di automazione. In alternativa, è possibile passare direttamente a pros and cons.
Automazione esterna
L'automazione esterna configura un altro processo per richiamare più volte lo strumento della riga di comando tf con gli argomenti completamente contestuali. Non è necessaria alcuna sintassi speciale di attivare questa modalità. Per implementare questo metodo, è possibile utilizzare uno dei seguenti processi esterni:
Una shell di Unix, come sh, ksh, bash o csh
Perl o un altro linguaggio di programmazione utilizzato per gli script
Apache Ant o un altro strumento orientato alla compilazione
Qualsiasi altro strumento che consente di avviare il programma tf e di fornire argomenti
Automazione esterna
L'automazione interna configura lo strumento da riga di comando tf per determinare il processo di automazione e interpretare un file di comandi passato come argomento. È possibile richiamare l'automazione interna fornendo il simbolo @ seguito immediatamente da un percorso locale a un file di comando. Tutti gli altri argomenti forniti in questa riga di comando sono disponibili ai comandi nel file di comando come argomenti posizionali.
Nota
Per elaborare un input standard come file di comando, immettere il simbolo @ senza farlo seguire dal nome file (tf@). Il flusso di input viene interpretato come testo in base alla codifica predefinita e al set di caratteri della piattaforma.
Il file di comando seguente ottiene la versione specificata di un file e stampa informazioni cronologiche dettagliate su tale versione.
# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"
Il file di comando, denominato /home/john/get-and-history.tfc, prevede due argomenti posizionali, pertanto è possibile eseguirlo come illustrato di seguito:
tf @/home/john/get-and-history.tfc README.doc C5087
Il primo argomento, README.doc, sostituisce %1 quando ogni riga viene interpretata. C5087 viene sostituito con %2.
Nota
Nel file di comando entrambi gli argomenti posizionali sono racchiusi tra virgolette doppie in quanto i valori sostituiti possono contenere spazi (ad esempio, un nome file o una specifica della versione della data).
Il formato del file di comando può essere descritto dal formato esteso EBNF (Extended Backus-Naur Form):
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 può essere qualsiasi comando tf valido, come get, workfold e workspace.
tf option può essere qualsiasi opzione tf valida, come -login, -profile e -format.
tf free argument può essere qualsiasi stringa che serve come argomento libero per tf, ad esempio un percorso server e un percorso locale.
positional argument è un segnaposto per il testo sostituito dagli argomenti della riga di comando esterno tf. Il numero è un intero positivo che corrisponde all'indice dell'argomento della riga di comando che si desidera sostituire, ad esempio "%1" e "%2". %1 fa riferimento al primo argomento. È possibile utilizzare argomenti posizionali come opzioni o argomenti liberi e in qualsiasi ordine dopo il comando.
Nota
Utilizzare le virgolette doppie per racchiudere le opzioni e gli argomenti contenenti spazi. Ad esempio, utilizzare “-version:LRelease 2.1” per un identificatore dell'etichetta, “$/Inventory/Client Project/main.c” per un argomento libero e "%1 " per un argomento posizionale che può contenere spazi. Solo le virgolette doppie denotano i limiti dell'opzione nei file di comandi. Le virgolette singole vengono interpretate letteralmente. Per specificare le virgolette doppie letterali nella riga azione, è necessario utilizzare due virgolette doppie (""). Le virgolette delle regole nei file di comando può differire dalle regole che utilizza la shell perché la shell non analizza le righe nel file di comando.
Vantaggi e svantaggi dei due metodi
Quale metodo si deve quindi utilizzare, l'automazione esterna o interna? Esaminiamo i vantaggi e gli svantaggi di ogni metodo:
Automazione esterna |
Automazione esterna |
|
Vantaggi |
|
|
Cons |
|
È meno flessibile rispetto all'automazione esterna. Di seguito viene illustrato perché:
|