Condividi tramite


Usare i comandi di controllo della versione di Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

È possibile usare i comandi di controllo della versione per eseguire quasi tutte le attività controllo della versione di Team Foundation (TFVC) che è possibile eseguire in Visual Studio. È anche possibile usare i comandi di controllo della versione per eseguire diverse attività che non possono essere eseguite in Visual Studio. Per eseguire i comandi di controllo della versione da un prompt dei comandi o all'interno di uno script, usare lo tf.exe strumento .

Eseguire un comando

Per avviare il prompt dei comandi di Visual Studio, da Windows Start selezionare il prompt dei comandi per gli sviluppatori per VS2022 o versione precedente.

Nota

Per Visual Studio 2019 e versioni successive, il tf.exe file binario non si trova più in un percorso fisso nel percorso di installazione di Visual Studio, come in alcune versioni precedenti, C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDEad esempio . Se lo script usa tf.exe, non impostare come hardcoded un percorso del file in base al percorso di installazione di Visual Studio.

Nella maggior parte dei casi, si esegue il comando controllo della versione nel contesto di una directory mappata nell'area di lavoro. Ad esempio, $/SiteApp/Main/ viene eseguito il mapping a c:\\code\\SiteApp\\Main\\. Per ottenere la versione più recente di tutti gli elementi nell'area di lavoro, usare il comando seguente:

c:\code\SiteApp\Main\SolutionA>tf get

Configurare il computer di sviluppo e gestire le aree di lavoro

L'area di lavoro è una copia locale della codebase del team. Poiché si tratta di una copia locale nel computer di sviluppo, è possibile sviluppare e testare il codice in isolamento fino a quando non si è pronti per archiviare il lavoro. Ecco alcuni comandi per gestire l'area di lavoro:

Per ulteriori informazioni, vedi le seguenti risorse:

Sviluppare l'app

Usare questi comandi per sviluppare l'app sotto il controllo della versione con il team:

Per altre informazioni, vedere Sviluppare l'app nel controllo della versione di Team Foundation.

Sospendere il lavoro

Per vari motivi, a volte devi mettere da parte alcuni o tutti i tuoi lavori in corso. Per sospendere e riprendere il lavoro e gestire gli scaffali, usare questi comandi:

Per altre informazioni, vedere Sospendere il lavoro e gestire gli scaffali.

Contribuire al lavoro

Usare il checkin comando per archiviare il codice nella codebase del team:

Per altre informazioni, vedere Controllare il lavoro nella codebase del team.

Gestire i file e risolvere i problemi

Usare le risorse nelle sezioni seguenti per gestire i file.

Visualizzare e gestire file e cartelle di controllo della versione

Per altre informazioni, vedere Usare Esplora controllo del codice sorgente per gestire i file nel controllo della versione.

Visualizzare e gestire le versioni precedenti

Per altre informazioni, vedere Visualizzare e gestire le versioni precedenti.

Confrontare cartelle e file

  • Comando Differenza: confronta le differenze tra file e scaffali.
  • Comando Folderdiff: confronta le differenze tra i file in due cartelle.

Per altre informazioni, vedere Visualizzare e gestire le versioni precedenti.

Risolvere i conflitti di file

Per altre informazioni, vedere Risolvere i conflitti di controllo della versione di Team Foundation.

Usare i blocchi del controllo della versione

Per altre informazioni, vedere Usare i blocchi del controllo della versione.

Isolare il rischio

Usare i comandi seguenti per isolare il rischio usando rami:

Per altre informazioni, vedere Usare rami per isolare il rischio in controllo della versione di Team Foundation.

controllo della versione Amministrazione ister

Usare i comandi seguenti per gestire il sistema di controllo della versione:

Per altre informazioni, vedere Configurare le impostazioni di estrazione.

Ottenere assistenza sui comandi di controllo della versione

Usare i comandi seguenti per ottenere informazioni dettagliate sui comandi di controllo della versione:

