Sommaire :

 
I) Présentation
 
II) Mise en place de la veille
 
III) Git
 
IV) SVN
 
V) Scénario
 
VI) Synthèse entre GIT et SVN
 
VII) Sources

 

I - Présentation :

Qu'est-ce que le développement collaboratif ?

Il s'agit d'une organisation spécifique du travail de groupe sur un ensemble de fichiers qui forment a priori un projet spécifique.

Dans le domaine de l'informatique, il existe une multitude d'outils qui permettent de réaliser un developpement collaboratif efficace.

 
Les fonctionnalités offertes sont principalement :
 
-système de gestion des versions,
-gestionnaire de listes de discussion,
-outil de suivi de bugs,
-gestionnaire documentation ,
-gestion des tâches,
-traduction en ligne.

 

Lexiques :

Owner : Administrateur (les développeurs du projet qui ont tous les droits et qui participent le plus au projet.)

Commitor : Personne travaillant sur le projet ayant moins de droit que le "owner".

Contributor : Personne qui participe occasionnellement au projet mais ne peut le modifier.

Patch : Méthode utilisée pour apporter de nouveaux éléments au projet sans le modifier.

Commit : Une sorte de publication (Mise a jour du projet sur le serveur).

Branch : Copie d'une fonctionnalitée ou d'une application pour pouvoir le modifier sans impacter le projet.

Tag : Le Tag est un "instantané" du travail à un instant précis. C'est comme si on prenait une photo d'une partie du projet.

Update to Head : Moyen par lequel les utilisateurs peuvent récupérer le travail des autres.

Merge : Outil de copie entre deux Branch ou une Branch et la version principale (souvent appelée Trunk).
 

II - Mise en place de la veille :

- Récolte

Nous avons récolter nos informations à l'aide d'outils de recherche comme Google Alerts par exemple pour récolter des informations sur notre veille.

  • Le flux RSS sur 01.net.pro via feedity.
  • Wikipedia
  • Google Alerts
  • Recherche Google

 

- Analyse

Nous avons analysés les récoltes d'informations en les triant pour en tirer les meilleurs informations possibles et qu'elles ne soient pas trop anciennes.

