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 com diff3 -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 .