Naprej Nazaj Kazalo

3. Postavljanje CVS

Najprej morate namestiti paket CVS. Če imate Redhat Linux, izvedite


cd /mnt/cdrom/Redhat/RPMS
rpm -i rcs*.rpm
rpm -i cvs*.rpm
Spisek nameščenih datotek si lahko ogledate z -
rpm -qpl cvs*.rpm | less

in pobrskajte po izhodu z j,k, CTRL+f, CTRL+D, CTRL+B, CTRL+U, page up/down ali smerniškimi tipkami. Oglejte si 'man less'.

Pri drugih vrstah Unixa boste morda morali najprej dobiti datoteke v zapisu tar z RCS in CVS ter slediti datotekama README in INSTALL za postavitev CVS. Obiščite http://www.cyclic.com in http://www.loria.fr/~molli/cvs-index.html.

3.1 Spremenljivke okolja

Naslednje spremenljivke okolja morajo biti nastavljene v /etc/profile - to so privzete vrednosti zahtevane za vse uporabnike. Če niso nastavljene v /etc/profile, morate dodati tole v vašo lokalno datoteko za zagon ob prijavi:  /.bash_profile.


export EDITOR=/bin/vi
export CVSROOT=/home/cvsroot
export CVSREAD=yes

Naredite imenik za skladiščenje izvorne kode ter dodelite dostop za branje in pisanje unixovi skupini/uporabniku. Prepričajte se tudi, da ime imenika pri spremenljivki CVSROOT ne vsebuje presledkov (vrednosti te spremenljivke ne smete nastaviti na npr. '/home/moj cvsroot'.


bash$ su - root
bash# export CVSROOT=/home/cvsroot
bash# groupadd --help
bash# groupadd cvs
bash# useradd --help
bash# useradd -g cvs -d /home/cvsroot cvs

bash# ls -ld $CVSROOT   ... (morali bi videti tudi seznam datotek)
bash# chmod o-rwx $CVSROOT
bash# chmod ug+rwx $CVSROOT

# Pripravite si skladišče CVS in vanj shranite datoteke:
bash# cvs init

# V skupino cvs dodajte uporabniška imena uporabnikov. Naredite dodatno skupino za uporabnike.
# Upoštevajte, da za vejicami, ki ločujejo imena skupin pri izbiri -G, NE SME
# biti presledkov.
# V spodnjem primeru uporabnik tom pripada skupinam cvs, users in staff,
# uporabnik johnson pa pripada samo skupini cvs.
bash# usermod --help
bash# usermod -G cvs unixova_uporabniška_imena
bash# usermod -G cvs,users,staff tom
bash# usermod -G cvs,users,staroffice billclinton
bash# usermod -G cvs johnson
bash# exit    .... (odjavite se z računa sistemskega uporabnika (root))

# Prijavite se kot uporabnik in uvozite datoteke v CVS....
bash$ su - billclinton
bash$ export EDITOR=/bin/vi
bash$ export CVSROOT=/home/cvsroot
bash$ export CVSREAD=yes

# Sprememba delovnega imenika je obvezna
bash$ cd $HOME/moj_imenik_z_izvorno_kodo

# Podati je treba oznako proizvajalca in revizije
cvs import moj_imenik_z_izvorno_kodo Vendor1_0 Rev1_0  

# Npr. jaz sem naredil tole:
bash$ cd $HOME/foobar
bash$ cvs import foobar Vendor1_0 Rev1_0

# Primer testiranja in verifikacije:
bash$ cd $HOME/foobar
bash$ cvs checkout myfoo.java

POGOSTA NAPAKA: ko izvedete 'cvs checkout', lahko dobite opozorilo, da je modul neznan. Pogosta napaka je, da ob 'cvs import' ne zamenjate imenika. OBVEZNO morate iti v imenik z izvorno kodo in šele potem izvedite 'cvs import'. Na primer:


bash$ cd $HOME/foobardir
bash$ cvs import foobardir Vendor1_0 Rev1_0

3.2 Selitev od RCS k CVS

Ze preselitev obstoječih datotek iz RCS v CVS uporabite naslednji skript. Prepričajte se, da imate nameščen paket z lupino Korn (pdksh*.rpm s CDja Linux Contrib).

Opomba: Lupino Korn /bin/ksh dobite z namestitvijo paketa pdksh*.rpm s CDja Linux Contrib.


#!/bin/ksh

#############################################################
# Program za selitev obstoječih datotek izvorne kode iz RCS v CVS 
#
# Potreben je RPM paket pdksh*.rpm s Cdja Linux contrib 
#############################################################

#
# rcs2cvs - pretvori drevo izvorne kode iz RCS v CVS
#

# projekt za pretvorbo
PROJECT='project'

# trenutni izhodiščni imenik RCS 
RCSROOT="$HOME/rcs"

if cd "$RCSROOT/$PROJECT"
then
        cd "$RCSROOT"
else
        echo >&2 "`basename "$0"`: ne morem priti v RCS-jev imenik '$RCSROOT/$PROJECT'."
        exit 1
fi

# trenutni izhodiščni imenik CVS
CVSROOT="$HOME/cvs"

# naredi nov imenik v CVS za projekt 'project'
if mkdir "$CVSROOT/$PROJECT"
then
        :
else
        echo >&2 "`basename "$0"`: ne morem narediti CVS-jevega imenika '$CVSROOT/$PROJECT'."
        exit 2
fi

# naredi projektno drevo CVS iz drevesa RCS 
find "$PROJECT" -type d -name RCS -print |
while read RCS
do
        CVS="`dirname "$RCS"`"
        (if cd "$RCS"
        then
#               if find . -type f -name '*,v' -print | cpio -pdmv "$CVSROOT/$CVS"
                if find . -type f -print | cpio -pdmv "$CVSROOT/$CVS"
                then
                        :
                else
                        echo >&2 "`basename "$0"`: ne morem pretvoriti RCS-jevega podimenika '$RCSROOT/$RCS' v CVS-jev podimenik '$CVSROOT/$CVS'."
                fi
        else
                echo >&2 "`basename "$0"`: ne morem priti v  RCS-jev podimenik '$RCSROOT/$RCS'."
        fi)
done

Sedaj smo preselili projekt iz RCS v CVS kot 'project'. Pričnete lahko uporabljati ukaze CVS na modulu 'project'.


Naprej Nazaj Kazalo