Share via


Risolvere conflitti di controllo della versione di Team Foundation

Un vantaggio nell'usare Controllo della versione di Team Foundation per gestire i file consiste nel consentire a diverse persone di lavorare contemporaneamente su un file. Uno svantaggio consiste in alcuni casi nel dover risolvere i conflitti prima di poter ottenere, archiviare, eseguire l'unshelving, eseguire il merge o eseguire il rollback dei file.

Sebbene possa essere frustrante rilevare i conflitti, il sistema fornisce informazioni e strumenti per aiutare a capire e risolvere i conflitti.

  • Risolvere conflitti

  • Risolvere automaticamente tutti i conflitti

  • Eseguire automaticamente il merge di un singolo conflitto

  • Risolvere manualmente un singolo conflitto

  • Individuare le opzioni automatiche

  • Lavorare dal prompt dei comandi

  • Ottenere i suggerimenti

Risolvere conflitti

Usare la finestra Risolvi conflitti per risolvere i conflitti che causano il blocco.

Archiviazione bloccata da un conflitto di modifiche

Finestra Risolvi conflitti

Per impostazione predefinita, nella finestra vengono visualizzati solo i conflitti causati dal tentativo di esecuzione dell'operazione più recente. Quando la finestra è in questo stato, viene visualizzato un messaggio che inizia con Filtro percorso applicato. Per mostrare tutti i conflitti nell'area di lavoro, scegliere Leggi tutti i conflitti. Viene visualizzato un messaggio che inizia con n conflitti.

Se è passato molto tempo da quando sono state apportate modifiche ai file nell'area di lavoro, è possibile che in questo periodo di tempo si siano verificati nuovi conflitti. Per aggiornare la finestra Risolvi conflitti, scegliere Aggiorna.

Ogni conflitto contiene informazioni e talvolta collegamenti che consentono di risolverlo. Per altre informazioni, è possibile selezionare il conflitto e scegliere:

  • Pulsante Cronologia Cronologia per visualizzare la cronologia del file. Se l'operazione che ha causato il conflitto è un merge o un rollback, è possibile scegliere il controllo menu a destra di Cronologia e selezionare Cronologia origine o Cronologia destinazione.

    Vedere Ottenere la cronologia di un elemento.

  • Pulsante Annota Annota per visualizzare i dettagli relativi a tutte le modifiche apportate alla versione più recente del file, incluso chi ha apportato ogni modifica e quando è stata apportata. Vedere Visualizzare le modifiche ai file mediante l'annotazione.

  • Pulsante Confronta i file Confronta o selezionare il menu a destra del pulsante e quindi scegliere un comando. Viene visualizzata la finestra Diff.

Risolvere automaticamente tutti i conflitti

Con l'opzione Risolvi tutti automaticamente usata per impostazione predefinita il sistema tenta automaticamente di risolvere tutti i conflitti, a meno che tale opzione non sia stata disattivata dall'utente (vedere Suggerimenti). Nella finestra Risolvi conflitti è anche possibile scegliere manualmente l'opzione Risolvi tutti automaticamente, quindi scegliere:

  • Selezionare Tutti i tipi di conflitto se si desidera che il sistema tenti di risolvere automaticamente i conflitti usando tutte le regole euristiche.

  • Selezionare Tipi di conflitto specifici se si desidera che il sistema tenti di risolvere i conflitti, ma si desidera escludere alcune regole euristiche.

    Viene visualizzata la finestra di dialogo Scegliere i conflitti da risolvere. Selezionare o deselezionare le opzioni che si desidera abilitare o disabilitare, quindi scegliere Risolvi automaticamente. Per altre informazioni, vedere Informazioni sulle opzioni automatiche di seguito.

Il sistema tenta di risolvere automaticamente i conflitti visualizzati nella finestra Modifiche in sospeso. Tutti i conflitti che il sistema non è stato in grado di risolvere rimarranno nella finestra. È necessaria la risoluzione manuale di questi conflitti.

Eseguire automaticamente il merge di un singolo conflitto

Scegliere Esegui merge automaticamente se si desidera provare a risolvere i conflitti selezionati usando le opzioni di merge automatico descritte in Informazioni sulle opzioni automatiche riportate di seguito.

Suggerimento

È possibile premere e tenere premuto il tasto CTRL oppure il tasto MAIUSC per selezionare più conflitti.

Nota

Se l'opzione Unisci automaticamente è disabilitata, il conflitto deve essere risolto manualmente.

Risolvere manualmente un singolo conflitto

Se il sistema non è in grado di risolvere automaticamente un conflitto oppure se si desidera verificare cosa viene modificato, è necessario risolvere manualmente il conflitto. All'interno di ogni conflitto, il sistema visualizza le azioni che è possibile eseguire per risolvere il conflitto. Le azioni visualizzate dipendono dal tipo di conflitto e dall'operazione che ha causato il conflitto.

Merge di modifiche nello strumento di merge

Quando un conflitto è causato da modifiche del contenuto in conflitto, è possibile scegliere Esegui merge di modifiche in strumento di merge.

