Subversion: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 3 fonte/i e segnalazione di 0 link interrotto/i.) #IABot (v2.0.9.5
 
(155 versioni intermedie di 93 utenti non mostrate)
Riga 1:
{{Software
'''Subversion''' (noto anche come '''svn''', che è il nome del suo ''client'' a riga di comando) è un sistema di [[controllo versione]] progettato specificamente per sostituire [[Concurrent_Versions_System|CVS]], che è considerato avere troppe carenze.
[[cs:|Nome = Subversion]]
|Screenshot =
|Didascalia =
|UltimaVersioneBeta =
|DataUltimaVersioneBeta =
|SistemaOperativo = multipiattaforma
|Linguaggio =
|Genere = controllo versione
|Licenza =
|SoftwareLibero =
|Lingua =
}}
'''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 [[Concurrent Versions System|CVS]], oramai considerato superato, gli [[programmatore informatico|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.
 
== CaratteristicheStoria ==
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 [[Concurrent Versions System|CVS]], ma che correggesse i bug e fornisse alcune funzionalità mancanti in CVS.<ref name=":0">{{Cita web|url=https://svnbook.red-bean.com/en/1.7/svn.intro.whatis.html#svn.intro.history|titolo=What Is Subversion?|sito=svnbook.red-bean.com|accesso=1º febbraio 2024}}</ref> Entro il 2001, Subversion aveva progredito a sufficienza da ospitare il proprio codice sorgente,<ref name=":0" /> e nel febbraio 2004 è stata rilasciata la versione 1.0.<ref>{{Cita web|url=https://lwn.net/Articles/72498/|titolo=subversion 1.0 is released [LWN.net]|sito=lwn.net|accesso=1º febbraio 2024}}</ref> 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.<ref name="SDT2011">{{cita web|url=http://www.sdtimes.com/link/33886|titolo=Subversion joins forces with Apache|autore=Rubinstein, David|editore=SD Times|data=4 novembre 2009|accesso=15 marzo 2012|urlarchivio=https://web.archive.org/web/20091111000653/http://www.sdtimes.com/SUBVERSION_JOINS_FORCES_WITH_APACHE/By_David_Rubinstein/About_APACHE_and_SUBVERSION/33886}}</ref> È diventato un progetto di primo livello di Apache il 17 febbraio 2010.<ref>{{cita web|url=http://subversion.wandisco.com/component/content/article/1/43.html|urlarchivio=https://web.archive.org/web/20110512171259/http://subversion.wandisco.com/component/content/article/1/43.html|titolo=Subversion is now Apache Subversion|data=18 febbraio 2010|accesso=15 marzo 2012}}</ref>
 
== Caratteristiche ==
La '''versione 1.0''' di Subversion (rilasciata il [[23 febbraio]] [[2004]]) offre le seguenti caratteristiche:
[[File:Kdesvn.png|thumb|upright=1.1|[[Kdesvn]]]]
[[File:TortoiseSVN.png|thumb|upright=1.1|[[TortoiseSVN]]]]
[[File:RabbitVCS_screenshot.png|thumb|upright=1.1|[[RabbitVCS]]]]
La '''versione 1.0''' di Subversion (rilasciatadistribuita il [[23 febbraio]] [[2004]]) offre le seguenti caratteristiche:
 
* Comprende gran parte delle caratteristiche di CVS.
* Le directory, i cambi di nome, e i [[metadato|metadati]] dei file sono sotto controllo versione.
* Le ''commit'' sono vere [[Transazione (basi di dati)|transazioni]] atomiche. Una commit interrotta non lascia il [[repository]] in uno stato di [[incoerenza]].
* Come server centralizzato si può usare il [[server Web]] [[Apache HTTP Server|Apache]], tramite il protocollo [[WebDAV]]/DeltaV, oppure un server indipendente che usa un [[protocollo di comunicazione|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 binario|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 HTTP Server|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''' (rilasciatadistribuita nelil 21 maggio 2005) ha aggiunto le seguenti caratteristiche:
 
