Table of Contents

SVN vs CVS

Introduction

Je suis en train de regarder le système de gestion de version nommé subversion (ou SVN en abrégé). Ce nouveau système remplacera progressivement CVS pour beaucoup de projets (sourceforge entre autres).

Pourquoi changer?

Les problèmes suivants apparaissent avec CVS:

Présentation de subversion

Subversion (édité en GPL par Tigris) permet de résoudre tous ces problèmes:



Question “philosophie”, Subversion (SVN) et CVS, c'est identique:



Bref, peu de choses changent… J'ai donc testé l'utilisation de SVN dans différentes configs critiques:

Pourquoi ne pas changer?

Qu'est ce qui nous pousserait à ne pas changer? Voilà quelques points à considérer:

En ce qui me concerne, je ne trouve pas que ces derniers points soient de gros inconvénients.

Comment pouvont nous gérer un no de version avec SVN?

Même si SVN donne un numéro de version par commit, les numéros des versions stables risquent de ne pas se suivre (en général, on commite en plusieurs fois). Deux solutions:

Je crois que la 2ieme solution est la seule faisable en pratique…

Autre problème: comment lier (automatiquement) un exécutable à un numéro de version (qui s'afficherait lors du lancement de Metafor)? [C'est quand même la raison pour laquelle j'ai fait cette petite étude…]

On peut créer un post-build step du type:

 svnversion oo_meta > oo_meta/version.txt

ca crée un fichier version.txt (qui contient le fameux numéro de version de oo_meta – global pour le dernier commit) qui peut être inclus dans le source et compilé. Et voilà!

Remarques de L.Stainier

Quelques remarques supplémentaires issues de ma propre expérience:

  1. les manips de déplacement, suppression de répertoires fonctionnent vraiment bien!
  2. la possibilité d'utiliser https comme protocole d'authentification est intéressante: ça permet d'utiliser une liste d'utilisateurs différente des comptes utilisateurs unix du serveur, et de gérer les autorisations répertoire par répertoire sans devoir créer 5000 groupes et se casser la tête…
  3. dans le cas https au moins, il est possible de garder le mot de passe en “cache” et de ne plus avoir à l'introduire à chaque opération
  4. un avantage incroyable de SVN sur CVS est que plusieurs opérations peuvent être faites off-line, càd sans accès au repository (pas le commit ou le update évidemment), chose bien utile pour les grands voyageurs !-)
  5. de manière complémentaire, certaines opérations peuvent être réalisées sans working copy, directement sur le repository.

Pour la gestion du numéro unique de version, je crois qu'il faudra de toute façon se reposer sur la bonne volonté des utilisateurs. Il n'y en a quand même pas tant que ça qui font des versions “de référence”.