¿Cómo usar un command diff diferente para Emacs y Shell (en terminal)?

Estoy usando el Emacs-w32 gráfico lanzado desde un terminal Cygwin (en Windows) para toda la edición, y Zsh (en un MinTTY) para ejecutar commands.

Configuré diff-cmd = colordiff en ~/.subversion/config , y, mientras eso hace buenos colors en el terminal (para svn log ), eso causa el problema de agregar códigos de escape de color en la salida, cuando diff ' en Emacs, dando lugar a diferencias no coloreadas e ilegibles en Emacs .

¿Cuál sería la solución más sensata para esto?

Pruebe esta solución que se encuentra en EmacsWiki:

si usas colordiff en svn, tal vez necesites esto:

 (add-hook 'diff-mode-hook '(lambda () (require 'ansi-color) (ansi-color-apply-on-region (point-min) (point-max)))) 

Fuente: https://www.emacswiki.org/emacs/VersionControl

Por cierto: search en la web 'emacs svn colordiff' produjo esto como uno de los 5 mejores …