Subversion (logiciel)
Un article de Wikipédia, l'encyclopédie libre.
- Pour les articles homonymes, voir Subversion.
Subversion
|
|
---|---|
Dernière version | 1.4.2 (le 7 novembre 2006) |
Environnement | GNU/Linux, Mac OS X, Windows |
Type | Gestion de version |
Licence | Apache/BSD |
Site web | subversion.tigris.org |
Subversion (parfois abrégé SVN) est un logiciel informatique de gestion de versionnement.
Logiciel libre publié sous licence Apache/BSD, il a été conçu pour remplacer CVS. Ses auteurs s'appuient volontairement sur les mêmes concepts (notamment sur le principe du dépôt centralisé et unique) et considèrent que le modèle de CVS est le bon, et que seule son implémentation est en cause. Le projet à été lancé en février 2000 par CollabNet, avec l'embauche par Jim Blandy de Karl Fogel, qui travaillait déjà sur un nouveau gestionnaire de versionnement.
Sommaire |
[modifier] Les apports de Subversion
Les manques les plus importants de CVS sont :
- Les commits, ou publications des modifications, ne sont pas atomiques. Inversement, un serveur Subversion utilise de façon sous-jacente une base de données capable de gérer les transactions atomiques (le plus souvent Berkeley DB);
- CVS ne connaît pas le renommage ni le déplacement d'un fichier : si on change un nom de fichier, on perd tout l'historique de ce fichier. De plus, la modification est assez lourde : avec CVS il faut supprimer l'ancien fichier et ajouter le nouveau, sans aucun rapport entre les deux (d'où la perte d'historique) ;
- les méta-données ne sont pas versionnées : on ne peut pas attacher de propriétés, comme les permissions, à un fichier, par exemple.
Du point de vue du simple utilisateur, les principaux changements lors du passage à Subversion, sont :
- Les numéros de révision sont désormais globaux (pour l'ensemble du dépôt) et non plus par fichier : chaque patch a un numéro de révision unique, quels que soient les fichiers touchés. Il devient simple de se souvenir d'une version particulière d'un projet, en ne retenant qu'un seul numéro ;
svn rename
(ousvn move
) permet de renommer ou déplacer un fichier ;- Les répertoires et méta-données sont versionnés.
Une des particularités de Subversion est qu'il ne fait aucune distinction entre un label, une branche et un répertoire. C'est une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de comparer un label et une branche ou autre croisement.
[modifier] Les principales commandes de Subversion
Commande | Signification |
---|---|
add | Déclare l'ajout d'une nouvelle ressource pour le prochain commit |
blame | Permet de savoir quel contributeur a soumis les lignes d'un fichier |
checkout (co) | Récupère en local une révision ainsi que ses méta-données depuis le dépôt |
cleanup | Nettoie la copie locale pour la remettre dans un état stable |
commit (ci) | Enregistre les modifications locales dans le dépôt créant ainsi une nouvelle révision |
copy | Copie des ressources à un autre emplacement (localement ou dans le dépôt) |
delete | Déclare la suppression d'une ressource existante pour le prochain commit (ou supprime directement une ressource du dépôt |
diff | Calcule la différence entre deux révisions (permet de créer un patch à appliquer sur une copie locale) |
export | Récupère une version sans méta-données depuis le dépôt ou la copie locale |
import | Envoie une arborescence locale vers le dépôt |
info | Donne les informations sur l'origine de la copie locale |
log | Donne les messages de commit d'une ressource |
merge | Calcule la différence entre deux versions et applique cette différence à la copie locale |
move | Déclare le déplacement d'une ressource |
resolved | Permet de déclarer un conflit de modifications comme résolu |
revert | Revient à une révision donnée d'une ressource. Les modifications locales sont écrasées. |
status | Indique les changements qui ont été effectués |
update (up) | Met à jour la copie locale existante depuis la dernière révision disponible sur le dépôt |
[modifier] Logiciels clients
Outre l'outil en ligne de commande, plusieurs logiciels pourvus d'interface graphique existent, en voici quelques-uns des plus connus et utilisés :
[modifier] Autonomes
[modifier] Libres
- eSvn (GNU/Linux, FreeBSD, Solaris, Mac OS X, Windows)
- RapidSVN (GNU/Linux, Mac OS X, Windows)
- TkSVN (tout type d'Unix, Mac OS X, Windows)
[modifier] Propriétaires
- SmartSVN (GNU/Linux, Solaris, Mac OS X, Windows)
- <oXygen/> (logiciel propriétaire pour plateformes java)
[modifier] Extensions
- Subclipse et Subversive (plugins pour Eclipse), tous deux en licence EPL
- NaughtySVN, extension pour Nautilus (Licence Apache/BSD)
- TortoiseSVN, extension pour l'explorateur Windows (GPL)
- Delphi for addin TortoiseSVN, extension de TortoiseSVN dans Delphi
- DephiSVN, extension pour Delphi (MPL)
- AnkhSVN extension pour Microsoft Visual Studio .NET (Licence Apache)
[modifier] Logiciels serveurs
[modifier] Voir aussi
[modifier] Liens externes
- (en) Site officiel
- (en) « Version Control with Subversion » : Livre en libre accès
- (en) Installation d'Apache2 et de Subversion sous Gentoo
- (fr) Installation d'Apache2 et de Subversion sous Debian
- (fr) Installation de subversion et de trac sur Debian et Ubuntu
- (en) Collab.net — Tigris.org : Création d'une zone d'échange serveur
- (fr) Introduction à Subversion : aide-mémoire et support de formation basé sur les opérations en ligne de commande
Portail des logiciels libres – Accédez aux articles de Wikipédia concernant les logiciels libres. |