Creazione di rami per cartelle e file

Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2013

Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015 | Visual Studio 2013

È possibile usare branch per raggiungere gli obiettivi seguenti:

  • Gestire lavoro simultaneo da parte di più team sulla stessa codebase
  • Isolare rischi introdotti da diversi set di modifiche alla codebase
  • Acquisire snapshot, quindi supportare modifiche isolate successive (ad esempio, per creare un branch della versione)

Ad esempio, l'illustrazione seguente mostra come la società DinnerNow ha sviluppato una struttura di branch per soddisfare le esigenze aziendali.

Lo screenshot seguente mostra la struttura del ramo DinnerNow nella finestra Hierarchy (Gerarchia).

Hierarchy window

Il team delle funzionalità A e il team di funzionalità B esercitino il proprio lavoro in rami separati. Quando i team sono pronti per integrare il lavoro, eseguono il merge dei branch nel branch Dev. Quando le build del branch Dev sono stabili e pronte per il test, il team esegue il merge del branch Dev con il branch Test.

Man mano che ogni versione viene rilasciata, viene creato un nuovo branch della versione dal branch Main, ad esempio il branch Versione1 e il branch Versione2. Seguendo questa strategia, la società può migliorare o correggere separatamente ogni versione precedente del prodotto, se necessario.

È possibile eseguire un'operazione di diramazioneusando Esplora controllo codice sorgente , come illustrato in questo argomento, o il comando Branch al prompt dei comandi. Per altre informazioni, vedere Comando Branch.

Suggerimento

La creazione di rami è una tecnica importante ed efficace per la creazione di un set parallelo di versioni dei file. Tuttavia, l'utilizzo di branch può aggiungere complessità e aumentare i costi del progetto. Ad esempio, quando si esegue il merge di due branch, è possibile che sia necessario risolvere conflitti.

Prima di creare un ramo, è necessario considerare se è possibile soddisfare al meglio le esigenze applicando un'etichetta. Con l'applicazione di un'etichetta è possibile acquisire rapidamente e facilmente uno snapshot dello stato dei file in modo che, in un secondo momento, sia possibile recuperare o compilare i file in tale stato. Per altre informazioni, vedere Usare le etichette per creare uno snapshot dei file.

Prerequisiti

  • Per convertire una cartella in un ramo, l'autorizzazione Gestisci ramo deve essere impostata su Consenti.
  • Per creare un ramo, l'autorizzazione Gestisci ramo deve essere impostata su Consenti per i percorsi dei rami di origine e di destinazione. L'autorizzazione merge per il percorso del ramo di destinazione deve essere impostata su Consenti.
  • Per creare un ramo di una cartella o di un file, l'autorizzazione Estrazione e l'autorizzazione Merge per il percorso di destinazione devono essere impostate su Consenti.

Per altre informazioni, vedere Autorizzazioni TFVC predefinite.

Convertire una cartella in un ramo

Il rilascio di Visual Studio Team Foundation Server 2010 ha iniziato una distinzione tra rami e cartelle. Nell'illustrazione seguente viene illustrato il primo livello della struttura di cartelle di DinnerNow:

Struttura di cartelle di DinnerNow in Esplora controllo codice sorgente

Folder structure in Source Control Explorer

Come illustrato nella figura, è comunque possibile usare le cartelle per organizzare i rami all'interno della gerarchia di controllo della versione di un progetto. Tuttavia, cartelle e branch hanno un aspetto diverso e funzionalità diverse. Quando si fa clic con il pulsante destro del mouse su una cartella o un ramo e si fa clic su Proprietà, vengono visualizzate informazioni e funzionalità diverse.

Quando si eseguono operazioni di branch, i branch presentano importanti vantaggi rispetto alle cartelle. I branch supportano funzionalità di controllo della versione che forniscono visibilità aggiuntiva della struttura di branch e dei punti in cui è stato eseguito il merge dei set di modifiche. Per altre informazioni, vedere i collegamenti nella sezione Vedere anche più avanti in questo argomento.

Sebbene sia ancora possibile eseguire il branching e il merge delle cartelle, la procedura consigliata per il team consiste nell'esecuzione di branching e merge esclusivamente tra branch. Nella procedura seguente viene descritto come convertire una cartella in un branch.

  1. In Esplora controllo codice sorgenteverificare che la cartella da convertire esista nel server.

  2. Se accanto alla cartella viene visualizzata l'icona di aggiunta in sospeso ( ), fare clic con il pulsante destro del mouse sulla cartella e quindi scegliere TFSC Pending Addition Status Icon Archivia modifiche in sospeso.

  3. Fare clic con il pulsante destro del mouse sulla cartella che si desidera convertire, scegliere Creazionedi rami e unione e quindi fare clic su Converti in ramo.

    Verrà visualizzata la finestra di dialogo Converti cartella in ramo .

    Importante

    Se si sta convertendo una cartella che è già stata diramata, è consigliabile selezionare la casella di controllo Esegui questa conversione in modo ricorsivo per tutte le cartelle figlio con ramo . Questa opzione converte inoltre in branch tutte le cartelle sottoposte in precedenza a branching da questa cartella.

  4. (Facoltativo) Nel campo Proprietario digitare il nome della persona proprietaria del ramo.

    Nota

    Il campo Proprietario è solo a solo informazioni. All'utente indicato nel campo Proprietario non viene concessa alcuna autorizzazione aggiuntiva.

  5. (Facoltativo) Nel campo Descrizione digitare le informazioni che potrebbero essere utili ad altri membri del team che devono usare questo ramo o comprenderne lo scopo.

  6. Fare clic su Converti.