Quando si sceglie questa operazione, viene visualizzata la finestra Merge.

Finestra Esegui merge

Il risultato del lavoro per la risoluzione di un conflitto viene visualizzato nel riquadro Risultati.

In questa finestra è possibile:

  • Selezionare il layout della finestra: Visualizzazione verticale, Visualizzazione orizzontale, Visualizzazione mista.

  • Esplorare tra le differenze e i conflitti.

  • Selezionare gli elementi, da versioni di sinistra e destra del file, per includerli nel risultato.

  • Digitare contenuto aggiuntivo nel file nel riquadro dei risultati.

  • Visualizzare la cronologia del file. Vedere Ottenere la cronologia di un elemento.

  • Confrontare le diverse versioni del file.

  • Annotare il file per vedere chi li ha modificati. Vedere Visualizzare le modifiche ai file mediante l'annotazione.

Quando si è soddisfatti del contenuto del riquadro Risultato, scegliere Accetta merge.

Individuare le opzioni automatiche

In alcuni casi speciali, è consigliabile limitare i tipi di conflitti risolti automaticamente dall'opzione Risolvi tutti automaticamente.

Quando si sceglie Risolvi tutti automaticamente e Tipi di conflitto specificati, viene visualizzata la finestra di dialogo Scegliere i conflitti da risolvere.

Finestra di dialogo Scegliere i conflitti da risolvere

Se si desidera che il sistema risolva automaticamente i conflitti che si sono verificati perché...

Come descritto in questo esempio

Selezionare questa casella di controllo

Sono state apportate modifiche del contenuto non in conflitto in ogni versione di un file

Nella versione del file a sinistra è stato aggiunto uno zero iniziale. Nella versione del file a destra è stato aggiunto un tre finale:

Modifiche del contenuto non in conflitto

Conflitti con qualsiasi modifica del contenuto

Sono state apportate modifiche al contenuto univoche dell'area di lavoro (durante un'operazione get o di archiviazione) o della versione di destinazione (durante un'operazione di unione o di rollback)

Sono stati aggiunti quattro e cinque all'area di lavoro o alla versione di destinazione:

Modifiche del contenuto uniche nell'area di lavoro o nella destinazione

Conflitti con modifiche del contenuto apportate solo nell'area di lavoro locale o nel ramo di destinazione

Sono state apportate modifiche al contenuto univoche del server (durante un'operazione get o di archiviazione) o della versione di origine (durante un'operazione di unione o di rollback)

Sono stati aggiunti quattro e cinque a server o alla versione di origine:

Modifiche del contenuto uniche nel server o nell'origine

Conflitti con modifiche del contenuto apportate solo nella versione del server o nel ramo di origine

È stato rinominato un file sul server (durante un'operazione get o di archiviazione) o nel ramo di origine (durante un'operazione di unione o di rollback)

È stato estratto e usato un file denominato launch.cs. Durante tale intervallo di tempo un altro utente ha archiviato un insieme di modifiche che hanno interessato lo stesso file. Tale insieme di modifiche non ha modificato il contenuto del file, bensì il nome in start.cs.

Conflitti causati dalla ridenominazione del file nella versione del server o nel ramo di origine

  • Sono state apportate modifiche comuni al contenuto che hanno prodotto contenuto identico in ogni versione

  • Un file è stato modificato e archiviato tramite una compilazione di archiviazione gestita ed è stata selezionata l'opzione Conserva le modifiche in sospeso localmente

Le modifiche apportate a ogni versione hanno prodotto un file dal contenuto identico. Le modifiche possono essere state apportate al contenuto dei file, come illustrato nell'esempio seguente:

Modifiche del contenuto identiche in ciascuna versione

Questa opzione risolve anche i conflitti causati da tutte le altre operazioni, quali ridenominazione, eliminazione, annullamento dell'eliminazione e creazione di un ramo, e che producono file identici.

Suggerimento

Se si seleziona questa casella di controllo, quando si procede il sistema risolverà queste modifiche ottenendo (scaricando) la versione del server nell'area di lavoro.

Conflitti causati da una modifica identica nell'area di lavoro e nel server

Lavorare dal prompt dei comandi

Suggerimenti

  • SuggerimentoCon l'opzione Risolvi tutti automaticamente usata per impostazione predefinita il sistema tenta automaticamente di risolvere tutti i conflitti. Per modificare l'opzione, dalla barra dei menu scegliere Strumenti, Opzioni e quindi nella finestra di dialogo Opzioni passare a Controllo del codice sorgente, Visual Studio Team Foundation Server. Deselezionare la casella di controllo Tenta di risolvere automaticamente i conflitti generati.

  • SuggerimentoIl team deve collaborare per la risoluzione del maggior numero di conflitti possibili, che ad esempio potrebbero verificarsi dopo un'operazione di merge di codebase di grandi dimensioni? In tal caso, potrebbe essere necessaria un'area di lavoro pubblica in un computer di sviluppo. Vedere Creare e utilizzare aree di lavoro.