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:

  1. No tronco, tenho 3 arquivos: "Arquivo 1", "Arquivo 2" e "Arquivo 3";
  2. Eu crio um ramo do tronco como "ramo 1";
  3. Eu mudo para "Branch 1", corrigi bugs no arquivo "Arquivo 1" e comprometei;
  4. Ao mesmo tempo, outra pessoa cria um ramo do tronco como "ramo 2";
  5. Essa pessoa conserta outros bugs nos arquivos "Arquivo 2" e "Arquivo 3" e comprometa;
  6. O "ramo 2" é aprovado para publicar, depois eu mescho "ramo 2" para "tronco" (está bem);
  7. No dia seguinte, o "ramo 1" é aprovado, depois eu fundi "ramo 1" para "tronco" e o "tronco" perde as alterações do "ramo 2".
Foi útil?

Solução

  1. Fazer uma cópia de trabalho de trunk
  2. svn merge -r W:X svn://branchA workingCopy
  3. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top