A CVS, amelyet széles körben elterjedten használnak program forráskódok verzióinak kezelésére, lehetőséget teremt a fájlok másolatainak több gépen történő tárolására is.
A CVS egy központi adattárat tart karban a szerveren, amely nem csak a fájlokat, hanem azok módosításait is tárolja. A módosítások a helyi gépről beküldött fájlok alapján történhetnek és más gépekre bármikor letölthetők, illetve frissíthetők.
A CVS nagyon jól kezeli a párhuzamosan több gépen történt fájlváltoztatásból eredő hibákat. A módosítások összefűzésre kerülnek, és ha azonos sorban lennének, az ütközés jelentésre kerül. Amikor ütközés van, az adatbázis továbbra is konzisztens marad. Az ütközés csak a kliensgép számára látható. A CVS alapvetően szöveges fájlok módosításait kezeli jól.
Windows-on a Tortoise CVS nevű komponenst használhatjuk; ezzel kapcsolatban egy érdekesség: a CVS.EXE nevű program bizonyos körülmények között végrehajta a CHCP 65001 műveletet, vagyis UTF8-as módba kapcsolja magát. És az őt futtató CMD.EXE-t is. Egyes régebbi Windows-okban (XP, pl) a CMD.EXE ezt azzal hálálja meg, hogy elveszti a batch-futtatás képességét (hibaüzenet nincs persze).
Ha szervert szeretnénk létrehozni (egy lehetséges eljárás):
# cvs -d /var/local/cvsroot init
A /var/local/cvsroot és benne a CVSROOT alkönyvtár (és elemei) jogait úgy állítsuk be, hogy akiket akarunk engedni CVS-elni, azok hozzáférjenek (mondjunk legyen cvs csoport)
Asszem nem lesz baj, ha ide blogolok a CVS-sel kapcsolatos élményeikmről...
Az egésznek a kezdete valami olyasmi, hogy
export CVSROOT=:pserver:user@host:/path # egyeztessünk export CVS_RSH=/usr/bin/rsh # vagy ssh, egyeztessünk cvs login cd /ahol/a/project/van/ezaprojectneve cvs import ezaprojectneve ezaprojectneve start
cd /valahova/mashova cvs checkout ezaprojectneve ls -lR ezaprojectneve
Az import előtt érdemes kiírtani a felesleges fájlokat, vagy még inkább csak a fontos fájlokat átmásolni egy termporális könyvtárba, és onnan importálni.
A leírásban adott dolgokat gondolom sokan ismerik. Mi is használjuk már régóta a CVS szervereket. Azonban új feladat merült fel: vegyük át az egyik adminisztrálását.