Source Code Control System (SCCS) je verzovací systém – nástroj, který uchovává historii změn ve zdrojových kódech a jiných textových souborech během vývoje softwarového projektu. Umožňuje uživateli načíst libovolnou starší verzi souboru a změny, které byly provedeny. SCCS vyvinul na konci roku 1972 Marc Rochkind v Bellových laboratořích pro počítače IBM System/370 s operačním systémem OS/360.

Charakteristickým rysem SCCS je řetězec sccsid, který se vloží do každého ze zdrojových souborů a který SCCS automaticky aktualizuje při každé změně. Začlenění sccsid do textu programu v jazyce C vypadá takto: static char sccsid[] = "@(#)ls.c 8.1 (Berkeley) 6/11/93"; Tento textový řetězec obsahuje jméno souboru a datum, a může také obsahovat komentář. Po překladu lze řetězec nalézt v cílových a spustitelných souborech vyhledáním vzorku @(#) a může se použít pro zjištění, jaké zdrojové soubory byly použity při překladu. Pro automatizaci tohoto vyhledání je k dispozici příkaz what.

Historie SCCS vyvinul v roce 1972 Marc Rochkind v jazyce SNOBOL4 v Bellových laboratořích pro počítače IBM System/370 s operačním systémem OS/360 MVT. V roce 1973 přepsal SCCS do programovacího jazyka C pro použití v operačním systému Unix na počítači PDP-11.

První veřejně vydaná verze SCCS byla verze 4 z 18. února 1977.http://sccs.sourceforge.net/PWB.html AT&T Announcement for SCCSv4 Byla součástí vydání Programmer's Workbench (PWB) operačního systému Unix. Verze 4 byla první verze, které používala textový formát souboru historie, dřívější verze používaly binární formát souboru historie. Autorem verze 4 již nebyl Marc Rochkind. SCCS byl následně zahrnut do AT&T komerčních distribucí UNIX System III a UNIX System V. Pro UNIX/32V, předchůdce BSD, nebyl licencovaný.SCCS what(1) manpage from 4BSD, 1980, on the website of The Unix Heritage Society . Sada SCCS příkazů je nyní součástí Single UNIX Specification.

Před rozšířením RCS a CVS byl SCCS dominantním verzovacím systémem pro Unix a byl široce používán. Všechny uvedené verzovací systémy jsou dnes obecně považovány za zastaralé, zvláště v komunitě vývojářů svobodného softwaru s otevřeným zdrojovým kódem, která z větší části přešla na distribuované verzovací systémy. Formát SCCS souboru však stále interně používá několik novějších verzovacích systémů, např. BitKeeper nebo TeamWare, který je frontendem k SCCS. Sablime byl vyvinut z upravené verze SCCS,Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): 383–430. ale používá formát souboru historie, který je nekompatibilní s SCCS. Formát souboru SCCS používá techniku ukládání nazývanou Interleaved deltas nebo SCCS weave.). Tato technika ukládání je považována mnoha vývojáři verzovacích systémů za základ pro pokročilé techniky slučování a verzování,Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy, and Darcy Wiborg-Weber. “Impact of software engineering research on the practice of software configuration management.” ACM Transactions on Software Engineering and Methodology (TOSEM) 14 (October 2005): p.398. jakými je např. „Precise Codeville“ (pcdv) sloučení.

Kromě opravy problému roku 2000 v roce 1999 nebyl systém SCCS aktivně vyvíjen.What is SCCS, GNU operating System V roce 2006 společnost Sun Microsystems (dnes část společnosti Oracle) uvolnila svoji verzi SCCS pro operační systém Solaris jako Svobodný software pod licencí Common Development and Distribution License (CDDL) v rámci svého úsilí na otevření zdrojového kódu systému Solaris.

Pozadí Source Code Control System je systém pro verzování souborů a udržování historie změn. Při vývoji softwaru se obvykle přidávají nové funkce, opravují chyby a optimalizují algoritmy.Home Organization Selection Úpravy zdrojových textů způsobují problémy, které lze řešit systémem verzování zdrojových textů: Zdrojový kód zabírá příliš mnoho prostoru, protože se v mnoha verzích opakuje. Je těžké získat informace o tom, kdy a kde byly provedeny změny. Je obtížné najít přesnou verzi, kterou má zákazník a ve které je chyba. SCCS byl vytvořen pro řešení těchto problémů. SCCS z AT&T měl pět velkých verzí pro IBM OS a pět velkých verzí pro UNIXThe evolution of a Source Code Control System. Alan L.Glasser, published in sigmetrics, Nov 1978 when SCCS on UNIX was a version 4 Dvěma specifickými implementacemi SCCS jsou: PDP 11 s Unixem a IBM 370 s OS/370.

Skládání SCCS se skládá ze dvou částí: SCCS příkazů a SCCS souborů. Všechny základní operace (například vytvoření, smazání, úprava) lze provádět pomocí SCCS příkazů. SCCS soubory mají jedinečnou předpona jména s., která je řízena SCCS příkazy.

SCCS soubory SCCS soubor sestává ze tří složek: Delta tabulka Příznaky přístup a sledování Tělo textu

Tabulka změn Změna () je v SCCS jedna revize SCCS souboru. Změny jsou uloženy v tabulce změn (), takže každý SCCS soubor má vlastní záznam změn.

