En essensiell del av TDT4100 er øvingsopplegget. Formatet til øvingene er kodeoppgaver dere laster ned lokalt på PC-en deres via Git, gjennomfører og laster opp til BlackBoard. Denne siden beskriver hvordan dere installerer Git og kobler til GitHub for å hente øvingene. Vi har satt opp to fremgangsmåter for oppsettet, alternativ 1 og alternativ 2. Alternativ 1 er den enkleste, og vi anbefaler den for studenter uten erfaring med Git. Alternativ 2 er litt mer avansert, og åpner opp for å sette opp deres egen kodebase (repository) slik at dere kan pulle og pushe endringene deres. Dette kan feks være nyttig om dere jobber på flere datamaskiner eller vil ha en backup av øvingskoden.





Installere Git


For å sette opp øvingsprosjektet må man først installere Git på maskinen. Om du allerede har installert Git, kan du hoppe over dette steget.

Windows

Gå til https://gitforwindows.org/, last ned installasjonsfilen ved å klikke "Download" og kjør gjennom installasjonen. 

Linux

Avhengig av hvilket pakkesystem dere har, bruker dere forskjellige kommandoer. Dere finner en komplett liste her: https://git-scm.com/downloads/linux
Dette gjelder Ubuntu-baserte systemer:

sudo apt update

sudo apt install git

MacOS

  1. Installer Homebrew ved å følge instruksjoner på https://brew.sh/ 
  2. Kjør 

    brew install git


Alternativ 1 - Kloning av students-repository


Denne måten er den enkleste å sette opp prosjektet, men har noen begrensninger. Med dette alternativet vil man ikke kunne laste opp sin egen kode til GitHub, og dette alternativet funker dårlig om du vil ha versjonskontroll på koden du skriver selv. 

  1. Åpne VSCode. Pass på at du ikke er i et prosjekt (Trykk "File" → "New Window" øverst i venstre hjørne om du er i et prosjekt).
  2. Gå inn på "Source Control"-fanen og trykk "Clone Repository".
  3. Lim inn "https://git.ntnu.no/tdt4100/tdt4100-ovinger-25.git" i feltet som dukker opp.
  4. Velg hvor du skal ha øvingskoden.
  5. Åpne prosjektet:


  6. Du får nå potensielt opp følgende vindu nedenfor i VSCode. Her er det trygt å trykke på "Yes, I trust the authors" hvis du skulle få spørsmål:
  7. Du kan nå velge å installere de anbefalte tilleggene til VSCode til bruk i TDT4100 hvis du ikke allerede har gjort dette. Dette gjør du ved å trykke på "Install" når vinduet nedenfor dukker opp nederst i høyre hjørne:

    NB! Du MÅ ha Java Debugger-tillegget for å kunne kjøre koden din i VSCode. Den enkleste måten å sette opp denne er ved å trykke "Install" på vinduet ovenfor når du blir spurt om dette. Se evt. guide for oppsett av VSCode.

Hente ned oppdatert forelesningkode, nye øvinger og annet

For å oppdatere prosjektet når det har blitt lagt ut nye tester eller eksempelkode, trenger man bare å kjøre kommandoen git pull.

Dette kan man enten gjøre i Terminalen, eller direkte i VSCode ved å trykke på følgende under fanen "Source control":

NB: Dere vil ikke kunne pushe i dette alternativet

Som nevnt er det lurt å kun skrive i ovingX-mappene for å unngå merge conflicts. Dere vil også i dette alternativet oppleve at etterhvert som dere oppretter nye filer, så vil counteren på source control-fanen øke. Hvis dere flytter musepekeren over denne fanen, vil det f.eks stå 15 pending changes. Dette er helt ok, og dere trenger ikke foreta noe for å fjerne counteren. I senere kurs (og alternativ 2) vil dere kunne pushe (lagre) deres endringer til GitHub, men dette har vi ikke åpnet for at dere gjør i dette alternativet.  


Alternativ 2 - Fork din egen versjon (Avansert)


I dette alternativet lager man sin egen kopi (fork) av øvingskodebasen. Dette gir muligheten til å bruke Git aktivt, og lagre sine egne endringer på GitHub.

MERK: GitHub har en egen fork-knapp, men den tillater kun å forke til et public repo. Dette fører til at koden du skriver ligger offentlig, og alle kan se det du har gjort. Dette ønsker vi ikke. Metoden nedenfor fører til samme resultat som en fork, bare at vi gjør det manuelt. 

Sett opp SSH-nøkler

Følg denne guiden: https://docs.github.com/en/enterprise-server@3.14/authentication/connecting-to-github-with-ssh/adding-a-new-ssh-key-to-your-github-account

Kopier kodebasen

  1. Gå til https://git.ntnu.no/new
  2. Lag en ny privat kodebase med navnet "tdt4100-ovinger-25" under ditt eget område
  1. I filsystemet på PC-en din, åpne opp terminalen der du vil ha øvingskoden. Hvis du har Windows kan du bruke Git Bash i stedet for terminalen.

  2. Skriv følgene kommandoer i terminalen (Bytt ut [dinbruker]). Dersom du bruker Widows kan det hende du må bruke noe annet enn PowerShell, feks Git BASH:
    git clone --bare git@git.ntnu.no:tdt4100/tdt4100-ovinger-25.git
    cd tdt4100-ovinger-25.git
    git push --mirror git@git.ntnu.no:[dinbruker]/tdt4100-ovinger-25.git
    cd ..
    rm -rf tdt4100-ovinger-25.git
    git clone git@git.ntnu.no:[dinbruker]/tdt4100-ovinger-25.git
    cd tdt4100-ovinger-25
    git remote add public git@git.ntnu.no:tdt4100/tdt4100-ovinger-25.git



    Nå vil du ha en egen lokal kodebase som er koblet til begge GitHub-kodebasene (skriv "git remote show", "origin" refererer til [dittnavn]/tdt4100-ovinger-25, "public" referer til tdt4100/tdt4100-ovinger-25)

Laste inn oppdateringer

For å få oppdateringer fra originalkodebasen inn i ditt prosjekt, må vi kjøre en "merge". 

Nødvendige endringer i originalkodebasen vil være på main-branchen, så dette er den eneste man trenger å forholde seg til. 

  1. Åpne en terminal og naviger til prosjektet ditt (evt. åpne terminalen inne i prosjektet ditt i VSCode).
  2. Først henter vi ned nyeste informasjon om originalprosjektet med denne kommandoen:

    git fetch public
  3. For å få med de nyeste endringene kjører man denne kommandoen:

    git merge public/main

    Den vil legge til de nyeste endringene fra originalprosjektet til den branchen du befinner deg på. Om du vil sørge for at ditt GitHub-prosjekt også er oppdatert, kjør git push. 




  • No labels