Vai al contenuto

Subversion

Da Wikipedia, l'enciclopedia libera.
Subversion
software
Logo
Logo
GenereControllo versione
SviluppatoreApache Software Foundation
Data prima versione20 ottobre 2000
Ultima versione1.14.5 (8 dicembre 2024)
Sistema operativoMultipiattaforma
LinguaggioPython
Java
C
Ruby
C++
Perl
Licenzalicenza Apache 2.0
(licenza libera)
Sito websubversion.apache.org/

Subversion (abbreviato in SVN) è un software di versionamento e controllo di versione prodotto da Apache Software Foundation e distribuito come software open source sotto licenza Apache. Progettato da CollabNet Inc. con lo scopo di essere il naturale successore di CVS, oramai considerato superato, gli sviluppatori lo usano per mantenere le versioni di un file, come ad esempio un codice sorgente, nella versione corrente e in tutta la storia del file stesso.

CollabNet ha fondato il progetto Subversion nel 2000 come sforzo per sviluppare un sistema di controllo versione open source che funzionasse in modo simile a CVS, ma che correggesse i bug e fornisse alcune funzionalità mancanti in CVS.[1] Entro il 2001, Subversion aveva progredito a sufficienza da ospitare il proprio codice sorgente,[1] e nel febbraio 2004 è stata rilasciata la versione 1.0.[2] Nel novembre 2009, Subversion è stato accettato nell'Apache Incubator: questo segnò l'inizio del processo per diventare un progetto standard di primo livello di Apache.[3] È diventato un progetto di primo livello di Apache il 17 febbraio 2010.[4]

Caratteristiche

[modifica | modifica wikitesto]
Kdesvn
TortoiseSVN
RabbitVCS

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 (distribuita il 29 settembre 2004) 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 il 21 maggio 2005) ha aggiunto le seguenti caratteristiche:

  • Lock dei file per i file inconciliabili
  • Completo autoversionamento WebDAV

La versione 1.3 è stata distribuita il 30 dicembre 2005.

La versione 1.4 è stata distribuita il 10 settembre 2006.

La versione 1.5 è stata distribuita il 19 giugno 2008.

La versione 1.6 è stata distribuita il 20 marzo 2009.

La versione 1.7 è stata distribuita il 11 ottobre 2011.

La versione 1.8 è stata distribuita il 18 giugno 2013.

La versione 1.9 è stata distribuita il 5 agosto 2015.

La versione 1.10 è stata distribuita il 13 aprile 2018.

La versione 1.11 (distribuita il 11 gennaio 2019) ha aggiunto le seguenti caratteristiche:

  • Migliorato il supporto dello "shelving" (cioè la possibilità di mettere da parte delle modifiche locali senza effettuare il commit). Funzionalità sperimentale.
  • Migliorato il risolutore interattivo dei conflitti.

Software correlato

[modifica | modifica wikitesto]

Le alternative

[modifica | modifica wikitesto]

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.[5]

Progetti correlati

[modifica | modifica wikitesto]
  • 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 (archiviato dall'url originale il 25 agosto 2011). 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. URL consultato il 23 giugno 2019 (archiviato dall'url originale il 12 agosto 2005). è una libreria per client di Subversion scritta interamente in Java.
  1. ^ a b What Is Subversion?, su svnbook.red-bean.com. URL consultato il 1º febbraio 2024.
  2. ^ subversion 1.0 is released [LWN.net], su lwn.net. URL consultato il 1º febbraio 2024.
  3. ^ Rubinstein, David, Subversion joins forces with Apache, su sdtimes.com, SD Times, 4 novembre 2009. URL consultato il 15 marzo 2012 (archiviato dall'url originale l'11 novembre 2009).
  4. ^ Subversion is now Apache Subversion, su subversion.wandisco.com, 18 febbraio 2010. URL consultato il 15 marzo 2012 (archiviato dall'url originale il 12 maggio 2011).
  5. ^ Mercurial support for Project Hosting on Google Code (archiviato dall'url originale il 19 luglio 2013). (Google Code Blog)

Voci correlate

[modifica | modifica wikitesto]

Altri progetti

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
Controllo di autoritàVIAF (EN177165689 · LCCN (ENn2006066336 · GND (DE4789161-0 · BNF (FRcb145987009 (data) · J9U (ENHE987009950610005171
  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero