CVS | |
---|---|
Típusú | központi verziókezelő rendszer [d] |
Fejlesztő | A CVS csapata [d] |
Beírva | C [4] |
Operációs rendszer | Unix-szerű operációs rendszer |
Első kiadás | 1990. november 19. [1] |
legújabb verzió | 1.11.23 [2] (2008. május 8. ) |
béta verzió |
|
Engedély | GNU General Public License, 1.0 vagy újabb verzió [d] [5] |
Weboldal | nongnu.org/cvs/ ( angol) |
A CVS ( eng. Concurrent Versions System – szimultán verziók rendszere ) egy központi verziókezelő rendszer , amely az 1990-es években és a 2000-es évek elején volt népszerű. Megőrzi egy adott fájlkészlet módosításának előzményeit, általában a szoftverforráskódot , és megkönnyíti az emberek egy csoportja számára, hogy együtt dolgozzanak ugyanazon a projekten. Terjesztve a GNU GPL feltételei szerint .
A 2000-es évek vége óta a rendszer aktív fejlesztése megszűnt (a legújabb verzió 2008 májusában jelent meg ), a forráskódon csak kisebb korrekciókat hajtanak végre [6] . Elavultnak tekinthető [7] [8] [9] rendszer.
A CVS kliens-szerver architektúrát használ . Az ügyfél és a kiszolgáló általában helyi hálózaton vagy az interneten keresztül csatlakozik , de futhat ugyanazon a gépen is, ha meg szeretné őrizni egy helyi projekt verzióelőzményét. A kiszolgálószoftver általában Unixon fut (bár van CVS-kiszolgáló a Windows NT -hez ), míg a CVS-kliensek minden népszerű operációs rendszeren elérhetők .
A szerver a projekt aktuális verzióit és a változások előzményeit egy speciális tárolóban ( repository ) tárolja, a kliens pedig csatlakozik hozzá, hogy megszerezze a számára szükséges verziót, vagy újat írjon. Miután megkapta a szükséges verziót a szervertől ( check-out ), a kliens elkészíti a projekt helyi másolatát (vagy annak egy részét) - az úgynevezett munkapéldányt. A szükséges módosítások elvégzése után a munkapéldány fájljain azok elküldésre kerülnek a szerverre ( check-in ).
Egyszerre több ügyfél is dolgozhat egy projekt másolatán. Amikor elküldik az eredményeket, a kiszolgáló megpróbálja egyesíteni a változtatásokat a lerakatban. Ha ez nem sikerül, például amikor két kliens ugyanazokat a sorokat változtatta meg egy adott fájlban, a szerver nem fogadja el a legutóbbi bejelentkezéskor végrehajtott változtatásokat, és jelenti az ütközést az ügyfélnek, amit manuálisan kell kijavítani. Ha a bejelentkezés sikeres, akkor az összes érintett fájl verziószáma automatikusan növekszik, és a szerver a megjegyzést, a dátumot és a felhasználónevet beírja a naplójába.
Az ügyfelek összehasonlíthatják a fájlok különböző verzióit, kérhetik a teljes változástörténetet, vagy egy adott dátum vagy verziószám alapján egy projekt történeti képét kaphatják meg. Sok nyílt forráskódú projekt lehetővé teszi az anonim olvasási hozzáférést, amelyet először az OpenBSD -ben vezettek be . Ez azt jelenti, hogy az ügyfelek jelszó nélkül lekérdezhetik és összehasonlíthatják a fájlverziókat; csak az adattárban lévő adatokat módosító bejelentkezési műveletekhez kell jelszó.
Az ügyfelek az update paranccsal is szinkronizálhatják a projekt helyi példányát a kiszolgálón lévő információkkal , így elkerülhető a teljes projekt újbóli letöltése.
A CVS tartalmazhat egy projekt különböző ágait is. Például egy projekt stabil verziója lehet egyetlen ágon , amely csak hibajavításokat tartalmaz, míg az aktív fejlesztés egy párhuzamos ágon lehet, amely jelentős fejlesztéseket vagy változtatásokat tartalmaz a stabil verzió megjelenése óta.
A CVS delta tömörítést használ ugyanannak a fájlnak a különböző verzióinak hatékony tárolására.
A CVS-ben a projektek modulokként vannak tárolva, a modul pedig projektfájlok halmaza. Egy CVS szerver több modult is kiszolgálhat; minden modul a tárolóban van tárolva. A CVS klienssel beszerzett modul helyi másolatát munkapéldánynak nevezzük.
check-out művelet - a teljes modul kibontása a CVS-ből és munkapéldány létrehozása; bejelentkezés - helyi változtatások végrehajtása a tárhelyen. A frissítési művelet a helyi projektet frissíti a CVS-ről.
Branch ( angol fiók ) - a projektmódosítás független iránya, amely számos egymást követő verziót tartalmazhat; egy ág más ágakkal párhuzamosan fejlődhet; a fő ág ( angol main trunk vagy HEAD ) mindig ott van.
A revízió ( revision ) egyetlen fájl egyik verziója.
Az egész termék egyik verziója egy "kiadás" ( kiadás , a "verzió" kifejezést egyáltalán nem használják a CVS-ben). A verzióhoz speciális címke ( tag ) kapcsolódik , egy tag külön fájlhoz is rendelhető, de erre ritkán kerül sor, általában bizonyos revíziók (verziók) fájlgyűjteményét jelölik címkével.
A CVS egy korábbi verzióvezérlő rendszer , a Revision Control System (RCS) továbbfejlesztése, amelyet továbbra is egyedi fájlokkal, de nem teljes projektekkel dolgoznak. Dick Grun [10] egy rövid történelmi hátteret adott a CVS-ről az oldalán:
A CVS-t azért hoztuk létre, hogy két diákommal együtt dolgozhassak az ACK C - fordítón (Amsterdam Compiler Kit). Hárman szinte összeegyeztethetetlen időbeosztással rendelkeztünk (egy diáknak állandó munkahelye volt, a másiknak rendszertelenül jelent meg, és csak esténként tudtam a projekten dolgozni). Projektjük 1984 júliusától 1985 augusztusáig tartott . A CVS-t eredetileg cmt -nek hívták , mivel lehetővé tette a változatok független véglegesítését (az angol commit - fix, commit szóból).
A kód először a mod.sources konferencián látott napvilágot 1986. június 23- án .
A kódot, amely végül a CVS jelenlegi verziója lett, Brian Berlinerrel indították el 1989 áprilisában, Jeff Polk és mások későbbi kiegészítésével. Brian Berliner írt [11] egy dokumentumot, amely felvázolja azokat a fejlesztéseket, amelyeket a CVS a Prisma, a SunOS kernel külső fejlesztője által végzett belső használata során szerzett , majd Brian GPL alatt nyilvánosságra hozta .
A projektet önkéntesekből álló csoport támogatja. Figyelemre méltó, hogy a CVS for Microsoft Windows verziója egy külön CVSNT projektre bontva aktívan bővíti a rendszer képességeit, még a változtatásokat is visszahordja Unixra CVSNT néven.
A CVS és a GNU projekt kapcsolata kétértelmű lehet: az egyik oldalon a GNU oldal "GNU csomagként" terjeszti a programot, a másik oldalon pedig a CVS az "egy másik GPL projekt" alatt szerepel. Az FTP-kiszolgálón a program a /non-gnu/ könyvtárban található .
Verzióvezérlő rendszerek ( kategória ) | |
---|---|
Csak helyi | |
Kliens-szerver | |
Megosztott | |
URI- sémák | |
---|---|
Hivatalos | |
nem hivatalos |