Αυτός ο οδηγός παρέχει μια βασική επισκόπηση για την εφαρμογή μιας ενημερωμένης έκδοσης κώδικα σε ένα πρόγραμμα ή ένα αρχείο.
Η εντολή που χρησιμοποιείται για την εφαρμογή των επιδιορθώσεων είναι η εντολή patch, αλλά για να εφαρμοστεί ένα έμπλαστρο, η εντολή diff πρέπει επίσης να χρησιμοποιηθεί για την παροχή των διαφορών που πρέπει να διορθωθούν.
Γιατί θα δημιουργούσατε μια ενημερωμένη έκδοση κώδικα
Φανταστείτε ότι είχατε ένα αρχείο HTML ως εξής:
head>
Καλωσορίσατε στο MySite h1>
body>
html>
Η παραπάνω πηγή όταν φορτώνεται σε ένα πρόγραμμα περιήγησης ιστού θα εμφανίζει τις λέξεις "Καλώς ήρθατε στο MySite".
Είναι συνηθισμένο όταν προγραμματίζετε να υπάρχουν πολλαπλές εκδόσεις του ίδιου αρχείου. Για παράδειγμα, θα υπήρχε μια έκδοση που είναι η τρέχουσα ζωντανή έκδοση, θα υπήρχε μια άλλη έκδοση στον κλάδο ανάπτυξης που μπορεί να περιέχει πολλαπλές αλλαγές, τέλος μπορεί να υπάρχει άλλη έκδοση σε ένα κλάδο έκδοσης.
Ο κλάδος έκδοσης θα είναι η έκδοση που χρησιμοποιείται από πραγματικούς χρήστες (δηλαδή σε αυτή την περίπτωση οι επισκέπτες στην ιστοσελίδα MySite). Ας πούμε ότι το MySite είναι στην έκδοση 1.0. Μετά από μια φάση ανάπτυξης θα δημιουργήσετε ένα κλάδο έκδοσης που θα ήταν στην περίπτωση αυτή 1.1. Ο κλάδος ανάπτυξης θα μπορούσε να είναι μπροστά από τον κλάδο της έκδοσης επειδή μπορεί να περιέχει αλλαγές που δεν πρόκειται να κυκλοφορήσουν στην έκδοση 1,2 αλλά θα είναι για την έκδοση 1.1.
Φανταστείτε ότι υπάρχει ένα σφάλμα στο οποίο το MySite θα πρέπει να ονομάζεται YourSite. Θα μπορούσατε να πάτε σε κάθε υποκατάστημα με τη σειρά του και να κάνετε αλλαγές στην ζωντανή έκδοση, την έκδοση ανάπτυξης και απελευθέρωση έκδοση σας θα μπορούσε να κάνει την αλλαγή ως hot fix σε ζωντανό και στη συνέχεια να εφαρμόσει το patch στην ανάπτυξη και την κυκλοφορία κλαδιά.
Ένα παράδειγμα εργασίας
Δημιουργήστε ένα αρχείο που ονομάζεται myfile.html με τον ακόλουθο κώδικα:
head>
Καλωσορίσατε στο MySite h1>
Αυτό είναι ένα επεξεργασμένο παράδειγμα κώδικα πηγαίου κώδικα. p>
body>
html>
Δημιουργήστε ένα άλλο αρχείο που ονομάζεται myfile_v2.html με τον ακόλουθο κώδικα:
head>
Καλώς ορίσατε στο YourSite h1>
Αυτό είναι ένα επεξεργασμένο παράδειγμα κώδικα πηγαίου κώδικα. p>
body>
html>
Το πρώτο αρχείο είναι η αρχική ιστοσελίδα με την επικεφαλίδα "Καλώς ήλθατε στο MySite". Το δεύτερο αρχείο είναι το ίδιο με το πρώτο αρχείο εκτός από το MyFile που έχει μετονομαστεί στο YourFile στο κείμενο.
Πώς να δημιουργήσετε το αρχείο Diff
Για να δημιουργήσετε μια ενημερωμένη έκδοση κώδικα, πρέπει να επιλύσουμε τις διαφορές μεταξύ του myfile.html και του myfile_v2.html.
Μπορούμε να το κάνουμε αυτό με την εντολή diff ως εξής:
diff -u myfile.html myfile_v2.html> myfile.patch
Μπορείτε να ανοίξετε το αρχείο myfile.patch στον επεξεργαστή nano ως εξής, για να το δείτε:
nano myfile.patch
Οι γραμμές που παραμένουν αμετάβλητες εμφανίζονται με μπλε χρώμα. Οι γραμμές που έχουν αφαιρεθεί εμφανίζονται με κόκκινο χρώμα και οι γραμμές που έχουν προστεθεί εμφανίζονται με πράσινο χρώμα.
Πώς να εφαρμόσετε την ενημερωμένη έκδοση κώδικα χρησιμοποιώντας την εντολή διανυσματικής εγκατάστασης
Για να εφαρμόσετε την ενημερωμένη έκδοση κώδικα στο myfile.html χρησιμοποιήστε την ακόλουθη εντολή:
patch Αυτό θα εφαρμόσει τις αλλαγές που δημιουργήθηκαν χρησιμοποιώντας την εντολή diff στο αρχικό αρχείο myfile.html. Αν θέλετε να επαναφέρετε την ενημερωμένη έκδοση κώδικα έτσι ώστε το myfile.html να επανέρχεται στον τρόπο με τον οποίο χρησιμοποιήθηκε αρχικά η ακόλουθη εντολή: patch-R Η εντολή patch μπορεί να χρησιμοποιηθεί για την εφαρμογή επιδιορθώσεων σε ολόκληρη τη δομή καταλόγου. Υπάρχουν πολύ καλύτερα εργαλεία από την εντολή patch για τη δημιουργία μπαλών και την εξασφάλιση καλού ελέγχου πηγής. Υπάρχει ένας λόγος που τόσες αναπτυξιακές εργασίες χρησιμοποιούν το GIT για τον έλεγχο των πηγών. Το GIT διευκολύνει τη δημιουργία μιας σταθερής στρατηγικής διακλάδωσης. Η εντολή patch είναι εντάξει για την εφαρμογή διαφορών σε ένα script bash ή κάτι απλό, αλλά θα μπορούσατε εύκολα να δημιουργήσετε ένα αντίγραφο ασφαλείας των αρχείων που θέλετε να διορθώσετε και απλά να αντιγράψετε τα νέα αρχεία στον ίδιο χώρο. Για περισσότερες πληροφορίες, χρησιμοποιήστε την εντολή man: άνθρωπος patch Πώς να επαναφέρετε μια ενημερωμένη έκδοση κώδικα
Περίληψη