Avec l'arrivée des logiciels libres et leur développement communautaire, une autre façon de voir la gestion de versions est apparue. Cette autre vision consiste à voir l'outil de gestion de versions comme un outil permettant à chacun de travailler à son rythme, de façon désynchronisée des autres, puis d'offrir un moyen à ces développeurs de s'échanger leur travaux respectifs. C'est ce que l'on nomme la gestion de versions décentralisée.
Mercurial, Darcs, Bazaar, Git, Monotone, GNU Arch et BitKeeper (propriétaire) sont des logiciels de gestion de versions décentralisée. Avec ceux-ci, il existe plusieurs dépôts de versions et aucun n'a de statut privilégié.
Avantages de la Gestion de version décentralisée :
* permet aux contributeurs de travailler sans être connecté au gestionnaire de version,
* la plupart des opérations sont plus rapides car réalisée en local (sans accès réseau),
* permet la participation à un projet sans nécessiter les permissions par un responsable du projet (les droits de commit peuvent donc être donnés après avoir démontré son travail et non pas avant),
* permet le travail privé pour réaliser des brouillons sans devoir publier ses modifications et gêner les autres contributeurs,
* permet de ne pas être dépendant d'une seule machine comme point de défaillance,
* permet toutefois de garder un dépôt de référence contenant les versions livrées d'un projet
Désavantages :
* cloner un dépôt est plus long que récupérer une version pour une gestion de version décentralisée car tout l'historique est copié (ce qui est toutefois un avantage par la suite).
* il n'y a pas de système de lock (ce qui peut poser des problèmes pour des données binaires qui ne se mergent pas)
L'auteur de développement logiciel Joel Spolsky décrit la gestion de version décentralisée comme "probablement la plus grande avancée dans les technologies de développement logiciel dans les 10 [dernières] années."
Avec l'arrivée des logiciels libres et leur développement communautaire, une autre façon de voir la gestion de versions est apparue. Cette autre vision consiste à voir l'outil de gestion de versions comme un outil permettant à chacun de travailler à son rythme, de façon désynchronisée des autres, puis d'offrir un moyen à ces développeurs de s'échanger leur travaux respectifs. C'est ce que l'on nomme la gestion de versions décentralisée.
Mercurial, Darcs, Bazaar, Git, Monotone, GNU Arch et BitKeeper (propriétaire) sont des logiciels de gestion de versions décentralisée. Avec ceux-ci, il existe plusieurs dépôts de versions et aucun n'a de statut privilégié.
Avantages de la Gestion de version décentralisée :
* permet aux contributeurs de travailler sans être connecté au gestionnaire de version,
* la plupart des opérations sont plus rapides car réalisée en local (sans accès réseau),
* permet la participation à un projet sans nécessiter les permissions par un responsable du projet (les droits de commit peuvent donc être donnés après avoir démontré son travail et non pas avant),
* permet le travail privé pour réaliser des brouillons sans devoir publier ses modifications et gêner les autres contributeurs,
* permet de ne pas être dépendant d'une seule machine comme point de défaillance,
* permet toutefois de garder un dépôt de référence contenant les versions livrées d'un projet
Désavantages :
* cloner un dépôt est plus long que récupérer une version pour une gestion de version décentralisée car tout l'historique est copié (ce qui est toutefois un avantage par la suite).
* il n'y a pas de système de lock (ce qui peut poser des problèmes pour des données binaires qui ne se mergent pas)
L'auteur de développement logiciel Joel Spolsky décrit la gestion de version décentralisée comme "probablement la plus grande avancée dans les technologies de développement logiciel dans les 10 [dernières] années."
Un logiciel de gestion de versions est un logiciel de gestion de configuration permettant de stocker des informations pour une ou plusieurs ressources informatiques permettant de récupérer toutes les versions intermédiaires des ressources, ainsi que les différences entre les versions.
Un logiciel de gestion de versions agit sur une arborescence de fichiers afin de conserver toutes les versions des fichiers, ainsi que les différences entre les fichiers. Ce système permet par exemple de mutualiser un développement. Un groupe de développeurs autour d'un même développement se servira de l'outil pour stocker toute évolution du code source.
Utilité des systèmes de gestion de version :
*Accès concurrentiel par plusieurs développeurs
*Suivi de l’historique
*Visualisation des déférences
*Retour `a des anciennes versions
Avantages et inconvénients
Centralisé
Utilisez un système centralisé pour une petite équipe rigoureuse pouvant être connectée au serveur en permanence et ne pouvant pas se permettre de passer du temps quant à l'organisation pour fusionner les dépôts.
Distribué
Utilisez un système distribué pour une équipe aussi bien petite que grande, possédant la rigueur nécessaire a une hiérarchisation des dépôts et/ou ayant des contraintes de travail ne permettant pas d'être connectée en permanence avec un éventuel serveur.
Spécificités