CVS

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. ) ( 2008-05-08 )
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.

Alapfogalmak

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.

Alapfogalmak

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.

Előzmények és állapot

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ó .

Hátrányok

Jegyzetek

  1. A /ccvs/NEWS tartalma
  2. HÍREK 1.11.23 . Az eredetiből archiválva : 2021. december 27. Letöltve: 2022. április 14.
  3. Price D.R. Concurrent Versions System - Hírek A CVS szolgáltatás 1.12.13-as verziója megjelent!  (angol) - 2005.
  4. A cvs nyílt forráskódú projekt az Open Hubon: Nyelvek oldala - 2006.
  5. https://cvs.savannah.nongnu.org/viewvc/cvs/ccvs/README?view=markup
  6. [https://web.archive.org/web/20181116130105/http://cvs.savannah.gnu.org/viewvc/cvs/ccvs/ChangeLog Archiválva : 2018. november 16. a Wayback Machine -nél [források] Napló / cvs/ccvs/ChangeLog]
  7. Megjelent a CVS, a Subversion pedig archiválva : 2010. március 25.  (angol) Red Hat magazin, 2005. augusztus
  8. CVS - sourceforge Archiválva : 2010. június 10.
  9. CVS - verziókezelő rendszer . Letöltve: 2009. július 25. Az eredetiből archiválva : 2010. július 8..
  10. Concurrent Versions System CVS . Letöltve: 2005. január 12. Az eredetiből archiválva : 2006. december 7..
  11. CiteSeerX - CVS II: Parallelizing Software Development . Letöltve: 2005. január 12. Az eredetiből archiválva : 2007. június 5..
  12. CVS értékelés a Mercurial könyvben Archivált 2013. szeptember 7-én a Wayback Machine -nél .

Linkek