Ao mesclar ramificações sob controle de origem, geralmente há o problema de um conflito de mesclagem com outros desenvolvedores.
Eu sei que podemos usar o vimdiff para diferenciar as alterações de código no controle de origem , mas existe também uma maneira de usar o vimdiff para ajudar a resolver conflitos de mesclagem de conflitos.
Pessoalmente, estou mais interessado no git, mas seria útil entender se existem plugins / técnicas para outras ferramentas / sistemas de controle de origem.
vimdiff
version-control-systems
merge
Martin York
fonte
fonte
feature rich UI
é enganoso; O vimdiff pode não ter uma interface agradável, é definitivamente rico em recursos. Também acho o vim um ambiente muito mais produtivo que todos os editores de GUI que usei (mas eu o uso há muito tempo e foi uma curva de aprendizado acentuada). Estou mais curioso se Meld fizer algo que o vim não faça que valha a pena, mesmo olhando.Respostas:
Eu normalmente uso git na linha de comando.
Mas quando há um conflito de mesclagem, eu uso o Vim para resolvê-los (pessoalmente, eu faço isso com o plugin fugitivo). Nota: fugitivo é bom para muita manipulação de git no Vim. Meu recurso favorito é o diferencial de três vias de um conflito de mesclagem.
O git suporta isso no vimdiff via git mergetool. Instalei o fugitivo, mas você pode configurá-lo manualmente (Obrigado @ Jay Thompson).
Configuração manual:
A saída é um pouco diferente da descrita abaixo (eu não a usei pessoalmente). Mas o princípio é o mesmo, mas você tem uma quarta janela na parte inferior contendo o resultado.
Configurar com Fugitive
vim-fugitive é um plugin para integração / empacotamento do git para o Vim; pode fazer muitas coisas, e resolver conflitos é uma delas.
Agora você pode puxar e obter texto das outras duas visualizações para a visão central (que conterá todas as correções manuais). Depois de resolver todos os conflitos manualmente, basta sair do vimdiff
Embora você possa usar
:diffget <view number>
e:diffput <view number>
puxar e empurrar as coisas entre as visualizações. Pessoalmente, não acho isso muito útil. Todo o código já está na exibição do meio. Então, eu apenas gosto de editar essa exibição manualmente até que o conflito seja resolvido. Ser capaz de ver as duas versões do código em ambos os lados da janela do meu editor é extremamente útil.Também uma demonstração muito boa de seu uso aqui
fonte
git config --global merge.tool vimdiff
e executargit mergetool
para iniciar o vim no modo diff.diff3 -E
. Portanto, as imagens acima são geradas a partir de arquivos que possuem esses marcadores.