Résoudre les conflits d'engagement
- le 23 avril 2015
- lecture minute
Dans presque tous les scénarios, plusieurs développeurs travaillent ensemble pour réaliser un projet. Et même s'il est utile d'avoir plusieurs personnes impliquées, cela augmente le risque de créer des versions conflictuelles de votre projet. Mais c'est quelque chose que les développeurs savent depuis des décennies.
Lors d'un de mes projets récents, l'équipe a été obligée de se concentrer sur une seule page pendant une journée entière. Cela a donné lieu à de nombreux conflits qui n'ont fait que ralentir davantage le travail et créer des frustrations au sein du groupe.
Nous avons finalement commencé à travailler sur une seule version du projet pour les éviter ! Parfois, ces problèmes ne peuvent pas être évités (comme une révision d'une seule page par toute l'équipe) et vous êtes obligé de les gérer.
Mendix's Low-code La plateforme facilite le suivi des versions et évite les conflits. Mendix Team Server utilise Subversion (SVN) pour gérer le contrôle de version des projets. Team Server stocke le code source du projet et permet à l'équipe de suivre les modifications.
Lorsque des modifications sont apportées, le serveur d'équipe peut mettre à jour et contrôler de manière intelligente la version la plus récente de l'ensemble du projet. Lorsque deux membres de l'équipe modifient la même page, le même Microflow ou le même modèle de domaine, cela peut entraîner un conflit.
Dans cet article, je vais vous expliquer comment les conflits surviennent et comment vous pouvez les résoudre.
Comment naissent les conflits
Supposons qu'il y ait deux membres dans l'équipe, Ryan et Lisa. Étant donné que le serveur d'équipe contient le code source, il existe trois copies du projet. Au début, elles sont toutes équivalentes :
Ryan effectue une modification (A devient A') puis la réutilise sur le serveur d'équipe, mettant à jour la version du serveur d'équipe vers A'.
Lisa fait ensuite un changement différent (A devient A'').
Avant que Lisa puisse ré-envoyer son projet au serveur d'équipe, elle doit mettre à jour son projet vers la version la plus récente. Une fois la mise à jour terminée, Lisa reçoit une notification du conflit.
Maintenant que nous avons un conflit, voyons comment le résoudre.
Résoudre les conflits
Dans notre exemple, Lisa ne peut pas valider son projet tant qu'elle n'a pas résolu le conflit. Elle doit d'abord trouver le conflit, ce que vous pouvez faire via le dock Modifications (comme indiqué dans la notification).
Double-cliquez sur le message pour voir quels composants sont en conflit. Double-cliquez à nouveau pour voir des détails plus précis sur le conflit.
Ici, nous voyons deux colonnes : « Leur » et « Le mien ». « Le mien » fait référence aux modifications que vous venez d'effectuer (dans notre exemple, « Le mien » ferait référence aux modifications de Lisa). « Le leur » ferait référence aux modifications apportées par l'autre membre de l'équipe (Ryan). Notre conflit est assez trivial : l'emplacement de l'événement de démarrage dans le Microflow a changé. Nous pouvons voir que le point médian relatif était à l'origine -100 ; 200 (A), Ryan l'a changé en -220 ; 200 (A') et Lisa l'a changé en -95 ; 195 (A'').
Il existe deux façons de résoudre ce conflit. Pour ce faire, cliquez avec le bouton droit de la souris sur le conflit dans le dock Modifications pour obtenir le menu suivant :
Ici, nous voyons les deux options : « Résoudre le conflit en utilisant le mien » et « Résoudre le conflit en utilisant le leur ». Si nous sélectionnons « Résoudre le conflit en utilisant le mien », les modifications apportées par Ryan (A') seront ignorées lorsque cette version sera validée. Si nous sélectionnons « Résoudre le conflit en utilisant le leur », les modifications apportées par Lisa (A'') seront supprimées et le document de Lisa deviendra le même que celui de Ryan A'.
Ces actions ne peuvent pas être annulées, il est donc essentiel de les sélectionner avec soin. En cas de doute sur la version à utiliser, communiquez avec les membres de votre équipe. Ils pourront vous aider à décider quelle version est la meilleure à conserver.
Que faire si je ne sais pas lequel utiliser ?
Et si Lisa ne savait pas ce que Ryan essayait de faire ? Ou peut-être que Lisa a besoin de certains changements de Ryan, mais a aussi besoin de ce qu'elle a fait ? Les deux solutions proposées ne sont peut-être pas suffisantes.
Si l'élément en conflit est autre que le modèle de domaine, il peut être dupliqué. Si le document peut être dupliqué, créez une copie dupliquée et ajoutez « _Conflict » à la fin. Le conflit peut ensuite être résolu à l'aide de l'option « Résoudre le conflit en utilisant le leur ». Lisa a maintenant une copie de A' et A'' ! Les deux peuvent alors être visualisés l'un à côté de l'autre et Lisa peut décider quelles parties elle souhaite utiliser.





