Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Apache Subversion — Wikipédia
Apache Subversion — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
Page d’aide sur l’homonymie

Pour les articles homonymes, voir Subversion (homonymie) et svn.

Apache Subversion
Description de l'image Apache Subversion logo.svg.

Informations
Créateur CollabNetVoir et modifier les données sur Wikidata
Développé par Apache Software FoundationVoir et modifier les données sur Wikidata
Première version 20 octobre 2000[1]Voir et modifier les données sur Wikidata
Dernière version 1.14.5 (8 décembre 2024)[2]Voir et modifier les données sur Wikidata
Dépôt svn.apache.org/repos/asf/subversionVoir et modifier les données sur Wikidata
Écrit en C, Python, C++, Java, Ruby et PerlVoir et modifier les données sur Wikidata
Système d'exploitation Le système d'exploitation GNU-Linux, Microsoft Windows, macOS et BSDVoir et modifier les données sur Wikidata
Formats lus SVN dump format (v1) (d), SVN dump format (v2) (d), SVN dump format (v3) (d) et SVN dump format (generic) (d)Voir et modifier les données sur Wikidata
Formats écrits SVN dump format (v1) (d), SVN dump format (v2) (d), SVN dump format (v3) (d) et SVN dump format (generic) (d)Voir et modifier les données sur Wikidata
Type Gestionnaire de code source centralisé (d)
Projet de la fondation Apache (d)Voir et modifier les données sur Wikidata
Licence Licence Apache 2.0Voir et modifier les données sur Wikidata
Site web subversion.apache.orgVoir et modifier les données sur Wikidata

modifier - modifier le code - voir Wikidata (aide)

Subversion (en abrégé svn) est un logiciel de gestion de versions, distribué sous licence Apache[3]. 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 bon, seule son implémentation est perfectible.

Subversion fonctionne donc sur le mode client-serveur, avec :

  • un serveur informatique centralisé et unique où se situent :
    • les fichiers constituant la référence (le « dépôt » ou « référentiel », ou « repository » en anglais),
    • un logiciel serveur Subversion tournant en « tâche de fond » ;
  • des postes clients sur lesquels se trouvent :
    • les fichiers recopiés depuis le serveur, éventuellement modifiés localement depuis,
    • un logiciel client, sous forme d'exécutable standalone (ex. : SmartSVN) ou de plug-in (ex. : TortoiseSVN, Eclipse Subversive) permettant la synchronisation, manuelle et/ou automatisée, entre chaque client et le serveur de référence.

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 logiciel gestionnaire de version.

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

Les apports de Subversion

[modifier | modifier le code]

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étadonné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 commit 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 (ou svn move) permet de renommer (ou déplacer) un fichier ;
  • les répertoires et métadonnées sont versionnés.

Branches et tags

[modifier | modifier le code]

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.

Quel que soit le système de gestion de versions, les numéros de révision à plusieurs chiffres sont difficiles à mémoriser. Pour cette raison, de nombreux systèmes laissent l'utilisateur définir des tags comme des synonymes plus faciles à retenir. Alors que dans la plupart des autres systèmes un tag est une référence, un « tag » Subversion n'est qu'une copie. Seules quelques références prédéfinies sont disponibles : HEAD, PREV, BASE, COMMITTED. Une date permet aussi d'identifier une révision.

Une autre différence est que les tags des autres systèmes sont des points dans le temps, alors que Subversion recommande de définir les tags comme des points dans l'espace du système de fichiers.

Cette absence de tag au sens habituel rend certaines opérations 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 répertoire de travail.

D'autres opérations 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 Subversion[4]. Ces labels seraient équivalents aux tags d'autres systèmes comme CVS, Git ou autre. En 2010, cette suggestion n'a pas dépassé le stade de la discussion.

Les principales commandes de Subversion