* Lock dei file per i file inconciliabili
* Completo autoversionamento [[Web-based Distributed Authoring and Versioning|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 ==
 
=== I ''Clientclient'' ===
* [[Kdesvn]] è un client [[Interfaccia grafica|GUI]] per [[Linux]] ({{cita testo|url=http://kdesvn.alwins-world.de/trac.fcgi|titolo=link|urlarchivio=https://web.archive.org/web/20080423201114/http://kdesvn.alwins-world.de/trac.fcgi }}).
* [http://rapidsvn.tigris.org/ RapidSVN] è un client GUI per Microsoft Windows o Linux, scritto in C++ usando il framework wxWidgets.
* [[RapidSVN]] è un client GUI per [[Microsoft Windows]] o [[Linux]], scritto in [[C++]] usando il [[framework]] [[wxWidgets]] ({{cita testo|url=http://rapidsvn.tigris.org/|titolo=link|urlarchivio=https://web.archive.org/web/20100209042421/http://rapidsvn.tigris.org/ }}).
* [http://esvn.umputun.com/ eSvn] è un client basato su Qt.
* [http://jsvn.alternatecomputing.com/ JSVN[eSvn]] è un client basato su Java[[Qt Swing(toolkit)|Qt]] ({{cita testo|url=http://esvn.umputun.com/|titolo=link}}).
* [[JSVN]] è un client basato su [[Swing (Java)|Java Swing]] ({{cita testo|url=http://jsvn.alternatecomputing.com/|titolo=link}}).
* [http://tortoisesvn.tigris.org/ TortoiseSVN] è un'estensione della shell di [[Microsoft Windows]] (cioè di Windows Explorer).
* [[TortoiseSVN]] è un'estensione della shell di [[Microsoft Windows]] ({{cita testo|url=http://tortoisesvn.tigris.org/|titolo=link|accesso=19 luglio 2020|dataarchivio=7 aprile 2006|urlarchivio=https://web.archive.org/web/20060407095620/http://tortoisesvn.tigris.org/|urlmorto=sì}}).
* [http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ svnX] è un client GUI per [[Mac OS X]].
* [[RabbitVCS]] è un'estensione della shell di [[Linux]].
* AnkhSVN è ''addin'' per Microsoft Visual Studio .NET. Permette di eseguire le più comuni operazioni di Subversion direttamente dall'interno dell'IDE VS.NET.
* [[svnX]] è un client GUI per [[macOS]] ({{cita testo|url=http://www.lachoseinteractive.net/en/community/subversion/svnx/features/|titolo=link|accesso=20 giugno 2020|dataarchivio=18 giugno 2016|urlarchivio=https://web.archive.org/web/20160618161540/http://www.lachoseinteractive.net/en/community/subversion/svnx/features/|urlmorto=sì}}).
* [[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 [[macOS]], dotato di un'interfaccia coerente con il Sistema Operativo [[Apple]] ({{cita testo|url=http://www.versionsapp.com/|titolo=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 [[Concurrent Versions System|CVS]], che è il predecessore di Subversion, meritano una citazione anche [[Git (software)|git]], creato da [[Linus Torvalds]], e [[Mercurial]] ({{cita testo|url=http://www.selenic.com/mercurial/wiki/|titolo=link}}), scelto da [[Google]] per affiancare SVN in [[Google Code]].<ref>{{cita testo|url=https://google-code-updates.blogspot.com/2009/04/mercurial-support-for-project-hosting.html|titolo=Mercurial support for Project Hosting on Google Code|urlarchivio=https://web.archive.org/web/20130719075544/http://google-code-updates.blogspot.com/2009/04/mercurial-support-for-project-hosting.html }} (Google Code Blog)</ref>
Ci sono molti altri sistemi di controllo versione, alcuni dei quali mirano a soddisfare gli stessi obiettivi di Subversion. Maggiori informazioni riguardo a tali obiettivi si trovano a [[:en:Revision control]] e un'ampio elenco di sistemi a [[:en::Category:Version control systems]].
 
=== Progetti correlati ===
* Il progetto open source {{cita testo|url=http://trac.edgewall.com/|titolo=Trac}} integra Subversion, un issue tracker, e la funzionalità [[Wiki]] in una sola interfaccia-utente basata su Web.
* Il progetto open source [{{cita testo|url=http://subclipse.tigris.org |titolo=Subclipse]|urlarchivio=https://web.archive.org/web/20110825210658/http://subclipse.tigris.org/ }} integra Subversion in [[Eclipse (informatica)|Eclipse]].
* Il progetto open source [[SVK (software)|SVK]] è un sistema di [[controllo versione decentralizzato]] scritto in [[Perl]], che permette operativitàdi operare senza connessione a offlineInternet e fornisce algoritmi avanzati per la riconciliazione (merging).
* Il progetto open source [{{cita testo|url=http://tmate.org/svn/ |titolo=JavaSVN]|accesso=23 giugno 2019|dataarchivio=12 agosto 2005|urlarchivio=https://web.archive.org/web/20050812004536/http://tmate.org/svn/|urlmorto=sì}} è una libreria per client di Subversion scritta interamente in Java.
 
== Note ==
<references/>
 
== Voci correlate ==
* [[Apache Software Foundation]]
* [[Controllo versione]]
 
=== Altri progetti interessanti ===
{{interprogetto}}
* 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 [http://subclipse.tigris.org Subclipse] integra Subversion in [[Eclipse]].
* Il progetto open source SVK è un sistema di controllo versione decentralizzato scritto in [[Perl]], che permette operatività offline e fornisce algoritmi avanzati per la riconciliazione (merging).
* Il progetto open source [http://tmate.org/svn/ JavaSVN] è una libreria per client di Subversion scritta interamente in Java.
 
== Collegamenti esterni ==
Per un elenco parziale dei progetti che usano SVN, vedere [[:en:Category:Projects using Subversion]].
* {{Collegamenti esterni}}
* {{cita web|url=http://svnbook.red-bean.com/|titolo=''Controllo di Versione con Subversion''}}
 
{{Apache}}
[[Categoria:Informatica]]
{{Controllo di autorità}}
[[Categoria:Software]]
{{portale|software libero}}
 
[[Categoria:Software di controllo versione liberi]]
[[cs:Subversion]]
[[de:Subversion (Software)]]
[[en:Subversion (software)]]
[[es:Subversion]]
[[fr:Subversion (logiciel)]]
[[ja:Subversion]]
[[ko:Subversion]]
[[lt:Subversion]]
[[no:Subversion]]
[[pl:Subversion]]
[[pt:Subversion]]
[[ru:Subversion]]
[[sk:Subversion]]
[[zh:Subversion]]