Parce que le printemps est haïssable...

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
Pour le dernier item, il faut peut-être aller plus loin.
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) :

19 Jan. 2006 - 00:26, par

les blogs trackbacks et copié collé sans consistance tels que le votre beurks écoeurant tout comme la belle couleur merde de Parigo lol sur votre site a dégueuler mes trippes ... lol
Je Hais Le Printemps et moi votre site pourri a faire peur à une marmotte

19 Jan. 2006 - 00:44, par kNo'

j'ai mis offline les autres commentaires, qui étaient, comme c'est paradoxal, des copiés-collés d'eux-même. Je l'ai laissé sur celui-ci, parce que c'est assez marrant.
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

J'admire la patience avec laquelle tu réponds à ce genre de commentaires. Mais quand même, tu pourrais arrêter de maltraiter les marmottes; c'est qui qui va mettre le chocolat dans le papier alu après?

19 Jan. 2006 - 01:39, par Midori

Mais il n'a jamais maltraité de marmotte, j'en suis la preuve vivante... ^^;

2 Avril 2006 - 00:37, par alert('Isbjorn je taime')

alert('Isbjorn je taime')

2 Avril 2006 - 12:38, par kNo'

Je pourrais virer le dernier commentaire... Mais cette tentative désespérée de faire s'exécuter du JS ici me laisse doucement mélancolique...

Les Boulets auraient-ils un coeur ?


Toutes les balises HTML seront supprimées.
Tu peux ajouter des liens comme suit :
J'ajoute [a http://exemple.com "un joli lien"]
Tu peux aussi mettre *en gras* ou {en italique}.