Bu Araç Nedir?
Bir diff (fark) aracı, iki metni karşılaştırır ve birini diğerine dönüştüren en az sayıda değişikliği gösterir. Git gibi sürüm kontrol sistemlerinin kod değişikliklerini bu şekilde görüntülemesi gibi, bu araç yapılandırma dosyalarını, sözleşmeleri, makaleleri veya herhangi bir şeyin iki sürümünü karşılaştırmak için de aynı derecede kullanışlıdır.
Bu araç, klasik fark alma yardımcı programlarıyla aynı temel algoritma ailesini (en uzun ortak alt dizi) kullanarak satır satır karşılaştırma yapar; bu nedenle çıktı, tanıdık bir kod incelemesi gibi okunur: eklenen satırlar için +, kaldırılan satırlar için − işareti kullanılır.
Neden Kullanmalısınız?
- İki sürüm arasında gözle karşılaştırmak yerine, gerçekte nelerin değiştiğine bakın.
- Alışılmış git tarzı çıktı: eklenenler yeşil, silinenler kırmızı, aralarında ise bağlam satırları.
- Eklenen ve kaldırılan satırların özet sayısı bir bakışta görülebilir.
- Her türlü metinle çalışır — kod, yapılandırma dosyaları, belgeler, listeler.
- Özel: Her iki metin de tarayıcınızda kalır, hiçbir şey yüklenmez.
Nasıl Kullanılır
- Orijinal metni soldaki kutuya yapıştırın.
- Değiştirilmiş sürümü sağdaki kutuya yapıştırın.
- "Karşılaştır" düğmesine tıklayın.
- Sonucu inceleyin: yeşil çizgiler eklenmiş, kırmızı çizgiler kaldırılmış, düz çizgilerde ise herhangi bir değişiklik yapılmamıştır.
Örnek
Giriş
Original:
line one
line two
line three
Changed:
line one
line 2
line threeÇıkış
line one
− line two
+ line 2
line threeOrtadaki satır değiştirildi; bu değişiklik, fark dosyasında eski satırın kaldırılması ve yeni satırın eklenmesi olarak gösteriliyor.
Yaygın kullanım örnekleri
- AI tarafından yeniden yazılmış bir paragrafı gözden geçirme: Düzenlemeleri tespit etmek için metnin tamamını yeniden okumak yerine, orijinal metni ve AI’nın hazırladığı versiyonu yapıştırarak tam olarak hangi cümlelerin değiştiğini görün.
- İki sözleşme taslağının karşılaştırılması: Belge, sürümler arasında yeniden biçimlendirildiğinde, hukuki düzeltmelerin “satır farkı” olarak incelenmesi, “değişiklik izleme” özelliğiyle incelenmesinden genellikle daha kolaydır.
- Dağıtımdan sonra bir yapılandırma dosyasını kontrol etme: .env veya YAML dosyasının dağıtım öncesi ve sonrası hallerini buraya yapıştırarak, yalnızca istenen satırların değiştiğini doğrulayın.
- Çevrilmiş metinlerdeki düzeltmeleri karşılaştırma: Taslaklar arasında çevirmenin veya editörün hangi satırlarda değişiklik yaptığını görün.
Bilmeniz gereken sınırlamalar
Bu, kelime düzeyinde değil satır düzeyinde bir karşılaştırmadır — bir paragrafı metnini değiştirmeden belgenin başından sonuna taşırsanız, bu durum “taşındı” notu olarak değil, tam bir silme ve tam bir ekleme olarak gösterilir. Cümle başına yalnızca birkaç kelimenin değiştiği, paragraf ağırlıklı metinlerde kelime düzeyinde bir fark bulma aracı daha az metni vurgulayacaktır; ancak satır düzeyinde karşılaştırma, kodlar, yapılandırma dosyaları ve yapılandırılmış belgeler için standarttır ve bu araç da buna odaklanmaktadır.
Karşılaştırma algoritması nasıl çalışır?
Bu araç, iki metin arasındaki en uzun ortak alt diziyi (LCS) bulur — aralarına başka satırlar eklenmiş veya çıkarılmış olsa bile, her iki sürümde de aynı göreceli sırayla yer alan en büyük satır kümesi. Bu ortak alt dizideki her şey, değişmemiş içerik olarak gösterilir; geri kalan her şey ise ya kaldırılmış (sadece orijinalde mevcut) ya da eklenmiş (sadece yeni sürümde mevcut) olarak sınıflandırılır. Bu, Unix diff yardımcı programı ve Git'in satır satır karşılaştırmasının temelinde yatan algoritmanın aynısıdır; bu nedenle, daha önce bir çekme isteğini incelemişseniz, çıktı biçimi size hemen tanıdık gelecektir.
Bunun pratikteki bir sonucu şudur: Bir satır belgenin başka bir yerinde tekrarlanıyorsa (aynı metin tam olarak iki kez geçiyorsa), algoritma bu satırı, genel farkı en küçük tutan tekrarlama ile eşleştirir — bu durum, zaman zaman sezgisel olarak beklediğinizden biraz farklı bir eşleştirme ortaya çıkarabilir; ancak hangi tekrarlanan satırın hangisiyle eşleştirildiğine bakılmaksızın, nihai eklenmiş/çıkarılmış satır sayıları her zaman doğrudur.
Sıkça Sorulan Sorular
Kelime kelime mi yoksa satır satır mı karşılaştırıyor?
Satır satır, tıpkı git diff gibi. Değiştirilen bir satır, bir silme ve bir ekleme olarak gösterilir. Satır düzeyinde karşılaştırmalar, kod ve yapılandırma dosyaları için standarttır ve uzun metinlerde de okunabilirliğini korur.
Neden ufak bir değişiklik, tüm satırı değiştirilmiş olarak gösteriyor?
Karşılaştırma birimi satır olduğu için, satır içindeki herhangi bir değişiklik tüm satırı etkiler. Daha ince bir ayrıntı düzeyi gerekiyorsa, uzun paragrafları daha kısa satırlara bölün.
Boşluklar önemli mi?
Evet. Satırlar tam olarak eşleşmelidir; bu nedenle, satır sonundaki boşluk ya da farklı girintiler, satırların farklı sayılmasına neden olur. Bu kasıtlıdır — boşluk farklılıkları, kod ve yapılandırmalarda gerçek farklılıklardır.
Boyut sınırı var mı?
Kesin bir sınır yoktur, ancak karşılaştırma işlemi cihazınızda yerel olarak gerçekleştirildiği için çok büyük metinler (on binlerce satır) biraz zaman alabilir.
Metinlerim karşılaştırma amacıyla yüklendi mi?
Hayır. Karşılaştırma algoritması tamamen tarayıcınızda JavaScript ile çalışır. Her iki metin de cihazınızda kalır — bu da sözleşmeler, şirket içi belgeler ve henüz yayınlanmamış kodlar için güvenlidir.