Chapters ▾ 2nd Edition

A2.1 Appendix B: Ενσωμάτωση του Git στις εφαρμογές μας - Γραμμή εντολών Git

Εάν η εφαρμογή μας απευθύνεται σε προγραμματιστές, οι πιθανότητες ότι θα επωφεληθούν από την ενοποίηση με τον έλεγχο εκδόσεων του πηγαίου κώδικα είναι πολλές. Ακόμη και οι εφαρμογές που δεν αφορούν προγραμματιστές, όπως επεξεργασία εγγράφων, θα μπορούσαν ενδεχομένως να επωφεληθούν από τις λειτουργίες ελέγχου εκδόσεων και το μοντέλο του Git λειτουργεί πολύ καλά για πολλά διαφορετικά σενάρια.

Εάν χρειάζεται να ενσωματώσουμε το Git με την εφαρμογή μας, έχουμε ουσιαστικά δύο επιλογές: α) εκκίνηση κελύφους και να καλέσουμε το git πρόγραμμα γραμμή-εντολής, ή να ενσωματώσουμε μια Git βιβλιοθήκη μέσα σστην εφαρμογή μας. Εδώ θα καλύψουμε την ενσωμάτωση γραμμή-εντολής και μερικές από τις πιο γνωστές ενσωματώσιμες βιβλιοθήκες του Git.

Γραμμή εντολών Git

Μια επιλογή είναι να εκκινήσει μια διαδικασία κελύφους και να χρησιμοποιηθεί η γραμμή εντολών του Git για να κάνει τη δουλειά. Αυτό έχει το πλεονέκτημα ότι είναι σύμφωνο με τον κανόνα και υποστηρίζονται όλες οι λειτουργίες του Git. Αυτό συμβαίνει επίσης να είναι αρκετά εύκολο, καθώς τα περισσότερα περιβάλλοντα εκτέλεσης (runtime environments) έχουν μία σχετικά απλή δυνατότητα για την επίκληση μιας διαδικασίας με ορίσματα γραμμής εντολών. Ωστόσο, αυτή η προσέγγιση έχει κάποια μειονεκτήματα.

Το ένα είναι ότι όλη η έξοδος είναι σε απλό κείμενο. Αυτό σημαίνει ότι θα πρέπει να αναλύσουμε την περιστασιακά μεταβαλλόμενη μορφή εξόδου του Git για να διαβάσουμε πληροφορίες σχετικά με την πρόοδο και τα αποτελέσματα, κάτι που μπορεί να είναι μη αποτελεσματικό και επιρρεπές σε σφάλματα.

Ένα άλλο είναι η έλλειψη ανάκτησης σφαλμάτων. Εάν ένα αποθετήριο είναι παρεφθαρμένο κατά κάποιο τρόπο, ή ο χρήστης έχει μια μη-έγκυρη τιμή διαμόρφωσης, το Git απλά θα αρνηθεί να εκτελέσει πολλές λειτουργίες.

Ένα ακόμα είναι η διαχείριση της διαδικασίας. Το Git απαιτεί να διατηρούμε ένα περιβάλλον κελύφους ως ξεχωριστή διαδικασία, κάτι που μπορεί να προσθέσει ανεπιθύμητη πολυπλοκότητα. Η προσπάθεια συντονισμού πολλών από αυτές τις διεργασίες (ειδικά όταν δυνητικά έχουμε πρόσβαση στο ίδιο αποθετήριο από διάφορες διεργασίες) μπορεί να είναι μια μεγάλη πρόκληση.