Che cos'è controllo della versione di Team Foundation?

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

Visual Studio 2019 | Visual Studio 2022

Indipendentemente dalle dimensioni del progetto software, è consigliabile usare il controllo della versione appena possibile. I sistemi di controllo della versione sono costituiti da software che consente di tenere traccia delle modifiche apportate nel codice nel tempo. Quando si modifica il codice, si indica al sistema di controllo della versione di creare uno snapshot dei file. e lo salva in modo permanente in modo da poterlo richiamare in un secondo momento, se necessario.

Azure DevOps Services e TFS forniscono due modelli di controllo della versione: Git, che è il controllo della versione distribuita e controllo della versione di Team Foundation (TFVC), che è il controllo della versione centralizzato. Questo articolo offre una panoramica e un punto di partenza per l'uso di TFVC. Se si decide quale tipo di controllo della versione di Azure DevOps Services/TFS usare, vedere Scelta del controllo della versione appropriato per il progetto.

Perché usare il controllo della versione?

Senza il controllo della versione, si ha la tentazione di conservare più copie del codice nel computer. Questo è pericoloso, perché è facile modificare o eliminare un file nella copia errata del codice, potenzialmente perdere lavoro. I sistemi di controllo della versione risolvono questo problema gestendo tutte le versioni del codice, ma presentando una singola versione alla volta.

I sistemi di controllo della versione offrono i vantaggi seguenti:

  • Creare flussi di lavoro: i flussi di lavoro di controllo della versione impediscono a tutti di usare il proprio processo di sviluppo con strumenti diversi e incompatibili. I sistemi di controllo della versione forniscono l'imposizione dei processi e le autorizzazioni in modo che tutti rimangano nella stessa pagina.
  • Usare le versioni : ogni versione include una descrizione per le modifiche apportate alla versione, ad esempio correggere un bug o aggiungere una funzionalità. Queste descrizioni consentono di seguire le modifiche apportate al codice in base alla versione invece che in base alle modifiche apportate ai singoli file. Il codice archiviato nelle versioni può essere visualizzato e ripristinato dal controllo della versione in qualsiasi momento in base alle esigenze. In questo modo è facile basare il nuovo lavoro su qualsiasi versione del codice.
  • Codice insieme : il controllo della versione sincronizza le versioni e assicura che le modifiche non siano in conflitto con altre modifiche del team. Il team si basa sul controllo della versione per risolvere e prevenire i conflitti, anche quando le persone apportano modifiche contemporaneamente.
  • Mantieni una cronologia : il controllo della versione mantiene una cronologia delle modifiche man mano che il team salva le nuove versioni del codice. Questa cronologia può essere esaminata per scoprire da chi, perché e quando sono state apportate le modifiche. La cronologia offre la certezza di sperimentare perché è possibile eseguire il rollback a una versione valida precedente in qualsiasi momento. La cronologia consente di basare il lavoro da qualsiasi versione del codice, ad esempio per correggere un bug in una versione precedente.
  • Automatizzare le attività : le funzionalità di automazione del controllo della versione consentono di risparmiare tempo al team e generare risultati coerenti. È possibile automatizzare i test, l'analisi del codice e la distribuzione quando le nuove versioni vengono salvate nel controllo della versione.

Ci sono molte cose che possono richiedere tempo come sviluppatore: riprodurre bug, imparare nuovi strumenti e aggiungere nuove funzionalità o contenuti. Man mano che le esigenze degli utenti aumentano, il controllo della versione aiuta il team a collaborare e a spedire in tempo.

Controllo della versione di Team Foundation

TFVC è un sistema di controllo della versione centralizzato. In genere, i membri del team hanno una sola versione di ogni file nei computer di sviluppo. I dati cronologici vengono gestiti solo sul server. I branch sono basati sul percorso e creati nel server.

