TÄMÄ SIVU ON VANHENTUNUT. NYKYÄÄN KÄYTÖSSÄ ON GIT-VERSIOHALLINTA. SIIRRY TÄSTÄ UUDELLE VERSIOHALLINTA-SIVULLE.
Tällä sivulla:
Muistathan korvata aina sanan TUNNUS
omalla tunnuksellasi. Missään tapauksessa älä mihinkään kirjoita itse sanaa TUNNUS
.
- katso myös TortoiseSVN asentaminen ja vaihtoehdot
Kurssin SVN-osoite
https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/v/2024/syksy/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 kansioonc:\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
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
- Avaa Explorer (Oma tietokone) näppäinyhdistelmällä
Windows + E
tai painamalla Windows-kuvaketta ja kirjoittamallaexplorer
. (Tämä ei ole siis sama kuin Internet Explorer.) - Siirry avaamassasi Explorerissa siihen kansioon, jonka alle aloitat harkkatyötä tekemään (esim.
C:\mytemp\ohj1\TUNNUS\ht
) - Paina hiiren oikeaa nappia valkoisella alueella -> TortoiseSVN -> Repo-Browser
- Aukeavaan
url
-ikkunaan syötähttps://svn.cc.jyu.fi/srv/svn/ohj1-pelit/
- Avautuvassa ikkunassa varmista, että vasemman reunan hakemistolista on auki, se voi 1. käyttökerralla olla piilossa.
- Vasemman reunan hakemistolistasta klikkaa oikeaa vuotta (esim.
v/2024/syksy
), päällä hiiren oikeaa nappia jaCreate folder...
(Jos kysyy tunnusta ja salasanaa, niin anna ne ja anna lupa tallentaa. Jos ei hyväksy tunnuksia, katso, että UNIX on aktivoitu osoitteessasalasana.jyu.fi
. Klikkaa salasanan vaihto, tunnuksen päivitys. Ole tarkkana että teet folderinpelit
kansioon etkä vahingossa jonnekin muualle.) - 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.
- Siirry syntyneen uuden hakemiston nimen päälle.
- 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!
—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ä.
Tämän jälkeen voit luoda oman hakemiston:
svn mkdir --parents https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/v/2024/syksy/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..??
—VL: Anna tässä tilaneessa tuon seuraavan ohjeen mukaan -m
optio
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/v/2024/syksy/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/v/2024/syksy/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.
—TUNNUS-kohta pitää korvata Korppi-tunnuksellasi. Checkout edellyttää, että olet luonut kansion yllä olevien ohjeiden mukaisesti.
—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.
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/
—1.2.2 Komentoriviltä
Komentoriviltä (huomaa piste lopussa pitää antaa)
svn checkout https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/v/2024/syksy/TUNNUS/trunk/ .
1.3 Kuvan vieminen ja työhakemiston tekeminen
1.3.1 TortoiseSVN
- Siirrä tai kopioi tekemäsi kuva
ht\suunnitelma
-kansioon. - 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.)
- Kirjoita Message kohtaa kuvaus siitä mitä olet tekemässä (esim: "hirsipuun kuvan laittaminen")
- 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?
—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
- Kansiossasi koneella, josta teit työkansion, pitäisi olla
.svn
-kansio. Jos kansio on piilotettu, saat sen näkyville komentorivillä kirjoittamalla ko. kansiossadir /a
. - 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.
- Mene https://trac.cc.jyu.fi/projects/ohj1-pelit/browser/v/2024/syksy 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 samaurl
, 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 oikeinhttps://svn.cc.jyu.fi/srv/svn/ohj1-pelit/v/2024/syksy/
.- 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
2. Harjoitustyön ohjelmakoodin käsittely SVN:ssä
- Tee checkout johonkin koneellasi olevaan
ht
-kansioon (jollei jo ole aikaisemmin tehty). Siirrä/kopioi koodisiht
-kansioon ja tee commit. Tämän jälkeen muokkaat harjoitustyötäsiht
-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ää painaaCMD+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ä.
—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/v/2024/syksy/TUNNUS/trunk
Tarkista, että Checkout directory on oikein, eli se
ht
-loppuinenPaina 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/v/2024/syksy/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
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.