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

Systém řízení zdrojového kódu (SCCS)
Původní autořiMarc J. Rochkind
VývojářiBell Labs
První vydání1973; Před 47 lety (1973)[diskutovat]
ÚložištěOficiální webové stránky
NapsánoPrvní verze: SNOBOL4
Přepsat: C
Operační systémOS / 360, Unix, Unixový
PlošinaSystém IBM / 370, PDP-11, IA-32
TypŘízení verzí
Licenceproprietární licence, Společná licence pro vývoj a distribuci
webová stránkaThe Open Group Base Specification Issue 7, IEEE Std 1003.1-2008, 2016 Edition

Systém řízení zdrojového kódu (SCCS) je systém řízení verzí určené ke sledování změn v systému Windows zdrojový kód a další textové soubory během vývoje softwaru. To umožňuje uživateli načíst kteroukoli z předchozích verzí původního zdrojového kódu a uložených změn. Původně byl vyvinut v Bell Labs začátek na konci roku 1972 Marc Rochkind pro Systém IBM / 370 běžící počítač OS / 360.[1]

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

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

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

Dějiny

V roce 1972 Marc Rochkind vyvinul SCCS v SNOBOL4 na Bell Labs pro Systém IBM / 370 běžící počítač OS / 360 MVT.[1] Přepsal SCCS v programovacím jazyce C pro použití pod UNIX, pak běží na a PDP-11, v roce 1973.

První veřejně vydanou verzí byla SCCS verze 4 z 18. února 1977.[3] Bylo k dispozici s Programátorský pracovní stůl (PWB) vydání operační systém. Vydání 4 SCCS bylo první verzí, která používala textový formát souboru historie, dřívější verze používaly binární formáty souborů historie. Vydání 4 už Marc Rochkind nepsal ani neudržoval. Následně byl SCCS zahrnut do AT&T je komerční Systém III a Systém V distribuce. Neměl licenci 32V, předchůdce BSD.[4] Sada příkazů SCCS je nyní součástí Single UNIX Specification.

SCCS byl dominantní systém pro správu verzí Unixu až později ovládání verze systémy, zejména RCS a později CVS, získal širší přijetí. Dnes jsou tyto systémy pro správu raných verzí obecně považovány za zastaralé, zejména v EU open-source společenství, které se do značné míry ujalo řízení distribuované verze systémy. 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 k SCCS. Sablime byl vyvinut z upravené verze SCCS[5] ale používá formát souboru historie, který není kompatibilní s SCCS. Formát souboru SCCS používá techniku ​​ukládání nazvanou prokládané delty (nebo vazba[6]). Tuto techniku ​​ukládání nyní mnoho zvažuje ovládání verze vývojáři systému jako základní až pokročilí slučování a techniky verzí,[7] například „Přesný Codeville "(" pcdv ") sloučit.

Kromě opravy Problémy roku 2000 v roce 1999 nedošlo k žádnému aktivnímu vývoji u různých verzí SCCS specifických pro dodavatele UNIX.[8]V roce 2006 Sun Microsystems (dnes součást Věštec ) uvolnili své Solaris verze SCCS as open-source pod Licence CDDL jako součást jejich úsilí o open-source Solaris.[9]

Pozadí

Systém řízení zdrojového kódu (SCCS) je systém pro řízení změn souborů a historie. Software je obvykle upgradováno do nové verze opravou chyb, optimalizací algoritmů a přidáním dalších funkcí.[10] Změna softwaru způsobí problémy, jejichž vyřešení vyžaduje řízení verzí.[1]

  • 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 ke změnám došlo.
  • Nalezení přesné verze, kterou klient má problémy s je obtížné.

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

Složení

SCCS se skládá ze dvou částí: příkazy SCCS a soubory SCCS.[12] Všechny základní operace (např. Vytváření, mazání, úpravy) lze provádět pomocí příkazů SCCS.[12] Soubory SCCS mají jedinečnou předponu formátu s., který je řízen příkazy SCCS.[2]

Soubory SCCS

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

  • Delta stůl
  • Příznaky přístupu a sledování
  • Text

Delta stůl

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.[13]

Ovládací a sledovací příznaky v souborech SCCS

Každá operace každého souboru SCCS je sledována příznaky. Jejich funkce jsou uvedeny níže:[13]

  • 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.
  • Změny vzájemného odkazování u každého souboru SCCS.

Tělo

SCCS používá ke sledování vkládání a mazání použitých v různých deltách tři typy řídicích záznamů. Jsou to kontrolní kontrolní záznam vložení, kontrolní kontrolní záznam vymazání a koncový kontrolní záznam. Kdykoli uživatel změní nějakou část textu, do změny se vloží kontrolní záznam. Řídicí záznamy jsou uloženy v těle spolu s původními textovými záznamy.[1]

Základní příkazy SCCS

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

Vytvořit

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

$ sccs vytvořit program. cprogram.c:1.187 řádků

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

Příkaz je makro, které se rozbalí na admin vytvořte nový soubor historie následovaný dostat načíst soubor.

Upravit

$ sccs upravit program. c1.1nová delta 1.287 řádků

Upravte konkrétní soubor.

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

Delget

$ sccs delget program. ckomentáře? hlavní funkce vylepšena1.210 vloženo0 smazáno87 beze změny1.297 řádků

Zkontrolujte novou verzi a získejte novou verzi z sccs.

Příkaz je makro, které se rozbalí na delta zkontrolovat soubor nové verze a poté dostat načíst soubor.

Dostat

$ sccs get program.c1.187 řádků

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 UNIX verze obsahují verzi SCCS, která však často již není aktivně vyvíjena.[16][je zapotřebí lepší zdroj ]

Vidlice Jörga Schillinga