TFVC consente di applicare autorizzazioni granulari e limitare l'accesso a livello di file. Poiché il team controlla tutto il proprio lavoro in Azure DevOps Server, è possibile controllare facilmente le modifiche e identificare l'utente archiviato in un insieme di modifiche. Usando il confronto e l'annotazione, è possibile identificare le modifiche esatte apportate.

Avvi rapidi

Iniziare creando un progetto, configurando l'area di lavoro e rivedendo e condividendo il codice. È possibile usare uno di questi client o IDE:

Esercitazioni dettagliate

Informazioni di base sull'uso di TFVC con l'esercitazione seguente, che illustra una giornata nella vita di uno sviluppatore DevOps con Visual Studio e TFVC.

Cosa vuoi fare?

  • Configurare il computer di sviluppo e iniziare

    Dedicare alcuni minuti alla configurazione del computer di sviluppo per sfruttare tutti i vantaggi di una codebase controllata dalla versione.

  • Scegliere il modello del flusso di lavoro : server o aree di lavoro locali

    • Area di lavoro server: prima di apportare modifiche, i membri del team estraggono pubblicamente i file. La maggior parte delle operazioni richiede che gli sviluppatori siano connessi al server. Questo sistema facilita il blocco dei flussi di lavoro. Altri sistemi che funzionano in questo modo includono Visual Source Cassaforte, Perforce e CVS. Con le aree di lavoro server, è possibile aumentare le dimensioni delle codebase con milioni di file per ramo e file binari di grandi dimensioni.

    • Aree di lavoro locali: ogni membro del team accetta una copia della versione più recente della codebase con loro e funziona offline in base alle esigenze. Gli sviluppatori controllano le modifiche e risolvono i conflitti in base alle esigenze. Un altro sistema che funziona in questo modo è Subversion.

  • Sviluppare l'app in una codebase controllata dalla versione

    Non è necessario considerare il controllo della versione nella maggior parte delle situazioni. Il sistema supporta quando è necessario gestire e comprendere le modifiche.

  • Sospendere il lavoro

    A volte devi mettere da parte alcuni o tutto il lavoro che stai facendo. Il sistema di controllo della versione può portare via alcuni dei dolori e ridurre il tempo sprecato dalle interruzioni.

  • Contribuire al lavoro del team

    Controllare le modifiche in modo che il team possa basarsi su, testare e rilasciare il valore creato.

  • Isolare il rischio

    Usare rami e blocchi per isolare il rischio introdotto dal lavoro svolto da team diversi.

  • Visualizzare e gestire le versioni precedenti

    Un vantaggio di un sistema di controllo della versione è che è possibile esaminare indietro nel tempo per ottenere informazioni dettagliate su quali modifiche sono state apportate ai file.

  • Confrontare cartelle e file

    È possibile confrontare le cartelle del server e le cartelle locali tra loro e visualizzare le differenze tra il contenuto di ogni cartella.

  • Risolvere i conflitti di controllo della versione di Team Foundation

    Un grande vantaggio dell'uso del controllo della versione è che diverse persone possono lavorare simultaneamente in un file. Uno svantaggio è che a volte è necessario risolvere i conflitti. Anche se può essere frustrante incontrare conflitti, il sistema fornisce informazioni e strumenti per comprendere e risolvere i conflitti.

  • Usare i blocchi del controllo della versione

    Quando è necessario impedire l'estrazione e la modifica di un file o di una cartella, è possibile bloccarlo.

Operazioni disponibili solo dalla riga di comando tf

Nella tabella seguente sono elencate le attività per TFVC che è possibile eseguire solo al prompt dei comandi usando lo strumento da tf riga di comando.

Attività Comando
Eliminare l'area di lavoro di un altro utente. workspacecon l'opzione /delete
Annullare il check-out di un altro utente. undo
Rimuovere il blocco di un altro utente. lock
Definire l'ambito dell'etichetta. label
Eseguire un'unione senza base. merge
Eliminare definitivamente il contenuto. destroy
Eseguire il rollback dell'effetto di uno o più insiemi di modifiche. rollback