Trabalhando com Merge no subversion

Conhecendo a Solução Copy-Modify-Merge

O modelo Copy-Modify-Merge (Copiar-modificar-fundir) é uma alternativa que permite a dois ou mais usuários trabalharem no mesmo projeto simultaneamente. Com o Copy-Modify-Merge cada usuário se conecta ao repositório e cria uma cópia de trabalho local. Os usuários então trabalham simultaneamente e independente modificando suas cópias de trabalho.

Exemplo

Neste exemplo vamos imaginar que temos dois programadores, Carlos e José, trabalhando no mesmo projeto, eles estão trabalhando simultaneamente cada qual em sua cópia de trabalho local, vamos supor que Carlos salvou a suas alterações primeiro no repositório, mais tarde quando José tentar salvar suas alterações o repositório vai retornar o erro out-of-date que significa que os arquivos estão desatualizados ou seja ocorreram alterações desde a última vez que esses arquivos foram copiados, então José deve pedir ao seu software cliente a ajuda-lo fundir (Merge) as alterações realizadas na sua cópia local com a cópia do repositório. Caso as alterações de José sobrescreverem as alterações de Carlos será gerado conflitos, sendo assim o software cliente deverá sinalizar de alguma forma os pontos conflitantes e José manualmente deverá escolher quais alterações devem permanecer no código fonte.

Implementando a solução com o client Tortoise

Realizando o Merge

Com o Tortoise, a fusão dos arquivos é realizada com o comando update, portanto se um dos usuários tentar salvar as alterações no repositório com o comando commit e receber o erro out-of-date ele deverá recorrer ao comando update para atualizar a sua cópia local e depois que a fusão for devidamente realizada ele poderá salvar a sua cópia atualizada no repositório.

Resolvendo conflitos

Quando as alterações realizadas sobrescreverem as atualizações do repositório resultará em uma situação de conflito e o Tortoise indicará ao usuário quais os arquivos envolvido, a partir dai o usuário deverá manualmente decidir quais alterações devem permanecer no código fonte.

  • Os Itens destacado em verde indicam que foram fundidos com sucesso.
  • Os Itens em vermelho apresentaram conflito.

Os conflitos são tratados por arquivo, através da opção “Edit Conflicts”

A tela de edição de conflitos é dividida em três partes;

  1. Theirs : Os dados do arquivo no repositório.
  2. Mine : Os dados do arquivo na minha cópia de trabalho local.
  3. Merged : Fusão entre os dois arquivos.

Os pontos em vermelho são os pontos conflitantes, para definir qual o bloco de comando utilizar no arquivo final, “uma das formas” é selecionar o bloco desejado, clicar com o botão direito e escolher a opção use this Text block.

Após resolver todos os conflitos basta clicar na opção Mark as Resolved

 
tut_merge_subversion.txt · Última modificação: 2011/10/26 13:56 por bruno.luiz
 
Exceto onde for informado ao contrário, o conteúdo neste wiki está sob a seguinte licença:CC Attribution-Noncommercial-Share Alike 3.0 Unported
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki