Diff

Ubuntu Türkiye Wiki sitesinden
18.55, 13 Ağustos 2010 tarihinde EsatYuce (mesaj | katkılar) tarafından oluşturulmuş 8273 numaralı sürüm (Sayfa oluşturdu, içeriği: 'Bilgisayar ile hesaplamada bir dosya karşılaştırma yardımcı programıdır ve iki dosya arasındaki farkları bulmaya yarar. Program metin dosyalarındaki her bir…')
(fark) ← Önceki sürüm | Güncel sürüm (fark) | Sonraki sürüm → (fark)
Gezinti kısmına atla Arama kısmına atla

Bilgisayar ile hesaplamada bir dosya karşılaştırma yardımcı programıdır ve iki dosya arasındaki farkları bulmaya yarar. Program metin dosyalarındaki her bir satırda yapılan değişiklikleri gösterir. Modern uygulamaları ikili (binary) dosyaları da destekler. Diff programının çıktısı diff ya da daha yaygın şekliyle -çıktıları patch adlı unix programı ile patch olarak uygulanabildiği için- patch olarak adlandırılır. Aynı zamanda diff bilgisayar dilinde dosya üzerindeki herhangi bir değişikliği hesaplama anlamında bir fiil olarak kullanılır.

Algoritma

Diff, en uzun altdizi problemlerini çözmek için kullanılır.

Bu örnekte iki dizi ögesi vardır:

       a b c d f g h j q z
       a b c d e f g i j k r x y z

burada aynı sıraya sahip özgün dizideki ifadenin en uzun dizi ögesini bulmak isteyelim. İlk dizideki bazı ögeleri silerek yeni bir dizi bulmak için ve ikinci dizide diğer ögeleri silerek bulalım. Ayrıca bu dizinin mümkün olduğunca uzun olmasını isteyelim. Bu durumda yeni dizi şöyle olur:

       a b c d f g j z

En uzun altdizinden sadece biraz farklı diff benzeri bir çıktı verir: eğer altdizideki bir öge bulunmazsa, faka tözgün dizide varsa, silinmelidir (aşağıdaki '–' işaretleri.) Eğer altdizinde bulunmazsa, fakat ikinci dizide varsa, oraya eklenmelidir ('+' işaretler.)

       e   h i   q   k r x y 
       +   - +   -   + + + +

İlgili maddeler

Kaynak

İngilizce Wikipedia diff maddesi