(H) Kurssin palautuskäytäntö¶
Varoitus
Pystyt palauttamaan tehtävän vasta sitten, kun sinulle on luotu repositorio. Repositoriot luodaan vasta ilmoittautumisajan päätyttyä eli ensimmäisellä opiskeluviikolla.
Tavoite: Opin palauttamaan tekemäni C++-ohjelman opintojaksolla käytettyyn automaattiseen arviointijärjestelmään ja tulkitsemaan automaattisen palautejärjestelmän palautetta.
Tällä kurssilla saat tehtävänantoihin liittyvät ohjelmakoodipohjat käyttöösi versionhallinnan kautta, eli kurssin henkilökunta on tallentanut ne Git-keskustietovarastoosi, josta sinun pitää hakea ne paikalliseen tietovarastoosi, jotta voit tutkia niitä. Samoin palautat toteuttamasi ohjelmakoodit Plussaan versionhallinnan kautta.
Tässä tehtävässä harjoittelemme näiden toimenpiteiden suorittamista. Itse ohjelmointiosuus on pieni, vain yhden rivin mittainen. Tehtävänanto on pitkä, koska siinä ohjeistetaan versionhallinnan käyttöä yksityiskohtaisesti.
Huomaa, että alla olevissa ohjeissa kohdassa “4) Toteutuksen tallentaminen versionhallintaan” kerrotaan, miten tallentaminen onnistuu komentorivillä. Tallentamisen voi tehdä myös Qt Creatorin kautta. Ohjeet tähän löytyy materiaalin kohdasta 15.2 Toteutuksen tallentaminen versionhallintaan.
Tietovaraston rakenne¶
Kloonaamassasi kurssin Git-tietovarastossa on kolme hakemistoa:
templates
, joka sisältää ohjelmakoodipohjatstudent
, jonne toteutat omat ohjelmakoodisiexamples
, joka sisältää materiaalissa käytettyjä esimerkkiohjelmien koodeja.
Avaa etätyöpöytäympäristön tiedostonhallintajärjestelmä (Applications > Accessories > Files) ja katso, että löydät nämä hakemistot.
Älä koskaan tee mitään muokkauksia hakemistojen
examples
ja templates
sisältöihin.
Älä edes poista niistä mitään tiedostoja.
Muutokset näissä hakemistoissa johtavat ongelmiin, kun kurssin henkilökunta
kurssin edetessä lisää uusia materiaaleja ja ohjelmakoodipohjia.
Tällöin et saa uusia tiedostoja käyttöösi.
Vaihe 1) Ohjelmakoodipohjan hakeminen¶
Kun alat tehdä tehtävää, johon kurssin henkilökunta on toteuttanut valmiin ohjelmakoodipohjan, tarkoittaa se, että et itse luo projektia Qt Creatorissa, vaan haet valmiin projektin Git-repositoriosta.
Olet juuri edellisestä materiaaliosiota lukiessasi kloonannut tietovaraston, joten tällä hetkellä se sisältää kaikki kurssihenkilökunnan tekemät muutokset.
Jos tehtävässä on valmis ohjelmakoodipohja tehtävänannossa
kerrotaan aina, minkä nimisessä hakemistossa valmis projektipohja sijaitsee.
Valmiit projektipohjat ovat aina hakemiston templates
alihakemistoina.
Kopioi oikean niminen
hakemisto hakemiston student
alihakemistoksi.
Ole tarkkana, että varmasti kopioit, etkä siirrä hakemistoa, koska
hakemistoon templates
ei saa tehdä mitään muutoksia.
Tässä tehtävässä tarvittava ohjelmakoodipohja löytyy hakemistosta
templates/01/first_submission
.
Avaa nyt siis tiedostonhallintajärjestelmä ja kopioi kyseinen hakemisto
hakemistoksi student/01/first_submission
.
Kannattaa kopioida koko hakemisto templates/01/
kerralla hakemistoon
student/01/
, niin saat kaikki kierroksen 1 pohjat kerralla oikeaan paikkaan.
Vaihe 2) Projektin avaaminen Qt Creatorissa¶
Valitse Qt Creatorissa toiminto “Open File or Project…” ja
valitse hakemistossa student/01/first_submission
oleva
projektitiedosto (.pro
-päätteinen tiedosto).
Qt Creator avaa sinulle projektin, joka sisältää ohjelmakoodipohjan.
Jos projekti avautuu ensin Configure Project -välilehteen, klikkaa vain
Configure Project.
Ole tarkkana, että avaat projektin hakemistosta
student
etkä hakemistosta templates
!
Vaihe 3) Tehtävän toteuttaminen¶
Ohjelmakoodipohjassa on lähinnä vain syöte- ja tulostustoimintoja, joiden merkityksen luultavasti ymmärrät helposti, vaikka et olisi aiemmin nähnyt C++-ohjelmia. Jos kuitenkin tarvitset lisätietoja aiheesta, voit lukea seuraavan kierroksen materiaalia kohdasta 2.2.
Ohjelma kysyy käyttäjän nimen ja iän. Lisää ohjelmaan yksi tulostusrivi siten, että ohjelma toimii seuraavasti:
Enter your name: Will
Enter your age: 5
Pleased to meet you, Will!
In your next birthday you'll be 6 years old!
Vaihe 4) Toteutuksen tallentaminen versionhallintaan (komentoriviltä)¶
Tässä kohdassa tarkastellaan toteutuksen tallentamista versionhallintaan komentorivin kautta. Jos haluat tehdä tallentamisen Qt Creatorissa, niin voit lukea tarvittavat toimenpiteet luvusta 15 “Vaihtoehto: Gitin käyttö Qt Creatorin kautta” ja sieltä kohta “Toteutuksen tallentaminen versionhallintaan”.
Aivan ensimmäisenä laitetaan kohdilleen Gitin henkilökohtaiset
asetukset, jotka löytyvät tiedostosta ~/.gitconfig
(~ tarkoittaa kotihakemistoasi).
Asetukset voi muokata kyseiseen tiedostoon millä tahansa
tekstieditorilla (esim. Applications -> Accessories -> Text Editor)
tai vaihtoehtoisesti muokata niitä suoraan komentorivikomennoilla:
git config --global <asetus> <asetuksen arvo>
Jos et ole laittanut asetuksia kuntoon, tai et ole varma niistä, on nyt hyvä hetki laittaa ne kuntoon:
git config --global user.name "Teemu Teekkari"
git config --global user.email "teemu.teekkari@tuni.fi"
Nämä asetukset liittyvät siihen, kenet Git merkitsee version tekijäksi, kun paikalliseen tietovarastoon lisätään uusi versio.
Tämän jälkeen aloitetaan varsinaiseen palautukseen liittyvä työskentely. Kun olet toteuttanut ja testannut ohjelmasi, sinun pitää tallentaa se versionhallintaan, että voit palauttaa sen arvioitavaksi.
Katso ensin, mikä tilanne versionhallinnassa on. Siirry ensin paikalliseen tietovarastoosi (joka on nimetty käyttäjätunnuksesi mukaan), ja kirjoita sitten komentoriville komento
git status
. Tällöin näet listan työkopiossasi tapahtuneista muutoksista. Katso listasta, että kohdassa “Untracked files:” löytyvät uudet hakemistot ja tiedostot, jotka olet luonut tätä tehtävää tehdessäsi:# On branch master # Untracked files: # (use "git add <file>..." to include in what will be committed) # # student/01/ nothing added to commit but untracked files present (use "git add" to track)
Tässä tapauksessa koko hakemisto
01
on uusi, joten sen sisältämiä tiedostoja ei luetella erikseen.Lisää uudet tiedostot indeksiin komennolla
git add <path>
, missä<path>
on polku uuteen tiedostoon tai hakemistoon, joka lueteltiin edellä kohdassa “Untracked files:”. Tässä tapauksessa komento on siis:git add student/01/
Näin saadaan lisätty koko hakemisto
student/01/
, eli kaikki tämän hakemiston tiedostot ja alihakemistot. Komentoagit add
voi käyttää myös tiedostoille. Olisit voinut lisätä kummankin uuden tiedoston erikseenkin komennoilla:git add student/01/first_submission/first_submission.pro git add student/01/first_submission/main.cpp
Komento
git add
lisää uudet/muutetut tiedostot mukaan seuraavaan committiin (ks. seuraava kohta).Vie tekemäsi muutokset paikalliseen tietovarastoon kirjoittamalla komento
git commit -m "Message"
, missäMessage
kuvaa commitin sisältöä mahdollisimman selkeästi, mutta ytimekkäästi.Jos kirjoitat pelkästään komennon
git commit
, avautuu tekstieditori, johon viestin voi kirjoittaa.Vie paikallisessa tietovarastossa olevat muutokset keskustietovarastoon komennolla
git push
.Nyt olet lisännyt työkopiossasi tekemät muutokset ensin indeksiin (add) ja sitten paikalliseen tietovarastoosi (commit) ja sieltä keskustietovarastoosi (push). Voit tarkastella keskustietovarastoosi tekemiäsi muutoksia myös selaimen kautta gitlab-verkko-osoitteen avulla ja vaikka tarkistaa, että muutokset tosiaan menivät perille. Osaat myös tarkastella projektisi statusta versionhallinnassa komennolla
git status
.
Vaihe 5) Tehtävän palauttaminen¶
Kun ohjelmakoodisi on kurssin Git-repositoriossa, voit palauttaa sen kurssialustalle alla olevan lomakkeen kautta. Kopioi lomakkeen kenttään Git-tietovarastosi osoite (.git-loppuinen osoite) ja paina Lähetä-painiketta.
Seuraavilla palautuskerroilla käytetään samaa tietovarastoa, ja selaimesi mahdollisesti muistaa aikaisemmin annetun osoitteen. Automaattisen arvioinnin käynnistämiseen riittää, että ohjelmakoodi on tietovarastossasi oikean nimisessä hakemistossa ja painat Lähetä-painiketta.
A+ esittää tässä kohdassa tehtävän palautuslomakkeen.