Mesclar ramo com tronco

119

Usando o TortoiseSVN, preciso fazer as alterações que fiz em uma ramificação e depois mesclá-las com o tronco.

Eu sou o único desenvolvedor deste projeto, então sei que o tronco não mudou. Estou aprendendo SVN para que eventualmente minha equipe possa usá-lo.

Basicamente, quero que meu tronco pareça exatamente com o galho.

No mundo pré-svn, eu apenas copiava os arquivos na minha pasta de ramificação, excluía os arquivos na pasta de tronco e, em seguida, copiava a ramificação no tronco.

Em TortoiseSVN, eu tentei Reintegrate a branch, Merge a range of revisionse Merge two different trees. Nada parece realmente mudar de tronco. Eu também tentei ramificar em cima do tronco. Isso me dá um erro, dizendo que o tronco já existe.

Brian Bolton
fonte

Respostas:

157

No seu caso:

  1. Alterne a cópia de trabalho para o tronco (SVN Switch)
  2. Mesclar a ramificação na cópia de trabalho (SVN Merge)
  3. Verifique se tudo ainda compila e funciona
  4. Confirme a cópia de trabalho (o tronco)
  5. Considere matar o galho

Em um ambiente de equipe , sugiro que você mescle as modificações mais recentes do tronco em sua filial, verifique se tudo compila e funciona e execute as etapas acima (o que será trivial, pois você já testou as alterações).


Atualizar

Na etapa 5, eu menciono matar o ramo. Isso ocorre porque uma ramificação de um recurso está no tronco, deve ser considerada como parte do tronco. Nesse caso, o ramo deve ser morto para que ninguém continue trabalhando nele. Se forem necessárias grandes modificações para esse recurso, você deverá criar uma nova ramificação para esse recurso.

Os únicos ramos que eu não mato são os ramos de manutenção e lançamento, a menos que um determinado lançamento não seja mais suportado.

Não importa o que aconteça, você sempre tem acesso a todas as revisões, portanto, matar um ramo é usado apenas para impedir que outros desenvolvedores desenvolvam um ramo morto.

mbillard
fonte
O comentário que você adicionou na etapa 5 provavelmente poderia ser a etapa 1? Quando você deseja usar "Reintegrar uma ramificação" na caixa de diálogo TortoiseSVN Merge, mesclar todas as alterações do tronco (ou ramificação base) é um requisito.
jbvo
1
A primeira etapa (alternar a cópia de trabalho para o tronco) é necessária apenas se não houver uma cópia de trabalho de ramificação e tronco separada?
Jeff B
1
Eu acho que um detalhe importante que está faltando aqui é a pasta em que você clica para cada etapa, para que você conheça o contexto de cada etapa.
MacGyver
10

Eu acho que no TortoiseSVN 1.8.5, Mesclar | Mesclar duas árvores diferentes deve funcionar. Quando você mescla uma ramificação / tag de volta ao tronco, o truque é que a URL De é o tronco e Para é a tag / ramificação. Estranho, mas é verdade.

Fonte: Mesclagem

Para diretórios que não estão na sua cópia de trabalho, mas estão na marca / filial, você pode receber erros de conflito. Apenas aceite o conflito e refaça a mesclagem.

Kevin Johnsrude
fonte
Depois de seguir as instruções no site tortoisesvn, certifique-se de, após a mesclagem, confirmar o tronco sem modificar nada. Tentei desmarcar algumas coisas que não queria confirmar, o que estava causando algum aviso de confirmação não recursivo. Além disso, considere excluir a ramificação, conforme as instruções.
Goku_da_master
6

Primeiro mude sua cópia de trabalho para o tronco. Em seguida, faça uma série de revisões de mesclagem, do ramo ao tronco. Depois que essa caixa de diálogo estiver concluída, as diferenças estarão sujeitas a alterações na sua cópia de trabalho do tronco. Você precisará confirmá-los como se tivesse feito manualmente as alterações em sua cópia de trabalho.

No meu uso, é mais típico manter o tronco em funcionamento e girar os ramos nos momentos de compilação. Portanto, a única mesclagem que eu preciso fazer é corrigir um erro do tronco e colocá-lo no ramo de compilação mais recente e relançá-lo. A maneira mais fácil para eu fazer isso, pois, como você descobriu, a fusão é desajeitada, na melhor das hipóteses. É manter a última ramificação e o tronco em check-out na minha máquina, e literalmente copiar os arquivos de tronco em ramificação e fazer check-in.

DevelopingChris
fonte
2
Muito cuidado deve ser tomado ao "copiar" os arquivos. Use algo como a exportação do TortoiseSVN para evitar danificar os diretórios svn ocultos.
Milimétrico
3

Estou usando o TortoiseSVN 1.9.3, Build 27038.

Siga as etapas abaixo para mesclar a ramificação no tronco.

1) Clique com o botão direito do mouse na cópia de trabalho do tronco e selecione a opção abaixo.

insira a descrição da imagem aqui

2) No caso de Filial mesclando no tronco, selecione a opção segundo como mostrado abaixo e clique em Avançar

insira a descrição da imagem aqui

3) No campo De :, digite o URL completo da pasta do tronco. Isso pode parecer errado, mas lembre-se de que o tronco é o ponto inicial ao qual você deseja adicionar as alterações da ramificação. No campo Para :, digite o URL da pasta completa da ramificação do recurso.

insira a descrição da imagem aqui

4) Clique em Avançar e faça a mesclagem de teste

insira a descrição da imagem aqui

5) Se a mesclagem de teste for bem-sucedida, clique no botão Mesclar.

6) Depois que a mesclagem for bem-sucedida, confirme as alterações no tronco.

Waqas Ahmed
fonte