TÄMÄ SIVU ON VANHENTUNUT. NYKYÄÄN KÄYTÖSSÄ ON GIT-VERSIOHALLINTA. SIIRRY TÄSTÄ UUDELLE VERSIOHALLINTA-SIVULLE.

Tällä sivulla:

  1. Miten siirrän piirtämäni kuvan versiohallintaan
  2. Harjoitustyön ohjelmakoodin käsittely SVN:ssä

Muistathan korvata aina sanan TUNNUS omalla tunnuksellasi. Missään tapauksessa älä mihinkään kirjoita itse sanaa TUNNUS.

Kurssin SVN-osoite

https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk

SVN-versionhallinta tämän kurssin harjoitustyössä

SVN on versionhallinta-työkalu, jonka avulla voidaan pitää kirjaa tiedostoihin tehdyistä muutoksista.

SVN mahdollistaa myös saman koodin parissa työskentelyn eri tietokoneilta, mikä sopii hyvin tälle kurssille, koska usein tehdään töitä eri tietokoneilta (mikroluokka, kotikone, jne.) Versiohallinnassa on siis aina uusin versio työstäsi, mutta myös kaikki aikaisemmat versiot, sillä versiohallinta pitää tallessa muutoshistorian.

Toisaalta versiohallinta toimii myös varmuuskopiona työllesi. Näin koodisi ei häviä, vaikka tietokoneesi hajoaisi.

Tällä kurssilla emme käytä Dropboxia, muistitikkuja, sähköpostia tai vastaavia palveluita kooditiedostojen jakamiseen, koska ne eivät sovellu todelliseen yhtäaikaiseen työskentelyyn. Vaikka työskentelisitkin yksin, käytä SVN:ää harjoitustyön versiohallintaan ohjaajien työn helpottamiseksi sekä harjoitustyön esittelyn mahdollistamiseksi.

Alla lyhyt "cheat sheet" / muistilista SVN:n käyttämiseen

Huom! Katso yksityiskohtaiset ohjeet alempaa tältä sivulta.

Oman kansion luominen ja kuvan siirtäminen (tarkemmin kohdassa 1)

  • tee oma kansio tietovarastoon
  • tuo kansiosi checkout-toiminnolla paikalliselle tietokoneelle esimerkiksi kansioon c:\mytemp\OMATUNNUS\ht
  • luo yllämainitun ht-kansion alle kansio nimeltä suunnitelma
  • kopioi pelisuunnitelmasi suunnitelma-kansioon
  • lähetä tekemäsi muutokset tietovarastoon commit-toiminnolla

... ja sen jälkeen, kun olet siirtänyt tehnyt oman kansion tietovarastoon ja siirtänyt sinne kuvan (tarkemmin kohdassa 2)

  • jos menet koneelle, jolla harjoitustyötä ei vielä ole, tee checkout
  • jos menet koneelle, jossa harjoitustyö jo on, tee update
  • kun lopetat työskentelyn, tee aina commit
  • muista aina antaa muutoksia kuvaava kommentti Message-kenttään

Versionhallinta

# kuvansiirto

1. Miten siirrän piirtämäni kuvan versionhallintaan

Nämä ohjeet olettavat, että

  • sinulla on valmis kuva (tai monta kuvaa)
  • ja joko: olet tietokoneluokassa, jossa on TortoiseSVN-ohjelma asennettuna. Tämän voit tarkistaa painamalla jostakin kansiosta hiiren oikealla napilla. Silloin valikkoon pitäisi tulla vaihtoehto TortoiseSVN
  • tai: olet asentanut TortoiseSVN-ohjelman koneellesi
  • tai käytät konetta komentoriviltä (Mac, Linux, soveltaen myös Windows)
  • tai käytät Visual Studio for Mac soveltaen

Ohjeen 1. osan päätyttyä sinulla pitäisi olla tekemäsi kuva versionhallinnassa ja suunnitelmassasi näkyvissä

Ohjeessa on aluksi ohje TortoiseSVN:ään varten ja sen jälkeen ohje miten sama tehtäisiin komentoriviltä. Valitse se ohje kumpaako käytät. Voit hyvin käyttää molempia ristiin, välillä Tortoisea, välillä komentoriviä.

1.1 Uuden kansion luominen tietovarastoon

Tämä pitää tehdä YHDEN KERRAN, ennen kuin asioita siirretään versionhallintaan. Tee hommat joko Tortoisella tai komentorivillä. Eli valitse alla olevista kohdista aina jompi kumpi.

