<page> <title>Subversion (logiciel)</title> <id>61782</id> <revision> <id>31499050</id> <timestamp>2008-07-11T16:11:39Z</timestamp> <contributor> <username>ToePeu.bot</username> <id>290412</id> </contributor> <minor /> <comment>robot Modifie: [[ar:سب Ùيرجن]]</comment> <text xml:space="preserve">{{Voir homonymes|Subversion|svn}} {{Infobox Logiciel | nom = Subversion | logo = | image = | description = | développeur = CollabNet, Inc. | dernière version = 1.5.0 | date de dernière version = {{Date|19|juin|2008|en informatique}} | version avancée = | date de version avancée = | environnements = [[GNU/Linux]], [[Mac OS X]], [[Microsoft Windows|Windows]] | langue = | type = [[Gestion de version]] | licences = [[Licence Apache|Apache]]/[[Licence BSD|BSD]] | site web = [http://subversion.tigris.org subversion.tigris.org] }} '''Subversion''' (en abrégé '''svn''') est un [[système de gestion de versions]], distribué sous licence [[Licence Apache|Apache]] et [[Licence BSD|BSD]]. Il a été conçu pour remplacer [[Concurrent versions system|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 [[Concurrent versions system|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. == Les apports de Subversion == Subversion a été écrit afin de combler certains manques de [[Concurrent versions system|CVS]]. Voici les principaux apports : * Les ''commits'', ou publications des modifications sont [[Propriétés ACID|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 ; * <code>svn rename</code> (ou <code>svn move</code>) 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 (gestion de configuration)|label]], une [[branche (gestion de configuration)|branche]] et un [[Répertoire (informatique)|répertoire]]. C'est une simple convention de nommage pour ses utilisateurs. Il devient ainsi très facile de comparer un [[label (gestion de configuration)|label]] et une [[branche (gestion de configuration)|branche]] ou autre croisement. ==Les principales commandes de Subversion== {| class="wikitable" ! 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. |} == Logiciels clients == Outre l'outil en ligne de commande, plusieurs logiciels pourvus d'interface graphique existent : <br /> * [[Comparaison des clients pour Subversion | Liste des clients pour Subversion]] == Logiciels annexes == === Côté serveur === * [[Trac (logiciel)|Trac]], logiciel de gestion de projet Web utilisant Subversion, implémentant un Wiki et un système de suivi de bugs ([[Licence BSD]]). * [[RedMine|RedMine]], logiciel de gestion de projet Web utilisant Subversion, implémentant un Wiki et un système de suivi de bugs ([[Licence GPL]]). * [http://usvn.info/ USVN] (User Friendly SVN), interface web permettant la configuration de dépôts Subversion ([[Licence CeCILL]]). * [http://www.sventon.org sventon] Interface web. == Voir aussi == {{Wikilivres|Gestion de version/Subversion|la gestion de version avec Subversion}} === Liens internes === * [[Git]]: gestionnaire de code source créé par [[Linus Torvalds]]. * [[CVS]]: L'ancêtre de SVN. === Liens externes === ==== Officiels ==== * {{en}} [http://subversion.tigris.org/ Site officiel] * {{en}} [http://svnbook.red-bean.com/ « Version Control with Subversion »] : Livre en libre accès écrit par les développeurs de Subversion ==== Divers ==== * Installation de subversion et d'eclipse sur le [http://doc.ubuntu-fr.org/subversion wiki ubuntu-fr.org] {{fr}} * Installation d'Apache2 et de Subversion [http://gentoo-wiki.com/HOWTO_Apache2_with_subversion_SVN_and_DAV sous Gentoo]{{en}}, [http://www.xhtml.net/articles/subversion-apache2-debian sous Debian]{{fr}} * {{fr}} [http://www.beroot.org/Configurations/installation-subversion-trac-debian-ubuntu Installation de subversion et de trac sur [[Debian]] et Ubuntu] * {{fr}} [http://dev.nozav.org/intro_svn.html Introduction à Subversion] : aide-mémoire et support de formation basé sur les opérations en [[ligne de commande]] * {{fr}} [http://www.toutprogrammer.com/wiki/Installation_et_utilisation_de_base_de_Subversion Installation et utilisation de base de Subversion] : présentation rapide de Subversion, mise en Å“uvre et utilisation * {{fr}} [http://www.toutprogrammer.com/wiki/Les_hooks_de_Subversion Les hooks de Subversion] : présentation de la fonctionnalité "hook" de Subversion et comment utiliser celle-ci * {{fr}} [http://hikage.developpez.com/linux/tutoriels/subversion/ 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 {{Portail logiciels libres}} [[Catégorie:Système de gestion de versions libre]] [[ar:سب Ùيرجن]] [[ca:Subversion]] [[cs:Subversion]] [[da:Subversion]] [[de:Subversion (Software)]] [[en:Subversion (software)]] [[eo:Subversion]] [[es:Subversion]] [[eu:Subversion]] [[fi:Subversion]] [[gl:Subversion]] [[hi:सबवरà¥à¤œà¤¼à¤¨]] [[hu:Subversion]] [[id:Subversion]] [[it:Subversion]] [[ja:Subversion]] [[ko:ì„œë¸Œë²„ì „]] [[lt:Subversion]] [[nl:Subversion]] [[no:Subversion]] [[pl:Subversion]] [[pt:Subversion]] [[ru:Subversion]] [[sk:Subversion]] [[sr:SVN]] [[sv:Subversion (versionshanteringssystem)]] [[uk:Subversion]] [[vi:Subversion]] [[zh:Subversion]]</text> </revision> </page>