Subject: bug#1017: vc-diff for the hg backend ignore diff switches variables

From: Francesco Potorti` <[email-masked]>
Date: Tue, 23 Sep 2008 16:57:24 +0200

Three related problems:

1)
Apparently the hg backend of vc ignores both diff-switches and
vc-diff-switches.

2)
The vc-hg-diff-switches variables is not defined.

3)
The hg backend is special with respect to the vc-diff-switches
variable.  Its doc says:

  A string or list of strings specifying switches for diff under VC.
  When running diff under a given BACKEND, VC concatenates the values of
  `diff-switches', `vc-diff-switches', and `vc-BACKEND-diff-switches' to
  get the switches for that command.  Thus, `vc-diff-switches' should
  contain switches that are specific to version control, but not
  specific to any particular backend.

This behaviour assumes that the diff switches can be accumulated.
however, it does not allow for removing them for a particular backend.
For example, I have

(setq diff-switches "-pu"
      vc-diff-switches "-b")

which works for the cvs and rcs backends.  However, it would not work
for the hg backend, as 'hg diff' does not tolerate the -u option.  This
problem would require a different way of combining the diff switches.