Systém řízení zdrojového kódu - Source Code Control System

Systém řízení zdrojového kódu (SCCS)
Původní autoři Marc J. Rochkind
Vývojáři Bell Labs
První vydání 1973 ; Před 48 lety ( 1973 )
Úložiště Oficiální webové stránky
Napsáno První verze: SNOBOL4
Přepsat: C
Operační systém OS/360 , Unix , podobné Unixu
Plošina IBM System/370 , PDP-11 , IA-32
Typ Kontrola verzí
Licence proprietární licence, společná licence pro vývoj a distribuci
webová stránka Základní specifikace Open Group Issue 7, IEEE Std 1003.1-2008, 2016 Edition

Source Code Control System ( SCCS ) je systém pro správu verzí určený ke sledování změn ve zdrojovém kódu a dalších textových souborech během vývoje softwaru. To umožňuje uživateli načíst jakoukoli předchozí verzi původního zdrojového kódu a změny, které jsou uloženy. Původně byl vyvinut v Bell Labs počínaje koncem roku 1972 Marcem Rochkindem pro počítač IBM System/370 s OS/360 .

Charakteristickým rysem SCCS je řetězec sccsid, který je vložen do zdrojového kódu a automaticky aktualizován SCCS pro každou revizi. Tento příklad ukazuje jeho použití v programovacím jazyce C :

 static char sccsid[] = "@(#)ls.c        8.1 (Berkeley) 6/11/93";

