|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() ![]() Sandro MundaSoftware engineer Inscription : août 2006 Messages : 73 ![]() |
Baboon: Comment éviter l'enfer de la résolution des conflits dans un projet ?
Développer à plusieurs sur un projet est une pratique très courante. Le travail doit alors être délégué de manière réfléchie afin d'éviter que plusieurs programmeurs se marchent sur les pieds. Cela demande une grande rigueur de la part de chacun des membres du projet. Si l'un des développeurs dérape, c'est toute l'équipe qui en souffre. Le problème est souvent détecté longtemps après, au moment où le travail de chacun doit être rassemblé («merge»). Cela peut vite tourner au cauchemar de résolution des conflits («merge hell»). Imaginez-vous maintenant l'enfer que cela peut amener dans des projets avec un grand nombre de contributeurs (Linux, Bootstrap, NodeJs, ...). ![]() C'est ici qu'intervient Baboon, un petit outil codé en Python permettant de détecter en temps réel les conflits dans un projet. A chaque sauvegarde d'un fichier, Baboon vérifie chez tous les contributeurs s'il y a un problème. Si c'est le cas, toute l'équipe est avertie et le coupable peut-être puni (gentiment, par pitié). Le conflit ne concerne alors qu'une toute petite partie d'un fichier et peut être résolu très facilement. Dites simplement adieu aux maux de tête pendant la fusion du travail de chacun ! Plus d'informations sont disponibles sur le site web de Baboon. Le code source est accessible sous license libre (MIT) sur Github. Et vous ? |
|
60
|
|
|
#2 |
|
Membre Expert
![]() Étudiant Inscription : janvier 2007 Messages : 1 209 ![]() |
Étant encore étudiant je n'ai pas eu l'occasion de travailler sur les projets important en équipe…
Mais le cœur du problème n'est-il pas plutôt le fait de travailler isolé des autres membres ? À mon sens le travail devrait toujours être réalisé en collaboration et avec une bonne communication au sein du groupe de travail. |
|
|
02
|
|
|
#3 |
|
Membre actif
![]() ![]() Sandro MundaSoftware engineer Inscription : août 2006 Messages : 73 ![]() |
Bien entendu, tu as tout à fait raison. Je remarque que sur le terrain, il n'est pas toujours évident d'être constamment dans un environnement où la communication et la collaboration soient parfaites. Un conflit est vraiment vite arrivé sans s'en rendre forcément compte rapidement... sa résolution peut être vraiment pénible et faire perdre énormément de temps. D'autant plus que celui qui devra résoudre le conflit n'est pas forcément celui qui l'a provoqué. Je te laisse imaginer la frustration, surtout quand les collaborateurs ne se connaissent qu'à travers la toile.
ps: Je t'avoue qu'il m'est déjà arrivé de provoquer un conflit avec moi même, sur une autre branche :-) |
|
30
|
|
|
#4 |
|
Invité régulier
![]() Inscription : juillet 2009 Messages : 15 ![]() |
Mettre en commun des travaux provenant de plusieurs contributeurs est synonyme d'intégrer.
Et comme Baboon le fait en temps réel, il le fait donc en continue. On est donc dans une solution d'intégration continue. Il y a je pense des outils + adaptés pour cela (Jenkins par exemple) |
|
|
00
|
|
|
#5 |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Bonjour,
La plupart des solutions d'integration continue ne s'appliquent que sur du code deja commite, donc apres la resulution de conflit. Contrairement a ce qu'a l'air de faire Baboon, qui verifie "a chaque sauvegarde" [locale] si les lignes sont en conflit avec le code de quelqu'un d'autre. Bon, comme je le pensais, ca ne fonctionne que sur les projets GIT, donc il ne s'agit pas de chaque sauvegarde dans l'editeur, mais dans chaque commit local. C'est donc bien pour les projets sous GIT, mais celui-ci etant tres tres peu utilise en entreprise, l'interet est malheureusement minime. Il faudrait une version pour SVN ou CVS, et la, ca serait vraiment top. |
|
|
10
|
|
|
#6 |
|
Membre Expert
![]() thomas Ingénieur développement logiciels Inscription : mai 2005 Messages : 807 ![]() |
+10 000, très très bonne idée. J'ai récemment travaillé sur un projet où l'équipe, environ 30 personnes, était éclatée "aux 4 coins du monde" (USA, Japon, France, Brésil et Suède). Du coup, nous avez eu des "merge hell" très importants, avec le facteur aggravant du décalage horaire. Le plus "imposant" nous a nécessité 10 jours de travail non stop, 24h sur 24 (vive les décalages horaires lol).
Donc, dès que cette version est disponible, je demande à mon entreprise de se la procurer, vu qu'actuellement je suis dans une équipe morcelée entre la France, la Suisse et le Royaume-uni.
__________________
il n'y a jamais eu qu'un seul chrétien et il est mort sur la croix Friedrich Nietzsche L'homme est un apprenti, la douleur est son maitre Alfred de Musset pour les problèmes de partition, les derniers recours sont testdisk et le formatage bas-niveau pour faire le menage efficacement sur vos DD, utilisez Ccleaner |
|
|
00
|
|
|
#7 | |
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Citation:
En tres tres gros (pas taper), dans GIT, tu fais des commit dans un repository local tres regulierement. Ces commit n'impliquent personne d'autre que toi. Et c'est seulement lorsque tu repercutes ces commits sur le serveur central que les vrais merge sont faits. Donc il est relativement aise de concevoir un programme qui, a chaque commit local, va regarder dans tous les repertoires locaux si un probleme de merge existe. Dans CVS ou SVN, cette notion de commit local n'existe pas. Tant que tu fais des modifs sur ta machine, personne ne les voit. Donc l'outil en question devrait s'intercaler entre la sauvegarde dans l'editeur (granularite trop fine) et le commit (granularite trop grosse qui provoque des merge hell). En gros, on prend un des concepts de GIT, et on l'implemente dans CVS/SVN... Autre solution : un hook dans tous les editeurs utilises qui verifie a chaque sauvegarde. Attention, le reseau va en prendre un coup. S'il n'y a qu'un seul editeur, genre un gros IDE, alors c'est surement plus simple, et plus realisable. |
|
|
|
20
|
|
|
#8 | |
|
Membre actif
![]() ![]() Sandro MundaSoftware engineer Inscription : août 2006 Messages : 73 ![]() |
Citation:
Baboon est complètement indépendant du concept de "commit". La vérification se fait vraiment à chaque fichier sauvegarder! Baboon est architecturé pour gérer n'importe quel SCM (Source Code Manager) en dessous. Par défaut, j'ai développé le plugin Git. Il suffit de développer un plugin SVN pour supporter subversion |
|
|
10
|
|
|
#9 | |
|
Membre actif
![]() ![]() Sandro MundaSoftware engineer Inscription : août 2006 Messages : 73 ![]() |
Citation:
|
|
|
00
|
|
|
#10 | ||
![]() ![]() R&D en systemes informatiques bas niveau Unix/Linux Inscription : mai 2004 Messages : 7 191 ![]() |
Citation:
Si j'ai un peu de temps, j'essaierai de regarder si je peux faire quelque chose en ce sens. Si quelqu'un veut s'y mettre, il a toute mon aide psychologique !! Citation:
|
||
|
|
00
|
|
|
#11 |
|
Membre actif
![]() ![]() Sandro MundaSoftware engineer Inscription : août 2006 Messages : 73 ![]() |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com