Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Oppdatert til 2024 lenker

Øvingsprosjektet (også kalt students-repository) er en essensiell del av TDT4100. Når det kommer ut nye øvinger, blir det lagt til tester i øvingsprosjeket som man kan bruke til å sjekke at oppgaven er gjort riktig. I tillegg kommer løsningsforslag til øvingene i dette prosjektet, samt kode som brukes i forelesninger og øvingsforelesninger. Alt av dette ligger på Gitlab-siden til emnet som du finner her: https://gitlab.stud.idi.ntnu.no/tdt4100. Velg inneværende semester (eksempelvis v2022v2024) og velg prosjektet prosjektet tdt4100-students-24. Nye øvinger og eksempelkode hentes enkelt ned underveis som det legges ut i semesteret ved å klone dette prosjektet lokalt og hente ned ny kode via Git. Her følger en guide for å klone og sette opp Git med VSCode.

Vi har laget to alternativer for å sette opp øvingsprosjektet på PC-en din. Alternativ 1 er den det enkleste, og anbefales dersom man ikke har kjennskap til git fra før. Med alternativ 2 har man mulighet til å ha koden sin synkronisert på IDIs servere, og kan enklere hente ned koden på forskjellige datamaskiner hvis man bruker det, men krever også at man er litt komfortabel med å bruke terminalen og krever noe mer jobb når man skal hente ned nye øvinger eller kode fra forelesning. Det er også fullt mulig å starte med alternativ 1, og heller bytte til alternativ 2 senere i semesteret. Da bare kopierer du over koden du allerede har laget i prosjektet lokalt på PC-en din til ditt nye prosjekt.

NBNB1:

Uansett hvilket av alternativene dere velger: 

Ikke endre eller legg til noe kode i andre mapper enn minegenkode og ovinger/src/main/java. Endringer på andre steder vil mest sannsynlig føre til merge conflicts, noe som ikke er ønskelig. Merge conflicts oppstår når samme kodelinje har blitt endret til to ulike ting i hver sin branch, og så blir git forvirret når koden skal samles igjen.

NB2: 

NTNU har bestemt at 2FA skal benyttes ved innlogging til deres systemer. Dette gjelder også for gitlab, og dere har et par ulike valgmuligheter for hvordan dere vil gjennomføre 2FA her. En oversikt over disse og guide for aktivering finner dere her. 


Table of Contents
maxLevel4
outlinetrue
stylenone




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

Code Block
languagebash
sudo apt update


sudo apt install git

MacOS

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

    Code Block
    languagebash
    brew install git



Alternativ 1 - Kloning av students-repository


Denne måten er den enkleste å sette opp prosjektet, men har en del begrensninger. Med dette alternativet vil man ikke kunne laste opp sin egen kode til Gitlab, og er avhengig av å ha alt av egen kode lokalt på PCen uten versjonskontroll. Med alternativ 2 har man mulighet til å ha koden sin synkronisert på IDIs servere, og kan enklere hente ned koden på forskjellige datamaskiner hvis man bruker det. 


  1. Gå til Gå til https://gitlab.stud.idi.ntnu.no/tdt4100/v2022v2024/tdt4100-students-24
  2. Klon repository til PCen din, for eksempel ved å trykke på knappen som vist under:
    1. Potensiell bug observert på Mac: Dersom ingenting dukker opp i VSCode når du gjør det som står over så kan du også klone repository ved å i stedet trykke på "Copy URL" under "Clone with HTTPS" på Gitlab:
      Image Added
      Deretter går du inn i VSCode og trykker på fanen "Source Control" og deretter "Clone Repository":
      Image Added
      For så å lime inn URL-en du kopierte i feltet som dukker opp øverst i vinduet:
      Image Added

  3. Velg en mappe på PCen der prosjektet skal klones. Mappen du velger blir foreldermappen til prosjektet.
  4. Klikk "Select Repository Location", og vent på at VS Code tar seg av resten
Laste inn oppdateringer
  1. . Når dette er ferdig så åpner du repoet du nettopp hentet i VSCode ved å trykke på en av knappene som dukker opp nederst i høyre hjørne.
  2. 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:
    Image Added
  3. 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:
    Image Added
    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 kjøre kommandoen git pull.

