Subversif
Subversion est un outil de gestion de code source, à la manière de CVS, mais mieux.
Ouais, je sais. En disant ça, je t'aide pas forcément à déterminer ce que c'est ni à quoi ça sert...
Code source ?
Le code source, c'est ce qui sous-tend n'importe quel programme. Windows, Linux, ton navigateur favori, même Notepad ou vi...C'est une suite de commandes écrites par un ou plusieurs codeurs (ou hackers), dans un langage informatique (y'en a des caisses, ex : C, C++, REBOL, Python...) qui décrivent le comportement d'un programme.
De manière générale, ce code source est compilé ; c'est à dire transformé en quelque chose de compréhensible pour ta machine (du binaire, en gros), et zou ! tu vois apparaître les fenêtres, les boutons et tout le toutim.
Je passe sur les langages interprétés. Même si on ne les compile pas, ils ont un code source, et c'est bien ça qui m'intéresse.
Versions ?
Evidemment, quand on fabrique un programme, on l'écrit pas tout parfait du premier coup. On fait des essais, des tests, on se plante, on revient en arrière, on repart... Bref, au bout d'un moment, si on fait pas tout à fait attention, on se retrouve avec un gros bazar dans son répertoire de travail, avec des "version 1", "version 1a", "version 1b", "version 2", "version 2 sans le bug truc", etc.Et d'autant plus si on bosse à plusieurs. Chacun a sa petite manière de noter les sous-versions, et il m'est déjà (malheureusement) arrivé dans mon travail de trouver quatre versions d'un fichier intitulées "définitives", avec aucune n'ayant la même date de modif, ni la même taille... Bref.
Dans ces cas-là, on prend une grande inspiration pour pas tatanner les collègues à grands coups de clavier dans la tête et on regrette vraiment qu'ils ne soient pas un peu plus intéressés par le "futur" d'une appli. Dans mon cas, il s'agissait d'animations flash, mais le problème est le même qu'avec des sources dans un langage de programmation classique.
Parce qu'il faut bien le comprendre : être ordonné dans la gestion du source, ce n'est pas seulement pour le travail d'aujourd'hui, mais surtout pour demain. Quand le client demandera une putain de modif sur telle ou telle fonction, et qu'on se replongera avec effroi dans les arborescences toutes plus farfelues les unes que les autres pour découvrir que c'est le bordel total, que c'est incompréhensible, etc.
Dès qu'un projet atteint une taille critique, il faut utiliser un gestionnaire de code source.
Gérer le code source
C'est pourquoi les outils comme CVS ont fait leur apparition. CVS est le gestionnaire de version le plus répandu dans l'informatique moderne. Il gère les projets de très grande envergure, comme Linux, Mozilla, etc. tout autant que les projets plus modestes.L'objectif de ces outils est multiple :
- Tenir un historique de toutes les modifications apportées à un code source
- permettre de revenir en arrière dans cet historique tout en conservant l'ensemble du programme cohérent
- permettre à tout un chacun de télécharger la toute dernière version encore chaude d'un programme
- protéger les codes sources critiques d'une mauvaise manipulation (verrouiller un fichier pendant qu'on est en train d'y travailler pour éviter aux collègues de faire pareil et effacer tes modifs)
- permettre de développer un "fork" à partir d'un tronc commun
Imaginons un programme qui dessine des cercles sur l'écran.
Dans la version 1.0 de Cercles, le programme place un cercle obligatoirement obligatoirement rouge en haut à gauche de l'écran.
Un développeur n'aime pas le rouge. Il crée un "fork" de Cercles, qu'il appelle CerclesMulticolores, qui permet de déterminer la couleur du cercle avant de le dessiner.
Pendant ce temps, le développeur principal de Cercles décide qu'on peut placer le cercle n'importe où sur l'écran. Il sort Cercles 1.1.
En utilisant correctement CVS, CerclesMulticolores 1.1 pourra dessiner des cercles multicolores n'importe où sur l'écran.
Subversion
Subversion est un gestionnaire de code source largement plus convivial et plus clair que CVS. Développé sous licence Apache-like/BSD, il intègre les fonctionnalités principales de CVS, tout en mettant l'accent sur la simplicité d'utilisation.C'est bien simple : sous Windows, je n'ai jamais réussi à me connecter au moindre serveur CVS. Avec Subversion, j'y suis arrivé du premier coup. C'est typiquement le genre de choses qui fait plaisir.
Tu veux l'installer sur ta Debian-like ? (genre Ubuntu...)
# apt-get install subversion
Sous Windows aussi, on peut l'installer.
Bon, c'est pas mal pour aujourd'hui, non ?
Pour ceux qui voudraient se palucher de la doc sur Subversion, je recommande les liens suivants (en anglais) :
- Le livre des tortues : un ouvrage publié chez O'Reilly, sous licence Creative Commons, donc parfaitement téléchargeable, republiable, redistribuable, pour peu qu'on en cite l'auteur
- Dix trucs sur SVN pour l'utilisateur de CVS : même si j'ai pas utilisé CVS, ça m'a donné quelques commandes SVN de base super-utiles.
19 Jan. 2006 - 00:26, par
Je Hais Le Printemps et moi votre site pourri a faire peur à une marmotte
19 Jan. 2006 - 00:44, par kNo'
Pour plusieurs raisons :
- Monsieur a cliqué "AYAGO", et s'est retrouvé un an auparavant. Pas très grave. Sauf que peu de gens suivent le fil des commentaires, et donc liront cette zoulie prose.
- Monsieur déclare ne pas aimer les blogs trackbacks. Dommage, je ne trackbacke rien. Je ne sais même pas comment ça s'implémente. Mon gestionnaire fait maison sait pas faire. Donc, hors-sujet.
- Copié-collé sans consistence : J'avoue qu'il m'arrive de poster des citations d'articles qui m'ont plu, et de mettre un lien vers ces articles. Mais quand je le fais, je cite toujours* mes sources, et je ne recopie *jamais intégralement l'article en question. Question de principe.
- Copier-coller : pour le coup, cet article précisément n'est copié-collé de nulle part.
- couleur merde de parigo : je ne suis pas merdologue. Et je suis né à Bordeaux. Je vis à Bayonne.
- votre site pourri : personne n'est obligé de me lire.
Veuillez agréer, monsieur immature n°1, l'expression de mon profond mépris.
19 Jan. 2006 - 01:09, par Mitternacht
19 Jan. 2006 - 01:39, par Midori
2 Avril 2006 - 00:37, par alert('Isbjorn je taime')
2 Avril 2006 - 12:38, par kNo'
Les Boulets auraient-ils un coeur ?