[go: up one dir, main page]

Ugrás a tartalomhoz

Cvs

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Zafir (vitalap | szerkesztései) 2014. augusztus 25., 19:09-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól. (Kapcsolat a GNU-val)
Concurrent Versions System
FejlesztőThe CVS Team
Első kiadás1990-11-19
Legfrissebb stabil kiadás1.11.23 (stabil verzió, 2008. május 8.)[1][2]
Legfrissebb fejlesztői kiadás1.12.13 (feature release, béta-verzió, 2005. szeptember 28.)[3]
Programozási nyelvC
Operációs rendszerUnix-szerű, Windows
Kategóriaverziókezelő szoftver
LicencGNU General Public License
A Concurrent Versions System weboldala

A szócikk egy része még lefordítandó. Segíts te is a fordításban!

A Concurrent Versions System ( magyarul Konkurens verziók rendszere) röviden (CVS), ismert még Concurrent Versioning System (magyarul Konkunrens verziókezelő rendszer), egy kliens-szerver szabad szoftver verziókezelő rendszer a szoftverfejlesztés területén. Egy verziókezelő rendszer nyomon követ adott fájlok egy halmazán végzett minden munkát és minden változást, és lehetővé teszi számos fejlesztő számára (potenciálisan egymástól függetlenül térben és időben) az együttműködést. Dick Grune fejlesztette ki a CVS-t shell script-ek sorozataként 1986 Júliusában[4].

Mindemellett, a kereskedelmi szoftverfejlesztők számára is a CVS népszerűvé vált a GNU General Public License alatt kiadott szoftver a nyílt forráskódú szoftver világgal együtt. Habár volt rendszeres fejlesztés, melynek során új funkciókat és hibajavításokat is készítettek a múltban[5], beleértve a rendszeres buildeket és teszt eredményeket [6], 2008-óta nincs új kiadás[7]. A termék meglehetősen érett, és nem adnak ki új kiadást, ameddig új funkciók megvalósítására nem érkeznek kérések[8], vagy hibariportok[9].

Funkciók

A CVS kliens-szerver architektúrát használ: a szerver tárolja a projekt és történetének aktuális verzióit, és a kliens csatlakozik a szerverre, hogy a projekt egy teljes másolatát le tudja szedni ("check out"), majd ezen a másolaton dolgozik és végül beküldi ("check in") a változásait a szerverre. Tipikusan a kliens és a szerver egy LAN-on vagy az Internet-en keresztül csatlakozik egymáshoz, de a kliens és a szerver futhat ugyanazon a gépen is, ha a CVS-nek csak az a feladata, hogy a helyi fejlesztők munkáját és ezzel kapcsolatos projekt történetet kövesse nyomon kizárólag. A szerver szoftver általában egy Unix-on fut (habár a CVSNT szerver szintén támogat számos Microsoft Windows verziót), míg a CVS kliens futhat bármely elterjedtebb operációs rendszer platformon.

Korlátlan számú fejlesztő dolgozhat ugyanazon a projekten párhuzamosan, mindegyik szerkeszthet fájlokat a projekt saját "munkamásolat"ában és küldhet (vagy beteheti) a módosításait a szerverre. Azért, hogy elkerüljük, hogy az emberek egymás tyúkszemére léphessenek, a szerver csak a legutolsó változaton történt változtatásokat fogadja el. A fejlesztőktől ezért elvárás, hogy tartsák a saját munkamásolatukat naprakészen a többiek változásainak rendszeres frissítésével. Ezt a feladatot a cvs kliens nagyrészt automatikusan elvégzi, és csak a betett módosítások és még nem berakott fájl helyi változata közti szerkesztési összeütközés során kér kézi beavatkozást.

Ha a berakás művelet sikerült, akkor minden érintett fájl verziószáma automatikusan növekszik, és a CVS szerver ír új sor a felhasználó által megadott leírással, a dátummal és szerző nevével a log fájljaiba. A CVS képes futtatni külső, felhasználó által megadott log feldolgozó scriptet is minden elfogadásra (angolul commit). Ezek a scriptek bejegyzésenként telepíthetők a CVS loginfo fájljában, ezekkel képes indítani e-mail értesítést vagy átkonvertálni a log adatokat más pl. Web alapú formátumba.

A kliensek össze tudnak hasonlítani verziókat, teljes változás történetet, vagy lehozni adott dátumhoz vagy felülvizsgálati számhoz (angolul revision number) a projekt történetének egy pillanatfelvételét.

Névtelen CVS

