Χρήση του εργαλείου git για την υποβολή ασκήσεων

Υποβολή άσκησης

Για τις ανάγκες του μαθηματος θα χρησιμοποιήσετε το gitlab-csd για να υποβάλλετε τις ασκήσεις σας. Επίσης θα μπορούσατε να χρησιμοποιήσετε το gitlab-csd για να οργανώνετε και να κρατάτε αποθηκευμένο τον κώδικά σας. Για τις ανάγκες του μαθήματος, υπάρχει το CS100_23 group στον gitlab server του Τμήματος. Η κάθε άσκηση έχει το δικό της repository μεσα στην ομάδα του CS100_23 group.
Αρχικά, θα πρέπει να ακολουθήσετε τις παρακάτω οδηγίες μόνο για την πρώτη φορά που θα κάνετε join την ομάδα του ΗΥ-100 στο gitlab-csd.

  1. Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ., csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ). Αρχικά, θα είστε external users (δεν θα έχετε permission να δημιουργείτε projects ή groups και δεν θα έχετε δικαιώματα για internal ή external projects, μόνο για public).
  2. Πηγαίνετε στο "Group Tab".
  3. Επιλέξτε την ομάδα/group "CS100_23".
  4. Πατήστε στο Request Access (περιμένετε μέχρι οι TAs να αποδεχτούν το request, αυτό θα πάρει μερικές ώρες).
  5. Μόλις αποδεχτούμε τα request σας για να γίνετε μέλος στην ομάδα του CS100_23 τότε θα είστε Regular user. Θα έχετε δικαιώματα Reporter στα repositories των ασκήσεων.
  6. Όταν γίνετε δεκτοί στην ομάδα, μπορείτε να δημιουργήστε το προσωπικό σας access token:
    1. Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ).
    2. Στην πάνω δεξιά γωνία επιλέξτε το avatar σας.
    3. Επιλέξτε Preferences.
    4. Στην αριστερή μπάρα, επιλέξτε Access Tokens.
    5. Διαλέξτε όνομα και προαιρετικά επιλέξτε την ημερομηνία λήξης γαι το access token.
    6. Επιλέξτε όλα τα κουτάκια.
    7. Επιλέξτε "Create personal access token".
    8. Αποθηκεύστε το personal token στον υπολογιστή σας. Αν κάνετε refresh τη σελίδα και δεν έχετε αποθηκεύσει το access token, τότε αυτό θα χαθεί και θα πρέπει να δημιουργήσετε καινούριο.
Πριν από κάθε άσκηση: Κάθε άσκηση έχει το δικό της repository μέσα στο group του CS100_23. Πριν ξεκινήσετε κάθε άσκηση, θα πρέπει να κάνετε fork το repository της άσκησης στο δικό σας χώρο στο gitlab-csd. Το fork δημιουργεί ένα αντίγραφο το οποίο σας αφήνει να κάνετε αλλαγές.

Πώς κάνετε fork το repository μιας άσκησης:

  1. Προσοχή!!! Πριν δοκιμάσετε να κάνετε fork το repo της συγκεκριμένης άσκησης, βεβαιωθείτε ότι είστε member στην ομάδα του CS100_23. Αν δεν είστε, δεν θα σας αφήσει το σύστημα να κάνετε fork την άσκηση.
  2. Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ., csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ) και πηγαίνετε στην ομάδα του CS100_23.
  3. Επιλέξτε το repository της άσκησης και πατήστε το "Fork".
  4. Επιλέξτε το όνομά σας ως το namespace που θα γίνει η αντιγραφή του repository.
  5. Κάντε το repo σας private και μοιραστείτε το με τον TA (Iacovo Kolokasis).
    1. Mέσα στο φάκελο της κάθε άσκησης υπάρχει ένα python script με όνομα private.py
    2. Τρέχοντάς το, αυτό το script θα κάνει το repository σας private και θα προσθέσει τον Iacovo Kolokasi (TA) σαν member. Διαβάστε το README.md αρχείο που βρίσκεται στο repository της άσκησης για να δείτε πως τρέχει το script.
  6. Κάντε clone το repository της άσκησης στον τοπικό σας υπολογιστή ή στα μηχανήματα της σχολής:
    git clone https://gitlab-csd.datacenter.uoc.gr/csdp1039/...

Τελική Υποβολή της Άσκησης

  1. Θα πρέπει να κάνετε commit όλα τα source αρχεία (όχι τα executables).
    git add file1.c file2.c file3.c
    git commit -m "Commit message"
    git push
  2. Την μέρα και ώρα του deadline θα περάσει ένα script και θα μαζέψει όλα τα forks που έκαναν τα μέλη του CS100_23. Ότι,δήποτε αλλαγές θα τις αγνοήσουμε.

Γενικές οδηγίες για καλή χρήση του git:

  1. Κάντε συχνά commits. Το ιδανικό θα είναι να κάνετε ένα commit για κάθε step που ολοκληρώνετε στην άσκησή σας.
  2. Κάνετε commit μόνο τα source files (.c αρχεία) και όχι τα executables
  3. Το μήνυμα commit θα πρέπει να είναι περιγραφικό και να εξηγεί τι κάνετε
  4. Κάντε συχνά push ώστε σε περίπτωση που ο υπολογιστή κάνει crash να μην χάσετε την άσκηση σας.

Συχνές ερωτήσεις και απαντήσεις (FAQ)

  1. Μπορώ να υποβάλω εκπρόθεσμες ασκήσεις;
    Όχι, οι ασκήσεις μπορούν να υποβάλλονται μόνο μέσα στα καθορισμένα χρονικά όρια.
  2. Μπορώ να υποβάλω ξανά μία άσκηση;
    Μπορείτε να υποβάλλετε την άσκηση όσες φορές θέλετε (πάντα μέσα στα καθορισμένα χρονικά όρια). Στο σύστημα αποθηκεύονται όλες οι υποβολές με τη σχετική αρίθμηση.