From: Hong Xu Date: Fri, 4 Nov 2016 10:06:00 +0000 (+0200) Subject: Clarify documentation of 'vc-responsible-backend' wrt symlinks X-Git-Tag: emacs-25.1.90~65 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=23570fd;p=emacs.git Clarify documentation of 'vc-responsible-backend' wrt symlinks * lisp/vc/vc.el (vc-responsible-backend): Clarify that symlinks are not resolved when the VC backend is reported. * doc/lispref/files.texi (Truenames): Document 'vc-responsible-backend'. (Bug#23436) * doc/emacs/maintaining.texi (Version Control Systems): Fix a typo. --- diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi index aca29910b7d..0a47b4c3b76 100644 --- a/doc/emacs/maintaining.texi +++ b/doc/emacs/maintaining.texi @@ -223,7 +223,7 @@ basic editing operations under Bazaar. @cindex SRC @cindex src @item -SRC (src) is RCS, reloaded - a specialized version-control system +SRC (src) is RCS, reloaded---a specialized version-control system designed for single-file projects worked on by only one person. It allows multiple files with independent version-control histories to exist in one directory, and is thus particularly well suited for diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 6b7ee19d5f3..544992d4ba5 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -1138,6 +1138,21 @@ compares the truenames of the two directories. If @var{dir} does not name an existing directory, the return value is @code{nil}. @end defun +@defun vc-responsible-backend file +This function determines the responsible VC backend of the given +@var{file}. For example, if @file{emacs.c} is a file tracked by Git, +@w{@code{(vc-responsible-backend "emacs.c")}} returns @samp{Git}. +Note that if @var{file} is a symbolic link, +@code{vc-responsible-backend} will not resolve it---the backend of the +symbolic link file itself is reported. To get the backend VC of the +file to which @var{file} refers, wrap @var{file} with a symbolic link +resolving function such as @code{file-chase-links}: + +@smallexample +(vc-responsible-backend (file-chase-links "emacs.c")) +@end smallexample +@end defun + @node File Attributes @subsection File Attributes @cindex file attributes diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el index ac020d09539..2ddf4e19e1f 100644 --- a/lisp/vc/vc.el +++ b/lisp/vc/vc.el @@ -959,7 +959,11 @@ use." If FILE is already registered, return the backend of FILE. If FILE is not registered, then the first backend in `vc-handled-backends' that declares itself -responsible for FILE is returned." +responsible for FILE is returned. + +Note that if FILE is a symbolic link, it will not be resolved -- +the responsible backend system for the symbolic link itself will +be reported." (or (and (not (file-directory-p file)) (vc-backend file)) (catch 'found ;; First try: find a responsible backend. If this is for registration,