Vous êtes sur la page 1sur 5

Apache Subversion Wikipdia https://fr.wikipedia.

org/wiki/Apache_Subversion

Apache Subversion
Subversion (en abrg svn) est un logiciel de gestion de
versions, distribu sous licence Apache et BSD. Il a t Subversion
conu pour remplacer CVS. Ses auteurs s'appuient
volontairement sur les mmes concepts (notamment sur le
principe du dpt centralis et unique) et considrent que
le modle de CVS est bon, seule son implmentation est
perfectible.

Subversion fonctionne donc sur le mode client-serveur,


avec :

un serveur informatique centralis et unique o se


situent :
les fichiers constituant la rfrence (le dpt ou Fondateur CollabNet
rfrentiel , ou repository en anglais), Dveloppeur Fondation Apache
un logiciel serveur Subversion tournant en tche de Premire
20 octobre 2000
fond ; version
des postes clients sur lesquels se trouvent : Dernire
1.9.5 (29 novembre 2016)
les fichiers recopis depuis le serveur, ventuellement version
modifis localement depuis, crit en C et C++
un logiciel client, sous forme d'excutable standalone Environnements GNU/Linux, Mac OS X,
(ex. : SmartSVN) ou de plug-in (ex. : TortoiseSVN, Windows
Eclipse Subversive) permettant la synchronisation, Type Gestion de version
manuelle et/ou automatise, entre chaque client et le Licences Apache/BSD
serveur de rfrence Site web subversion.apache.org
(https://subversion.apache.org/)
Le projet a t lanc en fvrier 2000 par CollabNet, avec
l'embauche par Jim Blandy de Karl Fogel, qui travaillait
dj sur un nouveau logiciel gestionnaire de version.

Le 14 fvrier 2010, SVN est devenu officiellement un projet de la fondation Apache, prenant le nom
d'Apache Subversion.

Sommaire
1 Les apports de Subversion
1.1 Branches et Tags
2 Les principales commandes de Subversion
3 Applications clients et serveur
3.1 Logiciels clients
3.2 Logiciels serveurs
4 Logiciels annexes
4.1 Ct serveur
5 Voir aussi
5.1 Liens externes
6 Notes et rfrences

1 sur 5 07/02/2017 13:57


Apache Subversion Wikipdia https://fr.wikipedia.org/wiki/Apache_Subversion

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 faon
sous-jacente une base de donnes capable de grer les transactions atomiques (le plus souvent Berkeley
DB) ;
Subversion permet le renommage et le dplacement de fichiers ou de rpertoires sans en perdre
l'historique ;
les mtadonnes sont versionnes : on peut attacher des proprits, comme les permissions, un fichier,
par exemple.

Du point de vue du simple utilisateur, les principaux changements lors du passage Subversion, sont :

les numros de rvision sont dsormais globaux (pour l'ensemble du dpt) et non plus par fichier :
chaque patch a un numro de rvision unique, quels que soient les fichiers touchs. Il devient simple de se
souvenir d'une version particulire d'un projet, en ne retenant qu'un seul numro ;
svn rename (ou svn move) permet de renommer (ou dplacer) un fichier ;
les rpertoires et mtadonnes sont versionns.

Branches et Tags

Une des particularits de Subversion est qu'il ne fait aucune distinction entre un label, une branche et un
rpertoire. C'est une simple convention de nommage pour ses utilisateurs. Il devient ainsi trs facile de
comparer un label et une branche ou autre croisement.

Quel que soit le systme de gestion de versions, les numros de rvision plusieurs chiffres sont difficiles
mmoriser. Pour cette raison de nombreux systmes laissent l'utilisateur dfinir des tags comme des
synonymes plus faciles retenir. Mais ce que Subversion recommande d'utiliser comme tag est d'une nature
compltement diffrente : une fois la commande svn copy effectue, un tag Subversion ne se rappelle
absolument plus de quel numro de rvision il provient. Alors que dans la plupart des autres systmes un tag
est une rfrence, un tag Subversion n'est qu'une copie. Seules quelques rfrences prdfinies sont
disponibles : HEAD, PREV, BASE, COMMITTED.

Une autre diffrence est que les tags des autres systmes sont des points dans le temps, alors que Subversion
recommande de dfinir les tags comme des points dans l'espace du systme de fichiers.

Cette absence de tag au sens habituel rend certaines oprations un peu moins pratiques dans Subversion. Par
exemple retrouver ce qui a chang d'un tag l'autre dans un fichier est un petit peu plus compliqu que de
lancer une simple commande : svn diff -r tag1:tag2 monfichier dans le rpertoire de travail.

D'autres oprations deviennent impossibles : par exemple une commande telle que svn log -r tag1:tag2
monfichier ne fonctionne pas et il n'y a pas d'alternative qui fonctionne.

Pour pallier ces manques l'ajout de labels ou alias a t propos sur les listes de discussions de
1
SVN . Ces labels seraient quivalents aux tags d'autres systmes comme CVS, git ou autre. En 2010 cette
suggestion n'a pas dpass le stade de la discussion.

Les principales commandes de Subversion

2 sur 5 07/02/2017 13:57


Apache Subversion Wikipdia https://fr.wikipedia.org/wiki/Apache_Subversion

Commande Signification
add Dclare l'ajout d'une nouvelle ressource pour le prochain commit.
blame Permet de savoir quel contributeur a soumis les lignes d'un fichier.
checkout
Rcupre en local une version ainsi que ses mta-donnes depuis le dpt.
(co)
cleanup Nettoie la copie locale pour la remettre dans un tat stable.
commit (ci) Enregistre les modifications locales dans le dpt crant ainsi une nouvelle version.
copy Copie des ressources un autre emplacement (localement ou dans le dpt).
Dclare la suppression d'une ressource existante pour le prochain commit (ou supprime
delete
directement une ressource du dpt).
Calcule la diffrence entre deux versions (permet de crer un patch appliquer sur une copie
diff
locale).
export Rcupre une version sans mtadonnes depuis le dpt ou la copie locale.
import Envoie une arborescence locale vers le dpt.
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 diffrence entre deux versions et applique cette diffrence la copie locale.
move Dclare le dplacement d'une ressource.
propdel Enlve la proprit du fichier.
propedit dite la valeur dune proprit.
propget Retourne la valeur dune proprit.
proplist Donne une liste des proprits.
propset Ajoute une proprit.
resolved Permet de dclarer qu'un conflit de modifications est rsolu.
revert Revient une version donne d'une ressource. Les modifications locales sont crases.
status (st) Indique les changements qui ont t effectus.
switch Bascule sur une version/branche diffrente du dpt.
update (up) Met jour la copie locale existante depuis la dernire version disponible sur le dpt.
unlock Retire un verrou.

Applications clients et serveur


Logiciels clients

L'accs au serveur subversion peut se faire en utilisant son protocole natif (port TCP par dfaut : 3690), ou
sur une connexion HTTP (le serveur doit alors prendre en charge les extensions WebDAV). Ces deux modes
d'accs peuvent tre scuriss au niveau de la couche de transport (tunnel SSH ou HTTPS), ce qui est
particulirement recommand dans le cas de serveurs sur un rseau public comme Internet.

Outre l'outil en ligne de commande, plusieurs logiciels pourvus d'interface graphique existent, sous forme

3 sur 5 07/02/2017 13:57


Apache Subversion Wikipdia https://fr.wikipedia.org/wiki/Apache_Subversion

d'excutable standalone, mais galement de plugins notamment pour EDI.

Logiciels serveurs
2
Deux types de serveurs subversion sont disponibles actuellement :

svnserve est un serveur lger qui utilise un protocole TCP/IP spcifique. Il est destin aux petites
installations ou lorsqu'un serveur complet Apache ne peut pas tre utilis. Il utilise par dfaut une
authentification par un fichier contenant des noms d'utilisateur et leur mot de passe mais peut galement
tre utilis avec le protocole Simple Authentication and Security Layer (SASL). On peut galement
utiliser une connexion scurise SSH avec svnserve.
Serveur HTTP d'Apache. Dans ce cas les dpts sont rendus accessibles aux clients via l'installation d'un
module WebDAV. L'utilisation du protocole SSL permet de scuriser la transmission via l'Internet. Dans le
cas d'un grand nombre d'utilisateurs, le protocole SSH peut tre plus contraignant et moins scuris
puisqu'il cre des utilisateurs de plein droit sur le serveur hte. Un des avantages de la solution HTTP
d'Apache malgr sa lourdeur d'installation ainsi que sa ractivit plus lente, par rapport Svnserve, est la
possibilit de tracer les connexions des clients.

Logiciels annexes
3
Sur serveurs Windows, le logiciel VisualSvn Server permet un packaging de Apache + Subversion avec un
paramtrage automatique et une console d'administration graphique du serveur pour grer les droits partir
d'un serveur ActiveDirectory

Ct serveur

Trac, logiciel de gestion de projet Web utilisant Subversion, implmentant un Wiki et un systme de suivi
de bugs (licence BSD).
Redmine, logiciel de gestion de projet Web utilisant Subversion, implmentant un Wiki et un systme de
suivi de bugs (licence GPL).
4
User friendly SVN , interface web permettant la configuration de dpts Subversion (licence CeCILL).
5
Interface web Sventon .
CodingTeam, forge permettant de grer subversion, possdant un wiki, un systme de suivi des bugs et le
support de Jabber.

Voir aussi
Liens externes
Sur les autres projets Wikimedia :
(en) Site officiel (http://subversion.apache.org/)
Apache Subversion, sur Wikibooks
(en) Version Control with Subversion
(http://svnbook.red-bean.com/) (livre en libre accs
crit par les dveloppeurs de Subversion)
Documentation de Subversion (http://svnbook.red-bean.com/index.fr.html) : Documentation en franais

Notes et rfrences
1. Subversion mailing lists (http://svn.haxx.se/users/)
2. (en) Version Control with Subversion (http://svnbook.red-bean.com/), sur http://svnbook.red-bean.com/, O'Reilly
Media Gestion de versions avec Subversion

4 sur 5 07/02/2017 13:57


Apache Subversion Wikipdia https://fr.wikipedia.org/wiki/Apache_Subversion

3. Site de www.visualsvn.com (http://www.visualsvn.com/server/)


4. Site USVN (http://usvn.info/)
5. Site sventon (http://www.sventon.org)

Ce document provient de https://fr.wikipedia.org/w/index.php?title=Apache_Subversion&


oldid=133179279 .

Dernire modification de cette page le 31 dcembre 2016, 18:05.


Droit d'auteur : les textes sont disponibles sous licence Creative Commons attribution, partage dans les
mmes conditions ; dautres conditions peuvent sappliquer. Voyez les conditions dutilisation pour plus de
dtails, ainsi que les crdits graphiques. En cas de rutilisation des textes de cette page, voyez comment citer
les auteurs et mentionner la licence.
Wikipedia est une marque dpose de la Wikimedia Foundation, Inc., organisation de bienfaisance rgie
par le paragraphe 501(c)(3) du code fiscal des tats-Unis.

5 sur 5 07/02/2017 13:57

Vous aimerez peut-être aussi