Reorganização de um repositório Subversion com filiais
-
03-07-2019 - |
Pergunta
Estou tentando reorganizar a 1,6 repositório do Subversion que tem filiais. Parece que se você mover um arquivo no porta-malas e que arquivo tem alterações em um ramo, quando essas alterações são integradas ao ramo, eles não estão mais lá.
Vou tentar ilustrar abaixo:
1. Repo before move
trunk/a.txt
trunk/b.txt
branches/feature/a.txt
branches/feature/b.txt
2. File branches/feature/b.txt is changed.
3. Repo reorganized
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/b.txt
4. Changes from trunk merged to feature
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/new-location/b.txt
A pasta ramos / recurso é uma cópia de tronco .
Após a conclusão da etapa 4, todas as alterações b.txt ficheiro de ramo de recurso não estão mais lá.
Eu pensei que este foi fixado no SVN 1.5?
Se isto não é uma opção, eu ainda preciso reorganizar alguma forma toda a minha repostory. Fazendo o movimento quando os ramos todos foram mescladas para o tronco não é uma opção. Eu sempre ter pelo menos 1 ramo mais tronco a qualquer momento um.
Solução
Mesclando arquivos movidos é um conhecido problema . No entanto, a subversão não avisá-lo com esta mensagem se não encontrar o alvo fusão:
Ignorados alvo faltando: 'baz.c'
Se você ver esta mensagem, você pode precisar de tomar medidas manual. Se o arquivo foi movido eo novo local deve receber as mudanças, então você pode considerar fazer uma mesclagem subárvore entre as entidades renomeados.
Eu não estou ciente de qualquer sistema de controle de versão que faz tais fusões automaticamente Editar :. Parece em mercurial , como fusões não siga cópias
Outras dicas
fornecer detalhes sobre os passos 3 e 4. fusões Subversion não são os mesmos como cópias.
Você precisa ter certeza de que você use o método SVN renomeação para a etapa 3 para garantir que os restos localização de arquivos associados a alterações futuras.
(estou puxando este fora de ... bem, eu não tenho certeza sobre o seguinte) Existe um problema com ascendência ao mover / renomear arquivos. Certifique-se de que quando você mesclar a ignorar ascendência opção não for selecionada.