1.1.1 TortoiseSVN

  1. Avaa Explorer (Oma tietokone) näppäinyhdistelmällä Windows + E tai painamalla Windows-kuvaketta ja kirjoittamalla explorer. (Tämä ei ole siis sama kuin Internet Explorer.)
  2. Siirry avaamassasi Explorerissa siihen kansioon, jonka alle aloitat harkkatyötä tekemään (esim. C:\mytemp\ohj1\TUNNUS\ht)
  3. Paina hiiren oikeaa nappia valkoisella alueella -> TortoiseSVN -> Repo-Browser
  4. Aukeavaan url-ikkunaan syötä https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/
  5. Avautuvassa ikkunassa varmista, että vasemman reunan hakemistolista on auki, se voi 1. käyttökerralla olla piilossa.
  6. Vasemman reunan hakemistolistasta klikkaa oikeaa vuotta (esim. 2024k), päällä hiiren oikeaa nappia ja Create folder... (Jos kysyy tunnusta ja salasanaa, niin anna ne ja anna lupa tallentaa. Jos ei hyväksy tunnuksia, katso, että UNIX on aktivoitu osoitteessa salasana.jyu.fi. Klikkaa salasanan vaihto, tunnuksen päivitys. Ole tarkkana että teet folderin pelit kansioon etkä vahingossa jonnekin muualle.)
  7. Nimeksi laita käyttäjätunnuksesi (se, missä on yleensä kahdeksan kirjainta). Jos kansio ei mene oikean vuoden alle, siirrä se sinne vaikka raahaamalla mutta varo raahaamasta vääriä kansioita tai väärään paikkaan.
  8. Siirry syntyneen uuden hakemiston nimen päälle.
  9. Oikeata nappia, ja tee Create folder -toiminnolla kansio trunk.

