Ohjelmoinnin peruskurssilla pitäisi käyttää svn:ää versionhallintana. En oikein osaa käyttää sitä. Saisiko selkeät ohjeet siitä, että jos teen kotikoneellani vaikka ohjelmaversio1.cs:n ja ohjelmaversio2.cs:n, niin mitä komentoja komentorivillä pitää tehdä, että versiot pysyvät hyvässä järjestyksessä? Ja miten siirrän asiat nettiin, sivulle https://trac.cc.jyu.fi/projects/ohj1-pelit/browser/2018s/ oman hakemiston alle? Meneekö versionhallinnalla vai kannattaako käyttää scp:tä?
Versionhallintajärjestelmää (esim. svn) käyttäen ei tehdä eri versioita eri nimillä, vaan tiedostonimi pysyy samana ja eri versiot löytää sitten versionhallinsta.
Versionhallintajärjestelmän ideahan on juuri se, että käyttäjän ei tarvitse hallinnoida eri versioita käsin.
Itse käytöstä, niin
Tyypillisesti joko luot uuden tai käytät olemassa olevaa repositoryä, checkoutaat sen siihen hakemistoon missä koodaat ja aina kun teet uusia versiota niin commitaat muutokset repositoryyn. Commitin yhteydessä annetaan tyypillisesti myös kommentti mitä on tehty (Esim: korjattu bugi xyz issue 58). Kommentit on ihan vaan tekstiä, mutta usein isommissa projekteissa on joku käytäntö. Esimerkiksi jos on muutostarpeidenseurataa (issue tracker) niin voi olla tapana kirjata mihin issueen se liittyy.
Varsinaiset komennot löytyvät netistä ja subversionin käyttöohjeista ja mahdollisesti jopa kurssimateriaalistanne.
Yritin ohjeita sivulta https://tim.jyu.fi/view/kurssit/tie/ohj2/
1. kirjoita ja tallenna tiedosto
2. svn add TIEDOSTONNIMI (hakemistoineen, /-viiva hakemistomerkkinä)
3. svn commit -m "kuvaava viesti miksi muutokset on tehty"
jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$ pwd /home/jaakko/Desktop/Programming/Harrastustenosallistujat jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$ ls yhteenveto.cs yhteenveto.exe jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$ svn add /home/jaakko/Desktop/Programming/Harrastustenosallistujat/yhteenveto.cs svn: E150000: Can't find parent directory's node while trying to add '/home/jaakko/Desktop/Programming/Harrastustenosallistujat/yhteenveto.cs' svn: E155010: The node '/home/jaakko/Desktop/Programming/Harrastustenosallistujat' was not found. jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$
Kakkoskohdassakin oli ongelmia:
svn co https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2019/PROJNAME/trunk . svn: E170000: URL 'https://svn.cc.jyu.fi/srv/svn/ohj2ht/k2019/PROJNAME/trunk' doesn't exist jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$ svn co https://svn.cc.jyu.fi/srv/svn/ohj2ht/s2018/jjseppal/trunk . svn: E170000: URL 'https://svn.cc.jyu.fi/srv/svn/ohj2ht/s2018/jjseppal/trunk' doesn't exist jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$ svn co https://trac.cc.jyu.fi/projects/ohj1-pelit/browser/2018s/jjseppal . svn: E170013: Unable to connect to a repository at URL 'https://trac.cc.jyu.fi/projects/ohj1-pelit/browser/2018s/jjseppal' svn: E130005: XML Parsing failed: Unexpected root element 'html' jaakko@jaakko-Aspire-E1-572:~/Desktop/Programming/Harrastustenosallistujat$
Tietenkään 3-kohta ei voi onnistua ennen kuin 1- ja 2-kohdat on tehty onnistuneesti. Tuossahan on selkeitä virheilmoituksia annettu, kuten että hakemistoa trunk ei löydy. Oletko varmasti tehnyt sen onnistuneesti kohdan 1 mukaan?
Ohjeiden noudattamisessa olisi hyödyllistä esim. kirjoittaa osoitteet oikein. Nythän sinulla on tuossa ihan vääriä osoitteita kaikissa yrityksissäsi. Oikea osoite projektiisi on https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2018s/jjseppal/trunk.
# 2. Työn hakeminen tyhjään kansioon svn co https://svn.cc.jyu.fi/srv/svn/ohj1-pelit/2018s/jjseppal/trunk omaprojekti # 3. Tiedoston lisääminen versionhallintaan # - 1. kirjoita ja tallenna tiedosto cd omaprojekti echo "testi plaa plaa" > koodi.cs # - 2. svn add TIEDOSTONNIMI # ei todellakaan tarvitse aloittaa polkua /:sta asti! svn add koodi.cs # - 3. svn commit -m "Kuvaava viesti, miksi muutokset on tehty."
Käyttämäsi ohjeet ovat hieman harhaanjohtavat sikäli, että tuossa ei tehdä uutta repositorya vaan lisätään omat koodit omaan kansioon jossain yhteisessä repositoryssa – yleinen tapa harjoituskäytössä mutta ei kovinkaan suositeltava todellisissa tilanteissa.
Aihe on jo aika vanha, joten et voi enää vastata siihen.