Home > Java > Como fazer Merge de branches no SVN

Como fazer Merge de branches no SVN

Conceitos Gerais SVN

O Subversion, ou simplesmente SVN, é uma ferramenta de controle de versão muito poderosa que permite, além do desenvolvimento colaborativo a partir de um repositório único, merge de conteúdo, armazenamento de logs e geração de estatísticas diversas.

Repositório
É o local aonde estão contidos todos os arquivos do projeto.

Trunk
O Trunk sempre representa a última versão de desenvolvimento disponível. Nele deve ocorrer a integração do projeto a partir de builds automatizados (Hudson) e é aqui que a versão mais recente deve estar presente.

Branch/Tag
Refere-se à geração de branches ou tags a partir de um Trunk ou geração de um branch a partir de uma tag ou outro branch. Isso é uma ramificação da árvore do SVN, ou seja ela anda em paralelo ao desenvolvimento do Trunk, sendo assim as mudanças feitas num determinado branch não são refletidas no Trunk e vice-versa. Isso permite que versões paralelas sejam desenvolvidas no mesmo repositório.

Merge
Refere-se à mesclar revisões entre os Branchs e Trunk. Permitindo assim que as mudanças sejam levadas do Branch para o Trunk, para fazer uma reintegração por exemplo.

Switch

Alteração de repositório utilizado por uma Working Copy. Assim é possível fazer uma Working Copy apontar para outro Branch.

Como fazer o Merge usando o Eclipse 3.6

Esse método é mais prático quando tem muitas alterações e existem grande possibilidade de haver conflito, já que é mais fácil resolver conflitos usando o eclipse. Iremos revisar passo a passo como fazer o merge de um commit feito no Branch para o Trunk.
O primeiro passo é fazer o Commit no Branch, é muito importante nesse ponto escrever em algum lugar (txt ou papel) os projetos que você fez commit e quais revisões. Essas informações serão necessárias posteriormente para fazer o merge.

A maneira mais fácil é manter 2 workspaces um apontando para o Trunk e outro para o Branch. Se estiver está trabalhando remoto, para evitar o tempo de baixar

Veremos abaixo um exemplo de um como fazer o Merge de uma mudança do Branch para o Trunk.

  1. As alterações devem ser feita no _Workspace_ que está apontando para o Branch, vejam o endereço que aparece no Project Explorer.
  2. Para fazer o teste criei um arquivo chamado ArquivoTeste.txt no projeto lib, fazer o Syncronize normalmente.
  3. O commit é feito normalmente, lembrando mais uma vez que estamos fazendo o commit no Branch. Lembre-se de anotar a revisão que foi feito o commit, essa informação ser útil nos próximos passos.
  4. Agora vamos para o _Workspace_ que esta apontando para o *Trunk*, como esperado, mesmo fazendo um Syncronize o arquivo novo não aparece no Trunk?:
  5. No projeto que deseja fazer o merge, clique direito –> Team –> Merge
  6. Na tela de Merge selecionar o primeira opção e se quiser desmarcar os checks de merge, isso depende da opção de cada um.
  7. Agora temos de informar qual o Branch de onde queremos trazer as alterações, tomar cuidado para fazer o merge apenas da sua revisão.
  8. Marque apenas as suas revisões, pode ser mais de uma se necessário.
  9. A próxima tela perguntas as opções para resolver os conflitos. O default é ir perguntando o que você quer fazer, pode usar essa opção mesmo. Então basta selecionar o Finish
  10. Será exibido uma tela de resultado do Merge, mostrando quantos arquivos foram adicionados ou alterados.
  11. Quando esse Merge é feito as alterações do Branch são aplicadas na sua Working Copy, agora basta fazer um Syncronize e realizar o Commit no Trunk como feito normalmente.
Advertisement
Categories: Java Tags: , ,
  1. No comments yet.
  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.