Aide MetaEditorProjets et MQL5 StorageFusionner des changements

Fusionner des changements

Lors du travail sur un projet partagé en équipe, il peut arriver que les mêmes fichiers soient édités par plusieurs utilisateurs simultanément. Pour empêcher ces changements d'être écrasés, MetaEditor comporte une fonction permettant de fusionner les données.

Si vous essayez de sauvegarder un fichier qui a déjà été changé par quelqu'un dans le dépôt, MetaEditor vous demande de récupérer tout d'abord les derniers changements. Lorsque les changements sont récupérés, une tentative est faite pour fusionner les données : les changements du dépôt sont appliqués à la copie locale et une tentative est faite pour sauvegarder les changements locaux courants.

  • La fusion n'est appliquée qu'aux fichiers texte contenant du code source (mq4, mq5, mqh, cpp et h) au format ANSI. Les fichiers bmp et wav sont toujours complétement remplacés par les nouvelles versions.
  • Les fichiers de code source sont comparés ligne par ligne. Lors d'un conflit (par exemple, la même ligne est changée dans le fichier local et dans le fichier correspondant dans le dépôt), l'algorithme de fusion a pour but de maximiser la preservation des changements locaux.

Exemple de fusion

Considérons un cas typique de fusion de 2 fichiers. Comme mentionné ci-dessus, pendant la fusion, les fichiers de code source sont comparés ligne par ligne. Si un fichier du dépôt contient des lignes qui ne sont pas présentes dans le fichier local, ces lignes sont ajoutées. Considérons l'exemple suivant de fusion de 2 fichiers :

Exemple de fusion de 2 fichiers

Après avoir cliqué sur Rafraîchir du Dépôt Rafraîchir du Storage, les fichiers locaux restent inchangés puisque les changements locaux ont une plus grande priorité. Si le fichier du dépôt avait contenu la nouvelle ligne "x=0;", elle aurait été ajoutée, tandis que la ligne "return(true);" serait restée inchangée :

Exemple de fusion de 2 fichiers

  • Le principe principale de fusion est que la plus grande priorité est donnée aux données locales. L'algorithme cherche à maximiser la préservation des changements locaux.
  • Il y a plusieurs types de conflits pendant la fusion. Dans cette section, seule l'une des situations les plus courantes était considérée. L'algorithme de fusion est complexe et fournit une approche compréhensive dans l'analyse des fichiers. Plus d'informations sur la fusion peuvent être trouvées dans un livre sur Subversion.