Ramificação e fusão em VSTS
-
09-06-2019 - |
Pergunta
Quão eficaz é a mesclagem quando pastas e projetos são renomeados na sua solução?
Solução
Tivemos muito sucesso com o TFS 2005 quando se trata de exclusão/renomeação de arquivos, com algumas exceções muito específicas, a saber:
- Arquivos que foram renomeados nas ramificações de origem e de destino (isso geralmente é resolvido de maneira trivial com um clique em "Ignorar alterações do servidor");
- Arquivos que foram renomeados na ramificação de destino, mas excluídos na ramificação de origem.Lembro-me de um caso em que a mesclagem não funcionou, independentemente do que tentássemos, e fomos forçados a "reverter" a alteração na ramificação de origem e refazê-la após a mesclagem.
Supostamente, o TFS 2008 resolve muitos desses problemas, mas, honestamente, além de problemas ocasionais de mesclagem, o TFS é estável e as mesclagens hierárquicas são muito mais simples e rápidas do que com o SVN.
Outras dicas
Na minha experiência, o TFS pode rastrear renomeações, desde que você faça todas as renomeações dentro do SourceControlExplorer (TFS).
Os problemas tendem a ocorrer quando outras pessoas fazem alterações nos arquivos originais enquanto outra pessoa está fazendo renomeações/movimentos massivos, enquanto outra pessoa está editando a versão renomeada.
Sempre que possível, eu diria que, se você estiver renomeando e movendo em grande escala, vale a pena informar os colegas de equipe e, se possível, fazer com que eles adiem as alterações até que você faça o check-in.
Tal como acontece com todos os problemas de ramificação/mesclagem, o problema é bastante reduzido fazendo check-in e mesclando pouco e com frequência.
Tivemos muitos problemas com o TFS 2005 e exclusões em geral.Ainda não determinei a causa, mas vários membros da minha equipe tiveram problemas ao mesclar alterações que envolviam uma pasta renomeada ou excluída.Isso parece particularmente verdadeiro se houve muita refatoração (e renomeação e renomeação) no ramo onde ocorreram as renomeações.Não descobri o motivo ou as etapas de reprodução, pois não estive pessoalmente envolvido em nenhuma das situações em que não funcionou.
Já vi alguns outros problemas gerais de exclusão como este:1 no Ramal A, reduza as permissões no subdiretório 1 para somente leitura 2.Criar ramificação B (ramificada de A para B) (check-in) 3.Excluir ramificação B (check-in) 4.Crie uma nova ramificação a partir de A, dê a ela o mesmo nome que a ramificação B 5.Obtenha um erro estranho de permissão relacionado ao TFS ainda "vendo" as permissões somente leitura no branch B excluído.
A única maneira que encontramos de evitá-lo é inserir a etapa 2a:renomear Filial B para _Branch B (check-in)
No geral, o TFS tem sido ótimo para nós, mas há algo estranho acontecendo com exclusões, renomeações e mesclagens.Esperamos atualizar para 2008 em breve e espero que isso resolva os nossos problemas.
Tive experiência com movimentações em massa de arquivos e pastas com o TFS 2008.Isso foi feito para tornar nossa estrutura de código-fonte mais consistente.Tudo o que tive que fazer foi arrastar e soltar (e esperar) no Team Explorer e depois confirmar as alterações.