2013-02-06 7 views
10

Gegeben eine Diff-Datei erstellt mit git Format-Patch (im einheitlichen Patch-Format), wie lade ich die gleiche Datei in Emacs, so dass ich Cc Cc verwenden kann, um an die entsprechende Stelle in der Datei zu gehen, auch wenn die Datei oder Verzeichnisname enthält ein Leerzeichen in Windows.Wie verwende ich Emacs Diff mit Leerzeichen?

Mein Projekt enthält viele Datei- und Verzeichnisnamen, die Leerzeichen enthalten.

+1

Klingt, als sollten Sie einen Fehler ablegen? Es sollte funktionieren, sogar unter Windows. – tripleee

+0

Auch wenn es sich um einen Fehler handelt, sollte es einen Workaround geben. – Arafangion

+0

Wenn ich dies versuche, bekomme ich eine Fehlermeldung "Kann den Anfang der Datei nicht finden". Ist das was du bekommst? – razeh

Antwort

3

Dies scheint ein Fehler in Emacs zu sein. Hier ist ein Patch, der es für mich zu beheben erscheint:

=== modified file 'lisp/vc/diff-mode.el' 
--- lisp/vc/diff-mode.el 2013-01-02 16:13:04 +0000 
+++ lisp/vc/diff-mode.el 2013-02-26 05:08:48 +0000 
@@ -821,9 +821,11 @@ If the OLD prefix arg is passed, tell th 
       (progn (diff-hunk-prev) (point)) 
      (error (point-min))))) 
     (header-files 
-  (if (looking-at "[-*][-*][-*] \\(\\S-+\\)\\(\\s-.*\\)?\n[-+][-+][-+] \\(\\S-+\\)") 
-   (list (if old (match-string 1) (match-string 3)) 
-   (if old (match-string 3) (match-string 1))) 
+   ;; handle filenames with spaces; 
+   ;; cf. diff-font-lock-keywords/diff-file-header-face 
+  (if (looking-at "[-*][-*][-*] \\([^\t]+\\)\t.*\n[-+][-+][-+] \\([^\t]+\\)") 
+   (list (if old (match-string 1) (match-string 2)) 
+   (if old (match-string 2) (match-string 1))) 
     (forward-line 1) nil))) 
     (delq nil 
     (append 

Ich werde es an den Baum Emacs Bzr Quelle begehen, wenn es keine Einwände sein.

+0

Entschuldigung für die Verzögerung, aber Ihr Patch macht Sinn, anstatt nur Leerräume getrennt zu sein gegebenenfalls nicht tabulatorgetrennt. Ich werde darüber nachdenken, ein Bounty hinzuzufügen, wenn ich es testen konnte. :) – Arafangion

Verwandte Themen