Hacer que vc-diff use ediff en Emacs 23.2

Lo hizo funcionar bien en Emacs 23.1.x pero parece que se rompió en el movimiento a Emacs 23.2

Quiero usar ediff cuando comparo la copy de trabajo de un file con SVN HEAD.

Normalmente presiono Cx v = y ediff se ejecuta debido a la siguiente configuration en mis .emacs

;; Use ediff and not diff (setq diff-command "ediff") 

Pero, por desgracia, todavía aparece el búfer vc-diff normal y no hay session de ediff …

¿Alguien más se ha encontrado con esto y sabe cuál podría ser el problema?

Soy un poco escéptico de que la configuration anterior haya hecho lo que dices que hizo.

Dicho esto, esto 'ediff-revision a '=' a usar 'ediff-revision :

 (eval-after-load "vc-hooks" '(define-key vc-prefix-map "=" 'ediff-revision)) 

Descubrí que podría volver a vincular Cx v = a lo siguiente:

 (defun ediff-current-buffer-revision () "Run Ediff to diff current buffer's file against VC depot. Uses `vc.el' or `rcs.el' depending on `ediff-version-control-package'." (interactive) (let ((file (or (buffer-file-name) (error "Current buffer is not visiting a file")))) (if (and (buffer-modified-p) (y-or-np (message "Buffer %s is modified. Save buffer? " (buffer-name)))) (save-buffer (current-buffer))) (ediff-load-version-control) (funcall (intern (format "ediff-%S-internal" ediff-version-control-package)) "" "" nil))) 

Este enfoque significa que evita tener que especificar las versiones para comparar, ya que pnetworkingetermina comparar HEAD y el estado actual del file.

Fuente: http://www.groupsrv.com/computers/about152826.html

Utilizo el command vc-ediff para omitir la input de los nombres de los files: simplemente compare la copy modificada actual con la versión base (HEAD).

 (eval-after-load "vc-hooks" '(define-key vc-prefix-map "=" 'vc-ediff)) 

Entonces Cx v = mostrará la session de Ediff.