השוואת טקסטים (Diff Checker)
השוו שני טקסטים או קטעי קוד שורה אחר שורה. שורות שנוספו, הוסרו או השתנו מודגשות, עד לרמת המילים המדויקות שבהן יש הבדל.
רץ בדפדפן שלכםבלי הרשמהשום דבר לא מועלה
איך משתמשים בכלי השוואת טקסטים (Diff)
- הדביקו את הטקסט המקורי בתיבה הראשונה ואת הטקסט ששונה בתיבה השנייה, או פתחו שני קבצים.
- ההשוואה מתעדכנת תוך כדי הקלדה. בחרו תצוגת זה לצד זה או מאוחדת.
- סמנו התעלמות מרווחים, התעלמות מרישיות או התעלמות משורות ריקות כדי להסתיר רעש כמו הזחה מחדש.
- השתמשו בהסתרת שורות זהות כדי להתמקד בשינויים, עם שלוש שורות הקשר סביב כל אחד.
- לחצו על העתקה כ-patch או הורדת .diff כדי לקבל unified diff סטנדרטי שאפשר להחיל עם
git applyאוpatch.
איך כלי ההשוואה עובד
הכלי מפצל את שני הקלטים לשורות ומריץ את אלגוריתם ההבדלים של Myers, אותו אלגוריתם O(ND) שמשמש את git diff ואת diff של GNU. הוא מוצא את הרצף הקצר ביותר של הוספות ומחיקות שהופך את המקור לטקסט ששונה, כך שהתוצאה מציגה את מספר השורות המשתנות הקטן ביותר האפשרי. שורות זהות בהתחלה ובסוף מדולגות קודם, ולכן גם השוואה של קבצים עם אלפי שורות כמעט מיידית.
כששורה שהוסרה ושורה שנוספה נמצאות זו ליד זו, הן מוצמדות כשורה ששונתה ומושוות שוב מילה אחר מילה. המילים שבאמת השתנו מקבלות הדגשה חזקה יותר, כך שמשתנה ששמו שונה או מספר שנערך בולטים גם בתוך שורה ארוכה.
תצוגה זה לצד זה לעומת תצוגה מאוחדת
זה לצד זה מציגה את המקור בעמודה אחת ואת הגרסה החדשה בעמודה הסמוכה, עם מספרי שורות לשתיהן. זו התצוגה הנוחה ביותר לסקירת טקסט חופשי, קובצי תצורה ושינויי קוד קצרים. תצוגה מאוחדת משלבת שורות שהוסרו (-) ושורות שנוספו (+) בעמודה אחת, הפורמט שמשמש כלי code review וקובצי patch.
פורמט unified diff (patch)
ה-patch המיוצא עוקב אחר הפורמט של diff -u: כותרת ---/+++, ואחריה hunks שמתחילים ב-@@ -l,s +l,s @@, כאשר l הוא מספר השורה הראשונה ו-s מספר השורות של ה-hunk בכל קובץ. כל hunk כולל שלוש שורות הקשר שלא השתנו, כך שאפשר להחיל אותו עם patch -p0 או git apply גם אם שורות סמוכות זזו.
מתי להשתמש באפשרויות ההתעלמות
- התעלמות מרווחים מתייחסת לשורות כשוות אם הן שונות רק ברווחים או בטאבים. השתמשו בה אחרי הזחה מחדש של קוד או מעבר מטאבים לרווחים.
- התעלמות מרישיות שימושית ל-SQL, ל-HTML ולקובצי לוג, שבהם אותיות גדולות וקטנות לא משנות.
- התעלמות משורות ריקות מסתירה שורות שנוספו או הוסרו רק לצורך ריווח.