Ottimizzare l'area di lavoro

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

Visual Studio 2019 | Visual Studio 2022

Se il team ha una codebase di grandi dimensioni e complessa, è possibile ottimizzare l'area di lavoro in modo da contenere solo i file necessari. L'ottimizzazione dell'area di lavoro migliora le prestazioni, riduce il traffico di rete e riduce lo spazio su disco necessario nel computer di sviluppo.

Nota

La diramazione e la sospensione o la sospensione sono i modi preferiti per isolare diverse attività lavorative rispetto alla stessa codebase. Tuttavia, se nessuno di questi approcci soddisfa le proprie esigenze, è possibile eseguire il mapping della stessa cartella del server in più di un'area di lavoro. Nella maggior parte dei casi non è necessario eseguire questa operazione.

Se si esegue il mapping della stessa cartella del server in più di un'area di lavoro, tenere presente che è possibile avere modifiche separate e diverse in sospeso allo stesso file archiviato in ogni area di lavoro.

Ottimizzare i nomi delle cartelle

Se non si usano ancora rami, inserire tutto il codice in una sottocartella denominata Main nel server, ad esempio $ /TFVCTeamProject/Main/. Si sarà quindi pronti quando il team cresce abbastanza grande per richiedere rami per gestire la codebase. Nel computer di sviluppo è consigliabile usare un percorso di cartella breve e comprensibile che corrisponda alla struttura del progetto, ad esempio C:\Users\YourName>\<Source\Workspaces\TFVCTeamProject\Main\SolutionName.

Altri suggerimenti sui nomi delle cartelle efficaci:

  • Mantenere tutti i nomi di cartelle, sottocartelle e file brevi per semplificare il lavoro ed evitare potenziali problemi di percorso lungo che possono verificarsi con alcuni tipi di progetti di codice.

  • Evitare spazi vuoti nei nomi di file e cartelle per semplificare l'esecuzione delle operazioni della riga di comando.

Ottimizzare l'area di lavoro

Se la codebase del team è di grandi dimensioni, è possibile evitare di perdere tempo, larghezza di banda di rete e spazio su disco locale ottimizzando i mapping delle cartelle dell'area di lavoro. È possibile usare mapping espliciti, impliciti, mascherati e non ricorsivi di cartelle per creare più semplicemente e rapidamente un'area di lavoro utilizzabile.

Quando si esegue il mapping di una cartella all'area di lavoro, assicurarsi di scegliere una cartella sufficientemente elevata nell'albero del codice per ottenere tutti i file necessari per creare una compilazione locale, ma abbastanza bassa da non ottenere più file di quanto necessario. Nell'area di lavoro di esempio seguente è sufficiente eseguire il mapping di $/SiteApp/ a c:\code\SiteApp\. Un'area di lavoro semplice come questa esegue il mapping implicito di tutte le cartelle in $/SiteApp/Main/ all'area di lavoro, inclusi i file necessari.

Il problema principale di questo approccio è che offre molti file non necessari e quindi sprecare tempo e risorse. Ad esempio, se non si sviluppano processi di compilazione personalizzati, non è necessario $/SiteApp/BuildProcessTemplates/.

Nel corso del tempo si prevede che la codebase del team cresca e non si vuole scaricare automaticamente ogni nuovo bit di codice aggiunto a $/SiteApp/Main/. Quando i team che lavorano in altre cartelle modificano tali file, quando si ottengono i file più recenti dal server, è possibile che si possano subire lunghi ritardi in attesa di aggiornamenti ai file non necessari.

