Systém souběžných verzí - Concurrent Versions System
Tento článek je hlavní část není adekvátně shrnout klíčové body jeho obsahu. Zvažte prosím rozšíření potenciálního zákazníka na poskytnout přístupný přehled všech důležitých aspektů článku. (Září 2018) |
Vývojáři | Tým CVS |
---|---|
První vydání | 19. listopadu 1990 |
Stabilní uvolnění | 1. 11. 23 / 8. května 2008 |
Náhled verze | 1.12.13 / 26. července 2006 |
Úložiště | |
Napsáno | C |
Operační systém | Unixový, Okna |
Typ | Kontrola revizí |
Licence | GNU General Public License |
webová stránka | savana |
Systém souběžných verzí (CVS, také známý jako Souběžný systém správy verzí) je systém kontroly revizí původně vyvinut Dicku Grune v červenci 1986.[1]
CVS funguje jako přední část na RCS, dřívější systém, který pracuje na jednotlivých souborech. Rozšiřuje se o RCS přidáním podpory pro sledování změn na úrovni úložiště a modelu klient-server.[2]
Vydáno na základě podmínek GNU General Public License, CVS je svobodný software.
Design
CVS funguje jako přední část na Systém kontroly revizí (RCS), starší systém pro správu verzí, který spravuje jednotlivé soubory, ale ne celé projekty. Rozšiřuje se o RCS přidáním podpory pro sledování změn na úrovni úložiště a modelu klient-server.[2] Soubory jsou sledovány ve stejném formátu historie jako v RCS, s a skrytý adresář obsahující odpovídající soubor historie pro každý soubor v úložišti.
CVS používá delta komprese pro efektivní ukládání různých verzí stejného souboru. To funguje dobře u velkých textových souborů s několika změnami z jedné verze na druhou. To je obvykle případ souborů zdrojového kódu. Na druhou stranu, když je CVS řečeno, aby ukládal soubor jako binární, udrží si každou jednotlivou verzi na serveru. Ukládání souborů jako binárních je důležité, aby nedošlo k poškození binárních souborů.
CVS vylučuje symbolické odkazy protože když jsou uloženy v systému správy verzí, mohou představovat bezpečnostní riziko. Například symbolický odkaz na citlivý soubor může být uložen v úložišti, čímž je citlivý soubor přístupný, i když není přihlášen. Místo symbolických odkazů mohou být zaškrtnuty skripty vyžadující určitá oprávnění a vědomý zásah k provedení CVS.[Citace je zapotřebí ]
Úkon
CVS označí jeden projekt (sadu souvisejících souborů), který spravuje jako modul. Server CVS ukládá moduly, které spravuje úložiště. Programátoři získávají kopie modulů do odhlášení. Odhlášené soubory slouží jako a pracovní kopie, pískoviště nebo pracovní prostor. Změny pracovní kopie se v úložišti projeví spáchání jim. Na Aktualizace je získat nebo spojit změny v úložišti s pracovní kopií.
CVS používá a klient-server architektura: server ukládá aktuální verzi a projekt a jeho historie a klienti se připojují k serveru, aby mohli „zkontrolovat“ úplnou kopii projektu, pracovat na této kopii a později „zkontrolovat“ jejich změny. Servery CVS mohou povolit „anonymní přístup ke čtení“,[3] kde si klienti mohou vyzkoušet a porovnat verze s prázdným nebo jednoduchým publikovaným heslem (např. „anoncvs“); pouze vrácení změn vyžaduje v těchto scénářích osobní účet a heslo. Na stejném projektu může pracovat současně několik vývojářů, každý upravuje soubory v rámci své vlastní „pracovní kopie“ projektu a odesílá (nebo odbavení) jejich úpravy na serveru. Aby nedocházelo ke konfliktům, server přijímá pouze změny provedené v nejnovější verzi souboru. Od vývojářů se proto očekává, že budou své pracovní kopie udržovat v aktuálním stavu tím, že budou pravidelně zapracovávat změny jiných lidí. Tato úloha je většinou zpracována automaticky klientem CVS, což vyžaduje ruční zásah, pouze pokud upravit konflikt vzniká mezi změnou zapsanou do souboru a dosud nekontrolovanou místní verzí souboru. Klienti mohou také pomocí příkazu „update“ aktualizovat své lokální kopie s nejnovější verzí na serveru. Klienti mohou také porovnávat verze, požadovat úplnou historii změn nebo zkontrolovat historický snímek projektu (např. Na základě daného data). Pokud operace přihlášení proběhne úspěšně, automaticky se zvýší čísla verzí všech zúčastněných souborů a server zapíše uživatelem popsaný řádek popisu, datum a jméno autora. log soubory. CVS může také spouštět externí, uživatelem zadané skripty pro zpracování protokolů po každém potvrzení. Tyto skripty jsou nainstalovány položkou v CVS loginfo
soubor, který může spustit e-mailové upozornění nebo převést data protokolu do webového formátu.
CVS může také udržovat různé „větve“ projektu. Vydaná verze softwarového projektu může například tvořit jednu větev používanou pro opravy chyb, zatímco verze v aktuálním vývoji s hlavními změnami a novými funkcemi může tvořit samostatnou větev. CVS předpokládá, že většina práce se odehrává na kmeni a že větve by měly být obecně krátkodobé nebo historické. Pokud se pobočky používají tak, jak jsou navrženy, lze je snadno spravovat a jejich provoz je efektivní a rychlý.[4][5]
Přenosnost
Serverový software běžně běží Unix (i když alespoň CVSNT server také podporuje různé příchutě Microsoft Windows ), zatímco klienti CVS mohou běžet na jakémkoli významném operační systém plošina.
Dějiny
Vytvořil jsem CVS, abych mohl spolupracovat se svými studenty, Erikem Baalbergenem a Maartenem Waageem, na ACK (Amsterdamská kompilátorová sada ) C kompilátor. Všichni tři jsme měli velmi odlišné rozvrhy (jeden student byl stálým pracovníkem 9-5, druhý byl nepravidelný a na projektu jsem mohl pracovat jen večer). Jejich projekt probíhal od července 1984 do srpna 1985. CVS se zpočátku nazývalo cmt, a to ze zřejmého důvodu, který nám umožňoval nezávislé verze.[6]
Grune veřejně vydal kód 23. června 1986.[7]
Kód, který se nakonec vyvinul do aktuální verze CVS, začal Brianem Berlinerem v dubnu 1989, s pozdějšími vstupy Jeffa Polka a mnoha dalších přispěvatelů. Brian Berliner napsal článek představující jeho vylepšení programu CVS - který popisuje, jak byl tento nástroj rozšířen a interně používán Prismou, vývojářem třetí strany pracujícím na jádru SunOS, a byl vydán ve prospěch komunity pod GPL.[8] Dne 19. Listopadu 1990 byla CVS verze 1.0 předložena Free Software Foundation pro vývoj a distribuci.[9]
Nejnovější verze byla vydána 8. května 2008.[10]
Přijetí a nástupci
Ve světě softwaru s otevřeným zdrojovým kódem je systém řízení souběžných verzí (CVS) již dlouho nástrojem volby pro správu verzí. A správně. Samotný CVS je svobodný software, který není nijak omezující modus operandi a podpora síťového provozu - která umožňuje desítkám geograficky rozptýlených programátorů sdílet svou práci - velmi dobře zapadá do kolaborativní povahy světa open-source. CVS a jeho semi-chaotický model vývoje se staly základními kameny open-source.[11]
Vývojáři postupem času vytvořili nové systémy pro správu verzí založené na CVS, aby přidali funkce, změnili operační model a zlepšili produktivitu vývojářů. Projekty nahrazení CVS zahrnují CVSNT a Podvracení.[12][13]
Viz také
Poznámky
- ^ „CVS - Concurrent Versions System v1.12.12.1: Overview“. Archivovány od originál dne 15. dubna 2012. Citováno 9. prosince 2011.
- ^ A b Stopak, Jacob (30. listopadu 2019). „Vývoj vnitřních součástí systému pro správu verzí (VCS)“. Citováno 22. září 2020.
- ^ Charles D. Cranor; Theo de Raadt (1999). „Otevření zdrojového úložiště s anonymním CVS, USENIX 1999“ (PDF).
- ^ Collins-Sussman, Ben; Greg Ward (září 2004). „Uživatelé Subversion: Re: Performance (Subversion vs. CVS)“. subversion-users. Citováno 2010-07-07.
- ^ West, Adrian (červenec 2004). "oprava výkonu větve cvs". Archivovány od originál dne 3. 8. 2009. Citováno 2010-07-07.
- ^ „Souběžné verze systému CVS“. dickgrune.com.
- ^ Dick Grune (3. července 1986). „CVS, front-end RCS (cvs)“. Diskusní skupina: mod. zdroje. Usenet: [email protected]. Citováno 14. září 2016.
- ^ „CVS II: Parallelizing Software Development - Berliner (ResearchIndex)“. Archivovány od originál 9. září 2004.
- ^ „[cvs] Obsah / ccvs / NEWS“. cvs.savannah.gnu.org.
- ^ „Systém souběžných verzí - novinky: Stabilní CVS verze 1.11.23 vydána! [Savannah]“. savannah.nongnu.org.
- ^ Ben Collins-Sussman, Správa verzí se Subversion pro Subversion 1.1, 2005
- ^ „Subversion FAQ: Proč tento projekt existuje?“. Podvracení. Citováno 21. září 2009.
- ^ "Dispelling Subversion FUD". Ben Collins-Sussman. Archivovány od originál dne 18. července 2011. Citováno 30. června 2010.
Reference
- David Thomas; Andrew Hunt (2003). Pragmatické řízení verzí pomocí CVS. Pragmatičtí programátoři. ISBN 0-9745140-0-4.
- Jennifer Vesperman (2006). Základní CVS (2e ed.). O'Reilly. ISBN 0-596-52703-9.
- Per Cederqvist; et al. Správa verzí s CVS. ISBN 0-9541617-1-8. Archivovány od originál dne 08.08.2014. Citováno 2009-11-25.
- Karl Franz Fogel; Moshe Bar. Vývoj open source s CVS. ISBN 1-932111-81-6. Archivovány od originál dne 2014-07-16. Citováno 2002-02-05.
externí odkazy
- Oficiální webové stránky
- Správa verzí s CVS: manuál pro CVS 1.12.13, autor: Per Cederqvist et al.