ATENÇÃO: Obsoleto e não será migrado.

Solucionar Conflitos no Desenvolvimento

Senhores, a manutenção de UMA versão atualizada do SAPL (ou qualquer produto versionado) é fundamental para a simplificação dos trabalhos e o sucesso de todos, razão pela qual as modificações devem ser feitas de modo controlado. Com as novas implementações feitas sobre a versão 2.2, algumas Casas estão tendo problemas na atualização das suas respectivas versões - no repositório local.

O subversion administra parte dos problemas:

1) Ao executar um comando SVN UPDATE, o Subversion poderá gerar indicações de 3 situações diversas na sua área de trabalho ou repositório local: U - Install, G - merGed e C - conflict. Esses status podem ser vistos com o comando SVN ST -U, após um svn update.

2) Os status U e G não são problemas:

U - indica que todas as alterações vieram do repositório central. Ou seja, vc não fez qq alteração diretamente no repositório local;

G - indica que o repositório local já continha alterações e q as alterações vindas do repositório central não se sobrepõem a essas locais, havendo uma junção. Ou seja, as atualizações foram juntadas sem problemas!

C - indica que as alterações feitas no repositório central sobrepõem àquelas feitas no repositório local - criando uma situação de conflito, a ser resolvida manualmente. Enquanto essa situação perdurar o Subversion não irá aceitar o commit. Para solucionar o conflito será necessário examinar as sobreposições marcadas pelo SVN. O Subversion gera 3 arquivos temporários para cada conflito verificado no repositório local. São eles:

arquivo.mine - esse é o seu arquivo local com a situação anterior às alterações vindas do repositório central - contém somente as suas alterações;

arquivo.rOLDREV - esse arquivo foi o utilizado como base de revisão antes da atualização no repositório local - contém a situação anterior à sua última edição (ou seja, é anterior à situação do .mine).

arquivo.rNEWREV - arquivo recebido do repositório central após a execução do comando SVN UPDATE na sua área de trabalho ou repositório local. É a posição revisada do repositório central.

3) Resolvendo os conflitos: será necessário editar o arquivo base - objeto da atualização - e verificar o seguinte:

1 - tudo que estiver logo após a marca <<<<<.mine e antes da marca ===== corresponde as suas alterações;

2 - tudo que estiver logo após a marca ===== e antes da marca >>>>>.r2 são alterações feitas por outras pessoas - vindas do repositório central.

Caso vc decida em manter apenas as suas alterações, então vc deve copiar ou mover o arquivo.mine gerado pelo svn para o arquivo base. Ou, acertar manualmente - no arquivo base - aquilo q vc desejar. Após isso execute o comando: SVN resolved arquivo. Após a execução desse comando os 3 arquivos temporários serão removidos. Após resolver todas os conflitos, pode-se executar o comando SVN commit -m "mensagem para o log - fulano" que o Subversion irá enviar as suas atualizações para o repositório central.

No caso de vc não querer fazer nada disso, o SVN permite o comando SVN revert arquivo, que irá retornar à situação anterior às edições, ou seja, o último commit anteriormente realizado. Nesse caso, desfaz todas as alterações e não há necessidade de executar o SVN resolved, pois o svn revert remove os 3 arquivos temporários, PORÈM não resolve os conflitos!!.

Última modificação 9 meses atrás Última modificação em 19/03/2020 17:26:03
 

The contents and data of this website are published under license:
Creative Commons 4.0 Brasil - Atribuir Fonte - Compartilhar Igual.