A használandó program kiválasztásakor néhány fontos tényezőt meg kell fontolni.
Az adatok szétosztásához általában két különböző modellt használnak. Az első modellben az összes kliens egy központi kiszolgálóval szinkronizálja a fájlokat. A kiszolgálót legalább időnként az összes kliensnek el kell érnie. Ezt a modellt használja a CVS.
A másik lehetőség, hogy az összes hálózati gép egymással, mint egyenrangú féllel szinkronizálja az adatokat. Az rsync valójában kliens módban működik, de bármely kliens működhet kiszolgálóként is.
A CVS és az rsync számos más operációs rendszeren is rendelkezésre áll, a különböző UNIX- és Windows-rendszereket is beleértve.
A CVS programban az adatszinkronizálást a felhasználó maga kezdeményezi. Ez lehetővé teszi a szinkronizálandó adatok kifinomult felügyeletét és az ütközések kezelése is egyszerűbb. Azonban ha a szinkronizációs időközök túl hosszúak, akkor nagyobb valószínűséggel történnek ütközések.
A CVS programban ritkán történnek ütközések; még akkor sem, ha több ember dolgozik egy nagy projekten. Ennek az az oka, hogy a dokumentumok egyedi sorok alapján kerülnek összefésülésre. Az esetlegesen fellépő ütközés csak egy kliensre van hatással. A CVS programban az ütközés általában egyszerűen feloldható.
Az rsync-ben egyáltalán nincs ütközéskezelés. A felhasználó felelős azért, hogy ne írja véletlenül felül a fájlokat és hogy kézzel feloldja az esetleges ütközéseket. A biztonság kedvéért egy verziókezelő rendszer – például az RCS – is alkalmazható.
A CVS programban az új könyvtárakat és fájlokat a cvs add
parancs segítségével explicit módon meg kell adni. Így a felhasználók jobban kézben tarthatják a szinkronizálandó fájlokat. Másrészt viszont könnyebb kifelejteni az új fájlokat, különösen akkor, ha a cvs update
parancs kimenetében lévő kérdőjeleket a fájlok nagy száma miatt figyelmen kívül hagyjuk.
A CVS további funkciója, hogy a régi fájlverziók rekonstruálhatók. Rövid szerkesztési megjegyzések szúrhatók be a módosításokhoz, így a fájlok fejlesztése a tartalom és a megjegyzések alapján később egyszerűen nyomon követhető. Ez értékes segítség például értekezések és programszövegek írásakor.
Az elosztott adatokhoz elegendő szabad területre van szükség az összes érintett gépen. A CVS további területet igényel a kiszolgálón az adattár adatbázisa számára. A fájlok előzményeit szintén a kiszolgáló tárolja, ami még több területet igényel. A szöveges formátumú fájlok módosításakor csak a megváltozott sorokat kell elmenteni. A bináris fájlok minden módosításkor további területet igényelnek.
A tapasztalt felhasználók a CVS programot általában parancssorból futtatják. Emellett azonban rendelkezésre állnak grafikus felhasználói felületek Linux alá (pl. a cervisia), és más operációs rendszerekhez is (pl. wincvs). Számos fejlesztőeszköz (pl. a kdevelop) és szövegszerkesztő (pl. az emacs) támogatja a CVS használatát. Az ütközések feloldását gyakran egyszerűbb ezeken a felhasználói felületeken végrehajtani.
Az rsync használata meglehetősen egyszerű és kezdők számára is könnyű. A CVS használata némileg bonyolultabb. A felhasználóknak meg kell érteniük az adattár és a helyi adatok közötti interaktív kapcsolat működését. Az adatmódosításokat először helyileg össze kell fésülni az adattárral. Ez a cvs update
paranccsal hajtható végre. Ezután az adatokat a cvs commit
parancs segítségével az adatokat vissza kell küldeni az adattárnak. Ha ezt az eljárást átlátják, akkor az új felhasználók a CVS programot is kényelmesen használhatják.
Az átvitel során az adatokat védeni kell lehallgatás és módosítás ellen. A CVS és az rsync egyszerűen használható ssh-n (secure shell) keresztül, ezáltal biztonságot nyújt az ilyen támadások ellen. A CVS rsh-n keresztüli használatát érdemes elkerülni. A CSV pserver mechanizmuson keresztüli elérése nem biztonságos hálózatokban szintén nem ajánlott.
A CVS-t a fejlesztők már régóta használják programozási projektek kezelésére, lévén rendkívül stabil. Mivel a fejlesztési előzmények mentésre kerülnek, a CVS bizonyos felhasználói hibák – például a fájl véletlen törlése – ellen is védelmet nyújt.
38.1. táblázat - A fájlszinkronizálási eszközök jellemzői: -- = nagyon gyenge , - = gyenge vagy nem áll rendelkezésre, o = közepes, + = jó, ++ = kitűnő, x = rendelkezésre áll
CVS |
rsync | |
---|---|---|
Kliens/kiszolgáló |
C-S |
C-S |
Hordozhatóság |
Lin,Un*x,Win |
Lin,Un*x,Win |
Interaktivitás |
x |
x |
Sebesség |
o |
+ |
Ütközések |
++ |
o |
Fájlkiv. |
Kiv./fájl, könyvt. |
Könyvt. |
Előzmények |
x |
- |
Szabad terület a merevlemezen |
-- |
o |
GUI |
o |
- |
Bonyolultság |
o |
+ |
Támadások |
+ (ssh) |
+(ssh) |
Adatvesztés |
++ |
+ |