Aperçu de Subversion 1.5
Par Clochix le lundi 1 septembre 2008, 08:19 - Technoweb - Lien permanent
Malgré la rapide expansion des systèmes de gestion de versions distribués, Subversion est loin d'être à l'agonie. Voilà plus de 2 mois qu'une nouvelle version est sortie, mais je n'avais pas encore eu l'occasion de regarder en détail des notes de version. Elle apporte un gros lot de nouveautés, dont voici un rapide résumé, juste histoire de savoir que, maintenant, c'est possible.
Meilleur suivi de la fusion de branches
Cette version commence l'implémentation d'une nouvelle fonctionnalité permettant de faciliter les fusions de branches (merge). Un des avantages souvent cités des DVCS est leur gestion simplifiée de ces fusions. Avec ce nouveau merge tracking, Subversion essaie d'implémenter des fonctionnalités similaires. Le travail est en cours, et les prochaines versions mineures devraient apporter de nouvelles amélioration. Je n'ai pas encore eu le temps d'approfondir, vous trouverez plus d'infos dans la doc.
Possibilité de faire des check-out partiels
La commande checkout possède à présent une option
--depth permettant de contrôler l'arborescence des fichiers que
vous souhaitez récupérer. Très pratique pour ne récupérer que certaines
sous-arborescence d'un projet. Vous pouvez par exemple récupérer tous les
répertoires de premier niveau du projet, puis uniquement les sous-arborescences
qui vous intéressent. Ce paramètre s'applique également à switch,
update, status et info.
Résolution interactive de conflits
Le client en ligne de commande permet à présent de mieux gérer les conflits. Lorsqu'une commande détecte un conflit, elle propose à l'utilisateur différents choix: afficher les différences, lancer un éditeur, donner la préférence à la version locale ou à la version distante... Et à ces options en ligne de commande correspondent des fonctions dans l'API du client, donc les interfaces graphiques devraient également en profiter.
svn:externals handles supporte les URL relatives
Voilà une fonctionnalité qui me manquait vraiment. Les URL des références
externes devaient être absolues. Pas pratique pour référencer une ressource
située ailleurs dans le dépot. Plusieurs syntaxes permettent à présent de
référencer des fichiers où qu'il soient dans le dépôt, relativement soit au
répertoire sur lequel vous définissez la propriété svn:externals,
soit à la racine du dépôt, soit à l'arborescence des dépôts sur le serveur.
Grouper les modifications
Il arrive fréquemment de travailler sur plusieurs choses à la fois, et de modifier des fichiers dans le cadre de plusieurs tâches différentes. Svn permet à présent d'affecter des étiquettes aux fichiers modifiés dans la copie locale, et d'effectuer des opération en fonction de ces étiquettes. Par exemple, si l'on implémente simultanément les fonctionnalités #1234 et #1235, on pourra marquer les fichier ainsi:
svn changelist "#1234" fichier1.js fichier2.js svn changelist "#1235" fichier3.js fichier4.js
Ces étiquettes pourront servir de filtres pour d'autres opérations, par exemple pour voir les modifications apportées dans le cadre du ticket 1234, puis les commiter, on pourra utiliser la syntaxe:
svn diff --changelist "#1234" svn ci -m "Fixes #1234" --changelist "#1234"
cf la description détaillée dans la documentation.
(C'était déjà possible depuis longtemps dans Eclipse via l'interface entre Mylyn et Subclipse).
Un fichier ne peut bien sûr avoir qu'une seule étiquette à la fois, lui en affecter une nouvelle supprimera l'ancienne.
Et encore:
Cette version contient également plus de 150 corrections de bugs, et de nombreuses autres fonctionnalités, dont
- la possibilité d'utiliser le mécanisme d'authentification SASL
- des amélorations au niveau de FSFS, le système de fichier interne utilisé par les serveurs svn
svnsync, qui permet de synchroniser plusieurs serveurs, autorise à présent la synchronisation bi-directionnelle entre un serveur maître et des esclaves, via un proxy WebDAV- et bien d'autres choses
Plus d'infos...
- description détaillée des nouveautés de la 1.5
- release note complète mentionnant toutes les évolution jusqu'à la 1.5.1
Commentaires
Merci pour ce petit tour du "propriétaire"
Description simple et intéressante, merci