Metin Diff
İki metin bloğunu karşılaştır ve satır satır eklemeleri, silmeleri ve değişmeyen bağlamı gör. Yan yana veya birleşik görünüm.
Bu ne işe yarar?
Bir metin parçasının iki sürümünü — paragraf, config dosyası, SQL sorgusu, liste — karşılaştırma ve tam olarak hangi satırların eklendiğini, silindiğini veya bırakıldığını görme. git diff'in elinin altında olmadığında veya metin sürüm kontrolünde değilken bile. Çıktı, kod incelemesinde göreceğin aynı satır seviyesi diff'tir: eklemeler için yeşil, çıkarmalar için kırmızı, değişmeyen bağlam için düz.
Ne zaman kullanılır
- "Aynı görünen" iki e-posta, sözleşme veya yapıştırılmış blob arasındaki farkı tespit etme.
- İki ortamdaki (staging vs prod) config dosyalarını veya ortam değişkenlerini karşılaştırma.
- Word/Docs'ta başka biri tarafından düzenlenen bir metin parçasına yapılan değişiklikleri inceleme.
- İki sorgu sonucunu, log snippet'ini veya JSON blob'unu diff'leme (önce kanonikleştirmek için JSON Formatter kullan).
- Commit etmeden önce bir search-and-replace'in hızlı sanity check'i.
Yan yana - birleşik
- Yan yana — küçük değişiklikleri satır satır taramak için daha kolay; orijinal solda, yeni sürüm sağda.
- Birleşik —
git diffçıktısına daha yakın; paylaşma veya yazdırma için daha iyi, değişiklikler seyrek olduğunda takip etmesi daha kolay.
Sık yapılan hatalar
- Bu bir satır diff'idir, kelime diff'i değildir. Uzun bir satırın ortasında değişen tek karakter tüm satırı değişmiş olarak işaretler. Paragrafların düzyazı seviyesinde diff'i için kelimelere tokenize eden bir araç istemen gerekebilir.
- "Boşluğu yok say" yalnızca karşılaştırmayı etkiler, gösterimi değil. Yalnızca sondaki boşluk veya girinti farklı olan satırlar değişmeyen sütuna çöker, ancak orijinal boşluk hâlâ gösterilir.
- "Büyük/küçük harfi yok say" benzer şekilde. "TODO" ve "todo" eşit karşılaştırır, ama orijinal case render edilir.
- Sıra önemlidir. İki satırı takas edersen, diff her ikisini de "taşınan" çifti olarak değil, kaldırıldı-ve-yeniden-eklendi olarak gösterir. Taşıma tespiti yoktur.
- Büyük girdiler (10k+ satır) yavaş olabilir. LCS algoritması O(m·n)'dir — tipik dosyalar için iyidir, çok büyükler için ağırdır. Bir seferde küçük parçaları diff'le.
- Sondaki yeni satırlar satır olarak sayılır. Yalnızca yeni satırla bitip bitmediği konusunda farklı iki girdi sondaki bir ekleme veya çıkarma gösterir.