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

From: Xue Fuqiao <[email-masked]>
Date: Thu, 1 Aug 2013 06:38:57 +0800

On Wed, Jul 31, 2013 at 10:13 PM, Stefan Monnier
<[email-masked]> wrote:
>> 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?

No.  I made this patch in passing when I was reading vc-dispatcher.

-- 
Best regards, Xue Fuqiao.
http://www.gnu.org/software/emacs/