Tento řetězec obsahuje název souboru, datum a může také obsahovat komentář. Po kompilaci lze řetězec nalézt v binárních a objektových souborech vyhledáním vzoru „@(#)“ a lze jej použít k určení, které soubory zdrojového kódu byly použity při kompilaci. K automatizaci tohoto hledání řetězců verzí je k dispozici příkaz „co“ [1] .

Dějiny

V roce 1972 vyvinul Marc Rochkind SCCS v SNOBOL4 v Bell Labs pro počítač IBM System/370 s OS/360 MVT . Přepsal SCCS v programovacím jazyce C pro použití v systému UNIX , poté běžel na PDP-11 , v roce 1973.

První veřejně vydaná verze byla SCCS verze 4 z 18. února 1977. Byla k dispozici s edicí operačního systému Programmer's Workbench (PWB) . Verze 4 SCCS byla první verzí, která používala formát souboru historie založené na textu, dřívější verze používaly formáty souborů binární historie. Vydání 4 již nepsal ani neudržoval Marc Rochkind. Následně byl SCCS zařazen do komerčních distribucí System III a System V společnosti AT&T . Nebyl licencován s 32V , předchůdcem BSD . Sada příkazů SCCS je nyní součástí jednotné specifikace UNIX .

SCCS byl dominantní systém pro správu verzí pro Unix, dokud novější systémy pro správu verzí , zejména RCS a později CVS , získaly širší uplatnění . Dnes jsou tyto systémy pro správu raných verzí obecně považovány za zastaralé, zejména v komunitě open-source , která do značné míry přijala distribuované systémy pro správu verzí . Formát souboru SCCS je však stále interně používán několika novějšími programy pro správu verzí, včetně BitKeeper a TeamWare . Ten je frontendem SCCS. Sablime byl vyvinut z upravené verze SCCS, ale používá formát souboru historie, který není kompatibilní s SCCS. Formát souboru SCCS používá techniku ​​ukládání nazývanou prokládané delty (nebo vazba). Toto úložiště technika je nyní považován mnohými správu verzí systému vývojáři jsou základní pro pokročilé slučování a správu verzí technik, jako je například „Precise codeville “ ( „pcdv“) sloučení.

Kromě opravy problémů roku 2000 v roce 1999 neproběhl žádný aktivní vývoj různých verzí SCCS specifických pro dodavatele UNIX. V roce 2006 společnost Sun Microsystems (dnes součást společnosti Oracle ) vydala svou verzi SCCS Solaris jako open-source pod licencí CDDL jako součást svého úsilí o open-source Solaris.

Pozadí

Source Code Control System (SCCS) je systém pro řízení změn souborů a historie. Software je obvykle aktualizován na novou verzi opravou chyb, optimalizací algoritmů a přidáním dalších funkcí. Změna softwaru způsobuje problémy, které vyžadují řešení správy verzí.

  • Zdrojový kód zabírá příliš mnoho místa, protože se opakuje v každé verzi.
  • Je těžké získat informace o tom, kdy a kde došlo ke změnám.
  • Najít přesnou verzi, se kterou má klient problémy, je obtížné.

SCCS byl postaven k řešení těchto problémů. SCCS od AT&T mělo pět hlavních verzí pro OS IBM a pět hlavních verzí pro UNIX Dvě konkrétní implementace využívající SCCS jsou: PDP 11 pod Unixem a IBM 370 pod OS.

Složení

SCCS se skládá ze dvou částí: příkazy SCCS a soubory SCCS. Všechny základní operace (např. Vytváření, mazání, úpravy) lze realizovat pomocí příkazů SCCS. Soubory SCCS mají jedinečnou předponu formátu s., která je ovládána příkazy SCCS.

Soubory SCCS

Soubor SCCS se skládá ze tří částí:

  • Delta tabulka
  • Přístup a sledování vlajek
  • Tělo textu

Delta tabulka

V SCCS je delta jedinou revizí v souboru SCCS. Delty jsou uloženy v delta tabulce, takže každý soubor SCCS má svůj vlastní záznam změn.

Ovládání a sledování příznaků v souborech SCCS

Každá operace každého souboru SCCS je sledována pomocí příznaků. Jejich funkce jsou následující:

  • Nastavení oprávnění pro úpravy každého souboru SCCS.
  • Ovládejte každé vydání každého souboru SCCS.
  • Povolení společné úpravy každého souboru SCCS.
  • Vzájemně odkazující změny každého souboru SCCS.

Tělo

SCCS používá tři typy kontrolních záznamů pro sledování vložení a vymazání aplikovaných v různých deltech. Jsou to záznam ovládacího prvku vložení, záznam ovládacího prvku odstranění a koncový kontrolní záznam. Kdykoli uživatel změní některou část textu, vloží se kolem změny kontrolní záznam. Řídicí záznamy jsou uloženy v těle spolu s původními textovými záznamy.

Základní příkazy SCCS

SCCS poskytuje sadu příkazů ve formě vyvolání maker, které provádějí nebo spouští funkce správy zdrojového kódu s jednoduchou syntaxí, jako je vytváření, získávání, úpravy atd. Poskytuje také přístup k historii revizí spravovaných souborů. Tyto příkazy jsou implementovány jako slovesa argumentů do programu sccs ovladače .

Vytvořit

Příkaz sccs create používá k vytvoření nového souboru historie text zdrojového souboru. Například:

$ sccs create program.c
program.c:
1.1
87 lines

Výstupy jsou název, verze a řádky.

Příkaz je makro, které se rozbalí na správce a vytvoří nový soubor historie, po kterém bude následovat příkaz get to retrieve the file.

Upravit

$ sccs edit program.c
1.1
new delta 1.2
87 lines

Upravit konkrétní soubor.

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

Vymazat

$ sccs delget program.c
comments? main function enhanced
1.2
10 inserted
0 deleted
87 unchanged
1.2
97 lines

Zkontrolovat novou verzi a získat novou verzi z sccs.

Příkaz je makro, které se rozbalí do delty, aby se zkontrolovalo v souboru nové verze, a poté se načte soubor.

Dostat

$ sccs get program.c
1.1
87 lines

Výstupy jsou verze a řádky, které chcete získat z konkrétního souboru.

Prt

$ sccs prt program.c

Tento příkaz vytvoří zprávu o změnách zdrojového kódu.

Implementace

Verze UNIX SCCS

Většina verzí systému UNIX obsahuje verzi SCCS, která se však již často aktivně nevyvíjí.

Vidlice Jörga Schillinga

Jörg Schilling (který požadoval vydání SCCS v počátcích projektu OpenSolaris ) udržoval vidličku SCCS, která je založena na zdrojovém kódu OpenSolaris. Obdržel zásadní vylepšení funkcí, ale zůstává kompatibilní s původními verzemi SCCS, pokud nepoužívá režim „nový projekt“.

Projekt dědictví

Projekt Heirloom zahrnuje verzi SCCS odvozenou ze zdrojového kódu OpenSolaris a udržovanou v období od prosince 2006 do dubna 2007.

Nástroj pro převod GNU

GNU nabízí SCCS kompatibilní program GNU CSSC („Compatably Stupid Source Control“), který se příležitostně používá k převodu archivů SCCS na novější systémy jako CVS nebo Subversion ; nejedná se o úplnou implementaci SCCS a není doporučeno pro použití v nových projektech, ale většinou je určeno pro převod na moderní systém správy verzí.

Jiné systémy pro správu verzí

Od roku 1990, mnoho nových verzovacích systémy byly vyvinuty a staly populární, které jsou určeny pro řízení projektů s velkým počtem souborů a které nabízejí pokročilé funkce jako je provoz s více uživateli, kontrolu přístupu, automatické budovy, podporu sítě, řízení uvolňování a distribuovaná správa verzí . Bitkeeper a TeamWare používají formát souboru SCCS interně a lze je považovat za nástupce SCCS.

Na systémech BSD je SCCSID nahrazen RCSID začínajícím a končícím $ ; odpovídající nástroj je ident . Tento systém původně používal RCS a přidával se automaticky při pokladně, ale od té doby se stal nedílnou součástí průvodce stylem v kódové základně FreeBSD , která definuje vlastní klíčové slovo $ FreeBSD: ... $ a makro přejmenované na __FBSDID .

Systém správy verzí SRC může také používat formát souboru SCCS interně (nebo RCS ) a jeho cílem je poskytnout lepší uživatelské rozhraní pro SCCS a současně spravovat pouze projekty s jedním souborem.

Reference

Další čtení