Apache Subversion
| Subversion | |
| Fejlesztő | Apache Software Foundation |
| Első kiadás | 2000.10.20. |
| Legfrissebb stabil kiadás | 1.7.1 (2011. október 23.) +/- |
| Legfrissebb fejlesztői kiadás | ismeretlen +/- |
| Programozási nyelv | C |
| Operációs rendszer | Linux, Windows |
| Kategória | Verziókezelés |
| Licenc | Apache Licenc |
| Weboldal | http://subversion.tigris.org/ http://subversion.apache.org/ |
A Subversion (SVN) egy verziókezelő rendszer, melyet a CollabNet Inc. indított 2000-ben. Fájlok jelenlegi 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 az open source közösségben és sok 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 egy erős versenyző volt a Szoftver Konfiguráció és Változtatás Menedzsment (SCCM) kategóriában.[1]
A Subversiont Apache Licenc alatt terjesztik, szabad szoftverré téve azt.
Tartalomjegyzék |
[szerkesztés] 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.[2]
2004-ben látott napvilágot az 1.0.0 verzió.[3]
2009 novemberében a Subversion bekerült az Apache Incubator programba, elindítva azt a folyamatot melynek végén - 2010 február 17-én - felső szintű Apache projektté vált.[4]
[szerkesztés] Jellemzők
- Commitelés valódi atomic műveletként (máskülönben a megszakadt commit műveletek a repository-ban inkonzisztenciát, hibát okznak).
- 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óval
- 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 jelölések (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 jelölés, 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 License a tervezett 1.7-es verzióban, az előzetes verziók a 1.1-es verziójú Apache Software License 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.
[szerkesztés] 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.
[szerkesztés] Források és jegyzetek
|
|||||||||||||||||||||||||||||