Számos nyílt forráskódú projekt megengedi a "névtelen olvasási hozzáférés"t, amely funkció népszerűsítésében a OpenBSD járt élen. Ez azt jelenti, hogy kliensek le tudják szedni a projektet, és össze tudják hasonlítani verziókat a sajátjukkal, egy üres vagy egyszerűen közzétett jelszó segítségével (pl. "anoncvs"), csak változások berakása kívánja meg, hogy rendelkezzenek személyes fiókkal és jelszóval ezen forgatókönyv szerint.

A kliensek használhatják a "frissítés" parancsot, hogy a helyi másolatukat naprakésze hozzák a legújabb verziókkal frissítve a szerverről. Ezzel elkerülhető az egész projekt újból és újból való letöltési kényszere.

A CVS képes kezelni egy adott projekt különböző fejlesztési ágait is. Például egy szoftver egy kiadási verziója alkothat egy ágat, pl. hibajavításhoz, míg egy másik verzió, a jelenlegi fejlesztéshez, a főbb változások és új funkciók bevezetéséhez alkothat egy ettől különböző ágat.

A CVS delta tömörítést használ az ugyanazon fájl különböző verzióinak hatékony tárolására. Ez jól működik nagy szöveges fájlokkal, ahol egyszerre kevés változtatás van a verziók között, amilyenek pont a forrásfájlok. Másrészről, amikor a CVS-nek megmondjuk, hogy binárisan tároljon egy fájlt, akkor szerveren tartja az összes különböző változatot. A fájlok bináris tárolása fontos lehet, azért hogy elkerüljük a bináris fájlsérüléseket.

„ A nyílt forráskódú szoftver világában a Concurrent Version System (CVS) egy régóta létező eszköz választás a verziókövetésre. És ez így van rendjén. CVs maga egy szabad szoftver és a nem kizárólagos működési módja és hálózati műveletek támogatása - amely lehetővé teszi tucatnyi földrajzilag szétszórt programozók számára, hogy megoszthassák munkájukat - kiválóan illeszkedik a nyílt forráskódú világ együttműködésen alapuló természetéhez. A CVS és fél kaotikus fejlesztési modellje sarokkövévé vált a nyílt forráskódnak.”

– Collins-Sussman, Verziókövetés a Subversionnel a Subversion 1.1-hez, 2005

Szaknyelv

A CVS felcímkéz egy projektet (érintett fájlok egy halmazát), amit modulként kezel. A CVS szerver tárolja a modulokat, amit a saját tárolójában kezel. A fejlesztők a modulok másolatait a checking out (lehozás) paranccsal szerezhetik meg. Ezek a lehozott fájlok munkamásolatokként, homokozóként ill. munkaterületként működnek. A munkamásolaton végzett változtatások a tárolóban tükröződhetjük le azzal, hogy commitáljuk azaz betesszük őket. Frissíteni annyit jelent, mint megszerezni illetve egyesíteni a változásokat a távoli tárolóból a munkamásolattal.

Története és jelenlegi állapot

