Apache Subversion

Apache Subversion

FejlesztőApache Software Foundation
Első kiadás2000.10.20.
Legfrissebb stabil kiadás1.14.3 (stabil verzió, bug-fix release, long-term support release, 2023. december 28., https://dlcdn.apache.org/subversion/subversion-1.14.3.tar.gz)[1]
Programozási nyelvC
Operációs rendszerLinux, Windows
KategóriaVerziókezelés
LicencApache Licenc
Az Apache Subversion weboldala

A Subversion (SVN) egy verziókezelő rendszer, melyet a CollabNet Inc. indított 2000-ben. Fájlok aktuális verzióinak és történeteinek kezelésére használják, mint például forráskódok, weboldalak és dokumentációk. A célja, hogy a legkompatibilisebb utódja legyen a széles körben használt Concurrent Versions System (CVS)-nek.

A Subversion jól ismert a nyílt forráskód közösségben és számos nyílt forrású projektben használják is, mint például: Apache Software Foundation, KDE, GNOME, FreeBSD, Free Pascal, GCC, Python, Ruby, Samba és Mono. A SourceForge.net és a Tigris.org szintén nyújtanak Subversion szolgáltatást a nyílt forrású projektjeiknek. A Google Code és a BountySource rendszerek exkluzívan használják.

A Subversiont a vállalatok világában is használják. 2007-ben a Forrester Research egyik jelentése szerint, a Subversion volt az egyedüli vezető az Önálló Szoftver Konfiguráció Menedzsment (SCM) kategóriában és erős versenyző volt a Szoftver Konfiguráció és Változtatás Menedzsment (SCCM) kategóriában.[2]

A Subversiont Apache Licenc alatt terjesztik, szabad szoftverré téve azt.

Története

2000-ben indult a Subversion projekt azzal a céllal, hogy létrejöjjön egy szabad verziókezelő szoftver, amely nagyon hasonlóan működik a Cvs-hez, de kiküszöböli annak hibáit és új funkciókkal is gazdagabb elődjénél.

2001-re a Subversion odáig fejlődött, hogy alkalmassá vált a saját forráskódjának a verziókezelésére.[3]

2004-ben látott napvilágot az 1.0.0 verzió.[4]

2009 novemberében a Subversion bekerült az Apache inkubátor programba, elindítva azt a folyamatot melynek végén - 2010 február 17-én - felső szintű Apache projektté vált.[5]

Jellemzők

  • Commitálás valódi atomi műveletként (máskülönben a megszakadt commit műveletek a tárolóban inkonzisztenciát, hibát okoznak).
  • Az átnevezett/másolt/mozgatott/törölt fájlok megtartják a teljes változástörténetük.
  • A rendszer könyvtárak, átnevezések és fájl metaadatok verziókövetését is kezeli (de nem időbélyegre). A felhasználók gyorsan mozgathatnak és/vagy másolhatnak úgy egész könyvtár-fákat, hogy közben megmarad a teljes változástörténetük.
  • Szimbolikus linkek verziókövetése.
  • Beépített támogatás bináris fájlokhoz, helytakarékos 'binary-diff' tárolással
  • Apache HTTP Server webszerver, WebDAV/Delta-V protokoll. Van egy önálló szerver folyamat, az svnserve, ami saját protokollt használ, TCP/IP felett.
  • Az elágaztatások (branching) és címkék (tagging) erőforrásigénye kicsi, független a fájl méretétől (bár a Subversion maga nem tesz különbséget címke, elágazás, vagy könyvtár közt)
  • Alapból kliens/szerver, réteges könyvtárszerkezet.
  • A kliens/szerver protokoll a különbségeket (diff) elküldi mindkét irányba...
  • Az erőforrásigény a változás mértékével arányos, nem pedig az adat méretével.
  • Formázható kimenet, beleértve az XML log kimenetet is.
  • Nyílt forráskódú - Apache Licenc a tervezett 1.7-es verzióban, az előzetes verziók az 1.1-es verziójú Apache Software Licenc alatt állnak.
  • Többnyelvű rendszerüzenetek.
  • Fájl zárolás összefésülhetetlen fájloknál ("reserved checkouts").
  • Elérési út alapú jogosultság ellenőrzés.
  • Nyelvi kötések PHP, Python, Perl és Java nyelvekhez.
  • Teljes MIME támogatás - a felhasználók megtekinthetik és módosíthatják a MIME típusát bármely fájlnak, miközben a szoftver tudja, hogy melyik MIME-típusokhoz lehet a különbségeket (diff) tárolni.

Leágaztatás és címkézés

A Subversion a Perforce "inter-file branching" modelljét használja, az elágazások (branch) és címkék (tag) kezeléséhez. Egy leágazás egy elkülönített útja a fejlesztésnek. A címkézés magába foglalja a tároló (repository) pillanatképének mentését, ami - egy leágazástól eltérően - valószínűleg nem fog módosulni...

A rendszer egy új leágazást vagy címkét az operációs rendszer natív mechanizmusa helyett az 'svn copy' parancs használatával hoz létre. A Subversion nem készít egy teljesen új fájl-verziót a tárolóban. A régi- és új verziókat összekapcsolja, a fájltörténetét pedig megőrzi mindkét fájlnak. A másolt verziók csak kevés helyet foglalnak a tárolóban, mivel a Subversion csak az eredeti fájloktól való eltéréseket menti el.

Minden ágban mindegyik verzió megőrzi egy fájl történetét a másolás pillanatáig, és minden egyes módosítást is utána. A változtatásokat átvezethetjük (merge) a gyökérbe (trunk), vagy leágazások között. A Subversion számára az egyetlen különbség címkék és leágazások között, hogy a változásokat nem kell ellenőriznie a címkézésnél... A különbség képző algoritmusnak köszönhötően, címkék és leágazások létrehozása nagyon kevés helyet igényelnek a tárolóban.

Egy egyszerű Subversion projekt képe

Jegyzetek

  1. Nathan Hartman: [ANNOUNCE Apache Subversion 1.14.3 released] (angol nyelven), 2023. december 29. (Hozzáférés: 2023. december 29.)
  2. The Forrester Wave: Software Change and Configuration Management, Q2 2007. Forrester Research
  3. Version Control with Subversion version 1.4 (részlet). (Hozzáférés: 2009. június 15.)
  4. Subversion Release History. [2009. április 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. június 15.)
  5. Archivált másolat. [2011. május 12-i dátummal az eredetiből archiválva]. (Hozzáférés: 2012. március 15.)
Sablon:Apache
  • m
  • v
  • sz
Felső szintű projektek
Abdera · Accumulo · ActiveMQ · Ambari  · Ant · Aries · Apache HTTP Server · APR · Avro · Axis · Axis2 · Bloodhound · Buildr · Camel · Cassandra · Cayenne · Chemistry · Click · CloudStack · Cocoon · Continuum · Cordova · CouchDB · cTAKES · CXF · Deltacloud · Derby · Directory · Empire-db · Felix · Flex · Forrest · Geronimo · Gora · Gump · Hadoop · Hama · HBase · Hive · HBase · Isis · Jackrabbit · James · JMeter · Karaf · Lenya · Mahout · Marmotta · Maven · MINA · mod_perl · MyFaces · ODE · OFBiz · OpenEJB · OpenJPA · OpenNLP · OpenOffice · PDFBox · Phoenix · POI · Pivot · Qpid · River · Roller · Samza · ServiceMix · Shindig · Shiro · Sling · Spark · Stanbol · Storm · SpamAssassin · Struts · Subversion · Sqoop · Tapestry · Tcl · Thrift · Tiles · Tomcat · Trafficserver · Turbine · Tuscany · UIMA · Velocity · Wave · Wicket · Wink · Xalan · Xerces · XMLBeans
Commons projektek
BCEL · BSF · Daemon · Jelly
Lucene projektek
Lucene Java · Lucene.Net · Nutch · Solr
Hadoop projektek
HDFS · HBase · Hive · Pig · Spark · ZooKeeper
Egyéb projektek
Chainsaw · Batik · FOP · Log4j · XAP · Log4Net · Ivy
Incubator projektek
ACE · Composer · JSPWiki · XAP
Nyugdíjazott projektek
AxKit · Beehive · Bluesky · Cactus · Excalibur · Jakarta · Harmony · HiveMind · Slide · Shale · stdcxx · iBATIS · Jakarta
Licenc sztenderdek
Category Apache weboldala · Category Kategória · Commons pageCommons
  • Informatika Informatikai portál • összefoglaló, színes tartalomajánló lap