it's only accurate when the buffer is in saved state. Check out\r
`diff-hl-flydiff-mode`, it aims to handle unsaved buffers as well.\r
\r
+* To use an\r
+ [alternative diff algorithm](http://stackoverflow.com/questions/32365271/whats-the-difference-between-git-diff-patience-and-git-diff-histogram)\r
+ with Git, add a corresponding argument to `vc-git-diff-switches`,\r
+ e.g. `(setq vc-git-diff-switches '("--histogram"))`. Using the\r
+ `diff.algorithm` option doesn't work\r
+ [because](http://article.gmane.org/gmane.comp.version-control.git/294622)\r
+ `vc-git-diff` calls `git diff-index`. `diff-hl-flydiff-mode` does\r
+ not support alternative algorithms, because it uses the external\r
+ `diff` program.\r
+\r
* We conflict with other modes when they put indicators on the fringe,\r
such as [Flycheck](https://github.com/flycheck/flycheck). This is\r
rarely a significant problem, since if you're using such a mode,\r
(defvar vc-svn-diff-switches)
(defmacro diff-hl-with-diff-switches (body)
- ;; https://github.com/dgutov/diff-hl/issues/67
- `(let ((vc-git-diff-switches '("-U0"))
+ `(let ((vc-git-diff-switches
+ ;; https://github.com/dgutov/diff-hl/issues/67
+ (cons "-U0"
+ ;; https://github.com/dgutov/diff-hl/issues/9
+ (and (listp vc-git-diff-switches)
+ (cl-remove-if-not
+ (lambda (arg)
+ (member arg '("--histogram" "--patience" "--minimal")))
+ vc-git-diff-switches))))
(vc-hg-diff-switches nil)
(vc-svn-diff-switches nil)
(vc-diff-switches '("-U0"))