Resolver Conflitos

Os conflitos poderão ocorrer sempre que você fizer alterações a um ficheiro que foi também modificado por outro utilizador. O conflito é detectado pelo CVS logo que você actualizar o ficheiro modificado. O CVS irá então tentar reunir as modificações enviadas pelo outro programador para a sua cópia de trabalho. A reunião irá falhar se tanto a sua modificação como a dele foram em partes comuns do ficheiro, onde então o servidor do CVS irá enviar uma mensagem de erro.

Na janela principal do Cervisia, os ficheiros com conflitos são indicados com "Conflito" na coluna do estado e com uma cor vermelha. A sua tarefa é agora resolver esses conflitos antes de enviar os ficheiros. O CVS recusar-se-á a enviar quaisquer ficheiros com conflitos, até que estes tenham sido alterados. Na janela principal, você poderá resolver obviamente os conflitos da forma tradicional: basta fazer duplo-click no ficheiro em questão e editá-lo com o seu editor favorito.

O CVS marca as alterações em conflito, colocando marcas no meio dos ficheiros com o seguinte formato:

<<<<<<<
Alterações na sua cópia local
=======
Alterações no repositório
>>>>>>> número_de_versão

Você deverá substituir este bloco por inteiro com a nova versão reunida. Claro, você tem uma grande liberdade ao resolver um conjunto de conflitos: poderá decidir, por cada conflito, qual das versões alternativas é que ficará no fim. O utilizador poderá também decidir que ambas as versões estão erradas e então decide escrever uma rotina inteira ou o ficheiro por completo.

Felizmente, o Cervisia oferece uma interface mais simpática para lidar com estes conflitos. Isto não significa que nunca terá de editar manualmente os ficheiros, mas pelo menos pode eliminar a necessidade de o fazer para as resoluções de conflitos simples. Para usar a janela de Resolução do CVS do Cervisia, escolha FicheiroResolver... ou carregue com o botão direito do rato no ficheiro marcado e seleccione Resolver... no menu de contexto.

Figura 3.3. Uma imagem da janela de resolução do Cervisia

Uma imagem da janela de resolução do Cervisia

No cimo da janela, você vê A sua versão (A) do ficheiro do lado esquerdo e a Outra versão (B) do lado direito. As diferenças entre eles estão marcadas a vermelho. Por baixo destas duas versões, você poderá ver a Versão reunida. Esta reflecte a secção que será gravada assim que você carregar no botão Gravar.

Você poderá mudar entre as diferentes secções se carregar em << ou em >>. Na parte ao meio e em baixo da janela, você poderá ver a secção que está marcada de momento. Por exemplo, a 2 de 8 significa que você está na segunda secção diferente de um total de 8.

Você poderá então decidir, secção a secção, qual a versão que deseja ter no ficheiro reunido. Se carregar em A, você irá colocar a versão que editou. Se carregar em B, você irá colocar a versão do repositório. Se carregar em A+B, ambas as versões serão adicionadas, em que a sua versão virá primeiro. A B+A irá conter o mesmo resultado, mas a ordem será diferente: primeiro a versão do repositório e depois a sua.

Se não estiver satisfeito com nenhuma destas versões, carregue em Editar para abrir um editor de texto simples, onde você poderá editar a secção. Quando tiver terminado, carregue em OK para voltar à janela de Resolução do CVS para continuar a resolver os conflitos. Irá ver a secção que editou na Versão reunida, com as suas modificações.

Para gravar as suas modificações, sobrepondo a cópia de trabalho local, carregue em Gravar. Lembre-se que isto irá gravar as opções, não só na secção que está a ver de momento, mas em todas as secções do ficheiro. Se quiser gravar noutro ficheiro, carregue em Gravar Como.... Carregue em Fechar para sair da janela. Se fechar a janela sem gravar, as alterações que tiver feito serão perdidas.