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
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.
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
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