Les critères de pertinence de l'informations sont :

  1.      regarder si le document répond à notre thème
  2.      la source (d'oû il vient) : source fiable (état, institution, entreprise) ou non (blog, écrit autodidacte)
  3.      la date (entre 2009-2015)
  4.      s'informer sur l'auteur du document (compétence, exactitude, sincérité)

 

- Diffusion

Grâce au Pearltrees que nous allons présenter ensuite, nous verrons qu'il est possible de se créer un arbre de recherche d'informations et de pouvoir le partager pour que d'autres personnes puissent le consulter.

Pearltrees est un service en ligne apparu en décembre 2009, développé par une société basée à Paris. C'est un service qui permet à ses utilisateurs d'organiser, d'explorer et de partager des pages web, des notes, des photos ou des fichiers. Suivant la logique du content curation (faire ressortir le meilleur contenu du web).

Accès au Pearltrees (et autres outils) :

  • google alerts --> ici
  • pearltrees pour la diffusion --> ici
  • utilisation de la recherche avancées de google
  • activation d'un flux rss sur 01.net.pro via feedity --> ici

III - Git :

C'est un logiciel libre créé par Linus Torvalds, auteur du noyau Linux, et distribué selon les termes de la licence publique générale GNU version 2. Similaire en cela à BitKeeper, Git ne repose pas sur un serveur centralisé. C'est un outil de bas niveau, qui se veut simple et performant, dont la principale tâche est de gérer l'évolution du contenu d'une arborescence.

Git n'a pas de serveur ni de client, il n'y a qu'un seul programme unique. Chaque développeur dispose de son propre repository en local sur sa machine, et toute la subtilité de ce système est qu'on peut échanger des données entre les repositories. Cela s'appelle un système de versionning décentralisé.

IV- SVN :

SVN fonctionne selon un modèle client/serveur : le serveur SVN contient le repository, et les clients envoient le code au serveur SVN. Le repository est unique, tout le monde utilise le même, on appelle cela un système de versionning centralisé.

SVN est un site web destiné aux développeurs intéressés par le développement relatif à Google. L'entreprise y diffuse des codes sous licence libre.

V - Scénario :

 

Scénario : 2 développeurs (owners), 1 committor et 1 contributor

Au début du projet, nous avions défini un scénario pour utiliser les fonctionnalités de base des deux outils avec Eclipse.

Mise en place d'un commit sur le contructeur, d'un "update to Head" sur un autre compte pour récupérer la modification. Les stats, les annotations, les modifs(graphique) sur Google Code pour SVN.  Même chose pour Git (constructeur + commentaires...). Explication sur le patch, c'est le seul moyen de participer au projet car le contributor ne peut pas commit.

 

 

VI - Synthèse entre Git et SVN :

Ces 2 logiciels sont les principaux utilisés dans le monde du développement collaboratif.

SVN est un puissant outil de gestion de versions. Indispensable pour le développement en équipe !
SVN n'est pas un système de sauvegarde, il permet un suivi de versions précis, à condition de bien l'utiliser.
    Git gagne de plus en plus de terrain(nouvelle génération,décentralisé...).
De nombreuses intégrations (IDE, clients indépendants) sur toutes les plateformes.

Une des particularités de Git, c’est l’existence de sites web collaboratifs basés sur Git comme GitHub et Gitorious.
C’est une sorte de réseau social pour développeurs : vous pouvez regarder tous les projets évoluer et décider de participer à l’un d’entre eux si cela vous intéresse.

 

SVN

GIT

Avantages

Inconvénients

Avantages

Inconvénients

Possibilité de cloner qu’une partie d’un projet

Les commits nécessitent une connexion au réseau

Très rapide

Très grand nombre de commandes

Beaucoup plus d’interfaces utilisateurs que sous GIT

Copie de tout le projet pour créée une "branch"

Les Branches sont beaucoup plus simples à gérer

Pas pratique avec Windows

Plugins très nombreux

Gestion des branches, tags, patch complexe

Possède son propre outil de dépôt de projet : GitHub

Outils/Plug-in moins nombreux

Plus simple d’utilisation, souple

Poids des fichiers

Pas de serveur à installer et à gérer

Complexité d'utilisation

 

Beaucoup de difficultés lors de la résolution d’un problème

Communauté très présentes

Sécurité des données

 

 

Moins de conflits lors des merges

 

 

  Git SVN
Systeme de gestion de 
version
Décentralisé Centralisé
Hébergement des projets Un seul programme unique Client/Serveur
Suivi des problèmes Debogage avec la communauté Tout seul
Suivi des versions Oui Oui
Sécurité Importante fourni par GitHub L'utilisateur assure sa propre sécurité
Langage Utilisé C Python

Les risques ?

Avec l'outil Git, vu que ses données sont stockés sur un serveur externe, la sécurité des données n'est pas fiable à 100%. Il peut y avoir des pertes d'informations qui risquent de pénalisées l'ensemble d'un projet.

Avec l'outil SVN, l'entreprise doit être capable d'assurer elle-même la sécurité des données, ce qui n'est pas le cas de chaque entreprise.

Conclusion sur la veille « développement collaboratif » :

GIT est de plus en plus utilisé par les utilisateurs, le 23 décembre 2013, GitHub a annoncé qu'il avait atteint 10 millions de projets.

L’un de ces gros avantages est le fait de pouvoir travailler sans être connecté au serveur.

GIT possède sa propre plate-forme d’hébergement de projet : GitHub, qui dispose d’une communauté très actif et à l’écoute des problèmes. Pour SVN on doit passer par des hébergeurs externes comme Google code.

GIT serait le logiciel le plus efficace pour réaliser un projet informatique au sein d’une entreprise, malgré quelques défauts, il me paraît être la meilleur solution qui est disponible sur le marché en ce moment. (sachant que je donne mon avis sans connaitre la vie en entreprise, je n'ai pas assez d'expérience pour donner mon avis là-dessus)

 

VII - Sources :

https://fr.wikipedia.org/wiki/Forge_(informatique)

https://fr.wikipedia.org/wiki/Cat%C3%A9gorie:Forge_logicielle

https://www.projet-plume.org/ressource/faq-forge

https://www.modelia.org/html/9_fichesTechniques/lesPdf/forge.pdf

https://www-igm.univ-mlv.fr/~dr/XPOSE2003/cvs-eclipse/devco.htm

https://pro.01net.com/editorial/354068/codingteam-nouvel-outil-de-developpement-pour-le-libre-francophone/

https://fr.wikipedia.org/wiki/Git

https://ccri.in2p3.fr/?q=node/333

https://fr.slideshare.net/lolautruche/subversion-utilisation-et-bonnes-pratiques

https://blog.netapsys.fr/svn-branches-et-tags/

https://openclassrooms.com/courses/gerez-vos-codes-source-avec-git

https://lecriduweb.fr/blog/2015/03/13/google-code-ferme-ses-portes-nous-on-les-ouvre/