È possibile ottimizzare l'area di lavoro per creare mapping di cartelle più personalizzati.

  1. In Esplora controllo del codice sorgente di Visual Studio selezionare la freccia a discesa accanto ad Aree di lavoro e selezionare Aree di lavoro.

  2. Nella finestra di dialogo Gestisci aree di lavoro selezionare l'area di lavoro da ottimizzare e quindi selezionare Modifica.

  3. Nella finestra di dialogo Modifica area di lavoro modificare i mapping dell'area di lavoro.

    Screenshot che mostra la modifica di un'area di lavoro nella finestra di dialogo Modifica area di lavoro.

  4. Ad esempio, per sviluppare il codice, sono necessari progetti di codice dal progetto DinnerNow . Anziché includere in modo esplicito ogni progetto di codice nella soluzione, ad esempio $/Fabrikam TFVC/DinnerNow/feature3, è possibile eseguire il mapping di $/Fabrikam TFVC/DinnerNow e quindi eseguire il mapping implicito di tutte le sottocartelle che contengono i progetti di codice necessari.

  5. Non sono necessari i file in $/Fabrikam TFVC/DinnerNow/feature1 o $/Fabrikam TFVC/DinnerNow/feature2, ma poiché sono mappati in modo implicito, è possibile usare due mapping mascherati per escludere queste cartelle dall'area di lavoro.

  6. Il team gestisce e talvolta aumenta un set di alcune librerie fondamentali. Sono necessarie quasi tutte le librerie correnti in questa cartella e si prevede di dover aggiungere le librerie aggiunte dal team in futuro, quindi si esegue il mapping di $/Fabrikam TFVC/Main/.

  7. È necessario solo un piccolo segmento di una cartella di grandi dimensioni, $/Fabrikam TFVC/Main/ClassLibrary, quindi eseguirne il mapping come mascherato e quindi eseguire il mapping esplicito solo della sottocartella necessaria, $/Fabrikam TFVC/Main/ClassLibrary1.

  8. Sono necessari alcuni dei file immediatamente all'interno di ClassLibrary1, ma non è necessario il contenuto delle relative sottocartelle, quindi si applica un mapping non ricorsivo alla cartella $/Fabrikam TFVC/Main/ClassLibrary1/ .

È anche possibile eseguire il mapping delle cartelle alle aree di lavoro facendo clic con il pulsante destro del mouse su un ramo o una cartella non mappata in Esplora controllo del codice sorgente e scegliendo Mappa avanzata>alla cartella locale. In alternativa, selezionare il collegamento Non mappato accanto alla cartella Locale nella parte superiore di Esplora controllo del codice sorgente. Nella finestra di dialogo Mappa selezionare una cartella locale a cui eseguire il mapping e selezionare la casella di controllo Ricorsiva se si desidera rendere ricorsivo il mapping tra sottocartelle.

Gli screenshot seguenti mostrano i risultati dell'applicazione di queste ottimizzazioni dell'area di lavoro nell'albero del server in Esplora controllo del codice sorgente e nei file locali del computer.

Screenshot che mostrano gli effetti dei mapping delle cartelle.

Usare le aree di lavoro per isolare i rami

Se l'organizzazione usa rami per isolare il rischio nella codebase, è possibile creare un'area di lavoro separata per ogni ramo in cui si lavora. Si continua il lavoro all'interno del team di piccole dimensioni, ma si usano alcune aree di lavoro per gestire il lavoro svolto in più rami.

Ad esempio:

Diagramma che mostra più rami.

  • Sviluppare funzionalità: si modifica l'area di lavoro predefinita in modo che funzioni nel Extranet ramo, in cui si partecipa allo sviluppo del sito Web rivolto ai clienti.

  • Integrazione e stabilizzazione: si creano due nuove aree di lavoro per lavorare nei Test rami e Dev , in cui si collabora con altri sviluppatori e tester per stabilizzare il codice durante l'integrazione.

È possibile gestire il lavoro in tre aree di lavoro, ognuna delle quali esegue il mapping delle cartelle in un ramo nel server alle cartelle nel computer di sviluppo.

Diagramma che mostra il mapping dei rami alle cartelle.

Passaggi successivi

Selezionare una strategia di diramazione efficace