Difference between revisions of "Git juhend tudengite kontrollimiseks"

From ATI public wiki
Jump to: navigation, search
(Created page with "==SSH-ga audentimine== Selleks, et ei peaks iga kord parooli sisse trükkima, on võimalik SSH privaatvõtmega audentida. SSH-ga audentimisel kasutada aadressi git@git.ttu.ee...")
 
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
==Tudengi salve kloonimine==
 +
Tudengi repositooriumi saab kätte aadressilt
 +
https://git.ttu.ee/ained/iag0581/<Git salv>
 +
Git salve nime leiab tulemuste tabeli viimasest veerust. https://docs.google.com/spreadsheets/d/1MSrsvUsdJUbMzJ5MYUwNSj0BjIJKyZVvDaLv8uKlTMM/edit#gid=614352589
 +
Näiteks kui võtta teine tudeng, kelle Git salv on 'alakhv', siis näeks git-i käsk välja järgmine:
 +
git clone https://git.ttu.ee/ained/iag0581/alakhv
 +
Audentimine toimub enda Uni-ID kasutajaga.
 +
 
==SSH-ga audentimine==
 
==SSH-ga audentimine==
 
Selleks, et ei peaks iga kord parooli sisse trükkima, on võimalik SSH privaatvõtmega audentida.
 
Selleks, et ei peaks iga kord parooli sisse trükkima, on võimalik SSH privaatvõtmega audentida.
Line 4: Line 12:
 
  git@git.ttu.ee:ained/iag0581/<repositoorium>
 
  git@git.ttu.ee:ained/iag0581/<repositoorium>
  
==Automaatne kloonimine==
+
==Git koondsalve skriptid==
Kui repositooriume on palju, siis töö lihtsustamiseks võib kasutada skripti. Skript eeldab, et audentimine toimub kasutades SSH võtit.
+
Link skriptide allalaadimiseks:
Skripti on võimalik alla laadida http://ati.ttu.ee/wiki/index.php/File:Autoclone.zip
+
 
===Skripti kasutamine===
+
[[File:Git script.zip|Allalaadimine]]
Failid paigutada kokku mõnda kausta, näiteks:
+
 
|- C:
+
Peale alla laadimist pakkida zip arhiiv lahti. Arhiivis on järgnevad failid:
  |- workspace
+
* lisa-repod.sh            <span style="color:#777"> kloonib alla õppejõu repositooriumi kausta nimega 'iag0581' ning tekitab 'tud' kausta tudengite alamsalved</span>
    |- git
+
* uuenda.sh                <span style="color:#777"> uuendab tudengite salved</span>
      |- autoclone.sh
+
* uuenda-reset.sh         <span style="color:#777"> uuendab tudengite salved, kustutades kõik kohalikud muutused tudengite kataloogides</span>
      |- update.sh
+
* uuenda-reset-tudeng.sh   <span style="color:#777"> uuendab ette antud tudengi salve </span>
      |- repod.txt
+
* repod.txt               <span style="color:#777"> nimekiri tudengite repositooriumitest </span>
      |- README.txt
+
 
 
+
===Kasutamine===
Järgmisena avada Git Bash ja liikuda C:\workspace\git
+
Skriptide kasutamine eeldab SSH-ga audentimist.
cd /c/workspace/git
+
 
 +
'repod.txt' failis hoitakse nimekirja tudengite salvedest, keda koondsalve kloonime. Tudengi git salve nime leiab tulemuste tabeli viimasest veerust. https://docs.google.com/spreadsheets/d/1MSrsvUsdJUbMzJ5MYUwNSj0BjIJKyZVvDaLv8uKlTMM/edit#gid=614352589.
 +
 
 +
Enne esmakordset kasutamist tuleks tekstiredaktoriga avada ''lisa-repod.sh'' ja muuta muutujat ''REPO''. Väärtuseks peaks olema õppejõu salve nimi (uni-id), kuhu tudengite kaustad lisatakse.
 +
<source lang='bash'> REPO="eesnimi.perenimi" # <--- muuda </source>
  
