RCS (Revision Control System) je systém pro správu často modifikovaných souborů, např. zdrojových textů či dokumentace. RCS umožňuje řešit problém sdílení zdrojových souborů několika programátory.
Základními příkazy RCS jsou ci(check in) a co (check out).
Řekněme, že modifikujeme soubor foo.txt, který sdílí více
programátorů.
Příkaz ci uloží obsah souboru foo.txt
do archivu s příponou ,v (versons), tj. foo.txt,v,
a původní soubor zruší. Pokud chce soubor někdo užívat musí jej vyjmout
s archivu příkazem co -l. Příkaz co archiv uzamkne,
takže
soubor nemůže modifikovat nikdo, kromě uživatele, který jej z archivu vyjmul.
Po vložení změněného souboru se zámek zruší. Z archivu je však možné
kdykoli získat poslední versi pouze pro čtení, což se hodí
v případě zdrojových souborů, které jsou nutné ke kompilaci.
V archivu je uložena celá historie souboru, lze kdykoli zjistit jaké změny byli
a kým provedeny. Příkazem co lze z archivu vyjmout libovolnou versi
souboru. Archivní soubory se vytvářejí v podadresáři RCS. V případě, že
podadresář RCS neexistuje vytvářejí se v aktuálním adresáři.
Tedy postup práce s RCS je následující:
foo.txt
foo.txt do archivu příkazem:
> ci foo.txtpoté jsme RCS vyzváni výzvou
>> k zadání popisu daného souboru;
popis může být výceřádkový a ukončuje se tečkou, zananou na samostatném
řádku.
foo.txt,v <-- foo.txt enter description, terminated with single '.' or end of file: NOTE: This is NOT the log message! >> To je dokumentace k foo.c >> . initial revision: 1.1 donePři dalším použitím
ci se RCS dotazuje na seznam změn v daném souboru.
> co foo.txt foo.txt,v --> foo.txt revision 1.1 donenebo pro účely další modifikace:
> co -l foo.txt foo.txt,v --> foo.txt revision 1.1 (locked) done
Při každém dalším použití ci se automaticky zvětší číslo verse,
tj. z 1.1 na 1.2 atd., v případě potřeby lze číslo verse přiřadit při vkládání
souboru do archivu parametrem -r příkazu ci:
> ci -r2.0 foo.txt foo.txt,v <-- foo.txt new revision: 2.0; previous revision: 1.1 enter log message, terminated with single '.' or end of file: >> Kompletne prenelana dokumentace k foo.c >> . done
Libovolnou versi lze vyjmout z archivu příkazem co
s parametrem -r. Například versi 1.1 souboru foo.txt
vyjmeme z archyvu takto:\\
> co -r1.1 foo.txt foo.txt,v --> foo.txt revision 1.1 done
Pokud na daném projektu pracuje pouze jeden člověk a pouze chce ukládat
jednotlivé verse daného souboru do archivu lze namísto neustálého
dvojice příkazů ci foo.txt; co -l foo.txt psát jeden příkaz
ci -l foo.txt.
Další užitečnou vlastností RCS je, že přímo v textu lze zobrazovat
číslo užívané verse. Stačí někam do textu (nejlépe někde v hlavičce,
a v případě zdrojového textu nějakého programovacího jazyka do komentáře)
vložit řetězec
$Id$
který příkaz co
zkonvertuje na řetězec:
$Id: jméno_souboru verse datum čas autor stav
$
Dalšími užitečnými programy pro práci s archivem versí jsou:
ci Podrobnější informace lze nalézt v manuálových stránkách rcsintro(1), ci(1), co(1), rcs(1), rcsdiff(1), rlog(1), rcsmerge(1) a ident(1)