For eksempel ved å bruke git-vinduet i VS Code:

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

Image Added

NB: Dere vil ikke kunne pushe i dette alternativet

Som nevnt er det viktig at dere kun skriver kode i minegenkode og ovinger/src/main/java, 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 gitlab/github, men dette har vi ikke åpnet for at dere gjør i dette alternativet.  Image Removed


Alternativ 2 - Fork din egen versjon (Avansert)


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


  1. Gå til https://gitlab.stud.idi.ntnu.no/tdt4100/v2022v2024/tdt4100-students-24
  2. Klikk Fork (man må være logget inn på gitlab):


  3. Gi prosjektet et valgfritt navn og beskrivelse. Velg å lagre prosjektet under din egen private Project URL, og velg privat synlighetsnivå (slik at ikke øvingene dine ligger ut offentlig). 
    1. NB! Det er veldig viktig at du her velger visiblilty level "Private". Hvis ikke deles koden med andre som tar emnet, og du kan risikere å bli tatt i fusk på øving.

  4. Klikk "Fork Project" nederst på siden
  5. Gå til ditt nye repository på gitlab.
  6. Klon repository til PCen din, for eksempel ved å trykke på knappen som vist under:


    VS Code kommer til å spørre om brukernavn og passord til Gitlab. Har du aktivert tofaktor-autentisering, kan du ikke logge inn med passord, men må bruke en Personal Access Token og legge inn denne i stedet der du blir bedt om passord. Sjekk Denne denne guiden for å se hvordan man oppretter en slik. 
    1. NB! Husk å legge til read_repository og write_repository i "scopes" på access tokenen.
  7. Velg en mappe på PCen der prosjektet skal klones. Mappen du velger blir foreldremappen til prosjektet.
  8. Klikk "Select Repository Location", og vent på at VS Code tar seg av resten. 
  9. Når du er inne i øvings-repoet får du 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:
    Image Added
  10. 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:
    Image Added


Konfigurer remote

For å kunne laste inn nye tester osv. hente ned ny kode for øvinger, forelesninger, løsningsforslag og lignende med et "Forkedforked" prosjekt, må vi først konfigurere originalprosjektet som remote remote i Git:

  1. Åpne en terminal og naviger til ditt "forked" prosjekt. (For noen tips til navigering i terminalen, sjekke sjekk denne siden)
    1. Dersom du allerede har åpnet dette prosjektet lokalt i VSCode så kan du trykke på Terminal i menylinjen og velge New Terminal for å komme til riktig mappe.
  2. Kjør kommandoen

    Code Block
    languagebash
    git remote add fagstab https://gitlab.stud.idi.ntnu.no/tdt4100/v2022v2024/tdt4100-students-24.git


  3. Verifiser at remote ble lagt til riktig ved å kjøre 

    Code Block
    languagebash
    git remote show

    Hvis alt er satt opp riktig skal man se både "origin" og "fagstab".:
    Image Added

    "Origin" er ditt personlige forked prosjekt, mens "fagstab" er knyttet til det originale prosjektet og er der ny kode fra forelesning, øvinger, etc. vil dukke opp.Image Removed


Laste inn oppdateringer

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

Nødvendige endringer i originalprosjektet 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:

    Code Block
    languagebash
    git fetch fagstab


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

    Code Block
    languagebash
    git merge fagstab/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 gitlab-prosjekt også er oppdatert, kjør git push. 


Feilmeldinger 

Potensielle feilmeldinger 

Når man laster inn øvingsprosjektet så kan det oppstå feil. Her ligger beskrivelse av og løsning på de feilmeldingene vi har oppdaget. Denne seksjonen vil bli oppdatert fortløpende. 

Cannot access class sun.security.action.GetProperty

Hvis du får en feilmelding tilsvarende denne:

     

Så kan dette løses ved å: 

  1. Åpne "command palette" i VS Code ( F1 eller Ctrl + Shift + P)
  2. Skriv: "Preferences: Open Settings (JSON)"
  3. Legg deretter inn:

     

         i settings.json filen.

     4.  Husk å trykk på omstart etter du har gjort endringen i settings.json.