CVS gyorstalpaló

1. Mi a CVS?

A CVS (Concurrent Versions System) egy konfiguráció menedzsment eszköz. Konfiguráció menedzsmentre pedig akkor van szükség, ha egy projekt sok fájlját  kell módosítani, a módosításokat nyomon követni, és korábbi változatokat szeretnénk később visszanyerni.

A CVS az RCS (Revision Control System) változatkezelő rendszeren alapul, kiterjesztve azt olyan módon, hogy a fájlok csoportjaira menedzsment eszközöket biztosít.

2. Alapfogalmak

3. Beállítások

CVSROOT környezeti változó beállítása:

setenv CVSROOT :pserver:[username]@hydra.ik.bme.hu:/tipster6

setenv CVSUMASK=007

(Ezt célszerű beletenni valamilyen inicializáló scriptbe)

Ezután be lehet lépni a CVS szerverre.

cvs login

Így a távoli gépen lehet dolgozni, nem kell a hydra-n. A CVSROOT beállítása helyett lehet minden parancs

-d :pserver:[username]@hydra.ik.bme.hu:/tipster6

kapcsolóval való ellátása is.

3.1 CVS Szintakszis

cvs [cvs-options] cvs_command [command-options] [command arguments]

4. Munka a CVS-ben

4.1 Munkamásolat kérése

cvs co tipster6

A tipster6-ról ad egy másolatot. Egy tipster6 könyvtárat csinál, oda másolja repositry tartalmát. A létrehozott CVS könyvtárban mindenféle menedzsment információt tárol, amit nem szabad bántani, különben nem fog sikerülni a commit.

4.2 Változtatás jóváhagyása

cvs commit akarmi.html

Jóváhagyja a fájl változtatásait. Csak akkor commit-áljunk, ha már lefogadható a változtatás. A commit elindit egy editort, amiben le kell írni, hogy milyen változtatás történt. Ez az editor alap esetben a 'vi'. Ha nem megfelelő, akkor CVSEDITOR környezeti változóval megváltoztatható

4.3 Munkamásolat felszabadítása

Az új szerkesztés megkezdése előtt célszerű letörölni a munkamásolatot.

cvs release -d tc

Ami a tc katalógust felszabaditja. Jelez, ha van olyan fájl, ami újabb, mint ami a repository-ban található. Így biztosan nem veszik el a munkánk.

4.4 Változatok közötti különbségek jelzése

cd papers

cvs diff index.html

A hagyományos diff-szerű kimenetet mutatja.

4.5 Revision number kezelés

Általában magától lépteti, ha változás történt. Azonos revision number-re hozás

cvs commit -r 3.0

, ami 3.0 -ra allitja.

4.6 Egyes változatok névvel cimkézése

cvs tag rel-0-4 index.html

4.7 Fájl státusának lekérdezése

cvs status index.html

4.8 Egy adott cimkéjű munkaváltozat lekérése

cvs checkout -r rel-1-0 papers

4.9 Fájlok frissítése a legfrissebb változatra

cvs update papers

Az adott fájlt vagy könyvtárat, rekurzívan. Minden nélkül az adott könyvtárt.

4.10 Fájl hozzáadása

Létrehozni a fájlt a munkaváltozatban, majd:

cvs add FILENAME

Ha a fájl bináris információt tartalmaz, akkor -kb paraméter is kell.

cvs commit FILENAME

Jováhagyás válik láthatóvá a többiek felé. Az add nem rekurzív.

4.11 Fájl törlése

Meg kell győzödni, hogy nincs különbség a repository-tól.

A munka másolatból fájl törlése. (rm)

cvs rm FILENAME

cvs commit FILENAME

A file törlődött. A korábbi változatok előszedhetők!

4.12 Könyvtár törlése

Először a fájlokat kell kitörölni, majd

cvs update -P

-vel törli az üres könyvtárakat.

4.13 Fájl átnevezés

mv OLD NEW

cvs remove OLD

cvs add NEW

cvs commit -m "Renamed OLD to NEW" OLD NEW

Az új revision numbere előlről kezdődik!

4.14 Kulcsszó kifejtés

A CVS képes a fájlokban található speciális kulcsszavakat az aktuális értékkel kifejteni. A fájlban: $KEYWORD$, és minden változásnál aktualizálja.

(Nem kell írni pl. a verziószámokat... )

$Author: mohacsi $ A login név.
$Date: 2000-12-06 17:01:52 +0100 (Wed, 06 Dec 2000) $ A dátum (UTC).
$Header: /home/mohacsi/tipster6/tipster6/papers/cvs_overview/index.html,v 1.1 2000/12/06 16:01:52 mohacsi Exp $ Alap header, ami tartalmazza: elérési út, verziószám, dátum, szerző, állapot.

 

$Id: index.html 25 2000-12-06 16:01:52Z mohacsi $ Mint az előző, csak nem a full path, hanem csak a név van benne.
$Name: $ A file neve.
$Log: index.html,v $ Revision 1.1 2000/12/06 16:01:52 mohacsi CVS gyorstalpalo anyag felteve. A 'commit' alatti bejegyzést elhelyezi a file-ban is. A régi bejegyzéseket nem módosítja. (Changelog gyüjtő funkció)
$Revision: 1.1 $ A verzióhoz rendelt szám.

5. Több fejlesztő együttes munkája

6. CVS adminisztráció

Akinek irásjoga van valamire a CVS-ben, annak a valóságban is kell lennie! Legjobb egy csoportot csinálni, s annak a tulajdonába rakni az egész repositoryt.

6.1 Repository létrehozás

cvs init

6.2 Új CVS projekt kezdése

Nem igen ajánlott a könyvtárak és file-ok mozgatása, ezért előtte át kell gondolni a file-szerkezetet!

Könyvtár szerkezet elkészítése

cvs import -m "Initial import" yoyodyne/DIR yoyo start

A teljes könyvtárszerkezetet felrakja. Leírás:

import [-options] repository vendortag releasetag

Ahol:

repository    A konyvtar CVS alatt

vendortag    vendor

releasetag    release

7. Referenciák

CVS page http://www.loria.fr/~molli/cvs-index.html

CVS manual http://durak.org/cvswebsites/doc/

CVS book http://cvsbook.red-bean.com/

CVS leírás http://unicorn.sch.bme.hu/~kisza/prolab/leiras.txt

CVS for version management http://www.hut.fi/~kuparine/papers/cvs/cvs.html


Copyright

$Id: index.html 25 2000-12-06 16:01:52Z mohacsi $