Utilia

Σύγκριση κώδικα (Diff)

Συγκρίνετε δύο εκδόσεις κώδικα δίπλα-δίπλα ή ενιαία, με επισήμανση σύνταξης, αρίθμηση γραμμών, επιλογές κενών και unified diff για αντιγραφή ή λήψη.

Πώς να συγκρίνετε δύο κομμάτια κώδικα

  1. Επικολλήστε την παλιά έκδοση στο Αρχικός κώδικας και τη νέα στο Τροποποιημένος κώδικας.
  2. Επιλέξτε τη Γλώσσα ή αφήστε το Αυτόματος εντοπισμός: το εργαλείο μαντεύει από τον κώδικα και δείχνει την εντοπισμένη γλώσσα δίπλα στα στατιστικά.
  3. Διαλέξτε μια Προβολή: Δίπλα-δίπλα ή Ενιαία (unified).
  4. Ορίστε τις επιλογές που χρειάζεστε: Αγνόηση κενών και εσοχών, Αγνόηση πεζών/κεφαλαίων, Επισήμανση τροποποιημένων λέξεων και Μόνο οι αλλαγές (3 γραμμές περιβάλλοντος).
  5. Πατήστε Σύγκριση. Μετά την πρώτη σύγκριση, το αποτέλεσμα ακολουθεί τις αλλαγές σας καθώς πληκτρολογείτε.
  6. Πατήστε Αντιγραφή ως unified diff ή Λήψη .diff για να χρησιμοποιήσετε ξανά την αλλαγή ως patch.

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

Ανάγνωση του diff

Οι γραμμές που αφαιρέθηκαν έχουν κόκκινη απόχρωση και ανήκουν στο πρωτότυπο· οι γραμμές που προστέθηκαν έχουν πράσινη απόχρωση και ανήκουν στη νέα έκδοση. Κάθε γραμμή διατηρεί τον αριθμό που έχει στο δικό της αρχείο, ώστε να μεταβείτε κατευθείαν σε αυτήν στον επεξεργαστή σας.

  • Η προβολή Δίπλα-δίπλα βάζει τα δύο αρχεία σε δύο αριθμημένες στήλες. Μια τροποποιημένη γραμμή βρίσκεται δίπλα στη νέα της εκδοχή. Με το Επισήμανση τροποποιημένων λέξεων, σημειώνονται οι λέξεις που άλλαξαν μέσα στη γραμμή· χωρίς αυτό, και οι δύο γραμμές κρατούν πλήρως τα χρώματα σύνταξης.
  • Η Ενιαία (unified) προβολή δείχνει μία στήλη, όπως σε μια αναθεώρηση κώδικα: για κάθε τροποποιημένο τμήμα εμφανίζονται πρώτα οι γραμμές που αφαιρέθηκαν (−) και μετά οι γραμμές που προστέθηκαν (+), με τους παλιούς και τους νέους αριθμούς γραμμών.
  • Το Μόνο οι αλλαγές (3 γραμμές περιβάλλοντος) διπλώνει τα μεγάλα αμετάβλητα τμήματα σε μια ένδειξη «⋯ N αμετάβλητες γραμμές», κάνοντας τα μεγάλα αρχεία πολύ ευκολότερα στην αναθεώρηση.

Η γραμμή στατιστικών μετρά τις γραμμές που προστέθηκαν, αφαιρέθηκαν και έμειναν αμετάβλητες.

Επισήμανση σύνταξης

Η επισήμανση γίνεται στο πρόγραμμα περιήγησής σας με το highlight.js. Φορτώνεται μόνο η γραμματική της επιλεγμένης γλώσσας, όταν κάνετε την πρώτη σύγκριση, ώστε η σελίδα να μένει ελαφριά. Οι γλώσσες που υποστηρίζονται περιλαμβάνουν JavaScript, TypeScript, Python, Java, C#, C / C++, Go, Rust, PHP, Ruby, CSS, HTML / XML, JSON, YAML, SQL, Bash / Shell και Markdown. Ο αυτόματος εντοπισμός χρησιμοποιεί απλές ενδείξεις (λέξεις-κλειδιά, αγκύλες, ανάλυση JSON)· αν μαντέψει λάθος, διαλέξτε μόνοι σας τη γλώσσα ή το Απλό κείμενο.

Κενά, εσοχές και αλλαγές γραμμής

Το Αγνόηση κενών και εσοχών συγκρίνει τις γραμμές αφού αφαιρέσει τα κενά στα άκρα και συμπτύξει διαδοχικά κενά και tab, οπότε ένα αρχείο που άλλαξε εσοχές από 2 σε 4 κενά ή από tab σε κενά δεν δείχνει καμία διαφορά. Οι αλλαγές γραμμής των Windows (CRLF) και του Unix (LF) κανονικοποιούνται πριν από τη σύγκριση, επομένως ένα αρχείο που άλλαξε μόνο τις αλλαγές γραμμής αναφέρεται ως πανομοιότυπο. Προσέξτε ότι τα κενά μπορεί να έχουν σημασία στην Python, στο YAML και στα Makefile: απενεργοποιήστε την επιλογή όταν οι εσοχές είναι σημαντικές.

Η μορφή unified diff

Το patch που εξάγεται χρησιμοποιεί την τυπική unified μορφή που διαβάζουν τα git apply, patch και τα εργαλεία αναθεώρησης κώδικα: μια κεφαλίδα με τα ονόματα των δύο αρχείων και μετά τμήματα (hunks) που ξεκινούν με @@ -a,b +c,d @@ και τρεις γραμμές περιβάλλοντος γύρω από κάθε αλλαγή. Τα αρχεία ονομάζονται original και changed, με επέκταση ανάλογη της γλώσσας.

Συχνές ερωτήσεις

Ο κώδικάς μου μεταφορτώνεται σε διακομιστή;

Όχι. Η σύγκριση και η επισήμανση εκτελούνται και οι δύο τοπικά στο πρόγραμμα περιήγησής σας· ο κώδικας δεν φεύγει ποτέ από τη συσκευή σας.

Σε τι διαφέρει από τον έλεγχο διαφορών κειμένου;

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

Γιατί δύο γραμμές εμφανίζονται ως αλλαγμένες ενώ μοιάζουν ίδιες;

Μάλλον διαφέρουν σε αόρατους χαρακτήρες: κενά στο τέλος, tab αντί για κενά ή ένα μη διασπώμενο κενό. Επιλέξτε το Αγνόηση κενών και εσοχών για να το επιβεβαιώσετε.

Μπορώ να εφαρμόσω το patch που κατέβασα με το Git;

Ναι. Αποθηκεύστε το και εκτελέστε patch original.js < changes.diff, ή προσαρμόστε τα ονόματα αρχείων στην κεφαλίδα και χρησιμοποιήστε το git apply.

Πόσο μεγάλα μπορούν να είναι τα αποσπάσματα;

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