Précédent   Forum du club des développeurs et IT Pro > Le club des professionnels en informatique > Actualités
Actualités L'actualité des sociétés du secteur informatique
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Actualité déjà publiée
 
Outils de la discussion
Publicité
'
Vieux 26/10/2012, 18h51   #1
Sandro Munda
Membre actif
 
Homme Sandro Munda
Software engineer
Inscription : août 2006
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Sandro Munda
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Software engineer

Informations forums :
Inscription : août 2006
Messages : 73
Points : 182
Points : 182
Par défaut Baboon: Comment éviter l'enfer de la résolution des conflits dans un projet ?

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 ?

Pensez-vous qu'un tel outil pourrait vous faire gagner un temps précieux lorsque vous développez ?
Sandro Munda est déconnecté   Envoyer un message privé Réponse avec citation 60
Vieux 26/10/2012, 21h06   #2
Ceylo
Membre Expert
 
Avatar de Ceylo
 
Étudiant
Inscription : janvier 2007
Messages : 1 209
Détails du profil
Informations personnelles :
Âge : 22
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : janvier 2007
Messages : 1 209
Points : 1 279
Points : 1 279
É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.
Ceylo est déconnecté   Envoyer un message privé Réponse avec citation 02
Vieux 27/10/2012, 00h13   #3
Sandro Munda
Membre actif
 
Homme Sandro Munda
Software engineer
Inscription : août 2006
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Sandro Munda
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Software engineer

Informations forums :
Inscription : août 2006
Messages : 73
Points : 182
Points : 182
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 :-)
Sandro Munda est déconnecté   Envoyer un message privé Réponse avec citation 30
Vieux 16/12/2012, 22h54   #4
nicolas.chambon
Invité régulier
 
Inscription : juillet 2009
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2009
Messages : 15
Points : 6
Points : 6
Par défaut Integration continue

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)
nicolas.chambon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2012, 12h50   #5
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 191
Points : 18 088
Points : 18 088
Bonjour,

Citation:
Envoyé par nicolas.chambon Voir le message
On est donc dans une solution d'intégration continue.
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.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 17/12/2012, 18h02   #6
shadowmoon
Membre Expert
 
Avatar de shadowmoon
 
Homme thomas
Ingénieur développement logiciels
Inscription : mai 2005
Messages : 807
Détails du profil
Informations personnelles :
Nom : Homme thomas
Âge : 31
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : Industrie

Informations forums :
Inscription : mai 2005
Messages : 807
Points : 1 261
Points : 1 261
Citation:
Envoyé par gangsoleil Voir le message
Il faudrait une version pour SVN ou CVS
+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
shadowmoon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 09h44   #7
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 191
Points : 18 088
Points : 18 088
Citation:
Envoyé par shadowmoon Voir le message
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.
Pour le coup, c'est beaucoup plus complexe.

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.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 19/01/2013, 11h05   #8
Sandro Munda
Membre actif
 
Homme Sandro Munda
Software engineer
Inscription : août 2006
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Sandro Munda
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Software engineer

Informations forums :
Inscription : août 2006
Messages : 73
Points : 182
Points : 182
Citation:
Envoyé par gangsoleil Voir le message
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.
Bonjour,

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
Sandro Munda est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/01/2013, 12h47   #9
Sandro Munda
Membre actif
 
Homme Sandro Munda
Software engineer
Inscription : août 2006
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Sandro Munda
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Software engineer

Informations forums :
Inscription : août 2006
Messages : 73
Points : 182
Points : 182
Citation:
Envoyé par gangsoleil Voir le message
Autre solution : un hook dans tous les editeurs utilises qui verifie a chaque sauvegarde. Attention, le reseau va en prendre un coup.
J'utilise inotify (et équivalent pour windows et osx) pour vérifier en temps réel les changements dans un répertoire. Une fois détect², un rsync inhouse est lancé (à travers le protocol XMPP pour les détails d'implémentation). Le réseau n'est donc pas ultra sollicité
Sandro Munda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2013, 08h51   #10
gangsoleil
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 7 191
Détails du profil
Informations personnelles :
Âge : 32
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 7 191
Points : 18 088
Points : 18 088
Citation:
Envoyé par Sandro Munda Voir le message
Bonjour,

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
Chapeau !
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:
Envoyé par Sandro Munda Voir le message
J'utilise inotify (et équivalent pour windows et osx) pour vérifier en temps réel les changements dans un répertoire. Une fois détect², un rsync inhouse est lancé (à travers le protocol XMPP pour les détails d'implémentation). Le réseau n'est donc pas ultra sollicité
Je ne pensais pas a ta maniere de faire, mais a l'integration dans un editeur : certains de ceux-ci ont tendance a faire beaucoup de choses inutiles, y compris sur le reseau.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2013, 17h57   #11
Sandro Munda
Membre actif
 
Homme Sandro Munda
Software engineer
Inscription : août 2006
Messages : 73
Détails du profil
Informations personnelles :
Nom : Homme Sandro Munda
Âge : 24
Localisation : Belgique

Informations professionnelles :
Activité : Software engineer

Informations forums :
Inscription : août 2006
Messages : 73
Points : 182
Points : 182
Citation:
Envoyé par gangsoleil Voir le message
Chapeau !
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 !!
Tu as toute mon aide si besoin est ;-) Je serai heureux de développer ca à plusieurs !
Sandro Munda est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Actualité déjà publiée
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h20.


 
 
 
 
Partenaires

Hébergement Web