Importante

Non è possibile annidare rami. Pertanto, non è possibile convertire alcuna cartella in un ramo se contiene un ramo o è contenuta in un ramo. Ad esempio, la figura seguente illustra come né l'elemento padre né l'elemento figlio del ramo FeatureTeamA possono essere convertiti in un ramo .

Nested branches are not allowed

Dopo aver convertito una cartella in un branch, è possibile convertirlo nuovamente in una cartella se il team decide di modificare la struttura di branch.

Convertire un ramo in una cartella

  1. Nella Esplora controllo codice sorgentefare clic sul ramo da convertire.
  2. Scegliere Controllo del codice sorgente dalmenu File , scegliere Diramazione e unione equindi fare clic su Converti in cartella.
  3. Quando viene visualizzato il messaggio Convert Branch Back To Folder (Converti ramo nella cartella), fare clic su Sì.

Creare il branch di un branch

Dopo avere convertito una cartella in un branch, è possibile creare altri branch da tale branch. Nella procedura seguente viene illustrato come utilizzare l'interfaccia utente grafica di Visual Studio creare un ramo. Per informazioni su come eseguire questa attività al prompt dei comandi, vedere Comando Branch.

  1. In Esplora controllo codice sorgentefare clic con il pulsante destro del mouse sul ramo di cui si vuole creare un ramo, scegliere Diramazione e unione,quindi fare clic su Diramazione.

    Verrà visualizzata la finestra di dialogo Dirama da .

  2. Nella casella Nome ramo di destinazione specificare il percorso del nuovo ramo.

  3. (Facoltativo) Nella sezione Ramo dalla versione fare clic su una delle opzioni seguenti nell'elenco Per:

    • Se si fa clic su Versione piùrecente , il ramo viene creato per la versione più recente nel controllo della versione.

    • Se si fa clic su Insieme dimodifiche , è possibile specificare il numero dell'insieme di modifiche nella casella Insieme di modifiche . In alternativa, fare clic sui puntini di sospensione (...) per aprire la finestra di dialogo Trova insiemi di modifiche .

      Per altre informazioni, vedere Trovare e visualizzare gli insiemi di modifiche.

    • Se si fa clic su Data, è possibile specificare una data nella casella Data .

  4. Fare clic su Ramo.

    Il ramo viene creato e visualizzato in Esplora controllo codice sorgente.

    Nota

    A differenza della maggior parte delle operazioni di controllo della versione, questa operazione non genera una modifica in sospeso. L'operazione viene invece completata immediatamente e non è possibile annullarla.

Creare un branch di una cartella o un file

Sebbene sia possibile eseguire il branching di un file o cartella direttamente, tale operazione è sconsigliata. In caso contrario, non sarà possibile visualizzare la gerarchia dei rami o tenere traccia degli insiemi di modifiche. La procedura consigliata consiste nell'esecuzione di branching e merge esclusivamente tra branch, come descritto in questo argomento.

In presenza, tuttavia, di una particolare esigenza di creare un ramo di una cartella o un file, è possibile usare la procedura seguente per eseguire tale attività. Per informazioni su come eseguire questa attività al prompt dei comandi, vedere Comando Branch.

  1. In Esplora controllo codice sorgentefare clic con il pulsante destro del mouse sulla cartella o sul file di cui si vuole creare un ramo, scegliere Diramazione e unione,quindi fare clic su Dirama.

    Verrà visualizzata la finestra di dialogo Ramo .

  2. Nella casella Destinazione modificare il percorso e il nome del nuovo ramo.

    È anche possibile fare clic su Sfoglia per specificare una destinazione.

  3. Nella sezione Ramo dalla versione fare clic su una delle opzioni seguenti nell'elenco Per:

    • Se si fa clic su Versione piùrecente , il ramo viene creato per la versione più recente nel controllo della versione.

    • Se si fa clic su Insieme dimodifiche , è possibile specificare il numero dell'insieme di modifiche nella casella Insieme di modifiche . In alternativa, è possibile fare clic sui puntini di sospensione (...) per aprire la finestra di dialogo Trova insiemi di modifiche .

      Per altre informazioni, vedere Trovare e visualizzare gli insiemi di modifiche.

    • Se si fa clic su Data, è possibile specificare una data nella casella Data .

    • Se si fa clic su Etichetta, è possibile digitare il nome dell'etichetta nella casella Etichetta . In alternativa, è possibile fare clic sui puntini di sospensione (...) per aprire la finestra di dialogo Trova etichetta.

      Per altre informazioni, vedere Usare le etichette per creare uno snapshot dei file.

    • Se si fa clic su Versione area di lavoro, il ramo viene creato per la versione nell'area di lavoro.

  4. (Facoltativo) Selezionare la casella di controllo Crea copie di lavoro locali per il nuovo ramo per creare una copia dell'elemento con controllo della versione nell'area di lavoro locale. Deselezionare la casella di controllo se non è richiesta una copia locale e si desidera migliorare le prestazioni evitando di scaricare molti elementi nel computer.

  5. Fare clic su OK.

    Il ramo viene creato e visualizzato in Esplora controllo codice sorgente.

    Nota

    Se è stata selezionata la casella di controllo Crea copie di lavoro locali per il nuovo ramo e la cartella locale specificata non è mappata nell'area di lavoro corrente, viene visualizzata la finestra Sfoglia cartella. Cercare una cartella o fare clic su Crea nuova cartella,specificare una cartella da sincronizzare con gli elementi con controllo della versione e quindi fare clic su OK.