Jörg Schilling (který požádal o vydání SCCS v prvních dnech EU) OpenSolaris projekt)[17] udržuje a Vidlička SCCS[18] který je založen na zdrojovém kódu OpenSolaris. Obdržel hlavní vylepšení funkcí, ale zůstává kompatibilní s původními verzemi SCCS, pokud nepoužívá režim „nový projekt“.[19]

Dědictví Project

The Dědictví Project zahrnuje verzi SCCS odvozenou z OpenSolaris zdrojový kód[20] a udržována v období od prosince 2006 do dubna 2007.[21]

Nástroj pro převod GNU

GNU nabízí program kompatibilní s SCCS GNU CSSC ("Compatibly Stupid Source Control"), který se příležitostně používá k převodu archivů SCCS na novější systémy jako CVS nebo Podvracení;[22] není to úplné[23] Implementace SCCS a nedoporučuje se pro použití v nových projektech, ale většinou je určena pro přechod na moderní systém řízení verzí.

Jiné systémy pro správu verzí

Od 90. let mnoho nových systémů pro správu verzí byly vyvinuty a staly se populárními, které jsou určeny pro správu projektů s velkým počtem souborů a které nabízejí pokročilé funkce, jako je provoz více uživatelů, řízení přístupu, automatické vytváření, podpora sítě, správa vydání a řízení distribuované verze. Bitkeeper a TeamWare interně používat formát souboru SCCS a lze jej považovat za nástupce SCCS.[24][25]

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

The SRC systém pro správu verzí může také interně používat formát souboru SCCS (nebo RCS 's) a jeho cílem je poskytnout lepší uživatelské rozhraní pro SCCS a zároveň spravovat pouze projekty s jedním souborem.

Reference

  1. ^ A b C d E Rochkind, Marc J. (prosinec 1975), „Systém řízení zdrojového kódu“ (PDF), Transakce IEEE v softwarovém inženýrství, SE-1 (4), s. 364–370, doi:10.1109 / tse.1975.6312866, S2CID  10006076
  2. ^ A b Věštec. „Kapitola 5 Systém řízení zdrojového kódu SCCS“. Průvodce programovacími nástroji.
  3. ^ http://sccs.sourceforge.net/PWB.html Oznámení AT&T pro SCCSv4
  4. ^ SCCS co (1) stránka z 4BSD, 1980, na webových stránkách Unix Heritage Society Archivováno 2005-08-31 na Wayback Machine.
  5. ^ Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy a Darcy Wiborg-Weber. "Dopad výzkumu softwarového inženýrství na praxi správy softwarové konfigurace." Transakce ACM o softwarovém inženýrství a metodice (TOSEM) 14 (říjen 2005): 383–430.
  6. ^ Hudson, Greg (03.10.2002), Poznámky k uchování historie verzí souborů, Nepublikované osobní poznámky
  7. ^ Estublier, Jacky, David Leblang, André van der Hoek, Reidar Conradi, Geoffrey Clemm, Walter Tichy a Darcy Wiborg-Weber. "Dopad výzkumu softwarového inženýrství na praxi správy softwarové konfigurace." Transakce ACM o softwarovém inženýrství a metodice (TOSEM) 14 (říjen 2005): str.398.
  8. ^ Co je SCCS, Operační systém GNU
  9. ^ Stephen Lau, Sun Microsystems (2006-12-19). „SCCS / zpřístupnění zdroje“. Archivovány od originál 25. dubna 2012. Citováno 2011-11-14.
  10. ^ "Výběr domovské organizace". ProQuest  215925387. Citovat deník vyžaduje | deník = (Pomoc)
  11. ^ Vývoj systému řízení zdrojového kódu. Alan L.Glasser, publikováno sigmetricky, listopad 1978, kdy byl SCCS v systému UNIX verze 4
  12. ^ A b "SCCS". www-h.eng.cam.ac.uk. Citováno 2016-09-12.
  13. ^ A b C IBM. "Obecné koncepty programování: psaní a ladění programů". IBM Knowledge Center.
  14. ^ Úvod do systému řízení zdrojového kódu Eric Allman, Project Ingres, University of California v Berkeley
  15. ^ Systém řízení zdrojového kódu Průvodce programovacími nástroji
  16. ^ Koike, Hideki a Hui-Chu Chu. „VRCS: Integrace správy verzí a správy modulů pomocí interaktivní trojrozměrné grafiky.“ Vizuální jazyky, 1997. Sborník. 1997 IEEE Symposium on. IEEE, 1997.
  17. ^ "os.solaris.opensolaris.rfe - Re: hvězda - zpráva # 00001 - nedávná diskuse OSDir.com". osdir.com. Citováno 10. září 2016.
  18. ^ Vývojový web SCCS od Jörga Schillinga
  19. ^ Web společnosti Schily SCCS: „Zůstane nadcházející SCCSv6 kompatibilní s POSIX a s historickými implementacemi SCCS?“
  20. ^ Gunnar Ritter (20. června 2010). „The Heirloom Development Tools“. Citováno 4. listopadu 2011.
  21. ^ http://heirloom.cvs.sourceforge.net/viewvc/heirloom/heirloom-devtools/sccs/ viz historie CVS
  22. ^ Obslužný program pro převod SCCS2SVN Archivováno 2009-12-22 na Wayback Machine, který pracuje s SCCS i CSSC
  23. ^ Seznam omezení GNU CSSC ve své dokumentaci
  24. ^ "revtool". Dokumentace BitKeeper.
  25. ^ „Úvod do Sun WorkShop TeamWare“. docs.oracle.com. Citováno 10. září 2016.
  26. ^ ident (1) – NetBSD Obecné příkazy Manuál
  27. ^ styl (9) – FreeBSD Vývojáři jádra Manuál

Další čtení