Subject: Re: bug#14995: [PATCH] vc-do-command ignores symbolic links

From: Stefan Monnier <[email-masked]>
Date: Wed, 31 Jul 2013 10:13:23 -0400

> This small patch fixes a bug in vc-do-command:

> === modified file 'lisp/vc/vc-dispatcher.el'
> --- lisp/vc/vc-dispatcher.el    2013-06-15 02:50:47 +0000
> +++ lisp/vc/vc-dispatcher.el    2013-07-31 10:49:27 +0000
> @@ -275,11 +275,8 @@
>  that is inserted into the command line before the filename.
>  Return the return value of the slave command in the synchronous
>  case, and the process object in the asynchronous case."
> -  ;; FIXME: file-relative-name can return a bogus result because
> -  ;; it doesn't look at the actual file-system to see if symlinks
> -  ;; come into play.
>    (let* ((files
> -      (mapcar (lambda (f) (file-relative-name (expand-file-name f)))
> +      (mapcar (lambda (f) (file-relative-name (file-truename
> (expand-file-name f))))
>            (if (listp file-or-list) file-or-list (list file-or-list))))
>       (full-command
>        ;; What we're doing here is preparing a version of the command

I'm not completely sure this fix is needed (and I'd rather avoid
calling file-truename, if possible).  Do you have a concrete case where
this causes problems?

        Stefan