Ajuda para o MetaEditorProjetos e MQL5 StorageFusionando versões

Mesclagem de alterações

Quando se trabalha em colaboração sobre um projeto em grupo, é possível que os mesmos arquivos sejam editados em paralelo por vários usuários. Para evitar perder as alterações, enquanto se sobrescreve mutuamente, o MetEditor possui uma função de mesclagem de dados embutida (merging).

Se você tentar salvar um arquivo - no repositório - que já foi alterado por alguém, o MetaEditor solicitará que você primeiro obtenha as alterações mais recentes. Quando as alterações forem recebidas, será feita uma tentativa de mesclagem de dados, isto é, serão aplicadas as alterações do repositório numa cópia local dos dados, tentando salvar as alterações locais atuais.

  • A mesclagem funciona apenas para arquivos de texto com código fonte (mq4, mq5, mqh, cpp, h) no formato ANSI. Os arquivos bmp e wav são sempre completamente substituídos pelas versões da revisão anterior.
  • Os arquivos de código fonte são comparados linha por linha. Quando ocorrem conflitos (por exemplo, no arquivo local e no arquivo correspondente no repositório, a mesma linha é alterada), o algoritmo de mesclagem busca a preservação máxima das alterações locais.

Exemplo de mesclagem

Consideremos um dos casos típicos ao mesclar dois arquivos. Como mencionado acima, ao mesclar arquivos de código fonte, eles são comparados linha por linha. Se o arquivo no repositório contiver cadeias de caracteres que não estão presentes no arquivo local, os dados da linha serão incluídos. Consideremos o seguinte exemplo ao mesclar dois arquivos:

Exemplo de mesclagem de dois arquivos

Após executar o comando "Obter atualização do repositórioObter atualizações do repositório" o arquivo local permanecerá inalterado, porque as alterações locais têm precedência. No entanto, se o arquivo no repositório contivesse uma nova linha "x=0;", ela seria adicionada, enquanto a string "return(true);" permaneceria inalterada:

Exemplo de mesclagem de dois arquivos

  • O princípio fundamental da mesclagem de arquivos é a prioridade dos dados locais. O algoritmo tende a maximizar a preservação de mudanças locais.
  • Existem muitos tipos de conflitos de fusão/mesclagem de dados. Nesta seção, consideramos apenas uma das situações mais simples. O algoritmo de fusão é complexo e executa uma abordagem complexa, durante a análise de arquivos. Mais informações sobre a fusão podem ser encontradas no livro dedicado a Subversion.