Risoluzione dei conflitti

Durante l'aggiornamento o l'esecuzione del commit è possibile riscontrare dei conflitti. Un conflitto si verifica quando è stata modificata in locale una risorsa di cui è disponibile una revisione più recente nella sezione del repository. Nello specifico, la sezione conterrà una revisione più recente rispetto alla revisione base della risorsa. In questa situazione è possibile scegliere una delle seguenti azioni:

Generalmente, si consiglia di adottare la terza opzione, ossia quella relativa all'operazione di unione, a causa del minor rischio rispetto alle altre due scelte.

Unione manuale delle modifiche

La vista Sincronizzazione indica le risorse in conflitto con la sezione. Per una specifica risorsa in conflitto, in genere si procede all'unione delle proprie modifiche con quelle della risorsa della sezione.

Ad esempio, si assuma che l'utente e un altro membro del team abbiano modificato la stessa pagina html. Selezionando tale risorsa nella vista Sincronizzazione, verrà visualizzato un confronto tra la risorsa locale e la revisione presente nella sezione. Esaminando la risorsa e unendo le singole modifiche, è possibile stabilire per ciascuna modifica se accettare la modifica in entrata, rifiutarla o unirla con le modifiche locali. Una volta terminata l'unione, salvare le modifiche. In tal modo, la risorsa locale verrà sovrascritta dal risultato dell'operazione di unione. È possibile, successivamente, eseguire il commit di questa risorsa derivante dall'unione.

Suggerimento: quando si uniscono le modifiche, spesso è opportuno poter distinguere i file di cui è stata completata l'unione. Al termine dell'unione di un file, è possibile scegliere Contrassegna come unito dal menu di scelta rapida. Ciò modificherà lo stato del file da conflitto a modifica in uscita.

È possibile unire le differenze nella vista Sincronizzazione in base a due livelli:

Unione automatica delle modifiche

È anche possibile unire automaticamente le modifiche. Per tutte le risorse contrassegnate come ASCII, l'esecuzione di Team > Aggiorna comporterà l'unione automatica nella risorsa locale delle differenze con la risorsa della sezione. Questa procedura è corretta purché non siano presenti righe contenenti modifiche in conflitto. Se sono presenti, CVS inserisce una speciale markup nel file per indicare le righe che potrebbero risultare non unite.

L'aggiornamento dall'interno della vista Sincronizzazione funziona in maniera leggermente differente. In caso di conflitto, l'operazione di aggiornamento richiederà all'utente di effettuare l'unione nelle modifiche o di sostituire l'intero contenuto del file con quello remoto.

 Argomenti correlati
Programmazione in team con CVS
Sincronizzazione con un repository CVS
Confronto a tre

Attività correlate
Sincronizzazione con il repository
Aggiornamento
Esecuzione del commit
Unione da una sezione
Confronto di risorse
Unione delle modifiche nell'editor di confronto

Riferimenti correlati
www.CVShome.org: Aggiornamento di un file
www.CVShome.org: Esempio di conflitti
Editor di confronto

 
Copyright IBM Corporation e altri 2000, 2003.