2015-03-03 19 views
5

Ich möchte als mein Diff-Tool für Git verwenden.Verwendung von Meld als difftool für git, aber Auflistung aller Dateien in einem Fenster

Wenn ich meine .gitconfig wie folgt konfiguriert werden:

[difftool] 
    prompt = false 
[diff] 
    tool = meld 

und Fahrbefehl: $ git difftool
dann öffnen git ein meld Fenster für jede Datei, die Änderungen haben.

Aber ich möchte ein einziges Fenster mit allen meinen Dateien in der Meldeliste. Ich habe ein wenig über -d oder --dir-diff Option gelesen.
Wenn ich versuche: $ git difftool -d
dann wird ein einzelnes Fenster mit einem Verzeichnisbaum in jedem Meldungsteil geöffnet, aber beide enthalten leere Verzeichnisse.
Ich kann meine Dateien von hier nicht öffnen.

enter image description here

Für Angaben:

$ git --version 
git version 1.9.1 
$ meld --version 
meld 1.8.4 
$ lsb_release -d 
Description: Ubuntu 14.04.2 LTS 

ich git svn auch bin, aber ich glaube nicht, das in meinem Problem verwandt ist; weil, soweit ich git-svn verstehe, mein Verzeichnis als einfaches Git-Verzeichnis funktioniert.

Verwandte Fragen:
View differences of branches with meld?

Antwort

10

ich mein Problem behoben durch meld zu entfernen und verwenden eine neue Version (3.12.3) davon:
sudo apt-get remove meld

Nun meine .gitconfig ist wie:

[difftool] 
    prompt = false 

[diff] 
    tool = meld 
    guitool = meld 

[difftool "meld"] 
    path = /home/me/App/meld/meld-3.12.3/bin/meld 

Und das Ergebnis der folgenden Befehle sind:

  • git diff: terminal diff jeder modifizierten Dateien
  • git diff <myfile>: terminal diff von <myfile>
  • git difftool <myfile>: meld diff von <myfile>
  • git difftool: meld diff jeder modifizierten Dateien, eine bye einer
  • git difftool -d: Meld Diff von jeder Datei, in einem einzigen Fenster

I habe auch diese Zeile zu meiner bash_alias hinzugefügt, aber ich denke, es könnte ohne funktionieren.
alias meld='/home/benjamin/Applications/meld/meld-3.12.3/bin/meld'

+1

für diese: [difftool "meld"] path = /home/me/App/meld/meld-3.12.3/bin/meld ich dies in dem Befehl versucht, zu wissen, wo meld ist installiert: whereis Meld und es ist/usr/bin/Meld –