Subversion (logiciel)
Un article de Wikipédia, l'encyclopédie libre.
Subversion | |
---|---|
Développeur | CollabNet, Inc. |
Dernière version | 1.4.6 (le 20 décembre 2007) |
Environnement | GNU/Linux, Mac OS X, Windows |
Type | Gestion de version |
Licence | Apache/BSD |
Site web | subversion.tigris.org |
Subversion (en abrégé svn) est un système de gestion de versions, distribué sous licence Apache et 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 a é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 version.
Sommaire |
[modifier] Les apports de Subversion
Subversion a été écrit afin de combler certains manques de CVS. Voici les principaux apports :
- Les commits, ou publications des modifications sont atomiques. 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) ;
- Subversion permet le renommage et le déplacement de fichiers ou de répertoires sans en perdre l'historique. ;
- les méta-données sont versionnées : on peut attacher des 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. |
lock | Verrouille un fichier. |
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. |
propdel | Enlève la propriété du fichier. |
propedit | Édit la valeur d’une propriété. |
propget | Retourne la valeur d’une propriété. |
proplist | Donne une liste des propriétés. |
propset | Ajoute une propriété. |
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 (st) | Indique les changements qui ont été effectués. |
switch | Met à jour la copie du dépôt. |
update (up) | Met à jour la copie locale existante depuis la dernière révision disponible sur le dépôt. |
unlock | Retire un verrou. |
[modifier] Logiciels clients
Outre l'outil en ligne de commande, plusieurs logiciels pourvus d'interface graphique existent :
[modifier] Logiciels annexes
[modifier] Côté serveur
- Trac, logiciel de gestion de projet Web utilisant Subversion, implémentant un Wiki et un système de suivi de bugs (Licence BSD).
- RedMine, logiciel de gestion de projet Web utilisant Subversion, implémentant un Wiki et un système de suivi de bugs (Licence GPL).
- USVN (User Friendly SVN), interface web permettant la configuration de dépôts Subversion (Licence CeCILL).
[modifier] Voir aussi
[modifier] Liens internes
- Git: gestionnaire de code source créé par Linus Torvalds.
- CVS: L'ancêtre de SVN.
[modifier] Liens externes
[modifier] Officiels
- (en) Site officiel
- (en) « Version Control with Subversion » : Livre en libre accès écrit par les développeurs de Subversion
[modifier] Divers
- Installation de subversion et d'eclipse sur le wiki ubuntu-fr.org (fr)
- Installation d'Apache2 et de Subversion sous Gentoo(en), sous Debian(fr)
- (fr) Installation de subversion et de trac sur Debian et Ubuntu
- (fr) Introduction à Subversion : aide-mémoire et support de formation basé sur les opérations en ligne de commande
- (fr) Installation et utilisation de base de Subversion : présentation rapide de Subversion, mise en œuvre et utilisation
- (fr) Les hooks de Subversion : présentation de la fonctionnalité "hook" de Subversion et comment utiliser celle-ci
- (fr) Installation de Subversion & USVN sur Debian : Installation et configuration de Subversion sur Debian Sarge/Etch et de l'application USVN de gestion de dépôts