Systém řízení zdrojového kódu - Source Code Control System
Původní autoři | Marc J. Rochkind |
---|---|
Vývojáři | Bell Labs |
První vydání | 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.