Kapitola 67. Správa zdrojového kódu (SCM)

Obsah

67.1. SCCS - Source Code Control System
67.2. RCS - Revision Control System
67.3. CVS - Concurent Version System
67.4. Subversion
67.5. SVK
67.6. arch
67.7. Git
67.8. Mercurial
67.9. Další systémy správy verzí

Odkazy:

Jakmile naše programátorské pokusy překročí velmi jednoduché školní příklady, a začněme psát něco pro praktické použití, ocitneme se před otázkou jak udržovat zdrojový kód. Pod údržbou zdrojového kódu rozumím archivaci a rozlišení jednotlivých verzí, jakož to i minimální dokumentaci o těchto verzích. V praxi se nám stane že dostaneme informaci o chybě která se projevuje v starší verzi programu a my stojíme před otázkou kde a co opravit.

Nejprimitivnější způsob správy zdrojového porgramu je prostě daný zdrojový kód celý zazálohovat. Můžeme tak činit podle čísla verze, jestli je používáme a udržujeme, nebo podle data.

$ cd projekt/..
$ tar cf - projekt |bzip2 --best >projekt.2007-09-16.tar.bz
$ # nebo
$ tar cf - projekt |bzip2 --best >projekt.číslo-verze.tar.bz

Vytvořený zkomprimovaný balíček si pak uložíme třeba do archivu.

$ mv projekt.číslo-verze-nebo-datum.tar.bz2 $HOME/archiv/

Tip

Pokud používáme program make, můžeme v makefile definovat cíl archivuj.

archivuj:
        cd ..; tar cf - $(PROJEKT) | bzip2 --best >$(ARCHIV)/$(PROJEKT).`date +%F`.tar.bz

Proměnná $(PROJEKT) obsahuje název projektu a proměnná $(ARCHIV) pak adresář do kterého se zapisují archivní verze.

Takovýto způsob správy zdrojových kódů je ovšem značně primitivní, má velké nároky na diskový prostor a velmi špatně se v něm orientuje. Proto již v ranných dobách vznikl první systém správy verzí, SCCS. Takovýto systém sleduje samotné změny ve zdrojovém kódu a umožňuje nám říci jak se tento měnil v čase, rozumějte mezi jednotlivými verzemi.

Poznámka

Systém správy verzí je program, či spíše skupina programů, která umožňuje zaznamenat a sledovat celou historii změn ve sdrojových souborech.

Poznámka

UNIX nebyl jediným operačním systémem a SCCS zcela jistě nebyl prvním programem svého druhu. Ale programy jenž nejsou běžně dostupné na Linuxu/UNIXu nejsou předmětem tohoto dokumentu.

Poznámka

Systém správy verzí je program, či spíše skupina programů, které umožňují zaznamenat celou historii zdrojových souborů. Tedy zaznamenat všechny změny kterými soubory prošly s možností získat kteroukoliv revizi těchto souborů. Můžeme se tak podívat, jaký byl obsah zdrojových souborů před měsícem, nebo před nějakou důležitou změnou, jakožto si i vyjet rozdíly mezi jednotlivými revizemi.