CVS ohje JouTo - ohjelmisotuotantoprojektille

CVS Yleisesti  

"CVS is a version control system. Using it, you can record the history of your source files"  kertoo CVS:n kotisivu. Käytännössä se tarkoittaa, että CVS:n avulla monta ihmistä voi käsitellä keskitetysti tallennettua ohjelmistokoodia, jopa samanaikaisesti. CVS perustuu keskitettyyn versionhallintaan, jossa kaikki tiedostot ovat yhdessä paikassa (repository) ja josta kaikki hakevat uusimmat tiedostot itselleen (ns. hiekkalaatikkoon). CVS mahdollistaa jopa saman tiedoston käsittelyn monessa eri paikssa samaan aikaan.

CVS on komentorivi-pohjainen ohjelmisto. Siihen on saatavilla myös monia graafisia käyttöliittymiä, joita ei tässä projektissa kuitenkaan käytetä.

CVS:n käyttöönotto

 1. Lisää kotihakemistossasi olevan .profile tiedoston loppun rivit:

             if [ "X$GROUP" = "X" ]; then
        export PATH="$PATH:/opt/cvs/bin"
        export MANPATH="$MANPATH:/opt/cvs/man"
     fi
     export CVSROOT=/home/group/jouto/cvs_repository
     umask 007

Tuo umask ei ole cvs:n kannalta mitenkään välttämätön, mutta aiheuttaa sen, että kaikki tiedostot luodaan oletusarvoisesti oikeuksin -rw-rw----, eli samaan ryhmään kuuluvat pystyvät muuttamaan tiedostoa. Mikä on ihan kiva tuota ryhmähakemistoa käytettäessä.

2. Ota muutokset käyttöön tässä(kin) istunnossa sanomalla

source ~/.profile

3.Tarkista että polut menivät oikein kirjoittamalla

   cvs ja
   man cvs

   Jos tämä onnistuu ilman virheilmoituksia, niin homma on ok
 

4. Mene hakemistoon johon haluat sorsapuun. Kannattaa siis luoda itselleen oma hakemisto, jossa varsinaiset koodit säilyttää. Itselläni se on harri/koodit. Suositus olisi, että koodihakemisto sijaitsee ryhmähakemistossa.

5. CVS repositoryyn on luotu seuraavat kansiot

  • Applet
  • Servlet
  • Misc

Koodit siis sijoitetaan myös fyysisesti eri paikkaan. Käytännössä tämä tarkoittaa, että koodi-hakemistoon tulee kolme eri kansiota, joissa ovat ko. ohjelmisto-osan lähdekoodit.

6. Käyttöönotto

Alla olevissa esimerkeissä minun koodi sijaitsee ~/Ohtu/harri/koodit –hakemistossa. Alla lista komennoista selityksineen.

  1. Ensimmäiseksi pitää CVS:stä ottaa tarvittavat hakemistot ulos. Se onnistuu seuraavasti:
    cvs checkout Applet
    cvs checkout Servlet
    cvs co Misc
    (checkout ja co tarkoittavat samaa)
  2. Näin tehtyäsi sinulla pitäisi olla kolme yo. nimistä hakemistoa koodihakemistossasi. Vastaavan osan koodit pidetään aina kyseisessä hakemistossa: siis servletin lähdekoodi tulee hakemistoon Servlet.

Siinäpä se!

HUOM! Koska jokaisella on täysi oikeus tehdä mitä vaan repositorylle, niin minkäänlaista kokeilua tai vipujen (ajattelematonta) testaamista ei sallita. Tällä tavalla voidaan saada repository sen verran solmuun, ettei vahinkoja saada korjattua. Jos siis haluatte testailla, niin virittäkää oma repository ja testailkaa siellä. Jos teillä on jokin ongelma, niin kysykää!!!

CVS komentoja

CVS:llä voi tehdä vaikka mitä maan ja taivaan väliltä (kuten Unix-ohjelmilla yleensä). Kuitenkin suurin osa asioista on tavalliseen käyttöön melko turhia. Yleensä selvitään alle kymmenellä komennolla.

Yleisiä kommentteja:

CVS:ssä on vakiona recursive-moodi päällä. Tämä siis tarkoittaa että kaikki operaatiot kohdistuvat automaattisesti myös alihakemistoihin. Tee siis operaatiot siinä hakemistossa, minkä tiedostoja olet editoimassa.

