Subversion
A HupWiki-ből...
Verziókövető rendszer, gyakorlatilag a CVS nagykorú változatának tekinthető. Mi is volt a baj a CVS-sel? Például a következők:
- Nem volt benne atomi kommit. Ez több esetben is galibát okozhatott: két programozó, ha majdnem egyszerre indította meg a kommittálást, az egymással esetleg ütköző módosítások közül csak a később beérkező élte túl a dolgot, és erről egyik emberi fél sem szerzett tudomást. Kommittálás közben meghaló hálózati kapcsolat is inkonzisztens állapotban hagyhatta a kódtárat (repository).
- Biztonsági gondok.
- Az eredeti CVS pár shell script-ként indult, a hálózatikapcsolat-kezelés (pserver) is úgy nőtt rá később.
- Ágak (branch) és címkék (tag) kezelése nem túl elegáns.
A sok toldozás miatt a CVS az 1990-es évek végére elérte azt a fájdalomküszöböt, amikor páran azt mondták, hogy "elég volt", és teljesen elölről nekiálltak valami átgondoltabbat csinálni. Ez lett a Subversion (röviden SVN), ami a következő jó tulajdonságokkal büszkélkedhet:
- Szabványos a hálózati protokollja (például WebDAV+DeltaV). Ha valaki nem bízik a Subversion kódolóiban, pár RFC elolvasása után összehozhat egy saját klienst és ugyanúgy elérhet minden Subversion kódtárat.
- Ágak és címkék mind egységesen a másolás paranccsal megoldva, nincs vacakolás.
- Atomi kommit, vagyis nagyobb adatbiztonság (a megbízhatóság, nem a titkosság értelmében).
- A neve jó szóvicc. Az egyik jelentése ugye "sub"+"version"="al"+"változat". A másikhoz érdemes visszaemlékezni az átkos 40 évre: "A szocializmus ellenségei felforgató tevékenységükkel akarták megakadályozni a népet az osztályharc győzelemre vitelében", stb. Ebből a "felforgató tevékenység" angolul "subversion".
Pár kívánnivaló azért még ezzel a szoftverrel is akad:
- Nincsenek benne teljesen elosztott kódtárak (irigykedjünk a BitKeeper-re -- de azért az arch már egy lépés ebbe az irányba).
- Tudomásom szerint nincsenek benne mindenfelé ellenőrzőösszegek (megintcsak a BitKeeper említhető jó példaként), és egyesek pedzegetik a "minden kommit csak nyilvános kulcsú azonosítás után fogadható el" hiányát is (ebben meg az OpenCM a király).
GUI, vagyis grafikus felületek
Linuxon a legelterjedtebb GUI a RapidSVN, míg Windows alapú rendszereken a TortoiseSVN ajanlandó.