Ei suostu yhdistämään tuohon linkkiin. “No connection could be made because the target machine actively refused it.” Yritin etäyhteyden kanssa ja ilman. Myöskään tuo kurssin asetusten linkki(https://svn.cc.jyu.fi/srv/svn/npo/trunk/etc/subversion/config) ei toimi. Mikä neuvoksi?

vl: näyttää palvelin olevan nurin. tein vikailmoituksen. Edit: nyt pitäisi toimia!

09 Oct 19 (edited 09 Oct 19)

1.1.2 Komentoriviltä

Vaihda kaikissa tämän luvun esimerkeissä omia tietojasi ISOLLA kirjoitettujen sanojen tilalle. Esim. TUNNUS-sanan tilalle oma käyttäjätunnuksesi. Jatkossa oletetaan että olet koko ajan koneessasi komentorivillä ht hakemistossa, esim:

Windows:   C:\mytemp\ohj1\TUNNUS\ht
Mac/Linux: ~/kurssit/ohj1/ht

Siirry ensin tuohon hakemistoon (tai tee se ensin jos sitä ei ole)

Windowssissahan tämä hakemiston vaihtaminen tapahtui esimerkiksi

cd C:\mytemp\ohj1\TUNNUS\ht			

ja Mac/Linux (muista käyttää sitä hakemistoa, mihin olet ht:n tehnyt):

cd ~/kurssit/ohj1/ht

Voit joutua ensin asentamaan versionhallinnan. Kirjoita komentoriviltä svn niin saat ohjeita mikäli svn puuttuu. Ubuntullla:

sudo apt install subversion

Macillä svn tulee Xcoden mukana. Ensimmäisellä kerralla käytettäessä svn pitää ajaa pääkäyttäjän oikeuksilla (sudo svn), jos et ole vielä käynnistänyt Xcodea ja hyväksynyt sen lisenssiä. Tämän jälkeen ei sudo-komentoa enää tarvita subversionia käytettäessä.

28 Sep 16

Tämän jälkeen voit luoda oman hakemiston:

svn mkdir --parents https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk/suunnitelma

Käytössä Mac ja svn ajettu sudo svn:llä. Luodessa omaa hakemistoa valittaa kuitenkin: "Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable..." ja "None of the environment variables SVN_EDITOR, VISUAL or EDITOR are set" jne..??

05 Oct 16

VL: Anna tässä tilaneessa tuon seuraavan ohjeen mukaan -m optio

06 Oct 16

Mikäli valittaa tyyliin: NO SVN_EDITOR... niin ko ympäristömuuttuja pitäisi määritellä TAI laittaa viesti jo mkdir-kommennon mukana tyyliin:

svn mkdir --parents https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk/suunnitelma -m "oma hakemisto luotu"

Tässä vaiheessa kysytään salasanaa käyttäjätunnuksellesi. Mikäli tunnuksesi omassa koneessa ei ole sama kuin yliopiston koneessa, paina Enter ja anna käytäjätunnuksesi ja sitten salasana. Omassa koneessa voi antaa salasanan tallentua.

1.2 Checkout: Harjoitustyökansion hakeminen koneeseen

1.2.1 TortoiseSVN

Tämä komento tehdään yhden kerran/kone.

  • Paina kansiossa (esim. C:\mytemp\ohj1\TUNNUS\ht) oikealla napilla ja valitse
    SVN Checkout...

  • Osoitteeksi laita

    https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk
  • Tarkista, että Checkout directory on oikein (se loppu ht)

  • Paina ok.

Nyt ht kansioista pitäisi myös löytyä .svn-kansioita (voivat olla piilotettuja jos et ole sallinut piilotettujen tiedostojen näkymistä).

Minulla tulee tässä vaiheessa virheilmoitus ja sanoo että tuota https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2018k/TUNNUS/trunk ei ole olemassa.

05 Feb 18

TUNNUS-kohta pitää korvata Korppi-tunnuksellasi. Checkout edellyttää, että olet luonut kansion yllä olevien ohjeiden mukaisesti.

06 Feb 18

tein klassiset eli kopioin vain tuo osoitteen tuosta joten se ei mennyt oman tunnunkseni alle. Tortoise ohjelman uninstallaaminenkaan ei auttanut enkä onnistu vaihtamaan enää polkua.. Vihjeitä miten toimia?


VL: poista se .svn hakemisto.

10 Oct 19 (edited 12 Oct 19)

Minulla tulee sama virheilmoitus kuin ylemmällä, “Tiedostoa tai hakemistoa ei ole”, vaikka korvasin “TUNNUS” :n omalla tunnuksellani. Pitäisikö tuon komentorivikomennon toimia myös Macilla tuollaisenaan?

VL: joo, jos TUNNUS nimisessä hakemistossa on se ht meidän palvelmella ja svn on asennettu. Mutta tuota sun nimistä hakemistoa ei ole: https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2019s/

26 Oct 19 (edited 26 Oct 19)

1.2.2 Komentoriviltä

Komentoriviltä (huomaa piste lopussa pitää antaa)

svn checkout https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk/ .

1.3 Kuvan vieminen ja työhakemiston tekeminen

1.3.1 TortoiseSVN

  1. Siirrä tai kopioi tekemäsi kuva ht\suunnitelma-kansioon.
  2. Mene valkoiselle alueelle ja klikkaa hiiren oikeaa -> SVN Commit. (Jos ei löydy svn commit -toimintoa, niin et ehkä ole tehnyt checkoutia, palaa kohtaan 1.2.)
  3. Kirjoita Message kohtaa kuvaus siitä mitä olet tekemässä (esim: "hirsipuun kuvan laittaminen")
  4. Laita täppä kuvan päälle ja ok.

Itselläni tuli vaihtoehto Add, jonka painamisen jälkeen kun klikkasi oikealla kuvaa uudelleen, tuli SVN Commit mahdollisuus. Mahtaako mennä oikein?

09 Oct 19 (edited 09 Oct 19)

1.3.2 Komentoriviltä

Ensin kuva pitää lisätä (add) versionhallinnassa oleviin tietoihin ja sitten commitoida ci.

svn add suunnitelma/KUVA.png
svn ci

Commitin yhteydessä pyydetään kuvausta siitä, mitä ollaan muutettu. Kirjoita tähän vaikka tyyliin:

Lisätty Hirsipuupelin suunnitelman kuva

Mikäli lähettäminen valittaa tyyliin: NO SVN_EDITOR... niin ko ympäristömuuttuja pitäisi määritellä TAI laittaa viesti jo commit-kommennon mukana tyyliin:

svn ci -m "Lisätty Hirsipuupelin suunnitelman kuva"

Samalla tavalla -m viesti pitää lisätä muidenkin alla olevien komentojen loppuun tässä tapauksessa.

1.4 Onnistuiko edellinen? Näin voit tarkistaa

  1. Kansiossasi koneella, josta teit työkansion, pitäisi olla .svn-kansio. Jos kansio on piilotettu, saat sen näkyville komentorivillä kirjoittamalla ko. kansiossa dir /a.
  2. Työkansiossa olevien tiedostojen päällä pitäisi olla joitain symboleita. Nämä symbolit kertovat, onko tiedostot versionhallinnassa, tai onko näitä muutettu. Tarkista, että kuvatiedoston päällä on vihreä oikeinmerkki.
  3. Mene https://trac.cc.jyu.fi/projects/ohj1-pelit/browser/2024k ja navigoi omaan kansioosi ja tarkista, että siellä on oikea tiedostorakenne ja kuvatiedostosi.

1.5 Jos korjaan kuvaa, mitä teen

1.5.1 TortoiseSVN

Jos kuvasi on versioitavassa kansiossa (eli olet tehnyt checkoutin, löytyy .svn-kansio), riittää, että painat muokattua kuvaasi oikealla näppäimellä, ja valitset svn commit. Voit myös painaa hakemiston kohdalta tai tyhjästä kohdasta hiiren oikea -> svn commit.

Nyt tarkasta, että Changes made-kohdassa on muokkaamasi kuvatiedosto. Jos ei ole, joko et muokannut kuvaa, tai painoit svn commit väärässä kohti. Changes made-kohdassa näkyy siis asiat, mitkä eroavat versionhallintapalvelimella olevasta versiosta, elikkä käytännössä työhösi tekemät muutokset.

1.5.2 Komentoriviltä

svn ci

tai jos haluat antaa viestin samalla

svn ci -m "VIESTI MINKÄ TAKIA COMMITOITIIN"

1.6 Jos haluan kuvan samalla tavalla kotikoneelle, mitä teen

1.6.1 TortoiseSVN

  • Jos olet asentanut TortoiseSVN-ohjelman, riittää kun menet haluamaasi tyhjään kansioon, painat hiiren oikealla napilla ja valitset SVN Checkout.
  • URL of repository -kohtaan tulee sama url, kuin kohdassa 1.2. Jos et ole varma, niin voit myös selata kansiotasi painamalla kolmea pistettä ja näin etsiä versionhallintapalvelimelta oman kansiosi. Tämä vaatii kuitenkin, että osoitteen alku on oikein https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/.
  • Sen jälkeen tarkista, että Checkout directory on haluamasi.
  • Sitten ok, niin Tortoise lataa tiedostot koneellesi ja tekee äsken valitsemastasi kansiosta työkansion.

1.6.2 Komentoriviltä

Tee vastaavasti kuin kohdassa 1.2.

1.7 Tietojen hakeminen koneeseen, johon Checkout on jo kerran tehty

  • Tortoise: valitse SVN Update
  • komentorivi: svn up
# koodisvn

2. Harjoitustyön ohjelmakoodin käsittely SVN:ssä

  • Tee checkout johonkin koneellasi olevaan ht-kansioon (jollei jo ole aikaisemmin tehty). Siirrä/kopioi koodisi ht-kansioon ja tee commit. Tämän jälkeen muokkaat harjoitustyötäsi ht-kansiossasi ja aina muutosten jälkeen teet commitin.
  • tai tee ht:n solution siihen kansioon missä oli kuvasi suunnitelma kansio, eli sen rinnalle

2.1 Ignore-tietojen asettaminen

Ennen aloittamista muista että olet asettanut tiedon siitä, mitä tiedostoja/hakemistoja EI saa viedä versionhallintaan. Windowsissa tämä tapahtui muokkaamalla tiedostoa

C:\Users\KAYTTAJA\AppData\Roaming\Subversion\config

ja Mac/Linux tiedostoa:

~/.subversion/config
  • Tässä matomerkki (~) tarkoittaa kotihakemistoa.
  • Macin Finderilla voi käydä niin, että
    piilohakemisto .subversion ei näy. Tällöin pitää painaa CMD+SHIFT+. (eli yhtäaikaa Mac-painike, Shift painike ja piste).

Tänne piti muokata rivi, jolla on global-ignores muotoon:

global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store *.suo *.cachefile bin obj *.user TestResults *.ctbackup *.class csdoc .vs

Saiko Versionhallintaan viedä .sln tiedostoja vai pitikö viedä pelkästään .cs tiedostoja?

VL: joo .sln saa viedä ja kannatata jotta projektin saa helposti käyttöön. Tuolla on sanottu se kieltolista. Mm .csproj kannattaa kanssa viedä. Ja tietysti Content-kansion sisältö. Eli periaattessa niin, että kun menee toiselle koneelle ja checkouttaa, niin projektin saa ajettua sieltä. obj ja bin hakmeistoja EI saa viedä.

29 Oct 19 (edited 29 Oct 19)

2.2 Checkout: Harjoitustyön hakeminen toiseen koneeseen jos sitä ei vielä siellä ole

Komentoriviohjeet olettavat että ennen komennon antamista olet omalla koneellasi luonut ja siirtynyt ht-hakemistoon (kansioon).

Windowsissa hakemiston vaihtaminen tapahtuu komennolla

cd C:\mytemp\ohj1\TUNNUS\ht

ja Mac/Linux (muista käyttää sitä hakemistoa, mihin olet ht:n tehnyt):

cd ~/kurssit/ohj1/ht
  • tee omalle koneellesi (tarvittaessa) ht-kansio

2.2.1 TortoiseSVN

  • Paina kansiossa oikealla napilla ja valitse SVN Checkout...

  • Osoitteeksi laita

    https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk
  • Tarkista, että Checkout directory on oikein, eli se ht-loppuinen

  • Paina ok.

  • Katso, että kaikki tiedostot tulivat koneelle, ja että harjoitustyösi kansioista löytyy .svn-kansiot.

2.2.2 Komentoriviltä

Komentoriviltä (huomaa piste lopussa pitää antaa)

svn checkout https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2024k/TUNNUS/trunk/ .

2.3 Update: Harjoitustyön uusimman version hakeminen koneeseen jossa se jo on

2.3.1 TortoiseSVN

  • Update kannattaa tehdä aina ensimmäiseksi kun jatkaa työn tekemistä
  • Siirry ensin kansion nimen päälle, johon harjoitustyö on joskus Checkoutilla haettu
  • Paina hiiren oikealla nimen päällä ja valitse Update

2.3.2 Komentoriviltä

svn up

2.4 Commit: Kun olen korjannut harjoistustyötä, mitä teen

2.4.1 TortoiseSVN

  • ennen ensimmäistä committia kannattaa säätää svn niin, ettei turhia hakemistoja lähetetä (katso ohjeet kohdasta Kurssin asetukset)
  • Paina harjoitustyösi kansiosta oikealla napilla ja valitse SVN Commit..
  • Tarkasta, että changes made-kohdassa on tekemäsi muutokset.
  • Tarkita että et ole lähettämässä bin etkä obj-hakemistoja (ota niistä ruksi pois).
  • Kirjoita, Message-kohtaan tekemäsi muutokset
  • Paina ok.

2.4.2 Komentoriviltä

Jos olet lisännyt uusi tiedostoja, niin aluksi lisää ne myös versionhallintaan (muista että global-ignore on ensin asetettu oikein):

svn add --force .

Sitten lähetä tiedostot palvelimelle:

svn ci - m "VIESTI MINKÄ TAKIA COMMITOITIIN"

Mäkillä ongelmia lisätä tiedostoja versionhallintaan
Virheilmoitus:
cannot set LC_TYPE
cannot set LC_TYPE locale
check that your locale name is correct

01 Nov 19 (edited 01 Nov 19)

2.5 Jos tulee konflikti

Jos tekee harkkaa parityönä, on mahdollista, että molemmat editoivat koodia samaan aikaan. Jos ette editoi samasta kohdasta (samaa riviä), ongelmaa ei tule, työskentelyn päätteeksi tee Update ja Commit.

Jos tulee konflikti, eli ristiriita sen kanssa, että versionhallinnassa on eri tiedosto kuin omalla koneella, nin pitä selvittää kummanko sisältöä halutaan käyttää. Ja konfliktissa kannattaa huolella lukea mikä tiedosto/hakemisto on konfliktissa.

Jos esim ilmoitus tulisi tiedostosta Lumiukko/Peli.cs, ja halutaan ratkaista konflikti niin, että omalla koneella olevat tiedosto "voittaa", niin annetaan komento (ks svnbook):

svn resolve --accecpt mine-full Lumiukko/Peli.cs

Vastaavasti jos halutaan versionhallinnassa olevan "voittavan", niin

svn resolve --accecpt theirs-full Lumiukko/Peli.cs

2.6 Jos olet käyttänyt aikaisemmin ja tulee Server 500 error

  • kirjoita komentoriviltä: certmgr.msc
  • etsi trac.cc.jyu.fi ja poista se

These are the current permissions for this document; please modify if needed. You can always modify these permissions from the manage page.