Le développement collaboratif
Introduction
Ø Nécessité de mettre en place des outils pour faciliter le partage et la
collaboration
Un développeur ou un testeur va rarement travailler tout seul sur un projet
Ø Les outils de partage de fichiers génériques ne sont pas suffisants
Il existe de nombreuses solutions pour partager de l’information
ú Mail, Dropbox, clé usb…
Mais elle sont pensées pour du partage 1 – 1 et pas N-N
Ø Dans une équipe de développement et de test il va donc falloir utiliser des
solutions permettant
De tracer les changements
De partager les changements
L’intégration continue
L’intégration continue – Les systèmes de constructions
Ø L’intégration continue est une pratique de développement qui consiste pour
Ø Les systèmes de constructions (ou build) sont des éléments centraux de
les développeurs à déposer périodiquement leur code dans un espace
partagé
l’intégration continue
Ils cherchent à maximiser la réutilisabilité entre projets
Publicité
A chaque dépôt, le code est vérifié, compilé et testé pour détecter rapidement les
Assurent la gestion des dépendances, la construction automatique, l’exécution
problèmes
Ø C’est actuellement une des techniques les plus utilisées pour les projets open
source
3
des tests…
Ø Quelques exemples
Ant
Maven
Gradle
Travis (utilisé sur GitHub par exemple)
…
2
4
L’intégration continue – L’exemple Git
L’intégration continue – L’exemple Git
Ø Git est un projet open source qui permet de faire du suivi de version
18 langages de programmation utilisés
Il utilise lui-même l’intégration continue !
Ø Quelques chiffres: (source: https://www.openhub.net/p/git/)
Publicité
1700 contributeurs pour 54969 commits
La gestion de version avec Git
Ø Rôles d’un gestionnaire de version
Gérer l’historique
ú En enregistrant les nouvelles révisions à tout moment
ú En permettant de revenir à une ancienne version quand nécessaire (rollback)
Documenter chacune des révisions en lui associant un message
ú Permet de suivre l’évolution du projet
Enregistrer les informations de la personne qui a déposé la révision
ú Permet d’associer un responsable ce qui peut être utile en cas de litige
Facilite le partage entre plusieurs postes
Simplifie la gestion des conflits lors que deux personnes envoient deux
modifications du même code simultanément
ú Facilite la fusion (mais ne la fait pas seul)
Simplifie le développement parallèle en permettant aux développeurs de
travailler dans de multiples branches
5
7
Sur 30 jours 134 commits soit 1 commit toutes les 10 heures
La gestion de version avec Git
Ø ATTENTION ! Github n’est PAS Git !
Publicité
Ø Git est un outil de gestion de version qui fait suite à SVN et CVS
Il prend une approche décentralisée la où SVN et CVS utilisaient une approche
centralisée
ú Centralisée
ú Décentralisée
Source: S. Mosser
6
8
La gestion de version avec Git
La gestion de version avec Git
Ø Les branches sont un des éléments clés pour utiliser correctement un
En pratique les branches ne sont rien de plus que des pointeurs dans lesquels
navigue git
ú Un pointeur désigne un commit
10
gestionnaire de version lorsque l’on est plusieurs à travailler sur un même
projet
Permet d’avancer en parallèle et d’effectuer des commits sans avoir besoin de
gérer des conflits
La fusion est réalisée lorsque la branche est devenue fonctionnelle et qu’on l’a
« renvoie » vers la branche maitre
Publicité
Principales commandes : git branch, git merge
Source:
https://fr.atlassian.com/git/tutorials/using
-branches/git-merge
La gestion de version avec Git
Ø Quelques commandes Git:
git init : initialise un dépôt vide
git clone : récupère une copie d’un dépôt existant
git add : ajout d’un nouveau fichier ou d’un fichier modifié dans le commit
git commit : enregistrement des modifications dans le dépôt local
git push : envoie les modifications du dépôt local vers un serveur
git pull : récupère les modifications depuis le serveur
git status : permet de visualiser l’état du dépôt
git branch : permet de gérer les différentes branches
git checkout : permet de passer d’une branche à une autre
git log : permet de visualiser les logs Git
Ø Un site à regarder : https://rogerdudler.github.io/git-guide/index.fr.html
9
11