Řídicí a sledovací příznaky v SCCS souborech Každá operace s každým SCCS souborem je trasována příznaky, které mají následující funkce: nastavení oprávnění pro úpravy každého SCCS souboru, řízení každé verze každého SCCS souboru, umožnění společné editování každého SCCS souboru, vzájemné odkazování na změny každého SCCS souboru.

Tělo SCCS používá tři typy řídicích záznamů pro sledování úprav provedených v různých deltách. Jsou to řídicí záznamy pro vložení, smazání a ukončující řídicí záznam. Kdykoli uživatel změní nějakou část textu, je kolem změny vložen řídicí záznam. Řídicí záznamy jsou uloženy v těle spolu s původním textem záznamů.

Základní příkazy SCCS SCCS poskytuje sadu příkazů realizovaných voláním maker, která provádějí nebo zahajují funkce správy zdrojového kódu s jednoduchou syntaxí, např. create, get, edit, prt.An Introduction to the Source Code Control System Eric Allman, Project Ingres, University of California at BerkeleySource Code Control System Programming Utilities Guide Poskytuje také přístup k historii revizí verzovaných souborů. Tyto příkazy jsou implementovány jako argumentová slovesa řídicího program sccs.

Create Sccs příkaz create použije text zdrojového souboru pro vytvoření nového souboru historie. Například: $ sccs create program.c program.c: 1.1 87 lines Výstupem je jméno souboru, verze a počet řádků.

Příkaz je makro, které je expandováno na příkaz admin pro vytvoření nové historie souboru následovaný příkazem get pro načtení souboru.

Edit $ sccs edit program.c 1.1 new delta 1.2 87 lines Upraví zadaný soubor.

Příkaz je makro, které se expanduje na get -e.

Delget $ sccs delget program.c comments? main function enhanced 1.2 10 inserted 0 deleted 87 unchanged 1.2 97 lines Začlení novou verzi do verzovacího systému a načte novou verzi z sccs.

Příkaz je makro, které se expanduje na příkaz delta pro začlenění nové verze souboru následovaný příkazem get pro načtení souboru.

Get $ sccs get program.c 1.1 87 lines Výstupem jsou verze a řádky, které se mají načíst z určitého souboru.

Prt $ sccs prt program.c Příkaz vypisuje seznam změn ve zdrojovém kódu.

Implementace

Unixové verze SCCS Většina verzí Unixu obsahuje verzi SCCS, která však často není aktivně vyvíjena.Koike, Hideki, and Hui-Chu Chu. "VRCS: Integrating version control and module management using interactive three-dimensional graphics." Visual Languages, 1997. Proceedings. 1997 IEEE Symposium on. IEEE, 1997.

Větev Jörga Schillinga Zesnulý Jörg Schilling (který v raných dobách projektu OpenSolaris požadoval vydání SCCS) udržoval větev SCCS,Jörg Schilling's SCCS development website která byla založena na zdrojovém kódu z OpenSolaris. Byla do ní začleněna významná vylepšení, ale pokud se nepoužije režim „new project“, zůstává stále kompatibilní s původní verzí SCCS.Schily SCCS web site: "Will the upcoming SCCSv6 stay compatible with POSIX and with historic SCCS implementations?"

Projekt Heirloom Projekt Heirloom obsahuje verzi SCCS odvozenou ze zdrojového kódu OpenSolaris a udržovanou od prosince 2006 do dubna 2007.http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ see CVS history

GNU konverzní program GNU nabízí SCCS kompatibilní program GNU CSSC (“Compatibly Stupid Source Control“), který se příležitostně používá pro konvertování SCCS archívů pro novější systémy jako je CVS nebo Subversion; SCCS2SVN conversion utility , která funguje pro SCCS and CSSC není úplnáGNU CSSC list of limitations in its documentation SCCS implementace a není doporučena pro použití v nových projektech, ale je určena pro konvertování na moderní verze verzovacích systémů.

Jiné verzovací systémy Od 90. let 20. století bylo vyvinuto mnoho nových verzovacích systémů, které se staly oblíbenými, které jsou navrženy pro řízení projektů s velkým počtem souborů, a že poskytují pokročilou funkčnost např. víceuživatelské operace, řízení přístupu, automatické buildy, podporu sítí, správu vydání a distribuované verzování. Systémy BitKeeper a TeamWare používají interně stejný formát souboru jako SCCS a lze je považovat za následníky SCCS.

Na BSD systémech bylo SCCSID nahrazeno RCSID, který začíná a končí znakem $; odpovídajícím nástroj je ident. Tento systém původně používal verzovací systém RCS a přidala automaticky na checkout. Výsledné revize zdrojového kódu kontrola/kontrolovat identifikátory jsou dokumentované v NetBSD a FreeBSD styl vede pro jejich vlastní kódové základny. NetBSD definuje zakázkové klíčové slovo $NetBSD: ...$ zatímco FreeBSD definuje $FreeBSD: ...$ a makro přejmenované na __FBSDID.

Verzovací systém SRC může také interně používat SCCS (nebo RCS) formát souborů a snaží poskytovat lepší uživatelské rozhraní pro SCCS, ale stále řídí pouze projekty s jediným souborem.

Odkazy Reference

Literatura Essay from Marc Rochkind on how SCCS was invented

Externí odkazy Schily's SCCS on Codeberg

Kategorie:Systémy pro správu verzí