Informazioni sulla sintassi dei comandi

La sintassi di ogni comando viene visualizzata nella parte superiore di ogni articolo di riferimento.

Argomenti obbligatori e facoltativi

Sono necessari argomenti non racchiusi tra parentesi quadre. [Parentesi quadre] indicare argomenti facoltativi che non sono necessari per completare un comando. Tuttavia, alcuni argomenti facoltativi hanno impostazioni predefinite applicate al comando anche se non si specifica l'opzione .

Argomenti esclusivi

Quando le opzioni sono separate da una pipe (|), è possibile specificare una delle opzioni.

Argomenti verbatim e sostituibili

Gli elementi che non sono racchiusi tra parentesi quadre sono opzioni incluse in verbatim. Gli elementi racchiusi tra parentesi angolari (< e >) sono argomenti che è necessario sostituire con i caratteri effettivi per eseguire un comando.

Tasti di scelta rapida e alias dei comandi

Alcuni comandi supportano i tasti di scelta rapida. Ad esempio, è possibile chiamare il comando Delete con tf delete o tf del.

Esempio

Si consideri ad esempio il comando Checkout:

tf checkout [/lock:( none|checkin|checkout)] [/recursive] <item-spec> [/login: <username>, [<password>]]

In questo esempio sono inclusi gli argomenti seguenti:

  • <item-spec>: è necessario sostituire questo argomento con una specifica di elemento che identifica gli elementi da controllare.
  • Gli argomenti seguenti sono facoltativi. Se non vengono forniti, nessuno dei relativi effetti si applica al comando:
    • /lock:(none|checkin|checkout): se non si specifica l'opzione /lock , il sistema usa /lock:none per impostazione predefinita. In caso contrario, è possibile specificare una delle altre opzioni di blocco.
    • /recursive: se si desidera controllare in modo ricorsivo più elementi in una cartella, è necessario specificare questa opzione verbatim.
    • /login:<username>, <password>: se si vuole eseguire il comando come un altro utente, è necessario specificare l'opzione /login verbatim e sostituire <username> con il nome dell'utente. Se necessario, sostituire <password> con la password dell'utente.

Specificare gli elementi interessati da un comando

È possibile usare le specifiche degli elementi e le specifiche della versione per specificare quali elementi sono interessati da un comando.

Usare un argomento specifica dell'elemento per specificare gli elementi interessati

Usare una specifica di elemento per specificare gli elementi interessati da un comando. È possibile specificare elementi in un computer client o nel server Azure DevOps. È possibile usare caratteri jolly, * ad esempio e ?.

Argomenti della specifica dell'elemento client

Un argomento specifica dell'elemento client specifica un percorso di elementi in un computer client, ad esempio:

  • Cartella, ad esempio, c:\code\SiteApp\Main\SolutionA\.
  • Un file, ad esempio, c:\code\SiteApp\Main\SolutionA\Project1\program.cs.
  • Più file, ad esempio, c:\code\SiteApp\Main\SolutionA\*.cs.
  • Percorso UNC (Universal Naming Convention), ad esempio \\myshare\code\SiteApp\Main.

Argomenti della specifica dell'elemento del server

