Diferansiyel çıkışı daha okunabilir hale getirme


12

Dif / debdiff çıktı ( ve daha spesifik olarak, bu komut dosyasının çıktı ) alacak ve son derece okunabilir, grafik bir şekilde karşılaştırma sonucu görüntüleyecek bir araç arıyorum . Herhangi bir işaretçi takdir edilecektir.

İdeal olarak, bu GTK +, bir FOSS eşdeğer olacaktır MDR .

Meld, Diffuse ve benzeri yazılımlar bu amaç için uygun değildir, çünkü tek başlarına çalışmak üzere tasarlanmıştır ve stdin'den girdi almazlar.

Yanıtlar:


8

Kompare bunu yapabilir (ve en iyi GUI dif görüntüleyici IMO'dur ):

./whatchanged package_name | kompare -

Girdi dosyası argümanı olarak verilen '-' işaretini not edin. Çoğu * nix programı, borulu girişi kabul etmek için bu arayüze sahiptir, bu nedenle muhtemelen hangisini isterseniz kullanabilirsiniz.


Evet, bunu Meld ile denedim, ancak olan şey, Meld hemen başlatılır ve komut dosyası bittikten sonra diff çıktısını almak yerine komut dosyasının ara çıktısını alır. Muhtemelen betiğin akışını Meld ve bağlı olduğu diğer yazılımlarla düzgün çalışacak şekilde ayarlamam gerekiyor. Ve "bzr diff" ve düzenli fark çıkışı ile Meld, dosya karşılaştırma modu yerine VCS modunda başlatılır.
mgunes

-C seçeneğiyle Meld'i başlatarak VCS modu problemini çözdüm. Kompare de çalışıyor. Geriye kalan tek şey senaryoyu bilinçli hale getirmektir.
mgunes

3

Sadece bir konsolunuz varsa, colordiffoldukça iyi bir çözümdür.

Yüklemek için bu komutu sudo apt-get install colordiffbir terminalde çalıştırın


2

Vim'in dahili sözdizimi vurgulamasını çağrı cihazı olarak kullanmayı seviyorum , böylece renklendirilmiş diffs'leri görüntüleyebiliyorum. Örneğin, bunu şuraya koyarak .bashrc:

sudo apt-get install vim
alias vless='vim -u /usr/share/vim/vimcurrent/macros/less.vim'

(Ve sonra yeniden kaynağı senin .bashrcile . ~/.bashrc.) Sonra çalıştırabileceğiniz vlessçağrı cihazı olarak:

vless /path/to/your.diff

Grafiksel değil, ama en azından vurgulanıyor.


Ama renkli fark dosyaları istemedi, grafiksel farklar istedi. Hangi orijinal dosyaları dif kendisi kadar okuyabilmeniz için ipuçları.
Martin Owens -doctormo-

Peki, "stdin'den okumak" bir gereklilikti. "Meld" reddedilirse, fazla bir şey kalmaz. Farkı yaratan ve Meld'i açan diğer cevap, grafik için en iyi bahistir. Veya bunun gedityerine başlayabilir .
Kees Cook

.bashrc'nize "sudo apt-get install vim" koymuyorsunuz, açıkça belirtmek için lütfen düzenleyin.
Capi Etheriel

2

KDE uygulaması çok fazla bağımlılık olmadan kurulabilmesine rağmen, kdiff harika bir fark düzenleme / birleştirme aracıdır.


1
Kdiff (ubuntu arşivinde kdiff3 olarak da bilinir) harika bir araç olsa da, STDIN'e bir fark alacak ve onu görüntüleyecek bir araç arayan OP'nin sorusunu tatmin etmiyor ve yaptığım sınırlı keşiften, Bunu yapmanın bir yolunu göremedim. Ayrıca, KDE bağımlılıklarının azaltılması bir sorunsa, ubuntu arşivi Kd yığındaki kütüphanelere değil sadece qt'ye bağlı olan kdiff3-qt içerir.
Steve Beattie

2

Ben meld (veya diğer mevcut araçlardan herhangi biri) kullanmak için bu basit komut dosyası kullanacak, böylece biraz esneklik olsun:

#!/bin/bash

TMPDIR=`mktemp -d`
DIFF_FILE=`mktemp`
TARGET='./'

cat /proc/$$/fd/0 > $DIFF_FILE
cd $TARGET
rsync -apvz --delete --stats --compress --progress $TARGET $TMPDIR
patch -R -p0 -d $TMPDIR < $DIFF_FILE
meld $TARGET $TMPDIR

Meld ve bzr diff'den çıktı ile test edildi, bu yüzden / usr / bin ve chmod 755'e kopyalandı ve bunu yaptım:

bzr diff | meld-diff

Sonuçlar beklendiği gibi gösterilir.


4
Tek kullanıcılı makinelerdeki bir sorun kadar olmasa da , geçici dosya ve dizininizi güvenli bir şekilde kullanmanız mktempve mktemp -doluşturmanız gerekir, bunun dışında başka bir nedenden ötürü, aynı anda birden fazla ağaçta tek bir tıkanıklık olmadan farklılıklar yapabilirsiniz diğeri.
Steve Beattie

Bzr diff ile çalışır, ancak sadece dizin karşılaştırma modunda. Tek tek dosyaları da karşılaştırabilmek istiyorum. Ben şu anda değil benim senaryo ile çalışmak için onu daraltmaya çalışacağım; Teşekkürler.
mgunes

Senaryoyu kullanma fikrimin iyi olduğunu düşünüyorsanız beni işaretleyin. Şimdiye kadar çok fazla işaretlenmiştim.
Martin Owens -doctormo-

1

Bir editörle entegre bir fark aracı istemediğinizi biliyorum, ancak editörünüzün neler sağlayabileceği hakkında biraz bilgi edindikten sonra bağlam anahtarından (editörden terminale ve tekrar editörden) kaçınabileceğinizden eminim. Hem emacs hem de vim farklı araçlarla birlikte gelir.

  • İçin emacs durumda, kullanacağınız Ediff Modu (varsayılan olarak instaled). Bu wiki sayfasına bakın veya resmi kılavuza bakın

  • Emacs kullanmak basittir, sadece yazın Alt + xve yazın ediff.

  • Deponuzun dalları ve revizyonları (bzr, git, svn, vb.) Arasındaki tarayıcı farkını bulmak için ediff'i kullanabilirsiniz.


Geçerli bir çalışma kopyasıyla (birden çok dosya) uzaktan izlenen git dalının nasıl düzeltileceğini hızlı bir şekilde göstermeyi düşünür müsünüz?
mlt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.