Resolució de conflictes

Es poden produir conflictes cada vegada que feu canvis a un fitxer que també ha estat modificat per un altre desenvolupador. El conflicte és detectat pel CVS en actualitzar el fitxer modificat: llavors, el CVS intentarà fusionar les modificacions comeses per un altre desenvolupador a la vostra còpia de treball. La fusió falla si ambdues, les vostres modificacions i les seves modificacions se superposen en parts del fitxer, i el servidor de CVS emetrà un missatge d'error.

A la vista principal del Cervisia, s'indiquen els fitxers amb conflictes amb «Conflicte» a la columna d'estat i amb el color vermell. Ara és feina vostra resoldre aquests conflictes abans de cometre el fitxer. El CVS rebutjarà cometre qualsevol fitxer amb conflictes fins que s'hagi editat. Per descomptat podeu resoldre conflictes des de la vista principal de la manera tradicional: simplement feu doble clic al fitxer en qüestió i editeu-lo amb el vostre editor favorit.

El CVS marca els canvis conflictius emplaçant marques en mig dels fitxers, de la següent manera:

<<<<<<<
Canvis a la vostra còpia de treball
=======
Canvis al repositori
>>>>>>> número_de_revisió

Heu de substituir aquest bloc sencer amb la versió nova fusionada. Per descomptat, teniu una gran llibertat per a resoldre una sèrie de conflictes: per a cada conflicte podeu decidir adoptar una de les dues versions alternatives. També podeu decidir que tots dos enfocaments estan trencats i tornar a escriure una rutina completa o el fitxer complet des de zero.

Afortunadament, el Cervisia ofereix una interfície més agradable per a gestionar aquests conflictes. Això no significa que no necessitareu mai editar manualment els fitxers, però almenys podeu eliminar la necessitat de fer-ho per a resoldre conflictes trivials. Per a utilitzar el diàleg Resolució CVS del Cervisia escolliu FitxerResoldre... o feu clic dret al fitxer marcat i escolliu Resoldre... des del menú contextual.

Figura 3.3. Una captura de pantalla del diàleg de resolució del Cervisia

Una captura de pantalla del diàleg de resolució del Cervisia

A la part superior del diàleg, podeu veure La vostra versió (A) del fitxer a mà esquerra i la versió en el repositori l'altra versió (B) a mà dreta. Les diferències entre ells estan marcades en color vermell. Sota d'aquestes dues columnes, podeu veure la Versió fusionada. La versió fusionada reflecteix quina d'aquestes seccions serà a la vostra còpia de treball si premeu el botó Desa.

Podeu anar enrere i endavant entre les seccions amb conflictes prement << i >>. a la part inferior central del diàleg podeu veure quina secció està marcada actualment. Per exemple, 2 de 3 vol dir que actualment esteu a la segona secció amb diferències d'un total de 3.

Ara podeu decidir secció per secció quina versió voleu tenir en el fitxer fusionat. Prement A tindreu la versió que heu editat. Prement B tindreu la versió del repositori. Prement A+B, s'afegiran ambdues versions, i la vostra versió vindrà primer. B+A obté el mateix resultat, però l'ordre serà diferent: primer la versió del repositori, després la vostra.

Si no esteu content amb cap d'aquestes versions, premeu Edita per a obrir un editor de text simple on podreu editar la secció. En acabar l'edició, premeu D'acord per a tornar al diàleg Resolució CVS i acabar de resoldre els conflictes. Podeu veure la secció que acabeu d'editar a la Versió fusionada, amb les vostres modificacions.

Per a desar les modificacions, sobreescrivint la versió de la còpia de treball, premeu Desa. Tingueu present que això desarà les eleccions no només de la selecció que esteu veient actualment, sinó de totes les versions en el fitxer. Si voleu desar-los en un altre fitxer, premeu Desa com a.... Premeu Tanca per a tancar el diàleg. Si tanqueu el diàleg sense desar, es perdran els canvis que heu fet.