Les systèmes de gestion de versions (VCS pour Version Control Systems) sont principalement de deux types :
centralisés (comme Subversion) ou décentralisés (comme Git).
Dans le cas centralisé, tous les changements apportés sont soumis (commit) à un serveur central, qui permet
ensuite aux autres développeurs d’accéder à ces changements. L’avantage est la simplicité de configuration et
d’utilisation ; le défaut principal est la centralisation : si le serveur n’est plus accessible, le travail collaboratif
n’est plus possible.
Dans le cas décentralisé, la prise en compte des changements se fait localement. Les autres développeurs
n’auront accès à ces changements que quand les dépôts seront synchronisés. L’avantage est de pouvoir
travailler de manière collaborative localement ; l’inconvénient est la complexité des opérations par la présence
de deux dépôts : le dépôt local (appelé aussi « dépôt privé ») et le dépôt distant, ou « remote » (appelé aussi «
dépôt public »).
Un système décentralisé comme Git a été choisi par l’école, car cela permet :
· aux étudiants, de travailler en mode collaboratif avec leur dépôt local, tout en ayant une « sauvegarde
» de leurs travaux sur le dépôt distant ;
· aux enseignants de gérer les dépôts distant de chacun des projets de leurs élèves ou binômes ; ils
peuvent avoir accès à des statistiques, voire intervenir directement dans les projets, si nécessaire ;
· des restitutions faciles, car elles consistent simplement à placer un tag (voir plus loin) sur le dépôt
distant.