Πώς να εφαρμόσετε μια ενημέρωση κώδικα σε ένα αρχείο χρησιμοποιώντας Linux
Μια ενημέρωση κώδικα είναι ένα τμήμα κώδικα υπολογιστή που εισάγει ή τροποποιεί ένα υπάρχον σύνολο κωδικών. Οι ενημερώσεις κώδικα χρησιμοποιούνται συνήθως κατά τη διαδικασία προγραμματισμού για να αντικαταστήσουν τις αλλαγές στον πηγαίο κώδικα. Linux περιλαμβάνει ένα patchutility για τον εξορθολογισμό αυτής της διαδικασίας.
Η διαδικασία επιδιόρθωσης χρησιμοποιείται συνήθως σε επίσημα συστήματα ελέγχου αλλαγών, όπου ισχύουν οι βέλτιστες επαγγελματικές πρακτικές για την ποιότητα και τη δοκιμή κώδικα. Η επιδιόρθωση χρησιμοποιείται λιγότερο συχνά σε έργα χόμπι όπου ο πηγαίος κώδικας αλλάζει κατά την κρίση του προγραμματιστή.
Η διαδικασία επιδιόρθωσης
Σε μια τυπική περίπτωση χρήσης, έχετε μια πρωτότυπη έκδοση πηγαίος κώδικας και μια τροποποιημένη έκδοση του. Το πρωτότυπο έχει εγκριθεί επίσημα και οποιεσδήποτε αλλαγές σε αυτό πρέπει να ακολουθούν μια καλά καθορισμένη διαδικασία. Αυτές οι αλλαγές συμβαίνουν σε ένα αρχείο ενημέρωσης κώδικα.
Χρησιμοποιώντας ένα εργαλείο που ονομάζεται διαφ, μειώστε τις διαφορές μεταξύ των δύο εκδόσεων αρχείων σε ένα μόνο αρχείο που παραθέτει τις συγκεκριμένες αλλαγές που κάνει το δεύτερο στο πρώτο.
Στη συνέχεια, το αρχείο διαφοράς που προκύπτει τροποποιεί τον αρχικό κώδικα μέσω της χρήσης του κηλίδα εργαλείο.
Εφαρμογή επιδιορθώσεων: Ένα παράδειγμα
Σκεφτείτε ένα τυπικό πρόγραμμα "Hello World". Η πηγή κώδικας στο C μοιάζει με αυτό:
#περιλαμβάνω
int main()
{
printf("Γεια σου κόσμο!");
}
Για να αλλάξετε το εκτυπωμένο μήνυμα σε Γεια σου σύμπαν!, αναπτύξτε μια εναλλακτική έκδοση του κώδικα, ως εξής:
#περιλαμβάνω
int main()
{
printf("Γεια σου σύμπαν!");
}
Δημιουργήστε ένα αρχείο ενημέρωσης κώδικα χρησιμοποιώντας το διαφ χρησιμότητα:
diff -u helloworld.c helloworld2.c > file.patch.
Στη συνέχεια, θα δείτε ότι το αρχείο ενημέρωσης κώδικα μοιάζει με αυτό:

Το αρχείο ενημέρωσης κώδικα παραθέτει κάθε συγκριτικό αρχείο. Προσφέρει σύμβολα, και +++, προσδιορίζοντας κάθε όνομα αρχείου με την ημερομηνία τελευταίας αναθεώρησής του. Στη συνέχεια συνοψίζει τη θέση των αλλαγών μεταξύ ενός ζεύγους @@ σύμβολα. Τέλος, παραθέτει τον πηγαίο κώδικα, επισημαίνοντας τις διαφορετικές γραμμές χρησιμοποιώντας τα σημειωμένα σύμβολα συν-και-πλην. Γενικά, το σύμβολο μείον υποδεικνύει ότι η γραμμή έχει αφαιρεθεί από το επιδιορθωμένο αρχείο και το σύμβολο συν αντιπροσωπεύει μια αντικατάσταση, εάν η γραμμή θα αντικατασταθεί.
Για να εφαρμόσετε το αρχείο ενημέρωσης κώδικα στο αρχικό αρχείο, εκτελέστε:
patch < file.patch.
Σε εκείνο το σημείο, το πρώτο αρχείο αλλάζει για να ταιριάζει με το δεύτερο.
Για να αναιρέσετε την ενημερωμένη έκδοση κώδικα, χρησιμοποιήστε το -Ρ επιλογή:
patch -R < file.patch.
Θεωρήσεις
Αυτή η προσέγγιση για την επιδιόρθωση του πηγαίου κώδικα είναι λιγότερο συνηθισμένη από ό, τι στο παρελθόν. Τα σύγχρονα συστήματα ελέγχου πηγών όπως το Git και το Subversion διαχειρίζονται αυτόματα τις εκδόσεις με την πάροδο του χρόνου, συμπεριλαμβανομένων των διαφόρων κλάδους ανάπτυξης και δοκιμών, έτσι ώστε ο χειροκίνητος έλεγχος διαφορών και η επιδιόρθωση αρχείων να διαχειρίζονται πλέον από τον έλεγχο έκδοσης εργαλείο. Εάν πρέπει να ακολουθήσετε μια επίσημη δομή κωδικοποίησης ή να συμμορφωθείτε με τα πρότυπα κωδικοποίησης ομάδας, χρησιμοποιείτε ένα εργαλείο όπως το Git.
Ωστόσο, μια αποτελεσματική περίπτωση χρήσης για το διαφ και κηλίδα σύστημα σε ένα τοπικό μηχάνημα σχετίζεται με αλλαγές σε έναν ολόκληρο κατάλογο αρχείων. Για παράδειγμα, εάν δημιουργήσατε έναν ιστότοπο, αλλά χρειάζεται να κάνετε μια αλλαγή μόνο σε μία γραμμή—όπως μια γραμμή πνευματικών δικαιωμάτων—τότε αυτό το σύστημα ενημερώνει όλες αυτές τις σελίδες ταυτόχρονα.
Συμβουλευτείτε τις man-σελίδες για κηλίδα για πρόσθετο πλαίσιο.