| Liste Articles: [0-A] [A-C] [C-F] [F-J] [J-M] [M-P] [P-S] [S-Z] | Liste Catégories | Une page au hasard | Pages liées | ||||||
Le contrôle de version (en anglais revision
control) permet de conserver l'historique des modifications d'un fichier
informatique. Il s'applique principalement au code source, mais également à la documentation, aux bases de données, à tout fichier texte et parfois
aussi aux programmes.
Wikipedia lui-même contient un mécanisme de contrôle de version ; pour chaque article, l'historique est disponible en cliquant sur le lien Historique .
Note: la plupart des logiciels et des commandes de contrôle de version ont été écrit en anglais pour des raisons historiques. C'est pourquoi la correspondance avec la terminologie anglophone est indiquée en italique entre parenthèses lorsque cela est nécessaire.
| Sommaire |
Vous êtes en train de modifier un fichier source ; par prudence, vous sauvegardez régulièrement ce fichier; vous quittez même l'éditeur pour compiler et tester la nouvelle version. Et vous vous rendez compte que ça ne va pas, qu'il vous faut revenir en arrière. Si vous n'avez fait qu'ajouter du code, il est facile de supprimer les nouvelles lignes; mais si vous en avez également supprimé, comment retrouver l'ancienne version si défaire (undo) n'est pas possible avec l'éditeur et si vous n'avez pas effectué de sauvegarde ailleurs?
Tout cela n'arriverait pas avec un outil de contrôle de version. De plus, bien d'autres fonctionnalités très utiles sont incluses:
Le contrôle des versions est intimement lié à l'étape d'intégration. En effet, pour valider les modifications réalisées par les développeurs, il faut pouvoir choisir ces modifications dans le système de contrôle de versions.
Lorsqu'un fichier est géré par un mécanisme de contrôle de version, la première action pour travailler avec ledit fichier est d'extraire (check-out) le fichier.
On peut l'extraire de deux façons:
L'extraction doit également pouvoir s'appliquer à toute version antérieure du fichier, à partir du numéro correspondant.
Certains logiciels, cependant, ne requièrent aucune action pour modifier les sources. Lors de la validation, les modifications sont fusionnées automatiquement avec les modifications apportées par d'autres, sauf si des conflits se produisent (modification de parties identiques).
Une fois les modifications terminées (ou si l'on veut conserver la version actuelle, avant de poursuivre les modifications), il faut valider (check-in) le fichier.
Le mécanisme de contrôle de version peut à cet instant demander de saisir une phrase expliquant les modifications effectuées (ce que fait d'ailleurs Wikipedia avec le Résumé lorsque l'on édite une page).
La validation aura pour effet de retirer automatiquement le verrou si vous en aviez posé un.
Après plusieurs extractions/validations, il peut être intéressant de consulter l'historique (log) des modifications d'un fichier. Les noms des auteurs, les commentaires ainsi que les dates associées seront affichés.
Si l'accès à un fichier nous est interdit, on peut savoir pourquoi en demandant le statut du fichier: s'il est verrouillé, le nom de la personne qui le détient sera indiqué de même que la date à laquelle a été posé le verrou.
Dresser la liste des différences entre la version courante et la précédente version validée est fort utile et permet de maîtriser l'évolution du fichier.
On peut également comparer deux versions quelconques du fichier.
L'outil de comparaison est en général indépendant de celui de contrôle de version; on pourra donc choisir la visualisation de son choix: une présentation graphique des deux versions l'une à côté de l'autre avec une mise en couleur des différences est très appréciable.
La fusion (merge) est nécessaire dans le cas de deux branches de modifications parallèles d'un fichier.
Si les deux versions ont été modifiées dans des sections différentes, la fusion sera aisée et automatique. Elle nécessitera une intervention manuelle de l'administrateur (ou intégrateur) dans le cas contraire.
Imaginons non plus un fichier, mais un ensemble de fichiers sous contrôle de version. Les fichiers ont des numéros de version différents, mais ils forment un ensemble cohérent, qui constitue une livraison d'un logiciel ou d'un document.
Il va être possible d'identifier les versions des fichiers correspondantes à la livraison en apposant une étiquette (label) sur celles-ci.
On pourra ensuite extraire tous les fichiers livrés ensemble de la base à partir de l'étiquette.
Les logiciels de contrôle de version sont nombreux. Sous UNIX il y a eu SCCS qui a suscité un logiciel libre alternatif : RCS (Revision Control System) qui est devenu un standard de fait. Comme RCS ne gérait que des fichiers individuels, nombre de ses utilisateurs ont créé des surcouches gérant les arborescences de fichiers. Certaines de ces surcouches furent distribuées librement. Il en fut ainsi de PRCS et de CVS. CVS est devenu extrêmement répandu dans le monde du logiciel libre sur Internet, mais aussi dans les entreprises. CVS est simple à mettre en œuvre et offre les fonctionnalités fondamentales qu'attendent ses utilisateurs.
Mais l'histoire des logiciels de contrôle de version ne s'arrête pas en 2002 et de nouveaux logiciels libres s'apprêtent à concurrencer CVS, comme par exemple Subversion et GNU Arch.


