Atualizei recentemente do Ubuntu 12.04 para 12.10 e, a certa altura, ele encontrou um conflito no arquivo de configuração do Apache apache2.conf
. Como não havia uma opção de mesclagem nesse ponto, apenas rejeitei o novo arquivo e o instalador salvou o novo arquivo como apache2.conf.dpkg-dist
.
Posso diferenciar os dois arquivos diff apache2.conf apache2.conf.dpkg-dist
e obter apenas as linhas que são diferentes. Mas quero mesclar manualmente os dois, como resolver conflitos de mesclagem no SVN ou no git. Como eu posso fazer isso?
Respostas:
Use
vimdiff
se quiservim
. Caso contrário,diffuse
funciona muito bem também.fonte
O controle de versão tem mais informações disponíveis quando ele resolve conflitos: ele possui não apenas sua versão e a versão do outro cara, mas também o ancestral comum e, portanto, pode fazer uma fusão de três vias . Aqui, o ancestral comum é a versão original do arquivo de configuração na distribuição ou a versão oficial que você mesclou pela última vez com suas alterações.
Infelizmente, nem o Ubuntu, nem qualquer outra distribuição importante que conheço, torna completamente fácil a fusão de três vias quando um arquivo de configuração é atualizado. Você pode chegar perto, no entanto, com o etckeeper . Etckeeper é um complemento para o APT, a ferramenta de gerenciamento de pacotes usada pelo Debian e derivados, que gerencia
/etc
em um sistema de controle de versão (Bazaar, Darcs, Git, Mercurial); foi portado para outros sistemas, incluindo o Yum no Fedora. Eu recomendo usar o etckeeper; também é uma ótima maneira de acompanhar as alterações feitas/etc
.Alguns programas gerenciam seus arquivos de configuração com o ucf , mas isso não é algo que você controla como usuário.
De modo mais geral, quando você tem o ancestral e duas versões, você pode fazer uma fusão de três vias com o
merge
utilitário fornecido com RCS ou comdiff3 -m
de diffutils .Existem também muitos programas interativos de diferenças e mesclagem. O Emacs e o Vim têm interfaces para isso, assim como a maioria dos visualizadores .
fonte
Meu favorito pessoal é
kdiff3
- eu não sei, se existe uma versão do Ubuntu para ele. De acordo com a página inicial , apenas usa qt .Com essa ferramenta, você pode mesclar dois (ou três) arquivos em um novo. Escolhendo um lado para cada diferença ou resolvendo manualmente o conflito.
fonte
kdiff3
ekdiff3-qt