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.
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. Aprendo quella risorsa dalla vista Sincronizzazione verrà visualizzato un confronto fra la risorsa locale e la revisione della 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à sostituita 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:
È 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 conflitti, Aggiorna elaborerà solo i file con contenuto privo di conflitti. I file con conflitti nel contenuto verranno ignorati e lasciati nella vista Sincronizzazione come conflitti.
Programmazione in team con CVS
Sincronizzazione con un repository CVS
Confronto a tre
Sincronizzazione con il repository
Aggiornamento
Esecuzione del commit
Unione da una sezione
Confronto di risorse
Unione delle modifiche nell'editor di confronto
www.cvshome.org: Aggiornamento di un file
www.cvshome.org: Esempio di conflitto
Editor di confronto