Versionhallinta - Harjoitukset 1/2 - SVN

Nämä harjoitukset jakautuvat kahteen osaan: etukäteen ja paikalla tehtäviin. Pahoittelemme edelleen "branchi repositoryn trunkista" -kieltä.

Etukäteen

Työkalut tutuiksi

Tee etukäteen nämä Linux-näppäilyharjoitukset ja yksinkertainen SVN:n kokeilu, niin harjoituksissa pääset suoraan oikeisiin tehtäviin.

  1. Varmista, että pääset kirjautumaan koneelle db.cs.helsinki.fi
  2. Jos kyllästyttää naputtaa jatkuvasti salasanaa, niin tee itsellesi SSH-avain
  3. Luo repository käyttäen svnadmin -työkalua.
  4. Ota siitä itsellesi työkopio samalle koneelle, käyttäen file:// -URLia.
  5. Aseta ympäristömuuttuja $EDITOR haluamaksesi editoriksi.
  6. Luo työkopioon SVN:n "standardihakemistot": trunk, branches ja tags
  7. Kommitoi ensimmäinen versio.
  8. Ota repositorystä työkopio jollekkin toiselle koneelle, kuten melkki.cs.helsinki.fi tai melkinpaasi.cs.helsinki.fi käyttäen svn+ssh://käyttäjätunnus@kohdekone/koko/polku/repository -URLia
  9. Jatka kokeilua, kunnes tunnet olosi kotoisaksi

Tutustu tehtäviin

Katsasta tehtävät etukäteen ja kokeile onnistuuko diffin, mergen, copy ym. tarvittavien komentojen käyttö jo ennen harjoituksia.

Paikanpäällä

Muodostellaan 3 hengen pienryhmiä ja tehdään tehtävät.

Luo repository ja hae muiden ryhmäläisten luomista repositoryistä oma työkopio

Harjoitellaan vielä, että repositoryjen luonti ja tiedosto-oikeudet menevät varmasti oikein.

  1. Luo SVN-repository kotihakemistoosi ja anna siihen luku-, kirjoitus- ja suoritusoikeudet ryhmälle rekursiivisesti. (chmod -R g+rwx)
  2. Hae muiden ryhmäläisten repositoryistä itsellesi omalle koneellesi työkopio SSH:n yli.
  3. Lisätkää repositoryyn yksi tiedosto ja kokeilkaa, että saatte sen myös commitoitua.
  4. Valmis!

Commit-conflict: Kissan venytys

On annettu "shortcat"

	    /\___/\
	   /       \
	  |  #    # |
	  \     @   |
	   \   _|_ /
	   /       \______
	  / _______ ___   \
	  |_____   \   \__/
	   |    \__/
	   |       |
	   /        \
	  /   ____   \
	  |  /    \  |
	  | |      | |
	 /  |      |  \
	 \__/      \__/
	
		Shortcat.
	
  1. Luokaa ryhmälle yhteinen repository kurssin repositoryn luontikoneella
  2. Hakekaa repositorystä työkopio
  3. Yksi ryhmän jäsen laittaa Shortcatin repositoryyn tiedostoon trunk/shortcat.txt
  4. Jokainen ryhmän jäsen pidentää oman työkopionsa Shortcattiä keskikohdasta yhdellä |etunimi| -rivillä, pidennyksen jälkeen ryhmän jäsen tekee commitin yhteiseen repositoryyn. Tehkää tämä samanaikaisesti siten, että committeja tulee jokaiselle viisi kappaletta. Shortcatin pituudeksi tulee tällöin [ryhmän jäsenien lukumäärä] x 5. Selvittäkää ristiriidat venytyksen edetessä.
  5. Käyttäkää svn blame -komentoa shortcat.txt -tiedostoon ja tallettakaa sen tulostus repositoryyn
  6. Uudelleennimetkää tiedosto longcat.txt:ksi, sillä shortcat on nyt looooooooooooong. Muistakaa kuitenkin säilyttää versiohistoria!

Branching, merge, tag, revert

  1. Jokainen ryhmän jäsen tekee oman branchin trunk -hakemistosta hakemistoon branches/[etunimi]
  2. Muokatkaa oman branchinne Longcatin päätä ja jalkoja. Commit kun on valmista.
  3. Mergetkää oma valmis branchinne trunk -hakemistoon.
  4. Tehkää trunk -hakemistosta tag valmis-[etunimi]
  5. Katsokaa svn diff -komennolla trunkin ensimmäisen version ja HEAD:n ero. Palauttakaa svn merge -komennolla alkuperäinen versio.

Ignore

  1. Kääntäkää trunk -hakemistossa oleva Longcat.java
  2. Lisätkää hakemistoon property svn:ignore, jotta *.class -tiedostot pysyvät poissa versionhallinnasta.

Graafiset työkalut

Näitä tehdään jos ehditään ja/tai tuntuu, että osaa aikaisemamt jo riittävän hyvin. Näitä ei tarvitse osata harjoitustyössä.

  1. Asentakaa esim. Eclipsen Subclipse-plugin
  2. Tehkää aikaisempia conflict -kokeita sen avulla.

Hooks

Vähän edistyneemmille..

  1. Laittakaa omaan repositoryyn hook, joka lähettää sähköpostia commitin jälkeen.
  2. Laittakaa omaan repositoryyn hook, jolla saatte päivitettyä sisällön nettiin (public_html alle siis).