Musím sa priznať, že ked som v mojich manuálových zdrojoch videl tému správy verzií po prvý krát bol som dosť znudený. Po istom čase som sa do tejto časti manuálu opäť pozrel a určite to neľutujem.
O čo teda v praxi ide a ako to našu prácu uľahčí? Teoreticky by sme to mohli nazvať ako zaznamenávanie zmien v súboroch. Za pomoci správy verzií môžeme zistiť ako vyzeral súbor v istom čase napríklad pred tým než niečo prestalo fungovať, kto túto zmenu previedol a mnoho dalšieho.
Aj keď existuje mnoho programov na rôznych platformách, ja som sa naučil ovládať základné funkcie programu RCS, ktorý by som Vám rád predstavil. Tieto obkecávačky na začiatku mi moc nejdú a taktiež väčsina ľudí pochopí viac vecí na konkrétnych príkladoch takže sa pokúsim isť rovno na ne.
Ako som už vyššie napísal program RCS bude ako keby správca vášho súboru, teoreticky naň bude dohliadať. Preto je prvým krokom predať tomuto šikovnému programu informáciu o ktorý program sa má zaujímať. To môžeme urobiť v príkazovom riadku takto
ci < cesta k súboru a jeho meno >
Vytvorme si teda priečinok kde tieto testy budeme skúšať
$ mkdir RCS && cd RCS
Následne vytvorme textový súbor napríklad stuff.txt, jeho obsah bude tvorený textom napríklad : "Obsah cislo 1"
Všimnite si, že zatiaľ samozrejme máte oprávnenie editovať a spravovať súbor
$ ls -l
-rw-r--r-- 1 javo javo 14 Dec 27 23:42 stuff.txt
Dáme RCS vedieť, že sa má súborom zaoberať.
$ ci stuff.txt
RCS/stuff.txt,v <-- stuff.txt
enter description, terminated with single '.' or end of file:
NOTE: This is NOT the log message!
>> opis suboru stuff.txt
>> .
initial revision: 1.1
done
Čo nám tento výstup povedal? Súbor stuff.txt bol zapísaný do stuff.txt,v . Taktiež Vás vyzval k zadaniu opisu súboru. Tieto opisy zadáva autor pri každej zmene súboru a neskôr ich naozaj oceníte aj keď sa to všetko dá aj bez nich, no zatiaľ nepredbiehajme. Čaká tu ale jedno nemilé prekvapenie, a síce to, že súbor stuff.txt bol vymazaný, alebo ak chcete nahradený stuff.txt,v . Niekedy to vadí niekedy nie, no ja pre istotu používam voľbu -u pri príkaze ci. Ktorá zabráni tejto situácii a ponechá aj originálny súbor. Ak je už ale neskoro, môžete to zachrániť príkazom
co stuff.txt
Súbor je teda pod správou RCS, a vy ste k nemu stratili práva. Overiť si to možete takto
$ ls -l
-r--r--r-- 1 javo javo 14 Dec 27 23:42 stuff.txt
-r--r--r-- 1 javo javo 14 Dec 28 00:00 stuff.txt,v
Co teda urobiť ked chcete vy alebo niekto iný editovať súbor? Daná osoba musí požiadať RCS o uvoľnenie a to príkazom
$ co -l stuff.txt
Príkaz co (check out, pre viac informácii "man co") rezervuje pre Vás daný súbor, obsahuje mnoho zaujímavých funkcií, stačí si však zatiaľ zapametať tie základné. Pokiaľ je spúštaný s voľbou -l (pravdepodobne to znamená "lock") daný súbor je uzamknutý a jedine vy ho môžete editovať. Po ukončení práce kontrolu nad ním predáte opäť RCS príkazom ci (check in)
$ ci -u stuff.txt
Dalšia možnosť príkazu co je
$ ci -r/cislo vertzie/ stuff.txt
V tomto prípade sa do súboru stuff.txt nahrá jeho obsah no vo verzii ktorú zadáte.
Tipy a triky
Priečinok RCS
Pokiaľ vytvoríte príliš veľa súborov ktoré budú kontrolované RCS, bude v priečinku trocha zmätok, ak však ale vytvoríte priečinok RCS, všetky súbory s príponou ,v budú uložené práve tu a všetko bude prehľadné.
Prelomenie zámku
Ak ľubovoľný užívateľ zabudne vrátiť súbor pod správu RCS a vy ho potrebujete súrne editovať je možné prebrať nad ním kontrolu trocha násilnícky a to pomocou príkazu
$ rcs -u stuff.txt
Následne budete požiadaný o správu pre používateľa ktorého zámok ste prelomili, všetky úpravy tejto osoby budú stratené, najskôr sa teda pokúste kontaktovať danú osobu.
Indetifikačné retazce
Pokiaľ v textovom súbore uložíte riadok s textom
# $Id$
bude tento riadok pretransformovaný na údaje o danom súbore, napríklad
#$Id: test_rcs,v 1.7 2007/12/27 20:38:16 javo Exp $
nájdete tu čas editácie, dátum, meno autora, atd.
Príkaz rcsdiff
Pokiaľ chcete porovnať jednotivé verzie pomôže Vám príkaz "rcsdiff", ktorý má 3 parametre, 1. verzia súboru, 2. verzia súboru a meno súboru, následne uvidíte porovnanie daných verzií, príklad:
$ rcsdiff -r1.1 -r1.2 stuff.txt
O funkciách správy verzií sa dá napísať celá kniha, existuje mnoho programov, no najlepšie bude ak si tieto vymoženosti vyskúšate sami.
Dúfam, že som Vás týmto článkom prinajmenšom inšpiroval na napísanie "man rcs", "man co" alebo "man ci" do príkazového riadku.