Resolvendo Conflitos

Conflitos podem ocorrer sempre que você tenha feito mudanças em um arquivo que também foi modificado por outro desenvolvedor. O conflito é detectado pelo CVS quando você atualiza o arquivo modificado. O CVS então tenta mesclar as modificações enviadas por outro desenvolvedor em sua cópia local. A mesclagem falha se tanto a sua modificação como a do outro desenvolvedor estão em partes sobrepostas do arquivo, e o servidor CVS envia uma mensagem de erro.

Na janela principal do Cervisia, arquivos com conflitos são indicados com "Conflito" na coluna de estado e com uma cor vermelha. É seu trabalho agora resolver estes conflitos antes de enviar o arquivo. O CVS recusará enviar qualquer arquivo com conflitos até eles serem editados. A partir da janela principal, você pode resolver conflitos da maneira tradicional, é claro: apenas dê um duplo-clique no arquivo em questão e edite-o com seu editor favorito.

O CVS marca as mudanças dos conflitos colocando marcas no meio dos arquivos da seguinte maneira:

<<<<<<<
Mudanças em sua cópia de trabalho
=======
Mudanças no repositório
>>>>>>> número_revisão

Você deve substituir todo este bloco com uma nova versão mesclada.É claro, você tem uma grande liberdade para resolver um conjunto de conflitos: você pode para cada conflito decidir por uma das duas versões alternativas. Você pode também decidir que ambas as versões estão quebradas e reescrever toda a rotina ou o arquivo completo.

Felizmente, o Cervisia oferece uma bela interface para manipular estes conflitos. Isto não significa que você nunca precisará editar manualmente os arquivos, mas pelo menos pode eliminar a necessidade de fazer isto para a resolução de conflitos triviais. Para usar o diálogo Resolver CVS do Cervisia selecione ArquivoResolver... ou clique direito no arquivo marcado e selecione Resolver... no menu de contexto.

Figura 3.3. Uma captura de tela da caixa de diálogo resolver do Cervisia

Uma captura de tela da caixa de diálogo resolver do Cervisia

No topo do diálogo, você vê Sua versão (A) do arquivo no lado esquerdo e a versão do repositório, Outra versão (B), no lado direito. As diferenças entre elas estão marcadas com a cor vermelha. Abaixo destas duas versões, você pode ver a Versão mesclada. A versão mesclada reflete que seção estará em sua cópia de trabalho se você pressionar o botão Salvar.

Você pode alternar entre as diferentes seções conflitantes pressionando << e >>. Na metade inferior do diálogo você pode ver qual seção está atualmente marcada. Por exemplo, 2 de 3 significa que você está atualmente na segunda seção de diferença de um total de 3.

Agora você pode decidir seção por seção qual das duas versões você deseja que esteja no arquivo mesclado. Pressionando A, você aceita a versão que você editou. Pressionando B, você aceita a versão do repositório. Pressionando A+B, ambas as versões serão adicionadas, e sua versão virá primeiro. O B+A obtém o mesmo resultado, mas a ordem será diferente: primeiro a versão do repositório, depois a sua.

Se você não estiver satisfeito com nenhuma destas versões, pressione Editar para abrir um editor de texto simples de onde você pode editar a seção. Quando você tiver terminado a edição, pressione OK para retornar ao diálogo Resolver CVS e terminar de resolver os conflitos. Você verá a seção que acabou de editar na Versão mesclada, com suas modificações.

Para salvar suas modificações, sobrescrevendo a versão da cópia de trabalho, pressione Salvar. Observe que isto salvará as escolhas não somente da seção que você está atualmente vendo, mas de todas as seções no arquivo. Se você deseja salvar em outro arquivo, pressione Salvar Como.... Pressione Fechar para sair do diálogo. Se você fechar o diálogo sem salvar, as mudanças serão perdidas.