A mesclagem (“merge” em inglês) é uma alternativa mais avançada para o controle de versionamento.
Por meio da técnica da mesclagem, os arquivos nunca ficam bloqueados: é possível, a qualquer hora, que dois ou mais usuários trabalhem no mesmo arquivo ao mesmo tempo.
Essa tecnologia funciona assim:
Imagine um arquivo qualquer de nome X1.doc.
Suponha que os usuários João e Pedro comecem a editar o mesmo arquivo.
Ao salvar as edições, o sistema criará para o João uma nova versão do arquivo, por exemplo, de nome X1-João.doc, e o para as edições do Pedro, outra versão, de nome X1-Pedro.doc).
Ao salvar ambas versões, o sistema começa a comparar os arquivos, se não houver nenhum dado conflitante, o sistema automaticamente mescla os dois conteúdos gerando outra nova versão do documento, por exemplo, de nome X2.doc.
Entretanto, pode ser que exista algum conflito na mesclagem. Suponha que no documento X1.doc estava escrito “fruta=uva”, que no documento X1-João.doc, João tenha alterado para “fruta=banana”, e que no documento X2-Pedro.doc, Pedro tenha alterado para “fruta=maçã”.
Observando essa divergência, o sistema identificará o conflito e perguntará para o Pedro qual das duas opções é a correta: “maçã” ou “banana”.
Nesse momento, Pedro deve escolher a opção correta (ou mesmo voltar para a opção inicial: “fruta=uva”) após a escolha da informação correta, o sistema irá salvar o novo arquivo X2.doc com o conteúdo correto.
Feito isso, a nova versão X2.doc será colocada no repositório, no computador do João e no computador da Maria.
Ainda, nenhuma das três versões será perdida, a qualquer momento pode-se optar pelas versões: “fruta=uva”, “fruta=banana”, ou “fruta=maçã”.
Tela de resultados após uma sincronização (merge) no GIT.