Kuinka otan uusimmat tiedosto itselleni

  1. Mene haluttuun hakemistoon (esim. Applet)
  2. Päivitä uusimmat tiedostot CVS:stä komennolla
    cvs update
    Mikäli haluat päivittää vain tietyn tiedoston, kirjoita
    cvs update tiedosto.java
    Jos haluat päivittää kaikki .java-päätteiset tiedostot, kirjoita
    cvs update *.java
  3. Jos haluat jostain syystä kopioida CVS:n tiedostot omien päälle (esim. olet tehnyt virheen tai et halua muutoksia CVS:ään) niin kirjoita
    cvs update –C [tiedosto]
  4. Joskus repositoryyn saatetaan luoda alihakemistoja (Esim. Applet/DTD tai Servlet/Database). Tällöin ne saa päivitettyä omaan hiekkalaatikkoon kirjoittamalla
    cvs update -d

Kuinka tarkistan mitä eroja muokkaamassani koodissa on CVS:ssä olevaan koodiin

 

  1. Mene haluttuun hakemistoon (esim. Applet)
  2. Kirjoita
    cvs diff tiedosto.java
  3. Cvs näyttää erot rivien perusteella. Jos listaus on pitkä, se kannattaa ohjata esim. tiedostoon
    cvs diff tiedosto.java > erot.txt

 

Kuinka päivitän muuttuneet tiedot takaisin CVS:ään

 

  1. Mene haluttuun hakemistoon (esim. Applet)
  2. Päivitä tiedosto CVS:ään komennolla
    cvs commit tiedosto.java
    Jos haluat päivittää kaikki .java-päätteiset tiedostot, kirjoita
    cvs commit *.java
    Huom!
    Myös komento cvs commit on mahdollinen, muttei suositeltava. Tällä tavalla laitetaan CVS:ään kaikkien tiedostojen muutokset (myös alihakemistot). Näin voi CVS:ään mennä muutoksia, joita ei olisi pitänyt. Älä siis käytä.

Kuinka lisään uuden tiedon CVS:ään

  1. Mene haluttuun hakemistoon (esim. Applet)
  2. Luo haluttu tiedosto vapaavalintaisella editorilla (esim. emacs testi.java)
  3. Lisää tiedosto CVS:ään komennolla
    cvs add –m ”Kirjoita tähän kommentti” testi.java
    tuo –m kirjoittaa tiedostokommentin. Siihen kannattaa kirjoitta lyhyt kuvaus tiedostosta.
  4. Tiedosto siirretään CVS:ään vasta kun kirjoitat
    cvs commit
    Tämä kannatta kirjoittaa kun olet varma, että haluat siirtää tiedoston CVS:ään. Yleensä tämä tehdään heti add-operaation jälkeen.

Kuinka poistan lisäämäni tiedoston CVS:stä

  1. Mene haluttuun hakemistoon (esim. Applet)
  2. Poista tiedosto hiekkalaatikostasi (eli hakemistosta). Tämä kannattaa tehdä siirtämällä se jonnekin muualle, varsinaista tuhoamista ei suositella.
  3. Kirjoita komento
    cvs remove [tiedosto]
    Huom! Kuten päivityksessä, myöskään tässä EI SAA käyttää pelkkää cvs remove – komentoa. Pelkällä cvs remove – komennolla ohjelma poistaa repositorystä kaikki tiedostot joita sinulla ei ole ko. hakemistoissa (myös kaikista alihakemistoista). Ei siis kovin suositeltavaa!

Yleisiä ohjeita

  • Vaikka CVS on versionhallinta-ohjelmisto, niin säilyttäkää silti omat uusimmat tiedostonne erillisessä hakemistossa varmuuden vuoksi. Virhetilanteissa tietojen palautus voi olla vaikea operaatio, vaikka periaatteessa kaiken pitäisi toimia.
  • Kun laitatte sisään tavaraa, niin ohjelma lätkäisee eteen emacs:in. Tämä johtuu siitä, että jokaiseen commit:iin pitää liitttää kommentti tehdyistä muutoksista. Kirjoittakaa muutoksen ja painakaa Esc-Z. Voitte kiertää tuon vaiheen laittamalla commit-käskyyn –m ”Kommentti” – vivun.

Linkkejä ja infoa

CVS:n kotisivu

http://www.cvshome.org/

CVS-ohje

http://www.cvshome.org/docs/manual/index.html

CVS-FAQ

http://www.cs.utah.edu/dept/old/texinfo/cvs/FAQ.txt

Tämä ohje

http://www.cs.helsinki.fi/group/jouto/esitelmat/cvs.html