Un argomento specifica dell'elemento del server specifica un percorso di elementi nel server Azure DevOps, ad esempio:

  • Una cartella, ad esempio$ /SiteApp/Main/SolutionA.
  • Un file, ad esempio, $/SiteApp/Main/SolutionA/Project1/program.cs.
  • Più file, ad esempio $/SiteApp/Main/SolutionA/*.cs.

In genere si usano gli argomenti delle specifiche degli elementi del server quando è necessario eseguire un comando sugli elementi che non si trova nel computer client. Si supponga, ad esempio, di lavorare su un computer di sviluppo. Se è necessario ottenere alcuni dati della cronologia delle revisioni relativi ad alcuni elementi presenti in una raccolta di progetti in cui non si lavora, è possibile usare il comando seguente:

c:\>tf history /collection:https://fabrikam-3:8080/tfs/DefaultCollection
$/SiteApp/Main/SolutionA/Project1/* /recursive  
/noprompt 

Più argomenti di specifica dell'elemento

Per alcuni comandi, è possibile specificare più argomenti di specifica dell'elemento, ad esempio:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Questo comando estrae program.cs e program2.c.

Usare un argomento della specifica della versione per specificare le versioni interessate degli elementi

Usare una specifica di versione per specificare la versione degli elementi interessati da un comando. Per fornire una specifica della versione, è possibile:

  • Usare l'opzione /version , ad esempio /version:C44.

  • Aggiungere la specifica della versione a una specifica di elemento con un punto e virgola, program1.cs;C44ad esempio .

Quando si usa il comando Cronologia o il comando Differenza, è possibile specificare un intervallo di versioni separando le versioni con una tilde, ad esempio:

c:\code\SiteApp\Main\SolutionA>tf history /noprompt * /recursive /v:D4/12/2022~D4/24/2022

Usare la sintassi seguente per specificare una specifica della versione:

Tipo Sintassi Descrizione Esempi Risultato
Modifiche [C]<version-number> Specifica gli elementi in base a un numero di set di modifiche. Se un elemento incluso nell'ambito non è stato modificato nel set di modifiche specificato, il sistema accetta la versione più recente dell'elemento che si è verificato prima del set di modifiche specificato. È possibile omettere C se si specifica solo un numero. tf get readme.txt /v:C8

tf get readme.txt /v:8

tf get readme.txt;8
Se readme.txt è stato modificato nel set di modifiche 8, il codice di esempio ottiene tale versione del file. In caso contrario, ottiene la versione più recente di readme.txt prima della versione 8.
Etichetta L<label> Specifica gli elementi a cui viene applicata un'etichetta. tf get readme.txt;LJulyHotFix

tf get /version:LLastKnownGood
Il primo esempio ottiene la versione di readme.txt con etichetta JulyHotFix. Il secondo recupera la versione di tutti gli elementi etichettati (ed elimina tali elementi non etichettati) nell'area di lavoro così come esistevano quando è stato creato il set di modifiche Con l'etichetta LastKnownGood . È possibile usare il codice nel secondo esempio come parte di un processo di compilazione automatizzato.
Data e ora D<yyyy-mm-ddTxx:xx>

or

D<mm/dd/yyyy>

or

Qualsiasi formato supportato da .NET Framework.

or

Qualsiasi formato di data supportato nel computer locale.
Specifica un insieme di modifiche creato in una data specificata in un'ora specifica. tf get /version:D2022-03-22

tf get /version:D2022-03-22T09:00
Il primo esempio aggiorna l'area di lavoro in modo che corrisponda alla codebase esistente il 22 marzo 2022 a mezzanotte. Il secondo aggiorna l'area di lavoro in modo che corrisponda alla codebase in quanto esiste il 22 marzo 2022 alle 9:00. Per altre informazioni sui formati di data e ora supportati da .NET Framework, vedere Stringhe di formato date e ora standard e datetime.
Area di lavoro corrente W Specifica la versione nell'area di lavoro. - -
Area di lavoro specificata W<workspace-name>; <workspace-owner> Specifica la versione in un'area di lavoro specificata. tf get /version:WResolveRIConflicts;PatW Nell'esempio viene specificata la versione nell'area ResolveRIConflicts di lavoro PatW proprietaria.
Suggerimento T Specifica la versione più recente. - -

Usare le opzioni per modificare la modalità di funzionamento di un comando

È possibile usare alcune opzioni comuni per modificare il modo in cui un comando funziona.

Usare l'opzione /noprompt per eliminare le richieste di input dei dati e reindirizzare i dati di output

Usare l'opzione /noprompt per eliminare le richieste di input dati e reindirizzare i dati di output alla finestra del prompt dei comandi. Questa opzione può essere utile quando è necessario usare i comandi di controllo della versione in uno script in cui:

  • Il comando procede senza intervento da parte di un utente.
  • I dati sono disponibili per lo script per eseguire operazioni su, ad esempio l'analisi o l'acquisizione.

Quando si usa questa opzione, il sistema:

  • Elimina tutte le richieste di input:

    • Le domande non vengono poste nella finestra del prompt dei comandi. Ad esempio, quando si usa il comando Annulla con questa opzione, il sistema non richiede di confermare se si desidera annullare le modifiche.
    • Finestre e finestre di dialogo non vengono visualizzate. Ad esempio, è possibile usare questa opzione con il comando Checkin. Il sistema non visualizza la finestra di dialogo Archiviazione per confermare gli elementi e gli elementi di lavoro associati. Al contrario, il sistema controlla gli elementi senza confermare.
  • Reindirizza i dati di output al prompt dei comandi. Ad esempio, è possibile usare questa opzione con il comando Cronologia. I dati vengono visualizzati nella finestra del prompt dei comandi anziché nella finestra Cronologia.

Usare l'opzione /login per specificare le credenziali

Usare l'opzione /login per specificare l'account utente del server Azure DevOps in cui eseguire un comando. Questa opzione può essere utile quando si lavora nel computer di un altro membro del team.

Si supponga, ad esempio, di lavorare nel computer di sviluppo del membro del team. Usare il comando Lock per sbloccare un file bloccato in precedenza:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>,<password>

Se si vuole evitare che la password venga visualizzata nel prompt dei comandi, è possibile immettere il comando senza la password:

c:\code\SiteApp\Main> tf lock /lock:none program.cs /login:<username>

Dopo aver immesso questo comando, il sistema chiede di immettere la password in una finestra di dialogo che maschera l'input.

Usare l'opzione /lock per applicare o rimuovere un blocco

Importante

Come procedura consigliata, usare l'opzione /lock con discrezione. Informare i colleghi del team perché si sta bloccando un elemento e quando si prevede di rimuovere il blocco.

Usare l'opzione /lock per applicare o rimuovere un blocco contemporaneamente che si esegue un altro comando, ad esempio Aggiungi o Modifica.

/lock:(none|checkin|checkout)

Il /lock comando usa le opzioni seguenti:

  • None: nessun blocco viene posizionato su un elemento. Se è già presente un blocco, viene rimosso.

  • Checkin o Checkout: viene applicato un blocco. Per altre informazioni, vedere Informazioni sui tipi di blocco.

Nota

In alcuni casi, l'operazione di blocco può avere esito negativo:

  • Se altri utenti hanno bloccato uno degli elementi specificati, l'operazione di blocco ha esito negativo.
  • Se è già presente una modifica in sospeso all'elemento specificato, il sistema ignora questa opzione. In questo caso, è necessario usare il comando Lock per modificare un blocco su un elemento.

Usare i tasti di scelta rapida delle opzioni

È possibile abbreviare le opzioni seguenti.

Opzione

Alias opzione

/comment

-C

/computer

-M

/delete

-D

/force

-P

/format

-F

/help

-?, -H

/lock

-K

/login

-Y

/newname

-N

/noprompt

-I

/owner

-O

/recursive

-R

/server

-S

/slotmode

-X

/template

-T

/user

-U

/version

-V

/workspace

-W

Informazioni sui codici di uscita

I comandi del controllo della versione restituiscono i codici di uscita seguenti:

Codice di uscita

Definizione

0

Esito positivo.

1

Esito positivo parziale. Almeno qualcosa, o forse tutto, non è riuscito a riuscire.

2

Comando non riconosciuto.

100

Niente è riuscito.

Si supponga, ad esempio, di eseguire il comando seguente:

c:\code\SiteApp\Main\SolutionA\Project1\>tf checkout program1.cs program2.c

Se uno dei file che si sta tentando di eseguire il check-out non esiste nel server, il comando restituisce 1 per indicare l'esito positivo parziale.