Problema na SVN Mesclagem de galhos no tronco
Pergunta
Eu tenho um tronco (A) e dois galhos (B e C). Quando eu me fundi com C, tudo bem, depois que eu me fundi com B, o C anterior seu substituto e meu porta -malas não têm as mudanças C.
O que eu quero é A + B + C no porta -malas após a fusão.
Editado para mais explicações:
- No tronco, tenho 3 arquivos: "Arquivo 1", "Arquivo 2" e "Arquivo 3";
- Eu crio um ramo do tronco como "ramo 1";
- Eu mudo para "Branch 1", corrigi bugs no arquivo "Arquivo 1" e comprometei;
- Ao mesmo tempo, outra pessoa cria um ramo do tronco como "ramo 2";
- Essa pessoa conserta outros bugs nos arquivos "Arquivo 2" e "Arquivo 3" e comprometa;
- O "ramo 2" é aprovado para publicar, depois eu mescho "ramo 2" para "tronco" (está bem);
- No dia seguinte, o "ramo 1" é aprovado, depois eu fundi "ramo 1" para "tronco" e o "tronco" perde as alterações do "ramo 2".
Solução
- Fazer uma cópia de trabalho de
trunk
svn merge -r W:X svn://branchA workingCopy
svn merge -r Y:Z svn://branchB workingCopy
Eu acho que isso lhe dará o que você deseja, que é o porta -malas, além de quaisquer alterações feitas por qualquer ramo. Você terá que lidar com conflitos, no entanto.
Outras dicas
Sua terminologia não está clara. Quando você diz que "mescla a com b", isso significa que você se fundir a B ou B em A? Você pode explicar exatamente o que fez para criar os ramos e como tentou fazer a fusão? Além disso, por mesclar, é importante qual versão SVN você está usando.
Eu sugiro que você leia cuidadosamente o Capítulo sobre ramificação e fusão No livro SVN.
Basicamente, quando você tem um ramo de recursos (que é o que você parece ter), você mescla repetidamente o ramo nela. O SVN registra que as revisões que você mesclou e não as mesciam novamente. Quando você terminar seu ramo, você a reintegra no porta -malas e o descarta.
Tudo isso é feito em seu disco, uma ramificação de cada vez, resolvendo possíveis conflitos após cada ramificação e verificando em cada etapa. (Se, por algum motivo, você precisar aplicar as alterações no porta -malas em um check -in, poderá mesclar seus galhos em um ramo fresco do porta -malas e depois mesclar esse ramo no porta -malas quando terminar.)
Você deseja aplicar as mescladas ao seu espaço de trabalho, não ao repositório. Como alternativa, você pode usar o CVS que lida com ramificações de uma maneira muito superior do que o SVN.