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à di 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 il tuo script utilizza tf.exe, non codificare un percorso per il file basato sul 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/ è mappato su 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 altre informazioni, vedere le risorse seguenti:

Sviluppa la tua app

Usa questi comandi per sviluppare la tua app sotto versionamento con il tuo equipo:

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.

Contribuisci il tuo lavoro

Usare il comando checkin per inserire il codice nel repository del codice del team.

  • Comando Checkin: controlla le modifiche in sospeso ai file o alle cartelle nel server.

Per ulteriori informazioni, consulta L'integrazione del lavoro nel codice sorgente 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 sotto controllo di versione.

Visualizzare e gestire le versioni precedenti

Per ulteriori informazioni, consultare Visualizzare e gestire le versioni precedenti.

Confrontare cartelle e file

Per ulteriori informazioni, consultare 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.

Utilizzare i lock del controllo di versione

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

Isolare il rischio

Usare i comandi seguenti per isolare il rischio usando rami:

Per ulteriori informazioni, consultare Usare i branch per isolare il rischio in Team Foundation Version Control.

Amministrare il controllo della versione

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

Per ulteriori informazioni, vedere Configurare le impostazioni di checkout.

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] indicano 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 testuali e sostituibili

Gli elementi che non sono racchiusi tra parentesi quadre sono opzioni incluse come testo letterale. 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 di specifica dell'elemento per specificare gli elementi interessati

Si utilizza 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 come *, ad esempio, e ?.

Argomenti di specifica dell'elemento cliente

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 della specifica dell'elemento del server indica un percorso agli 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 di specifica degli elementi del server quando è necessario eseguire un comando sugli elementi che non si trovano 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 

Argomenti di specifica per più elementi

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 di specifica versione per specificare le versioni coinvolte 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, ad esempio program1.cs;C44.

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
Set di modifiche [C]<version-number> Specifica gli elementi in base a un numero di changeset. 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 etichettata come JulyHotFix. Il secondo recupera la versione di tutti gli elementi etichettati (ed elimina quelli non etichettati) nell'area di lavoro come esistevano nel momento in cui è stato creato il changeset 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>

o

D<mm/dd/yyyy>

o

Qualsiasi formato supportato da .NET Framework.

o

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 per farla corrispondere alla codebase così com'era il 22 marzo 2022 alle 9:00. Per ulteriori informazioni sui formati di data e ora supportati da .NET Framework, vedere DateTime e Stringhe di formato data e ora standard.
Area di lavoro corrente W Specifica la versione nella tua 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 di lavoro ResolveRIConflicts che appartiene a PatW.
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 Check In per confermare gli elementi e i lavori 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 applicato a 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

Successo.

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.