Subversion
Subversion (noto anche come svn, che è il nome del suo client a riga di comando) è un sistema di controllo versione per software.
Subversion software | |
---|---|
![]() | |
Genere | Controllo versione |
Sviluppatore | Apache Software Foundation |
Data prima versione | 20 ottobre 2000 |
Ultima versione | 1.14.5 (8 dicembre 2024) |
Sistema operativo | Multipiattaforma |
Linguaggio | Python Java C Ruby C++ Perl |
Licenza | Apache License (licenza libera) |
Sito web | subversion.apache.org/ |
È stato progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato.
Caratteristiche
La versione 1.0 di Subversion (distribuita il 23 febbraio 2004) offre le seguenti caratteristiche:
- Comprende gran parte delle caratteristiche di CVS.
- Le directory, i cambi di nome, e i metadati dei file sono sotto controllo versione.
- Le commit sono vere transazioni atomiche. Una commit interrotta non lascia il repository in uno stato di incoerenza.
- Come server centralizzato si può usare il server Web Apache, tramite il protocollo WebDAV/DeltaV, oppure un server indipendente che usa un protocollo personalizzato basato su TCP/IP.
- Il branching e il tagging sono operazioni veloci, che richiedono un tempo indipendente dalla dimensione dei dati.
- Il progetto è nativamente client/server, ed è basato su una libreria stratificata.
- Il protocollo client/server invia solo le differenze in entrambe le direzioni, e quindi i costi di comunicazione sono proporzionali alla dimensione delle modifiche, non alla dimensione dei dati.
- I file binari sono gestiti efficientemente.
- L'output dei comandi è analizzabile da un programma esterno, e viene fornito un log opzionale in XML.
- La licenza è Open Source, simile a quella di Apache.
La versione 1.1 ha aggiunto le seguenti caratteristiche, fra le altre:
- I messaggi dei programmi sono internazionalizzati.
- I link simbolici sono sotto controllo versione.
- Viene supportato un nuovo formato opzionale del repository, FSFS, che non fa uso di un gestore di database, ma memorizza le revisioni direttamente nel file system.
La versione 1.2 (distribuita nel maggio 2005) ha aggiunto le seguenti caratteristiche:
- Lock dei file per i file inconciliabili
- Completo autoversionamento WebDAV
Software correlato
I client
- Kdesvn è un client GUI per Linux (link).
- RapidSVN è un client GUI per Microsoft Windows o Linux, scritto in C++ usando il framework wxWidgets (link).
- eSvn è un client basato su Qt (link).
- JSVN è un client basato su Java Swing (link).
- TortoiseSVN è un'estensione della shell di Microsoft Windows (link).
- RabbitVCS è un'estensione della shell di Linux.
- svnX è un client GUI per Mac OS X (link).
- AnkhSVN è addin per Microsoft Visual Studio .NET. Permette di eseguire le più comuni operazioni di Subversion direttamente dall'interno dell'IDE VS.NET.
- Versions è un nuovo client per Mac OS X, dotato di un'interfaccia coerente con il Sistema Operativo Apple (link).
Le alternative
Ci sono molti altri sistemi di controllo versione, alcuni dei quali mirano a soddisfare gli stessi obiettivi di Subversion. Oltre al già citato CVS, che è il predecessore di Subversion, meritano una citazione anche git, creato da Linus Torvalds, e Mercurial (link), scelto da Google per affiancare SVN in Google Code.[1]
Progetti correlati
- Il progetto open source Trac integra Subversion, un issue tracker, e la funzionalità Wiki in una sola interfaccia-utente basata su Web.
- Il progetto open source Subclipse integra Subversion in Eclipse.
- Il progetto open source SVK è un sistema di controllo versione decentralizzato scritto in Perl, che permette di operare senza connessione a Internet e fornisce algoritmi avanzati per la riconciliazione (merging).
- Il progetto open source JavaSVN è una libreria per client di Subversion scritta interamente in Java.
Note
- ^ Mercurial support for Project Hosting on Google Code (Google Code Blog)
Voci correlate
Altri progetti
- Wikimedia Commons contiene immagini o altri file su Subversion