[modifier | modifier le code]
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 version 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 version.
copy (cp) Copie des ressources à un autre emplacement (localement ou dans le dépôt).
delete (rm) Déclare la suppression d'une ressource existante pour le prochain commit (ou supprime directement une ressource du dépôt).
diff (di) Calcule la différence entre deux versions (permet de créer un correctif à appliquer sur une copie locale).
export Récupère une version sans métadonné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.
list (ls) Donne la liste des entrées d'un répertoire du dépôt.
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 (mv) Déclare le déplacement d'une ressource.
propdel (pd) Enlève la propriété du fichier.
propedit (pe) Édite la valeur d’une propriété.
propget (pg) Retourne la valeur d’une propriété.
proplist (pl) Donne une liste des propriétés.
propset (ps) Ajoute une propriété.
resolved Permet de déclarer qu'un conflit de modifications est résolu.
revert Revient à une version donnée d'une ressource. Les modifications locales sont écrasées.
status (st) Indique les changements qui ont été effectués.
switch (sw) Bascule sur une version/branche différente du dépôt.
update (up) Met à jour la copie locale existante depuis la dernière version disponible sur le dépôt.
unlock Retire un verrou.

Applications clients et serveur

[modifier | modifier le code]

Logiciels clients

[modifier | modifier le code]

L'accès au serveur subversion peut se faire en utilisant son protocole natif (port TCP par défaut : 3690), ou sur une connexion HTTP (le serveur doit alors prendre en charge les extensions WebDAV). Ces deux modes d'accès peuvent être sécurisés au niveau de la couche de transport (tunnel SSH ou HTTPS), ce qui est particulièrement recommandé dans le cas de serveurs sur un réseau public comme Internet.

Outre l'outil en ligne de commande, plusieurs logiciels pourvus d'interface graphique existent, sous forme d'exécutable standalone, mais également de plugins notamment pour EDI.

Articles détaillés : Comparaison des clients pour Subversion et Liste des clients pour Subversion.

Logiciels serveurs

[modifier | modifier le code]

Deux types de serveurs subversion sont disponibles actuellement[5] :

  • svnserve est un serveur léger qui utilise un protocole TCP/IP spécifique. Il est destiné aux petites installations ou lorsqu'un serveur complet Apache ne peut pas être utilisé. Il utilise par défaut 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 sécurisée SSH avec svnserve.
  • Apache HTTP Server[6]. Dans ce cas les dépôts sont rendus accessibles aux clients via l'installation d'un module WebDAV. L'utilisation du protocole SSL permet de sécuriser la transmission via l'Internet. Dans le cas d'un grand nombre d'utilisateurs, le protocole SSH peut être plus contraignant et moins sécurisé puisqu'il crée des utilisateurs de plein droit sur le serveur hôte. Un des avantages de la solution HTTP d'Apache malgré sa lourdeur d'installation ainsi que sa réactivité plus lente, par rapport à svnserve, est la possibilité de tracer les connexions des clients.

Logiciels annexes

[modifier | modifier le code]

Sur serveurs Windows, le logiciel VisualSvn Server[7] permet un packaging de Apache + Subversion avec un paramétrage automatique et une console d'administration graphique du serveur pour gérer les droits à partir d'un serveur ActiveDirectory…

Côté serveur

[modifier | modifier le code]
  • 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).
  • User friendly SVN[8], interface web permettant la configuration de dépôts Subversion (licence CeCILL).
  • Interface web Sventon.
  • CodingTeam, forge permettant de gérer subversion, possédant un wiki, un système de suivi des bugs et le support de Jabber.

Voir aussi

