A CVS akkor felel meg leginkább szinkronizálásra, ha az egyedi fájlok gyakran kerülnek módosításra, és olyan fájlformátumban kerülnek tárolásra, mint például ASCII szöveg vagy program forrásszöveg. A CVS más formátú adatok (például JPEG-fájlok) szinkronizálására is használható, de ez nagyon sok adatot eredményez, mivel a fájl minden verziója állandó jelleggel tárolásra kerül a CVS kiszolgálón. Ilyen esetekben a CVS legtöbb funkciója nem használható. A CVS csak akkor használható fájlok szinkronizálásához, ha az összes munkaállomás el tudja érni ugyanazt a kiszolgálót.
A kiszolgáló az a gép, amelyen az összes érvényes fájl megtalálható, a fájlok legújabb változatát is beleértve. Bármelyik állandó munkaállomás használható kiszolgálóként. Ha lehetséges, akkor a CVS-adattár adatait érdemes belevenni a szokásos biztonsági mentésekbe.
CVS-kiszolgáló beállításakor jó ötlet a felhasználók számára SSH-n keresztüli hozzáférést biztosítani a kiszolgálóhoz. Ha a felhasználó neve a kiszolgálón tux
és a CVS szoftver telepítve van a kiszolgálón és a kiszolgálón is, akkor az alábbi környezeti változókat kell beállítani kliensoldalon:
CVS_RSH=ssh CVSROOT=tux@server:/serverdir
A CVS-kiszolgáló kliensoldalról a cvs init
parancs segítségével inicializálható. Ezt csak egyszer kell végrehajtani.
Végül a szinkronizációhoz hozzá kell rendelni egy nevet. A kliensen válasszon ki vagy hozzon létre egy könyvtárat kizárólagosan a CVS segítségével kezelendő fájlok tárolásához (a könyvtár üres is lehet). A könyvtár neve a szinkronizáció neve is. Ebben a példában a könyvtár neve synchome
. Lépjen át ebbe a könyvtárba és adja ki az alábbi parancsot a szinkronizációs név synchome
értékre állításához:
cvs import synchome tux wilber
Számos CVS-parancshoz szükség van megjegyzésekre. Erre a célra a CVS elindít egy szerkesztőt (a $EDITOR
környezeti változóban megadott szerkesztő, vagy ha nincs megadva, akkor a vi). A szerkesztő meghívása elkerülhető, ha a parancssorban előre magadja a megjegyzést a következő példához hasonló módon:
cvs import -m 'this is a test' synchome tux wilber
A szinkronizációs adattár most már a cvs co synchome
paranccsal az összes gépről kiiktatható. Ez létrehoz egy új synchome
alkönyvtárat a kliensen. A módosítások elküldéséhez a kiszolgálóra lépjen át a synchome
könyvtárba (vagy ennek egyik alkönyvtárába) és adja ki a cvs commit
parancsot.
Alapértelmezés szerint az összes fájl átküldésre kerül a kiszolgálóra (az alkönyvtárakkal együtt). Egyedi fájlok vagy könyvtárak átküldése a következő módon adható meg: cvs commit fájl1 könyvtár1
. Ha új fájlokat és könyvtárakat szeretne hozzáadni az adattárhoz, akkor azokra a kiszolgálóra küldés előtt egy ehhez hasonló parancsot kell kiadni: cvs add fájl1 könyvtár1
. Ezután az újonnan hozzáadott állományok a cvs commit fájl1 könyvtár1
parancs segítségével átküldhetők.
Ha másik munkaállomásra lép át, akkor iktassa ki a szinkronizációs adattárat, ha ez egy korábbi munkamenetben még nem történt meg ugyanazon a munkaállomáson.
A cvs update
parancs segítségével indítsa el a szinkronizálást a kiszolgálóval. Az alábbi módon frissítse az egyedi fájlokat vagy könyvtárakat: cvs update fájl1 könyvtár1
. Az aktuális fájlok és a kiszolgálón tároltak közötti különbségek megjelenítéséhez használja a cvs diff
vagy cvs diff fájl1 könyvtár1
parancsot. A cvs -nq update
parancs segítségével tekintse meg, hogy a frissítés mely fájlokat érinti.
A frissítés során például ilyen állapotszimbólumokkal találkozhat:
A helyi változat frissítésre került. Ez a kiszolgálón meglévő és a helyi rendszerről hiányzó összes fájlt érinti.
A helyi változat módosításra került. Ha történtek módosítások a kiszolgálón, akkor az eltérések a helyi változatban összefésülhetők voltak.
A helyi változat kijavításra került a kiszolgálón lévő változattal.
A helyi fájl ütközött az adattárban lévő aktuális változattal.
A fájl nem létezik a CVS-ben.
Az M
egy helyileg módosított fájlt jelöl. Küldje el a helyi másolatot a kiszolgálónak, vagy távolítsa el a helyi fájlt és futtassa újra a frissítést. Ebben az esetben a hiányzó fájl lekérésre kerül a kiszolgálóról. Ha elküld egy helyileg módosított fájlt, amely ugyanabban a sorban módosult és elküldésre került, akkor ütközés léphet fel, amelyet a C
jelöl.
Ebben az esetben tekintse meg az összeütközésjeleket (»> és «<) a fájlban, és döntsön a két verzió között. Mivel ez elég kellemetlen feladat, lehet, hogy inkább le kíván mondani a módosításokról. Ilyenkor törölje le a helyi fájlokat, és adja ki a cvs up
parancsot az aktuális verzió lekéréséhez a kiszolgálóról.
Ez a fejezet csak egy rövid ismertetést tartalmaz a CVS számos lehetőségéről. Részletesebb dokumentációt a következő címeken talál:
Rsync: http://www.gnu.org/manual