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.
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.
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.
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ó
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.
cd papers
cvs diff index.html
A hagyományos diff-szerű kimenetet mutatja.
Á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.
cvs tag rel-0-4 index.html
cvs status index.html
cvs checkout -r rel-1-0 papers
cvs update papers
Az adott fájlt vagy könyvtárat, rekurzívan. Minden nélkül az adott könyvtárt.
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.
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!
Először a fájlokat kell kitörölni, majd
cvs update -P
-vel törli az üres könyvtárakat.
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!
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. |
<összefésülhető kód eddig>
<<<<<<<<fájlnév>
<konfliktust okozó kódrészlet az egyik változatból>
=======
<konfliktust okozó kódrészlet a másik változatból>
>>>>>>>
<összefésülhető kód tovább.
Manuálisan össze kell fésülnünk a két részletet, hogy a konfliktust
fel tudjunk oldani.
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.
cvs init
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
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
$Id: index.html 25 2000-12-06 16:01:52Z mohacsi $ |