[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • Apache Subversion, sur Wikibooks

Liens externes

[modifier | modifier le code]
  • (en) Site officiel
  • (en) « Version Control with Subversion » (livre en libre accès écrit par les développeurs de Subversion)
  • Documentation de Subversion : Documentation en français

Notes et références

[modifier | modifier le code]
  1. ↑ « https://subversion.apache.org/docs/release-notes/release-history.html »
  2. ↑ (en) Daniel Sahlberg, « Apache Subversion 1.14.5 released », 9 décembre 2024 (consulté le 9 décembre 2024)
  3. ↑ « Subversion », sur directory.fsf.org, Free Software Directory, 2020 (consulté le 3 octobre 2023).
  4. ↑ (en) « Subversion Users List Archives », sur svn.haxx.se (consulté le 23 novembre 2022).
  5. ↑ « Gestion de versions avec Subversion ».
  6. ↑ « Apache Subversion », sur subversion.apache.org (consulté le 25 mai 2023).
  7. ↑ Site de www.visualsvn.com
  8. ↑ Site USVN
v · m
Logiciel de gestion de versions
Libres
Gestion locale
  • GNU RCS (1982)
  • GNU CSSC
Client-serveur
  • CVS (1990)
  • CVSNT (1992)
  • SVN (2000)
Décentralisé
  • GNU arch (2001)
  • Darcs (2002)
  • DCVS (2002)
  • SVK (2003)
  • Monotone (2003)
  • Codeville (2005)
  • Git (2005)
  • Mercurial (2005)
  • Bazaar (2005)
  • Fossil (2007)
  • Veracity (2011)
  • Pijul (2015)
Propriétaires
Gestion locale
  • SCCS (1972)
  • PVCS (1985)
Client-serveur
  • Rational ClearCase (1992)
  • CCC/Harvest (années 70)
  • CMVC (1994)
  • Visual SourceSafe (1994)
  • Perforce (1995)
  • AccuRev SCM (2002)
  • Sourceanywhere (2003)
  • Team Foundation Server (2005)
  • Rational Synergy (2006)
  • Rational Team Concert (en) (2008)
Décentralisé
  • BitKeeper (1998)
  • Plastic SCM (2007)
Concepts
  • Branche
  • Changelog
  • Commit
  • Codage différentiel
  • Comparaison de fichiers
  • Changeset
  • Dépôt
  • Fork
  • Merge (en)
  • Label
  • Trunk
v · m
Apache Software Foundation
Projets principaux
  • Accumulo
  • Ant
  • APR
  • Camel
  • Cassandra
  • Cocoon
  • Commons
  • Continuum
  • Cordova
  • Apache ZooKeeper
  • CouchDB
  • CXF
  • DB
  • Apache Drill
  • Flex
  • Flink
  • Geronimo
  • HBase
  • Hadoop
  • HTTP Server
  • JMeter
  • Karaf
  • Kafka
  • Logging
  • Lucene
  • Mahout
  • Maven
  • MyFaces
  • Nutch
  • OFBiz
  • OpenJPA
  • OpenOffice
  • mod_perl
  • POI
  • Portals
  • River
  • SpamAssassin
  • ServiceMix
  • Spark
  • Struts
  • Subversion
  • Tapestry
  • Thrift
  • Tika
  • Tomcat
  • Velocity
  • Web Services
  • Wicket
  • Xerces
  • Apache Beam
  • Apache Metron
  • Apache Fineract
  • Apache Ctakes
  • Apache RocketMQ
  • Apache Juneau
  • Apache Mesos
  • Apache Apex
  • Apache NiFi
  • Apache Pulsar
  • Apache Samza
  • Apache Sentry
  • Apache ORC
  • Apache Parquet
  • Apache Avro
  • Apache Airflow
ASF logo
Incubateur Apache
en cours d'incubation
  • Derby
  • Ivy
  • Apache Livy
  • Log4net
  • Solr
  • Apache Zeppelin
  • Apache Druid
  • Apache MXNet
  • Apache SINGA
  • Apache Superset
incubation finie
  • Wave
Autres projets
  • Axis
  • BCEL
Projets en fin de vie
  • Jakarta
  • iBATIS
  • Lenya
  • XAP
Personnalités
  • Brian Behlendorf
  • Roy Fielding
Divers
  • JServ
  • Licence Apache
  • mod_jk
  • .htaccess
  • icône décorative Portail des logiciels libres
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Apache_Subversion&oldid=212941987 ».
Catégories :
  • Logiciel écrit en C
  • Logiciel écrit en Python
  • Logiciel écrit en C++
  • Logiciel écrit en Java
  • Logiciel écrit en Ruby
  • Logiciel écrit en Perl
  • Système de gestion de versions
  • Logiciel libre sous licence Apache
  • Logiciel libre sous licence BSD
  • Logiciel pour Unix
  • Logiciel pour Windows
Catégories cachées :
  • Page utilisant P170
  • Page utilisant P178
  • Page utilisant P571
  • Page utilisant P348
  • Page utilisant P1324
  • Page utilisant P277
  • Logiciel catégorisé automatiquement par langage d'écriture
  • Page utilisant P306
  • Page utilisant des données de Wikidata à traduire de l'anglais
  • Page utilisant P1072
  • Page utilisant P1073
  • Page utilisant P31
  • Page utilisant P275
  • Page utilisant P856
  • Article utilisant une Infobox
  • Article contenant un appel à traduction en anglais
  • Portail:Logiciels libres/Articles liés
  • Portail:Logiciel/Articles liés
  • Portail:Informatique/Articles liés
  • Portail:Programmation informatique/Articles liés
  • Bon article en russe

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id