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.
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:
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.
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.
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.
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.
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: |
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: |
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: |
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 |
|
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: 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
Con 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.
Il 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.