Qu'est-ce qui fait de TortoiseSVN un si bon client Subversion ? Voici une courte liste des fonctionnalités.
TortoiseSVN s'intègre complètement dans le shell Windows (c'est-à-dire l'explorateur). Ce qui signifie que vous pouvez continuer à travailler avec les outils qui vous sont familiers. Ainsi, vous n'avez pas à changer d'application à chaque fois que vous avez besoin des fonctionnalités du contrôle de version.
Et vous n'êtes même pas obligés d'utiliser Windows Explorer ; les menus contextuels de TortoiseSVN marchent dans beaucoup d'autres gestionnaires de fichiers et dans la boîte de dialogue Fichier/Ouvrir qui est commune à la plupart des applications Windows standards. Vous devriez, cependant, garder en tête que TortoiseSVN est intentionnellement développé comme extension pour Windows Explorer. Ainsi il est possible que l'intégration ne soit pas aussi complète dans d'autres applications, par exemple, le recouvrement d'icônes peut ne pas fonctionner.
Le statut de chaque fichier et de chaque répertoire versionnés est indiqué par des petites icônes de recouvrement. De cette façon vous pouvez voir tout de suite quel est le statut de votre copie de travail.
When you list the changes to a file or folder, you can click on a revision to see the comments for that commit. You can also see a list of changed files - just double click on a file to see exactly what changed.
The commit dialog lists all the items that will be included in a commit, and each item has a checkbox so you can choose which items you want to include. Unversioned files can also be listed, in case you forgot to add that new file.
Toutes les commandes de Subversion sont disponibles à partir du menu contextuel de l'explorateur. TortoiseSVN y ajoute son propre sous-menu.
Puisque TortoiseSVN est un client Subversion, nous voudrions aussi vous montrer certaines des fonctionnalités de Subversion :
CVS suit seulement à la trace l'histoire de fichiers individuels, mais Subversion met en oeuvre un système de fichiers « virtuel » versionné qui suit à la trace les changements sur des arborescences entières à travers le temps. Les fichiers et les répertoires sont versionnés. En conséquence, il y a du coté client de vraies commandes déplacer et copier qui fonctionnent sur les fichiers et les répertoires.
Une livraison va sur le référentiel complètement, ou pas du tout. Cela permet aux développeurs de construire et livrer les changements comme des morceaux logiques.
Chaque fichier et chaque répertoire a un jeu invisible de « propriétés » attachées. Vous pouvez inventer et stocker n'importe quelle paire arbitraire clef/valeur que vous souhaitez. Les propriétés sont versionnées dans le temps, comme le contenu du fichier.
Subversion a une notion abstraite de l'accès au référentiel, le rendant facile à mettre en oeuvre à travers de nouveaux mécanismes de réseau. Le serveur réseau « avancé » de Subversion est un module pour le serveur Web Apache, qui utilise une variante de HTTP appelée WebDAV/DeltaV. Cela donne un grand avantage à Subversion en stabilité et en interopérabilité et fournit des différentes fonctionnalités clés gratuitement : authentification, autorisation, compression de fil et navigation de référentiel, par exemple. Un processus de serveur Subversion plus petit, autonome est aussi disponible. Ce serveur utilise un protocole personnalisé qui peut être facilement tunnelé par ssh.
Subversion exprime les différences de fichier en utilisant un algorithme de différenciation binaire, qui travaille identiquement sur les fichiers textes (lisibles par l'homme) et les fichiers binaires (illisibles par l'homme). Les deux types de fichiers sont stockés également compressés dans le référentiel, et les différences sont transmises dans les deux directions à travers le réseau.
Le coût de l'embranchement et de l'étiquetage n'a pas besoin d'être proportionnel à la taille de projet. Subversion crée des branches et des étiquettes en copiant simplement le projet, en utilisant un mécanisme semblable à un lien dur. Ainsi ces opérations prennent seulement un temps très petit, constant et un espace très petit dans le référentiel.