CVS | |
---|---|
Typ | centralizovaný systém správy verzí [d] |
Vývojář | Tým CVS [d] |
Zapsáno v | C [4] |
Operační systém | Operační systém podobný Unixu |
První vydání | 19. listopadu 1990 [1] |
Nejnovější verze | 1.11.23 [2] (8. května 2008 ) |
beta verze | |
Licence | GNU General Public License, verze 1.0 nebo novější [d] [5] |
webová stránka | nongnu.org/cvs/ ( anglicky) |
CVS ( angl. Concurrent Versions System - systém simultánních verzí ) je centralizovaný systém správy verzí, který byl populární v 90. letech a na počátku 21. století. Uchovává historii změn konkrétní sady souborů, obvykle zdrojového kódu softwaru , a usnadňuje skupině lidí spolupráci na stejném projektu. Distribuováno za podmínek GNU GPL .
Od konce 2000 byl aktivní vývoj systému ukončen (poslední verze byla vydána v květnu 2008 ), jsou provedeny pouze drobné opravy ve zdrojovém kódu [6] . Systém považován za zastaralý [7] [8] [9] .
CVS používá architekturu klient-server . Klient a server jsou obvykle připojeni přes místní síť nebo přes Internet , ale mohou také běžet na stejném počítači, pokud chcete zachovat historii verzí místního projektu. Serverový software obvykle běží na Unixu (ačkoli existuje CVS server pro Windows NT ), zatímco CVS klienti jsou k dispozici na všech populárních operačních systémech .
Server ukládá aktuální verze projektu a historii změn do speciálního úložiště ( repository ) a klient se k němu připojí, aby získal verzi, kterou potřebuje, nebo napsal novou. Klient po obdržení požadované verze ze serveru ( check-out ) vytvoří lokální kopii projektu (nebo jeho části) - tzv. pracovní kopii. Po provedení nezbytných změn v souborech v pracovní kopii jsou tyto odeslány na server ( check-in ).
Na kopiích projektu může pracovat více klientů současně. Když odešlou výsledky, server se pokusí sloučit jejich změny dohromady v úložišti. Pokud se to nezdaří, například když dva klienti změnili stejné řádky v určitém souboru, server nepřijme změny z posledního přihlášení a oznámí konflikt klientovi, který musí být ručně opraven. Pokud je operace přihlášení úspěšná, čísla verzí všech dotčených souborů se automaticky zvýší a server zapíše komentář, datum a uživatelské jméno do svého protokolu.
Klienti mohou také porovnávat různé verze souborů, požadovat kompletní historii změn nebo získat historický obraz projektu podle konkrétního data nebo čísla verze. Mnoho open source projektů umožňuje anonymní přístup pro čtení, který byl poprvé představen v OpenBSD . To znamená, že klienti mohou vyhledávat a porovnávat verze souborů bez hesla; heslo vyžadují pouze operace přihlášení, které upravují data v úložišti.
Klienti mohou také pomocí příkazu update synchronizovat místní kopii projektu s informacemi na serveru , což zabrání opětovnému stahování celého projektu.
CVS může také obsahovat různé větve projektu. Například stabilní verze projektu může být na jedné větvi , která obsahuje pouze opravy chyb, zatímco aktivní vývoj může být na paralelní větvi, která zahrnuje významná vylepšení nebo změny od vydání stabilní verze.
CVS používá delta kompresi k efektivnímu ukládání různých verzí stejného souboru.
Projekty v CVS jsou uloženy jako moduly, modul je sada souborů projektu. CVS server může obsluhovat více modulů; všechny moduly jsou uloženy v úložišti. Lokální kopie modulu získaná pomocí klienta CVS se nazývá pracovní kopie.
check-out operace - vyjmutí celého modulu z CVS a vytvoření pracovní kopie; check-in - provedení místních změn v úložišti. Operace aktualizace aktualizuje místní projekt z CVS.
Obor ( anglicky branch ) - samostatný směr modifikace projektu, který může obsahovat řadu po sobě jdoucích verzí; větev se může vyvíjet paralelně s ostatními větvemi; hlavní větev ( anglicky main trunk nebo HEAD ) je tam vždy.
Revize ( revize ) je jednou z verzí jednoho souboru.
Jedna z verzí celého produktu je "release" ( release , termín "verze" se v CVS vůbec nepoužívá). K verzi je připojen speciální tag ( tag ) , tag lze přiřadit i samostatnému souboru, ale to se dělá jen zřídka, obvykle je tagem označena kolekce souborů určitých revizí (verzí).
CVS je evolucí dřívějšího systému pro správu verzí nazývaného Revision Control System (RCS), který se stále používá pro práci s jednotlivými soubory, ale ne s celými projekty. Dick Grun poskytl [10] krátké historické pozadí CVS na své stránce:
CVS bylo vytvořeno, abych mohl pracovat se dvěma mými studenty na kompilátoru C ACK (Amsterdam Compiler Kit). Všichni tři jsme měli téměř neslučitelný rozvrh (jeden student měl stálé zaměstnání, druhý se objevoval nepravidelně a na projektu jsem mohl pracovat jen po večerech). Jejich projekt trval od července 1984 do srpna 1985 . CVS se původně jmenovalo cmt , protože nám umožňovalo zadávat verze nezávisle (z anglického commit - fix, commit).
Kód poprvé spatřil světlo světa na konferenci mod.sources 23. června 1986 .
Kód, který se nakonec stal současnou verzí CVS, začal Brian Berliner v dubnu 1989, s následnými dodatky od Jeffa Polka a dalších. Brian Berliner napsal [11] dokument popisující vylepšení, která CVS získalo během svého interního použití ve společnosti Prisma, vývojáři jádra SunOS třetí strany , načež jej Brian uvolnil veřejnosti pod licencí GPL .
Projekt podporuje skupina dobrovolníků. Je pozoruhodné, že verze CVS pro Microsoft Windows , rozdělená do samostatného projektu CVSNT , aktivně rozšiřuje možnosti systému, dokonce i změny portování zpět na Unix pod názvem CVSNT.
Vztah CVS k projektu GNU může být nejednoznačný: na jedné stránce web GNU distribuuje program jako "balíček GNU" a na druhé je CVS uveden pod "jiným projektem GPL". Na FTP serveru je program umístěn v adresáři /non-gnu/ .
Systémy řízení verzí ( kategorie ) | |
---|---|
Pouze místní | |
Klient-server | |
Distribuováno | |
URI | Schémata|
---|---|
Oficiální | |
neoficiální |