CVS
Mikä on CVS?
CVS on rinnakkainen versionhallintajärjestelmä, jonka avulla eri käyttäjät voivat jakaa ja muokata tiedostojen eri versioita.
CVS:n asentaminen
Debian GNU/Linuxissa CVS:n asentaminen onnistuu yksinkertaisesti komennolla
apt-get install cvs
CVS:stä on saatavilla asennuspaketteja muillekin Linux-distribuutioille. CVS:n lähdekoodi löytyy osoitteesta www.cvshome.org.
CVS:n käyttö
CVS-arkiston sijainti
CVS tallettaa tiedostot arkistoon (engl. repository), jonka sijainti täytyy kertoa cvs-komentorivityökalulle. Arkiston sijainti voidaan antaa komentoriviparametrilla -d tai tallettaa ympäristömuuttujaan CVSROOT.
CVS:ää voi käyttää tietoturvallisen ssh-yhteyden yli, jolloin CVSROOT asetetaan seuraavasti:
$ CVS_RSH=ssh; export CVS_RSH $ CVSROOT=:ext:user@host:/var/lib/cvs
Ylläolevassa esimerkissä käyttäjätunnus on user ja koneen nimi host. CVS-arkisto sijaitsee hakemistossa /var/lib/cvs.
Uuden arkiston perustaminen
Uusi arkisto perustetaan seuraavalla komennolla:
$ cd projekti $ cvs import -m "Uusi projekti" projekti projekti start
Ylläolevassa esimerkissä arkistoon laitettavat tiedostot sijaitsevat hakemistossa projekti.
Tiedostojen hakeminen arkistosta
Tiedostot haetaan arkistosta paikalliseen hakemistoon seuraavalla komennolla:
$ cvs checkout projekti
Muutosten kommittointi
Kun tiedoston muokkaus on valmis, ja tiedoston uusi versio halutaan arkistoon muiden saataville, annetaan seuraava komento:
$ cvs commit tiedosto.txt
Uuden tiedoston lisäys
Uuden tiedoston lisääminen arkistoon tapahtuu seuraavasti:
$ cvs add tiedosto.txt
Jos tiedosto sisältää muuta kuin tekstiä, se on syytä lisätä binäärimuodossa (komentorivivipu -kb), jolloin CVS ei sotke tiedoston sisältöä yrittämällä yhdistää tiedoston eri versioita keskenään:
$ cvs add -kb kuva.jpg
Tiedoston poistaminen
Tiedoston poistaminen tapahtuu poistamalla tiedosto ensin tiedostojärjestelmästä ja sitten arkistosta:
$ rm tiedosto.txt $ cvs remove tiedosto.txt
Päivitysten haku arkistosta
Arkistosta saa haettua tiedostojen uusimmat versiot seuraavalla komennolla:
$ cvs update projekti U projekti/foo.c C projekti/bar.c ? projekti/new.c
Yllä tiedostosta foo.c on haettu uusi versio, tiedostossa bar.c on konflikteja ja new.c on uusi tiedosto.
Konfliktit tarkoittavat, että paikalliseen tiedostoon bar.c tehdyt muutokset eivät sovi yhteen arkistossa olleeseen tiedostoon bar.c tehtyihin muutoksiin. CVS merkitsee konfliktit tiedostossa bar.c seuraavasti:
<<<<<<<<< 1.2 junarata ========= 1.3 leluauto >>>>>>>>>
Tiedosto bar.c täytyy muokata halutun mukaiseksi ja poistaa siitä merkinnät '<<<', '===' ja '>>>' ennen kuin se voidaan kommittoida.
Muutosten katselu
Seuraavalla komennolla voidaan tarkastella, miten tiedosto eroaa arkistossa olevasta tiedostosta:
$ cvs diff tiedosto.c
Lisätietoja
- Using CVS for version control (Lars Wirzenius)
- CVS Home