Conflitos

Visão Geral

O cliente de desktop Nextcloud faz upload de alterações locais e download de alterações remotas. Quando um arquivo for alterado no lado local e no remoto entre as execuções de sincronização, o cliente não conseguirá resolver a situação por conta própria. Ele criará um arquivo de conflito com a versão local, fará o download da versão remota e notificará o usuário de que ocorreu um conflito que precisa de atenção.

Exemplo

Imagine que haja um arquivo chamado mydata.txt em sua pasta sincronizada. Ele não foi alterado por um tempo e contém o texto “contents” local e remotamente. Agora, quase ao mesmo tempo, você o atualiza localmente para dizer “local contents”, enquanto o arquivo no servidor é atualizado para conter “remote contents” por outra pessoa.

Ao tentar fazer upload de suas alterações locais, o cliente de desktop perceberá que a versão do servidor também foi alterada. Isso cria um conflito e agora você terá dois arquivos em seu computador local:

  • mydata.txt contendo “remote contents”

  • mydata (conflicted copy 2018-04-10 093612).txt contendo “local contents”

Nessa situação, o arquivo mydata.txt tem as alterações remotas (e continuará a ser atualizado com outras alterações remotas quando elas ocorrerem), mas seus ajustes locais não foram enviados ao servidor (a menos que o servidor permita o upload de conflitos, veja abaixo).

O cliente de desktop lhe avisa dessa situação por meio de notificações do sistema, do ícone da área de notificação e de um emblema amarelo de “conflitos não resolvidos” na janela de configurações da conta. Clicar nesse emblema mostra uma lista que inclui os conflitos não resolvidos e clicar em um deles abre uma janela do explorador que aponta para o arquivo relevante.

Para resolver esse conflito, abra os dois arquivos, compare as diferenças e copie as alterações locais do arquivo “conflicted copy” para o arquivo base, quando aplicável. Neste exemplo, você pode alterar mydata.txt para dizer “local and remote contents” e excluir o arquivo com “conflicted copy” no nome. Com isso, o conflito é resolvido.

Carregamento de conflitos (experimental)

Por padrão, o arquivo de conflito (o arquivo com “conflicted copy” no nome que contém as alterações conflitantes locais) não é carregado no servidor. A ideia é que você, o autor das alterações, é a pessoa mais indicada para resolver o conflito e mostrar o conflito a outros usuários pode gerar confusão.

No entanto, em alguns cenários, faz muito sentido carregar essas alterações conflitantes para que o trabalho local possa se tornar visível, mesmo que o conflito não seja resolvido imediatamente.

No futuro, poderá haver uma opção em todo o servidor para esse comportamento. Por enquanto, ele já pode ser testado com a configuração da variável de ambiente OWNCLOUD_UPLOAD_CONFLICT_FILES=1.