Subject: bug#5297: [PATCH] vc: fixed test of symlinks on abbreviatable path

From: Yuya Nishihara <[email-masked]>
Date: Sun, 3 Jan 2010 23:05:06 +0900

commit 51431c222c24bbe2919d3d98032f73723ebfccea
Author: Yuya Nishihara <[email-masked]>
Date:   Sun Jan 3 14:12:56 2010 +0900

    vc: fixed test of symlinks on abbreviatable path
    
    buffer-file-truename is *abbreviated* truename, but buffer-file-name seems not,
    so we need to expand it.
    
    With abbreviated file-name, at least, vc-git and vc-hg are not detected
    as backend. This means symlinks to git/hg-managed files on HOME directory
    are not handled by vc-find-file-hook.

diff --git a/lisp/vc-hooks.el b/lisp/vc-hooks.el
index fabb35f..238fafe 100644
--- a/lisp/vc-hooks.el
+++ b/lisp/vc-hooks.el
@@ -890,8 +890,9 @@ current, and kill the buffer that visits the link."
 	  (set (make-local-variable 'backup-inhibited) t))
 	;; Let the backend setup any buffer-local things he needs.
 	(vc-call-backend backend 'find-file-hook))
-       ((let ((link-type (and (not (equal buffer-file-name buffer-file-truename))
-			      (vc-backend buffer-file-truename))))
+       ((let* ((truename (expand-file-name buffer-file-truename))
+	       (link-type (and (not (equal buffer-file-name truename))
+			       (vc-backend truename))))
 	  (cond ((not link-type) nil)	;Nothing to do.
 		((eq vc-follow-symlinks nil)
 		 (message