Tudengite repositooriumite esmakordseks kloonimiseks käivitada autoclone.sh
+
Skripte tuleks käivitada Windowsi all läbi Git Bash käsurea. Eeldades, et pakkisime skriptid lahti C:\Workspace:
./autoclone.sh
+
<source lang='bash'>
+
  cd /c/workspace  # liigume kausta C:\Workspace
Tulemusena tekib kaust 'repositooriumid', kus asuvad tudengite salved. Nt.
+
./lisa-repod.sh # käivitame skripti
  |- C:
+
</source>
  |- workspace
+
Tudengite salvede kloonimine võib võtta üksjagu aega. Tulemusena tekib kaust iag0581, kus on õppejõu git salv ja selle sees omakorda kaust 'tudengid', mis sisaldab endas tudengite alamrepositooriume.
    |- git
+
      |- autoclone.sh
+
      |- repod.txt
+
      |- update.sh
+
      |- README.txt
+
  |- repositooriumid
+
    |- tudeng1
+
|- tudeng2
+
|- ...
+
  
Hiljem, kui on tarvis viimane seis alla laadida ja salvesid uuendada,  
+
'''NB!''' Alamkataloogid kataloogis 'tudengid' on olemas vaid tudengitele, kes on juba midagi üles laadinud. Need, kes pole ühtki kodutööd üles laadinud, pole ka kataloogi. Need tekivad lisa-repod.sh skripti käivitamisel automaatselt.
siis käivitada update.sh
+
./update.sh
+
+
Tudengite salved käiakse ükshaaval läbi. Kui uuendusi pole, näidatakse ekraanil
+
"Everything up to date". Kui salve pole üldse midagi laetud, väljastakse teade
+
"Your configuration specifies to merge with...".
+
Kui on vajadus protsess peatada, siis kasutada klahvikombinatsiooni ctrl+c.
+
  
Tudengi salvede nimekiri asub failis repod.txt, kui on vaja kedagi lisada
+
===Uuendamine===
või eemaldada.
+
Tudengite salvede värskendamiseks käivitada skript ''uuenda.sh''. Skript peaks asuma koondsalve kaustas. Näiteks
 +
<source lang='bash'>
 +
cd /c/workspace
 +
cp /c/workspace/uuenda.sh /c/workspace/iag0581/  # kopeerime skripti koondsalve kausta
 +
cd iag0581
 +
./uuenda.sh  # käivitame skripti
 +
</source>
  
 +
'''NB!''' Aegajalt tuleks uuesti jooksutada ka '''lisa-repod.sh''' skripti, mis lisab vajadusel tudengite repositooriumeid.
  
===Küsimused===
+
===Logi vaatamine===
# kuidas ma saan teada kui uus kodutöö tuleb mulle üle kontrollimiseks, et ma ei jääks sellega venima?
+
Git bash käsurealt:
Uuenduste alla laadimist saab automatiseerida skriptiga. Uuenduse käivitamisel on näha, kas keegi on salves muutnud midagi vahepeal. See ei tähenda küll, et muudatused on kindlasti kodutööga seotud. Seega peaks see korralduslikult paigas olema, nii et tudengid peavad kodutöö ära saatma kindlaks kuupäevaks
+
<source lang='bash'>gitk</source>
uuenduste alla laadimist saab automatiseerida ning neid alla laadides on näha, kas kellelgi on miskit muutunud vahepeal. Küll aga ei tähenda see, et see muudatus on konkreetselt kodutööga seotud. Seega see peaks    minumeelest korralduslikult olema paigas, et tudengid peavad kodutöö saatma ära nt 13.10 24:00 ja järgmine päev teed rahulikult refreshi ja kui ei ole, siis ei ole.
+
  
# kuidas ma saan ainult vajaliku osa kätte, mitte kogu tema repot, sest no kui ta iga tund tekitab sinna mingi posu faile, siis teise semestri lõpuks ega ma väga ei soovi iga tudengi repot alla sikutada.
+
'''NB!''' Koondsalve puhul tudengi logi vaatamiseks tuleb eelnevalt liikuda tudengi kausta ja käivitada gitk sealt.
Esiteks peaks sisse harjutama neile kindla kaustastruktuuri, nt lab1, lab2, .., HW1, HW2, et sinna ei olekski kohta tekitamiseks suvalisi faile. Sinna peaksid ainult asjakohased failid tekkima.
+
Kogu repo laed alla alguses, kasutades 'clone' käsku. Hiljem 'pull' käsuga laetakse ainult muutused (diffid). Kas vastab küsimusele?
+

