Table des matières

Versioning - Outillage et bonnes pratiques

Rappel

La versioning est un méthode de gestion de version qui consiste à historiser les modifications faites dans le code source d'un projet par les développeurs qui y contribuent successivement.

En cas de besoin, il est alors possible de revenir en arrière, comparer des versions antérieures du code, corriger des anomalies, toutes actions de maintenance qui sont liées à un état historique précis (version).

Il existe deux produits largement employées pour le versioning :

Git

Principes


nhdexzn_-_imgur.jpg

Les principales opérations Git

Usages

Git est utilisé dans de nombreux contextes, notamment pour :

Références


Y compris liens vers des ressources Internet synthétiques

SVN

Les principales opérations SVN


Organisation SVN

Sur un serveur SVN, le projet, les Branches et les Tags sont stockés dans des dossiers spécifiques nommés res-pectivement « trunk », « branches », et « tags ». Ce n’est qu’une convention de nommage que vous êtes libres de respecter ou d’adapter, mais les bonnes pratiques vous conduiront naturellement à adopter ce nommage. L’intérêt des étiquettes sous Subversion est d’utiliser des noms symboliques plutôt que des numéros de révisions pour se référer à un état précis, comme par exemple ’release-1.1’, plutôt que ’488’. Un nom symbolique permet de revenir facilement à une version identifiée. Pour créer un tag, il suffit de copier l'état actuel d'une version de développement dans un sous-répertoire du dépôt. Les règles suivantes sont communément admises :

En fonction de l’ampleur et du nombre de projets contenus dans votre dépôt, l’emplacement de ces trois dos-siers peut varier. Il existe en fait deux formes recommandées en fonction de vos besoins :

Quelle que soit l’architecture choisie pour les dossiers de base, l’utilisateur crée tous les dossiers intermédiaires librement. Par exemple, la branche « germanVersion » pourra être stockée dans le dossier branches/germanVersion.
À consulter : http://www.lacl.fr/gava/cours/M2/IngLog/annexe3.pdf

Bonnes pratiques

Gestion macroscopique du développement

La gestion de versions n’est pas un mécanisme de sauvegarde, mais un mécanisme de travail collaboratif. Il n’est donc pas question de remonter les modifications « microscopiques » apportées aux fichiers aussi souvent qu’on les enregistre localement, au cours de la mise au point.

On ne remontera que des modifications dont on sait qu’elles sont opérantes au regard d’un besoin global exprimé. Par exemples : « validation W3C des interfaces », « Améliorations fonctionnelles dans la gestion du panier », etc.

Synchronisation descendante

Lorsque l’on fait du versioning « collaboratif », la copie locale du projet sur laquelle on travaille a de grandes chances de ne pas être à jour puisqu’on n’est pas seul à travailler dessus. Pour limiter les risques de conflits et ne pas atteindre les limites offertes par le mécanisme du versioning, il faut systématiquement :

Commenter précisément

La gestion de version permet de retracer l’historique des modifications apportées au code. Sans un commentaire précis et significatif, l’historique est inexploitable et la gestion de versions ne présente que peu d’intérêt. Un effort conséquent est donc à produire dans la rédaction des commentaires de COMMIT.