A CVS-t egy korábbi verziókezelő rendszerből (névszernit a Revision Control System (RCS) (Sablon:As of-ből, ami ma is használatban van) fejlesztettek ki, amely képes kezelni fájlokat külön-külön, de nem egy teljes projektet. Dick Grune ad némi rövid történeti összefoglalót a CVS-ről a honlapján. Idézzük:

„Én készítettem a CVS-t, hogy képesek legyünk együttműködni a diákjaimmal Erik Baalbergen-nel és Maarten Waage-nel, az ACK (Amsterdam Compiler Kit) C fordítóval kapcsolatban. Mindhárman jelentősen különböző időszakokban dolgoztunk (az egyik diákom normál 9-től 5-iges időszakban, a másik szabálytalan időszakokban, én pedig csak esténként dolgoztam a projekten). A projektjük 1984 júliusától 1985 augusztusáig futott. A CVS-t eredetileg cmt-nek hívtuk, nyilvánvaló okokból, amely lehetővé tette számunkra, hogy verziókat függetlenül tegyük be.”

– Dick Grune, Dick Grune weboldala

Grune a kódot nyilvánosan 1986 június 23-adikán adta ki: Google Groups továbbra is tárolja és kiszolgálja az eredeti usenet postot.

A kódot, amely végül a CVS jelenlegi verziójává vált, Brian Berliner kezdte el fejleszteni 1989 áprilisában. Később további kódokat kapott Jeff Polk-tól és más közreműködőktől is. Brian Berliner írt egy egytanulmányt, melyben bemutatta a továbbfejlesztéseit a CVS programhoz, és azt, hogy az eszközt hogyan bővítette ki és hogyan használták egy belső Prisma nevű projektben, egy harmadik fél által fejlesztett SunOS kernel fejlesztése során, és melyet közösség javára adtak ki GPL alatt. 1990 november 19-edikén a CVS 1.0 verziót benyújtották a Free Software Foundation fejlesztésre és terjesztésre. [10]

A CVS vezette be az elágazás implementációját a verziókezelő rendszerekben. [11] Habár a RCS ismerte az ágak fogalmát, ezt csak fájlok külön-külön tudta használni.

A CVS mindig szilárdan támogatott elosztott, több weboldalon és offline műveletekre is, néhány megbízhatatlan számítógépes hálózat miatt, melyek abban az időben léteztek, amikor a CVS kifejlődött.

Fejlesztések állapota

Jelenleg nincs kiadott hivatalos közlemény a projekt státuszáról.

  • A CVS aktív fejlesztése hagyományosan új kiadásokkal követi az új funkció kéréseket ill. hibajelentéseket[9]
  • A legutolsó verziót 2008. május 8-adikán adták ki[7]
  • 2008 óta volt néhány karbantartási hibajavítás a CVS projekt saját CVS tárolójában[12]
  • Hibát ill. bővítési javaslatot nem jelentettek[13], habár a legutolsó kód változás, ami teljes (teljesíti a javítás követelményét) Összesen 9 jelentés van, a legtöbbje kérdés. A kérdéseket tipikusan gyorsan meg szokták válaszolni, ha a levelező listán teszik fel őket.
  • Az info-cvs levelező lista aktívan válaszol a kérdésekre. [14]

A CVS Microsoft Windows, Linux, Solaris, HPUX, I5OS és Mac OS X portolásának fejlesztése levált önálló projektekre, mint pl. a CVSNT, amely jelenleg is aktív fejlesztés alatt áll[15].

Kapcsolat a GNU-val

Történetileg a kapcsolat a CVS és a GNU projekt között némileg homályos: a GNU Weboldal terjeszti a programot, és GNU csomagként van címkézve az egyik oldalon , míg más GPL-licencelt projektként a másikon. Ez az állapot végül tisztázódott, amikor a CVS fejlesztés elköltözött a cvshome.org-ról a savannah.nongnu.org-ra a CVS-t hivatalosan is a nem gnu kategóriába sorolták. Az FTP helyen a program hagyományosan a /non-gnu/ könyvtárban volt megtalálható és máig ott is van.

A GNU projekt külön kiemeli, hogy nem tartja fenn a CVS tulajdonjogát. [16]

Utódok

Kapcsolódó szócikkek

IDEk CVS támogatással

Jegyzetek

  1. Derek Robert Price: Concurrent Versions System - News Stable CVS Version 1.11.23 Released! (angol nyelven), 2008. május 8. (Hozzáférés: 2021. február 10.)
  2. Derek Price: Stable CVS Version 1.11.23 Released! (angol nyelven), 2008. május 8. (Hozzáférés: 2021. február 10.)
  3. Derek Robert Price: Concurrent Versions System - News CVS Feature Version 1.12.13 Released! (angol nyelven), 2005. szeptember 28. (Hozzáférés: 2021. február 10.)
  4. CVS--Concurrent Versions System v1.12.12.1: Overview. ximbiot.com - Per Cederqvist. (Hozzáférés: 2011. december 9.)
  5. CVS Change Log. (Hozzáférés: 2011. február 22.)
  6. CVS Test Results. (Hozzáférés: 2011. február 22.)
  7. a b Index of /releases/cvs/source/stable/1.11.23. (Hozzáférés: 2013. január 15.)
  8. Open requests for fixes/features. (Hozzáférés: 2011. február 22.)
  9. a b Requests for fixes/features. (Hozzáférés: 2011. február 22.)
  10. initial release of version 1.0; CVS NEWS file
  11. CVS II: Parallelizing Software Development article by Brian Berliner
  12. CVS ChangeLog. (Hozzáférés: 2009. május 25.)
  13. Open requests for fixes/features. (Hozzáférés: 2013. január 17.)
  14. CVS Mailing List. (Hozzáférés: 2013. január 17.)
  15. About the CVSNT Project. History. March Hare Software. (Hozzáférés: 2013. január 15.) „CVS Suite 2009R2 was released in July 2011 with improved support for versioning PL/SQL triggers/procedures etc, and CVS Suite 2010 is currently being prepared for release. A major upgrade: CVS Suite 2012 is in final planning stages and is expected to be released in early 2012.”
  16. Concurrent Versions System - Summary. (Hozzáférés: 2013. január 15.) „This project is not part of the GNU Project.”
  17. Barrett, Arthur: Anonymous or Developer checkout with TortoiseCVS, 2010. június 25. (Hozzáférés: 2010. július 10.)
  18. Barrett, Arthur: TortoiseCVS instructions – sourceforge. (Hozzáférés: 2010. július 10.)

Források

További információk

Sablon:Revision control software -->