Τι είναι αυτό το εργαλείο;
Ένα εργαλείο diff (διαφοράς) συγκρίνει δύο κείμενα και δείχνει το ελάχιστο σύνολο αλλαγών που μετατρέπει το ένα στο άλλο. Έτσι εμφανίζουν τις αλλαγές κώδικα τα συστήματα ελέγχου εκδόσεων όπως το Git, και είναι εξίσου χρήσιμο για τη σύγκριση αρχείων ρυθμίσεων, συμβολαίων, άρθρων ή οποιωνδήποτε δύο εκδόσεων οτιδήποτε.
Αυτό το εργαλείο συγκρίνει γραμμή προς γραμμή χρησιμοποιώντας την ίδια οικογένεια αλγορίθμων (μεγαλύτερη κοινή υπακολουθία) με τα κλασικά εργαλεία diff, ώστε η έξοδος να διαβάζεται όπως ένα γνωστό code review: + για προστιθέμενες γραμμές, − για αφαιρούμενες γραμμές.
Γιατί να το χρησιμοποιήσετε;
- Δείτε τι πραγματικά άλλαξε μεταξύ δύο εκδόσεων αντί να τις συγκρίνετε με το μάτι.
- Γνώριμη έξοδος στυλ git: πράσινες προσθήκες, κόκκινες διαγραφές, γραμμές πλαισίου ανάμεσα.
- Συνοπτική μέτρηση προστιθέμενων και αφαιρούμενων γραμμών με μια ματιά.
- Λειτουργεί με οποιοδήποτε κείμενο — κώδικα, ρυθμίσεις, έγγραφα, λίστες.
- Ιδιωτικό: και τα δύο κείμενα παραμένουν στον browser σας, τίποτα δεν μεταφορτώνεται.
Πώς χρησιμοποιείται
- Επικολλήστε το αρχικό κείμενο στο αριστερό πλαίσιο.
- Επικολλήστε τη μεταβαλλόμενη έκδοση στο δεξί πλαίσιο.
- Κάντε κλικ στο "Σύγκριση".
- Διαβάστε το αποτέλεσμα: οι πράσινες γραμμές προστέθηκαν, οι κόκκινες αφαιρέθηκαν, οι απλές γραμμές είναι αμετάβλητες.
Παράδειγμα
Είσοδος
Αρχικό:
line one
line two
line three
Τροποποιημένο:
line one
line 2
line threeΈξοδος
line one
− line two
+ line 2
line threeΗ μεσαία γραμμή άλλαξε, κάτι που το diff δείχνει ως αφαίρεση της παλιάς γραμμής και προσθήκη της νέας.
Συνηθισμένες περιπτώσεις χρήσης
- Έλεγχος παραγράφου γραμμένης εκ νέου από AI: επικολλήστε το αρχικό και την έκδοση του AI για να δείτε ακριβώς ποιες προτάσεις άλλαξαν, αντί να ξαναδιαβάσετε τα πάντα για να εντοπίσετε τις επεξεργασίες.
- Σύγκριση δύο προσχεδίων συμβολαίου: οι νομικές διορθώσεις είναι συχνά πιο εύκολο να ελεγχθούν ως diff γραμμών παρά ως παρακολούθηση αλλαγών όταν το έγγραφο έχει επαναμορφοποιηθεί μεταξύ εκδόσεων.
- Έλεγχος αρχείου ρυθμίσεων μετά από deploy: επικολλήστε το πριν/μετά ενός αρχείου .env ή YAML για να επιβεβαιώσετε ότι άλλαξαν μόνο οι επιθυμητές γραμμές.
- Σύγκριση αναθεωρήσεων μεταφρασμένου κειμένου: δείτε ποιες γραμμές άγγιξε πραγματικά ένας μεταφραστής ή editor μεταξύ προσχεδίων.
Περιορισμοί που πρέπει να γνωρίζετε
Αυτό είναι diff σε επίπεδο γραμμής, όχι σε επίπεδο λέξης — αν μετακινήσετε μια παράγραφο από την αρχή ενός εγγράφου στο τέλος χωρίς να αλλάξετε το κείμενό της, εμφανίζεται ως πλήρης διαγραφή συν πλήρης προσθήκη, όχι ως σημείωση "μετακινήθηκε". Για πεζό κείμενο με πολλές παραγράφους όπου αλλάζουν μόνο λίγες λέξεις ανά πρόταση, ένα εργαλείο diff σε επίπεδο λέξης θα επισήμαινε λιγότερο κείμενο, αλλά το diff σε επίπεδο γραμμής είναι το πρότυπο για κώδικα, ρυθμίσεις και δομημένα έγγραφα και είναι αυτό στο οποίο εστιάζει το εργαλείο.
Πώς λειτουργεί ο αλγόριθμος σύγκρισης
Το εργαλείο βρίσκει τη μεγαλύτερη κοινή υπακολουθία (LCS) μεταξύ των δύο κειμένων — το μεγαλύτερο σύνολο γραμμών που εμφανίζονται με την ίδια σχετική σειρά και στις δύο εκδόσεις, ακόμα κι αν άλλες γραμμές εισήχθησαν ή αφαιρέθηκαν ανάμεσά τους. Οτιδήποτε βρίσκεται σε αυτή την κοινή υπακολουθία εμφανίζεται ως αμετάβλητο πλαίσιο αναφοράς· οτιδήποτε άλλο ταξινομείται είτε ως αφαιρεθέν (υπάρχει μόνο στο αρχικό) είτε ως προστεθέν (υπάρχει μόνο στη νέα έκδοση). Αυτός είναι ο ίδιος βασικός αλγόριθμος πίσω από το εργαλείο diff του Unix και τη σύγκριση γραμμή προς γραμμή του Git, γι' αυτό η μορφή εξόδου θα σας φανεί αμέσως γνώριμη αν έχετε κάνει ποτέ review σε pull request.
Μια πρακτική συνέπεια: αν μια γραμμή είναι διπλότυπη κάπου αλλού στο έγγραφο (το ίδιο ακριβώς κείμενο εμφανίζεται δύο φορές), ο αλγόριθμος την αντιστοιχίζει με όποια εμφάνιση κρατά το συνολικό diff μικρότερο — μερικές φορές παράγοντας μια ελαφρώς διαφορετική αντιστοίχιση από αυτή που θα περιμένατε διαισθητικά, αν και ο τελικός αριθμός προστιθέμενων/αφαιρούμενων γραμμών είναι πάντα ακριβής, ανεξάρτητα από το ποιο διπλότυπο αντιστοιχίστηκε σε ποιο.
Συχνές ερωτήσεις
Συγκρίνει λέξη προς λέξη ή γραμμή προς γραμμή;
Γραμμή προς γραμμή, όπως το git diff. Μια αλλαγμένη γραμμή εμφανίζεται ως μία αφαίρεση συν μία προσθήκη. Οι συγκρίσεις σε επίπεδο γραμμής είναι το πρότυπο για κώδικα και ρυθμίσεις και παραμένουν ευανάγνωστες για μεγάλα κείμενα.
Γιατί μια πολύ μικρή αλλαγή δείχνει ολόκληρη τη γραμμή ως αλλαγμένη;
Επειδή η μονάδα σύγκρισης είναι η γραμμή — οποιαδήποτε αλλαγή μέσα της επισημαίνει ολόκληρη τη γραμμή. Χωρίστε μεγάλες παραγράφους σε μικρότερες γραμμές αν χρειάζεστε πιο λεπτομερή ανάλυση.
Έχει σημασία το κενό διάστημα;
Ναι. Οι γραμμές πρέπει να ταιριάζουν ακριβώς, οπότε ένα κενό στο τέλος ή διαφορετική εσοχή κάνει τις γραμμές να θεωρούνται διαφορετικές. Αυτό είναι σκόπιμο — οι διαφορές κενών διαστημάτων είναι πραγματικές διαφορές σε κώδικα και ρυθμίσεις.
Υπάρχει όριο μεγέθους;
Δεν υπάρχει αυστηρό όριο, αλλά πολύ μεγάλα κείμενα (δεκάδες χιλιάδες γραμμές) μπορεί να χρειαστούν λίγο χρόνο, καθώς η σύγκριση εκτελείται τοπικά στη συσκευή σας.
Μεταφορτώνονται τα κείμενά μου για τη σύγκριση;
Όχι. Ο αλγόριθμος diff εκτελείται εξ ολοκλήρου στον browser σας με JavaScript. Και τα δύο κείμενα παραμένουν στη συσκευή σας — ασφαλές για συμβόλαια, εσωτερικά έγγραφα και κώδικα που δεν έχει κυκλοφορήσει.