Che cos'è controllo della versione di Team Foundation?

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

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 è controllo della versione distribuita e controllo della versione di Team Foundation (TFVC), che è il controllo della versione centralizzato. Questo articolo fornisce 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 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: riproduzione di bug, apprendimento di nuovi strumenti e aggiunta di nuove funzionalità o contenuto. Man mano che le esigenze degli utenti aumentano, il controllo della versione consente al team di collaborare e 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 un 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

Per iniziare, creare un progetto, configurare l'area di lavoro ed esaminare e condividere 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.

Per saperne di più

  • 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 i flussi di lavoro di blocco. Altri sistemi in cui è impiegata questa modalità di funzionamento sono Visual Source Safe, 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 acquisisce una copia della versione più recente della codebase e funziona offline in base alle esigenze. Gli sviluppatori archiviano le modifiche e risolvono i conflitti in base alle esigenze. Un altro sistema che funziona in questo modo è Subversion.

  • Sviluppare l'applicazione in un codebase incluso nel controllo della versione

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

  • Sospendere il lavoro

    Talvolta è necessario interrompere parte o tutti i lavori che si stanno facendo. Il sistema di controllo della versione può agevolare l'utente riducendo il tempo sprecato per le interruzioni.

  • Contribuire al lavoro al team

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

  • Isolare il rischio

    Utilizzare i branch e i blocchi per isolare i rischi introdotti dal lavoro svolto da team diversi.

  • Visualizzare e gestire le versioni precedenti

    Un vantaggio offerto dal sistema di controllo della versione consiste nella possibilità di eseguire ricerche indietro nel tempo per ottenere informazioni dettagliate relative alle modifiche apportate ai file.

  • Confrontare cartelle e file

    È possibile confrontare cartelle del server con cartelle locali e viceversa e visualizzare le differenze del contenuto di ciascuna cartella.

  • Risolvere conflitti di controllo della versione di Team Foundation

    Un grande vantaggio offerto dall'utilizzo del controllo della versione è che diverse persone possono lavorare contemporaneamente su un file. Uno degli svantaggi è che in alcuni casi è necessario risolvere dei conflitti. Sebbene possa essere frustrante rilevare i conflitti, il sistema fornisce informazioni e strumenti per aiutare a capire e risolvere i conflitti.

  • Usare i blocchi del controllo della versione

    Quando si ha bisogno di impedire l'estrazione e la modifica di un file o una cartella, è possibile applicare un blocco.

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