Source Code Control System
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.[1] 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ě.[2] 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 HistorieSCCS 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.[1] 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.[4] 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ý.[5] 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[6] byl vyvinut z upravené verze SCCS,[7] 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.[8]). 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í,[9] 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.[10] 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.[11] 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.[12] Úpravy zdrojových textů způsobují problémy, které lze řešit systémem verzování zdrojových textů:[1]
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 UNIX[13] Dvěma specifickými implementacemi SCCS jsou: PDP 11 s Unixem a IBM 370 s OS/370.[1] SkládáníSCCS se skládá ze dvou částí: SCCS příkazů a SCCS souborů.[14] Všechny základní operace (například vytvoření, smazání, úprava) lze provádět pomocí SCCS příkazů.[14] SCCS soubory mají jedinečnou předpona jména SCCS souborySCCS soubor sestává ze tří složek:[15]
Tabulka změnZměna (anglicky delta) je v SCCS jedna revize SCCS souboru. Změny jsou uloženy v tabulce změn (anglicky delta table), takže každý SCCS soubor má vlastní záznam změn.[15] Řídicí a sledovací příznaky v SCCS souborechKaždá operace s každým SCCS souborem je trasována příznaky, které mají následující funkce:[15]
TěloSCCS 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ů.[1] Základní příkazy SCCSSCCS 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ř. CreateSccs příkaz $ 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 Edit$ sccs edit program.c
1.1
new delta 1.2
87 lines
Upraví zadaný soubor. Příkaz je makro, které se expanduje na 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 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. ImplementaceUnixové verze SCCSVětšina verzí Unixu obsahuje verzi SCCS, která však často není aktivně vyvíjena.[18] Větev Jörga SchillingaZesnulý Jörg Schilling (který v raných dobách projektu OpenSolaris požadoval vydání SCCS)[19] udržoval větev SCCS,[20][21] 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.[22] Projekt HeirloomProjekt Heirloom obsahuje verzi SCCS odvozenou ze zdrojového kódu OpenSolaris[23] a udržovanou od prosince 2006 do dubna 2007.[24] GNU konverzní programGNU 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; [25] není úplná[26] 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émyOd 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.[27][28] Na BSD systémech bylo SCCSID nahrazeno RCSID, který začíná a končí znakem 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.[32] OdkazyReferenceV tomto článku byl použit překlad textu z článku Source Code Control System na anglické Wikipedii.
LiteraturaExterní odkazy |
Portal di Ensiklopedia Dunia