Synopsis
diffstat [options] [file-specifications]
Description
Bu program, diff çıktısını okur ve dosya başına ekleme (insertion), silme (deletion) ve değişikliklerin (modification) bir histogramını görüntüler. Diffstat, büyük ve karmaşık yama (patch) dosyalarını incelemek için oldukça yararlı bir programdır. Diff çıktısı içeren bir veya daha fazla girdi dosyasını okuyarak, atıfta bulunulan her dosya için değiştirilen toplam satır sayısının bir histogramını üretir.
Girdi dosya adı “.bz2”, “.gz”, “.lzma”, “.xz”, “.z” veya “.Z” ile bitiyorsa, diffstat sıkıştırılmamış veriyi ilgili programdan bir boru hattı (pipe) aracılığıyla okuyacaktır. Ayrıca standart girdi üzerinden borulanan (pipe edilen) dosyaların sıkıştırma türünü de tahmin edebilir.
Diffstat, diff'in en popüler çıktı türlerini tanır:
unified patch yardımcı programı tarafından tercih edilir.
context okunabilirlik açısından en iyisidir ancak çok kompakt değildir.
default pek işe yaramaz ancak üretilmesi kolaydır.
Diffstat, hangi dosyaların karşılaştırıldığını anlamak için diff tarafından çıktı olarak verilen satırları tespit eder ve ardından ilk sütundaki değişiklik türünü (ekleme, silme veya değişiklik) belirten işaretçileri sayar. Bunlar histogramda "+", "-" ve "!" karakterleri olarak gösterilir.
Komut satırında hiçbir dosya adı belirtilmemişse, diffstat farkları standart girdiden okur.
Options
-b: diff içindeki "Binary files XXX and YYY differ" (XXX ve YYY ikili dosyaları birbirinden farklıdır) ile eşleşen satırları yoksay.-c: çıktının her satırının önüne "#" ekleyerek kabuk betikleri için bir yorum satırı haline getir.-C: histogramı vurgulamak için SGR renk kaçış dizileri ekle.
-D destination farkların uygulanması sonucunda ortaya çıkan ve referans olarak gösterilebilecek dosyaları içeren bir dizin belirtir. diffstat, her dosyadaki toplam satır sayısını elde etmek için (adları -p seçeneği ile ayarladıktan sonra) ilgili dosyalardaki satırları sayacaktır.
Değiştirilen ve silinen satırlar çıkarıldıktan sonra kalan kısım "değişmemiş satırlar" (unchanged lines) olarak gösterilir.
-d: Hata ayıklama (debug) çıktısı çok miktarda bilgi yazdırır. Normalde derleme sırasında dahil edilir ancak bastırılabilir.
-e file standart hatayı file dosyasına yönlendirir.
-E: farkları ayrıştırmadan önce her satırdaki ANSI kaçış dizilerini ayıklar. Bu, diffstat'in colordiff ile birlikte kullanılmasına olanak tanır.
-f format histogramın biçimini belirtir.
0 ekleme (+), silme (-) veya değişikliklerin (!) her biri için yalnızca değeri ve tek bir histogram kodunu gösteren kısa çıktı (concise).
1 normal çıktı için,
2 histogramı noktalarla doldurmak için,
4 her bir değeri histogramla birlikte yazdırmak için.
Sıfır dışındaki herhangi bir değer bir histogram üretir. Noktalar ve bireysel değerler birleştirilebilir, örneğin -f6 her ikisini de verir.
-h: kullanım mesajını yazdırır ve çıkar.-k: raporda dosya adlarının birleştirilmesini (merging) bastırır.-K: sonuçta elde edilen dosya kümesinde bir eşleşme arayarak ve dosyanın eklenip eklenmediğini veya kaldırılıp kaldırılmadığını tahmin ederek "yalnızca" (only) dosyalarının açıklamasını iyileştirmeye çalışır.
diffstat yalnızca sonuçta elde edilen dosya kümesini tuttuğundan, bu seçenek şu anda -R ile birlikte çalışmamaktadır.
-l: yalnızca dosya adlarını listeler. Histogram oluşturulmaz.-m: değiştirilen satırların yaklaşık bir sayısını elde etmek için yama dosyasının her bir "parçasındaki" (chunk) ekleme/silme sayılarını birleştirir.
-n number dosya adları için kullanılacak minimum genişliği belirtir. Bunu belirtmezseniz, diffstat ortak ön ekleri ayıkladıktan sonraki en uzun dosya adının uzunluğunu kullanır.
-N number dosya adları için kullanılacak maksimum genişliği belirtir. Bu sınırdan daha uzun olan adlar soldan kesilir. Bunu belirtmezseniz, diffstat bir sonraki adımda -n seçeneğini kontrol eder.
-o file standart çıktıyı file dosyasına yönlendirir.
-p number ortak yol adlarını ayıklayan mantığı geçersiz kılarak patch "-p" seçeneğini simüle eder.
Bir -p seçeneği vermezseniz, diffstat farkları inceler ve yol adlarından ortak ön eki ayıklar. patch programının yaptığı şey bu değildir.
-q: boş diff'ler için "0 files changed" (0 dosya değiştirildi) mesajını bastırır.-r: code veri düzeltmeleriyle kırpmak yerine, histogramda gösterilen verilerin isteğe bağlı olarak yuvarlanmasını sağlar.
0 varsayılandır. Yuvarlama yapılmaz, ancak biriken hatalar sonraki sütunlara eklenir.
1 verileri yuvarlar.
2 verileri yuvarlar ve farklar varsa, bu farklar normalde sıfıra yuvarlanacak olsa bile histogramın bir şeyler görüntülemesini sağlamak için histogramı ayarlar.
-R: Yamanın, eski ve yeni dosyalar yer değiştirilerek oluşturulduğunu varsayar.-s: yalnızca özet satırını gösterir, örneğin ekleme ve silme sayısı.
-S source bu -D seçeneği gibidir, ancak orijinal dosyaların (farklar uygulanmadan önceki hali) bulunabileceği bir konumu belirtir.
-t: histogramı geçersiz kılar, her dosya için farklarda bulunan değiştirilen satır sayısına ilişkin virgülle ayrılmış değerler üretir: eklenen (inserted), silinen (deleted) ve değiştirilen (modified).
-S veya -D seçenekleri verilmişse, değişikliklerin sayısından önce değişmemiş satırların sayısı gelir.
-T: yol adı ile histogram arasında, -t seçeneğinin göstereceği sayıları yazdırır.
Değişiklik sayısının genişliği, en büyük değer tarafından belirlenir (ancak en az 3'tür). -w seçeneğinde verilen genişlik, bu sayıların genişliğinden ayrıdır.
-u: raporda dosya adlarının sıralanmasını bastırır.-v: ilerlemeyi gösterir, örneğin çıktı bir dosyaya yönlendirildiyse, standart hataya ilerleme mesajları yazar.-V: mevcut sürüm numarasını yazdırır ve çıkar.
-w number histogramın maksimum genişliğini belirtir. Dosya adlarının çok büyümesi ihtimaline karşı histogram asla 10 sütundan daha kısa olmayacaktır.
Varsayılan değer, çıktı bir terminale yapılmadığı sürece 80 sütundur. Bu durumda, varsayılan genişlik terminalin genişliğidir.
Environment
Diffstat, bir POSIX ortamında çalışır.
İlgili isimlerine karşılık gelen çevre değişkenlerini ayarlayarak, girdi dosyalarını açmak için kullanılan programların derlenmiş yollarını geçersiz kılabilirsiniz:
DIFFSTAT_BZCAT_PATH DIFFSTAT_BZIP2_PATH DIFFSTAT_COMPRESS_PATH DIFFSTAT_GZIP_PATH DIFFSTAT_LZCAT_PATH DIFFSTAT_PCAT_PATH DIFFSTAT_UNCOMPRESS_PATH DIFFSTAT_XZ_PATH DIFFSTAT_ZCAT_PATH
Ancak, diffstat sonuçta elde edilen programın aynı komut satırı seçeneklerini kullandığını varsayar, örneğin standart çıktıya açmak için "-c" seçeneğini kullanması gerekir.
Files
Diffstat, hiçbir yardımcı dosya kullanmayan tek bir ikili (binary) modüldür.
Bugs
Diffstat, diff çıktısının biçimi hakkında birçok varsayımda bulunur.
Hiçbir seçenek olmaksızın iki dosya arasındaki standart diff çıktısından bir dosya adı elde etmenin bir yolu yoktur. Bağlam (context) diff'leri ve birleştirilmiş (unified) diff'ler çalışır.
Değiştirilen satırların "öncesi" ve "sonrası" görünümleri arasındaki çakışma derecesini belirlemenin kolay bir yolu yoktur. diffstat, -m seçeneği için değiştirilen satırları yaklaşık olarak hesaplamak üzere yalnızca eklenen ve silinen satırların sayısını sayar.
See Also
diff(1), patch(1).
Author
Thomas Dickey dickey@invisible-island.net.
DIFFSTAT(1)