Χρήση του εργαλείου git για την υποβολή ασκήσεων
Υποβολή άσκησης
Για τις ανάγκες του μαθηματος θα χρησιμοποιήσετε το
gitlab-csd
για να υποβάλλετε τις ασκήσεις σας. Επίσης θα μπορούσατε να
χρησιμοποιήσετε το
gitlab-csd
για να οργανώνετε και να κρατάτε αποθηκευμένο τον κώδικά σας.
Για τις ανάγκες του μαθήματος, υπάρχει το
CS100 group
στον gitlab server του Τμήματος. Η κάθε άσκηση έχει το δικό
της repository μεσα στην ομάδα του
CS100 group.
Αρχικά, θα πρέπει να ακολουθήσετε τις παρακάτω οδηγίες μόνο
για την πρώτη φορά που θα κάνετε join την ομάδα του ΗΥ-100 στο
gitlab-csd.
- Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ., csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ). Αρχικά, θα είστε external users (δεν θα έχετε permission να δημιουργείτε projects ή groups και δεν θα έχετε δικαιώματα για internal ή external projects, μόνο για public).
- Πηγαίνετε στο "Group Tab".
- Επιλέξτε την ομάδα/group "CS100".
- Πατήστε στο Request Access (περιμένετε μέχρι οι TAs να αποδεχτούν το request, αυτό θα πάρει μερικές ώρες).
- Μόλις αποδεχτούμε τα request σας για να γίνετε μέλος στην ομάδα του CS100 τότε θα είστε Regular user. Θα έχετε δικαιώματα Reporter στα repositories των ασκήσεων.
-
Όταν γίνετε δεκτοί στην ομάδα, μπορείτε να δημιουργήστε το
προσωπικό σας access token:
- Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ).
- Στην πάνω δεξιά γωνία επιλέξτε το avatar σας.
- Επιλέξτε Preferences.
- Στην αριστερή μπάρα, επιλέξτε Access Tokens.
- Διαλέξτε όνομα και προαιρετικά επιλέξτε την ημερομηνία λήξης γαι το access token.
- Επιλέξτε όλα τα κουτάκια.
- Επιλέξτε "Create personal access token".
- Αποθηκεύστε το personal token στον υπολογιστή σας. Αν κάνετε refresh τη σελίδα και δεν έχετε αποθηκεύσει το access token, τότε αυτό θα χαθεί και θα πρέπει να δημιουργήσετε καινούριο.
Πώς κάνετε fork το repository μιας άσκησης:
- Προσοχή!!! Πριν δοκιμάσετε να κάνετε fork το repo της συγκεκριμένης άσκησης, βεβαιωθείτε ότι είστε member στην ομάδα του CS100. Αν δεν είστε, δεν θα σας αφήσει το σύστημα να κάνετε fork την άσκηση.
- Κάντε login στο gitlab-csd χρησιμοποιώντας LDAP credentials (π.χ., csdXXXX@csd.uoc.gr όπου XXXX είναι το ΑΜ) και πηγαίνετε στην ομάδα του CS100.
- Επιλέξτε το repository της άσκησης και πατήστε το "Fork".
- Επιλέξτε το όνομά σας ως το namespace που θα γίνει η αντιγραφή του repository.
-
Κάντε το repo σας private και μοιραστείτε το με τον TA
(Iacovo Kolokasis).
- Mέσα στο φάκελο της κάθε άσκησης υπάρχει ένα python script με όνομα private.py
- Τρέχοντάς το, αυτό το script θα κάνει το repository σας private και θα προσθέσει τον Iacovo Kolokasi (TA) σαν member. Διαβάστε το README.md αρχείο που βρίσκεται στο repository της άσκησης για να δείτε πως τρέχει το script.
- Κάντε clone το repository της άσκησης στον τοπικό σας υπολογιστή
ή στα μηχανήματα της σχολής:
git clone https://gitlab-csd.datacenter.uoc.gr/csdp1039/...
Τελική Υποβολή της Άσκησης
-
Θα πρέπει να κάνετε commit όλα τα source αρχεία (όχι τα
executables).
git add file1.c file2.c file3.c
git commit -m "Commit message"
git push -
Κάντε tag το τελευταίο commit που πρόκειται να γίνει submit
μέσω της εντολής:
make turnin.
Προσοχή!!! Για να εκτελέσετε την εντολή θα πρέπει να βρίσκεστε στο repository της άσκησης εκεί όπου βρίσκεται και το αρχείο Makefile. -
Στην περίπτωση που θέλετε να ξανακάνετε turnin απλά θα
πρέπει να τρέξετε τις εξής εντολές:
make undoTurnin
make turnin
Προσοχή!!! Για να τρέξετε αυτές τις εντολές θα πρέπει να βρίσκεστε μέσα στο repository στο σημείο όπου βρίσκεται και το αρχείο Makefile. - Την μέρα και ώρα του deadline θα περάσει ένα script και θα μαζέψει όλα τα forks που έκαναν τα μέλη του CS100. Ότι,δήποτε αλλαγές θα τις αγνοήσουμε.
Γενικές οδηγίες για καλή χρήση του git:
- Κάντε συχνά commits. Το ιδανικό θα είναι να κάνετε ένα commit για κάθε step που ολοκληρώνετε στην άσκησή σας.
- Κάνετε commit μόνο τα source files (.c αρχεία) και όχι τα executables
- Το μήνυμα commit θα πρέπει να είναι περιγραφικό και να εξηγεί τι κάνετε
- Κάντε συχνά push ώστε σε περίπτωση που ο υπολογιστή κάνει crash να μην χάσετε την άσκηση σας.
Συχνές ερωτήσεις και απαντήσεις (FAQ)
- Μπορώ να υποβάλω εκπρόθεσμες ασκήσεις;
Όχι, οι ασκήσεις μπορούν να υποβάλλονται μόνο μέσα στα καθορισμένα χρονικά όρια. - Μπορώ να υποβάλω ξανά μία άσκηση;
Μπορείτε να υποβάλλετε την άσκηση όσες φορές θέλετε (πάντα μέσα στα καθορισμένα χρονικά όρια). Στο σύστημα αποθηκεύονται όλες οι υποβολές με τη σχετική αρίθμηση.