GĂ©rer les conflits de synchronisation đŸ˜±

Si vous utilisez le client desktop pour synchroniser en local vos fichiers cela vous est arrivé au moins une fois !
image


Et lĂ  c’est la panique, une peur insondable du plus profond des Ăąges informatiques nous dit « ATTENTION tu vas perdre tes modifications Â»

Pourquoi cela arrive ?
TrĂšs simple, imaginez que Alice et Bob synchronisent localement le mĂȘme fichier.

  • Alice fait une modif Ă  11h43 et synchronise avec le serveur Ă  11h46
  • Bob fait une modif Ă  11h45 et synchronise avec le serveur Ă  11h47
    Et voilĂ , le serveur va percuter que le mĂȘme fichier a Ă©tĂ© modifiĂ© par deux chemins diffĂ©rents et va vous dire « heu tu veux que je fasse quoi avec tes deux fichiers ? Â»

Effectivement Alice a modifiĂ© en premier le fichier et l’a rendu au serveur juste aprĂšs MAIS entre temps Bob a lui aussi modifiĂ© le fichier Ă  11h45
 Donc il n’a pas pu rĂ©cupĂ©rer les modifications de Alice :scream: et si le serveur accepte son fichier il va Ă©craser les modifications d’Alice :woman_facepalming:

Que faire ?
1 - ne pas paniquer et cliquer sur résoudre les conflits
2 - TOUJOURS conserver les deux fichiers, ca vous Ă©vitera de faire des bĂȘtises en Ă©crasant la mauvaise version par erreur

3 - ouvrir les deux fichiers (le fichier en « conflit Â» aura une extension genre « _1 Â») et faire votre fusion manuelle avant d’écraser

le fichier « conflicted Â» est devenu le fichier _1 :slight_smile:

et si j’ai fait une erreur ??!!
On avait dit de conserver les deux fichiers !!!
N’oubliez pas que framaspace gùre les versions de vos fichiers


Il vous suffit de restaurer les anciennes versions en ayant pris soin de tĂ©lĂ©charger la version avant pour vĂ©rifier que c’est la bonne

On va Ă©viter de cumuler les erreurs.

Pour aller plus loin
Pour les plus geeks d’entre-nous les principes de synchronisation sont gĂ©nĂ©riques et sont analogues Ă  ceux de git ou de onedrive par exemple

Avec une logique de « pull/push Â» qui est obligatoire pour les systĂšmes dĂ©centralisĂ©s. Je peux vous expliquer cette architecture puisque nous l’avons implĂ©mentĂ© pour implĂ©menter le mode dĂ©connectĂ© des apps nosoft

Cela Ă©tant dit j’ai dĂ©tectĂ© que nextcloud s’emmĂȘlent un peu les pinceaux parfois, car il y a un deadlock sur la rĂ©solution de conflit
image
SĂ©quence de reproduction
1 - générer un conflit
2 - conserver les deux fichiers
3 - ouvrir le _1 et enregistrer sous en Ă©crasant le fichier original (replace)
4 - synchro OK mais

  • alerte sur le IfMatch qui sent le conflit latent !
  • le fichier _1 est toujours dans l’arborescence #WTF !!!

5 - supprimer le fichier _1 manuellement

et boom reconflit !
#deadlock
@pyg tu l’as dĂ©jĂ  eu celui lĂ  ?

à leur décharge les problÚmes de synchronisations sont TRES complexes à gérer cÎté dev client/serveur et aussi cÎté UX
 et le IfMatch me rappelle un problÚme que nous avions eu en développant le mode déconnecté

Il y a donc surement un bug Ă  remonter et surtout une demande d’évolution qui est de « systĂ©matiquement Â» conserver les deux fichiers sans demander Ă  l’utilisateur car sinon TROP gros risque de faire des bĂȘtises.
Pour info, onedrive conserve systĂ©matiquement les 2 fichiers en l’identifiant du PC comme extension du fichier ce qui est plus parlant que _1 ou _2 qui n’aide pas. Du coup on sait quel device est en conflit :wink:

@pyg, quand j’aurai plus de temps je finaliserai le petit tuto illustrĂ© que j’ai amorcĂ© ici

2 Likes

Merci @FougereLegere , c’est Ă©clairant et on attend le tuto finalisĂ© avec intĂ©rĂȘt :slight_smile:

1 Like