Accueil du site > INFORMATIQUE > CVS
jeudi 8 janvier 2004, par
CVS, çà veut dire Concurrent Versions System. Littéralement cela veut dire système de versions simultanées, en clair, logiciel de gestion de versions de fichiers. Je ne l’ai découvert que récemment quand j’ai été obligé de l’utiliser pour participer aux projets open-source. Au tout début, on se demande si on va être capable de s’en servir. Mais franchement, après je me suis demandé comment j’avais avant pu passer à côté pendant si longtemps. Ceux qui connaissent peuvent aller voir ailleurs. Pour les autres, même si vous ne développez que seul chez vous, je vais présenter succintement ce logiciel :
Conçu pour faciliter le travail de développement en équipe, cvs conserve les révisions successives de fichiers et facilite la collaboration de multiples intervenants sur un même projet. Qu’il travaille localement (sur la même machine) ou à distance (en réseau), chacun n’accède jamais qu’à une copie des fichiers, tandis que les originaux demeurent sur le « référentiel » (repository en anglais) et ne sont modifiés qu’à travers les mécanismes sécurisés (et « journalisés ») de cvs.
En clair, vous travaillez sur un des fichiers source d’un programme, quelque soit le langage utilisé, pourvu qu’il s’agisse d’un fichier texte. Vous pouvez l’ouvrir, le fermer, l’enregistrer à plusieurs reprises, et à un moment, vous décidez que vous avez fini l’ajout/modification que vous vouliez faire, et vous décidez de "figez" en l’état ce fichier avant de continuer à travailler. Vous enregistrez alors votre fichier sur le serveur cvs (on dit "commiter" ou "to commit"), avec un commentaire attenant, et un numéro de révision qui s’incrémente tout seul. Vos modifications sont alors disponibles pour tout le monde (les autres développeurs), il est possible de consulter l’historique d’un fichier, de voir les différences entre deux versions, de donner un ’label’ simultané à un ensemble de fichiers (on dit ’tag’), par exemple "Release_3_0", qui permet de reconstituer facilement plus tard tous les fichiers correspondant à une ’release’. Il y a une myriade d’autres possibilités que je vous laisse découvrir par vous même. Je ne donne même qu’un seul lien, http://www.cvshome.org, pour le reste je vous laisse taper CVS sur Google, il y en a tellement.
Maintenant vous pouvez me dire "moi j’utilise Visual Studio, j’ai déjà un Visual Source Safe". Oui, mais ici je m’adresse à des programmeurs qui font çà en tant que hobby. Si vous utilisez Visual Studio, vous êtes soit un professionnel, soit fortuné. CVS est gratuit, et open source.
Vous pouvez dire également "je fais des programmes tout seul chez moi, je n’ai pas l’utilité de cela, et c’est trop lourd pour installer un serveur CVS". Erreur, c’est là tout l’intérêt, le serveur CVS n’est pas seulement utile pour un travail de groupe, le client CVS sait parfaitement travailler en mode autonome ou local. Sous windows par exemple, vous créez un dossier C :\Cvs. Ensuite sur le dossier où vous avez vos fichiers de travail, vous demandez à créer un nouveau module CVS à partir de ce dossier, et vous indiquez le chemin du repository, par exemple C :\Cvs\Mon_application. Ensuite vous n’avez plus à vous occuper de rien, à chaque fois que vous ’commitez’ un fichier, le client cvs se charge de l’enregistrer dans votre repository local.
Le client de référence, sous Unix ou Windows, est un client en mode ligne de commande, celui que vous pouvez télécharger sur cvshome.org. Utilisateurs de Windows, ne partez pas en courant, il existe des clients graphiques. Quand je dis client de référence, c’est que contrairement à ce qui se passe pour la plupart des programmes graphiques utilisant un protocole sous windows (client ftp par exemple), les clients cvs graphiques, que ce soit sous windows ou unix, s’appuient sur le client cvs en ligne de commande qui doit être installé ou est installé automatiquement en même temps que le programme.
Premièrement, il faut savoir qu’il y a des myriades d’options et de fonctions disponibles sous CVS, et que le client en ligne de commande est le seul qui vous permet d’avoir accès à 100% d’entre elles.
Deuxièmement, ma (petite) expérience m’a permis de me rendre compte que j’utilise 99% du temps une poignée de fonctions et d’options. La conclusion est, pour Windows, d’utiliser le client le plus facile d’utilisation que je connaisse, TortoiseCVS, qui s’intègre dans l’explorateur de fichier sous windows, comme Winzip par exemple. Il est d’une simplicité déconcertante. Parallèlement à cela, pour les opérations spécifiques et (très) occasionnelles, je recommande de connaitre les rudiments du client cvs en ligne de commande.

Ainsi, je déconseille personnellement le client graphique WinCVS. D’une interface pas très claire, il essaie de rendre disponible le maximum de fonction de CVS, dans une interface touffue. Pour la raison évoquée ci-dessus, je recommande plus de passer votre temps à étudier les commandes cvs que l’interface de ce logiciel. De plus, cela a l’immense avantage de conserver votre acquis sous linux.
Si vous êtes sous linux ou unix, la situation est différente. Il existe quelques clients graphiques, mais aucun n’atteint le niveau de simplicité de Tortoise. Je suis débutant sur ce système, aussi je n’avancerai rien de particulier. Un client graphique que je veux découvrir est Cervisia.
Vous le trouverez sur cette page qui recense des liens vers des clients graphiques : http://www.wincvs.org/