Latest revision as of 12:53, 14 September 2015

Tudengi salve kloonimine

Tudengi repositooriumi saab kätte aadressilt https://git.ttu.ee/ained/iag0581/<Git salv> Git salve nime leiab tulemuste tabeli viimasest veerust. https://docs.google.com/spreadsheets/d/1MSrsvUsdJUbMzJ5MYUwNSj0BjIJKyZVvDaLv8uKlTMM/edit#gid=614352589 Näiteks kui võtta teine tudeng, kelle Git salv on 'alakhv', siis näeks git-i käsk välja järgmine:

git clone https://git.ttu.ee/ained/iag0581/alakhv

Audentimine toimub enda Uni-ID kasutajaga.

SSH-ga audentimine

Selleks, et ei peaks iga kord parooli sisse trükkima, on võimalik SSH privaatvõtmega audentida. SSH-ga audentimisel kasutada aadressi

git@git.ttu.ee:ained/iag0581/<repositoorium>

Git koondsalve skriptid

Link skriptide allalaadimiseks:

File:Git script.zip

Peale alla laadimist pakkida zip arhiiv lahti. Arhiivis on järgnevad failid:

  • lisa-repod.sh kloonib alla õppejõu repositooriumi kausta nimega 'iag0581' ning tekitab 'tud' kausta tudengite alamsalved
  • uuenda.sh uuendab tudengite salved
  • uuenda-reset.sh uuendab tudengite salved, kustutades kõik kohalikud muutused tudengite kataloogides
  • uuenda-reset-tudeng.sh uuendab ette antud tudengi salve
  • repod.txt nimekiri tudengite repositooriumitest

Kasutamine

Skriptide kasutamine eeldab SSH-ga audentimist.

'repod.txt' failis hoitakse nimekirja tudengite salvedest, keda koondsalve kloonime. Tudengi git salve nime leiab tulemuste tabeli viimasest veerust. https://docs.google.com/spreadsheets/d/1MSrsvUsdJUbMzJ5MYUwNSj0BjIJKyZVvDaLv8uKlTMM/edit#gid=614352589.

Enne esmakordset kasutamist tuleks tekstiredaktoriga avada lisa-repod.sh ja muuta muutujat REPO. Väärtuseks peaks olema õppejõu salve nimi (uni-id), kuhu tudengite kaustad lisatakse.

 REPO="eesnimi.perenimi" # <--- muuda

Skripte tuleks käivitada Windowsi all läbi Git Bash käsurea. Eeldades, et pakkisime skriptid lahti C:\Workspace:

 cd /c/workspace  # liigume kausta C:\Workspace
 ./lisa-repod.sh  # käivitame skripti

Tudengite salvede kloonimine võib võtta üksjagu aega. Tulemusena tekib kaust iag0581, kus on õppejõu git salv ja selle sees omakorda kaust 'tudengid', mis sisaldab endas tudengite alamrepositooriume.

NB! Alamkataloogid kataloogis 'tudengid' on olemas vaid tudengitele, kes on juba midagi üles laadinud. Need, kes pole ühtki kodutööd üles laadinud, pole ka kataloogi. Need tekivad lisa-repod.sh skripti käivitamisel automaatselt.

Uuendamine

Tudengite salvede värskendamiseks käivitada skript uuenda.sh. Skript peaks asuma koondsalve kaustas. Näiteks

 cd /c/workspace
 cp /c/workspace/uuenda.sh /c/workspace/iag0581/  # kopeerime skripti koondsalve kausta
 cd iag0581
 ./uuenda.sh  # käivitame skripti

NB! Aegajalt tuleks uuesti jooksutada ka lisa-repod.sh skripti, mis lisab vajadusel tudengite repositooriumeid.

Logi vaatamine

Git bash käsurealt:

gitk

NB! Koondsalve puhul tudengi logi vaatamiseks tuleb eelnevalt liikuda tudengi kausta ja käivitada gitk sealt.