Subject: bug#23436: [PATCH] Attemp to use the true name of a file to determine responsible vc if the genuine name does not work.

From: Hong Xu <[email-masked]>
Date: Sun, 30 Oct 2016 15:50:56 -0700

On 2016-10-30 Sun 09:21 GMT-0700, Eli Zaretskii <[email-masked]> wrote:

>> diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
>> index aca29910b7d3..8f31fa168c23 100644
>> --- a/doc/emacs/maintaining.texi
>> +++ b/doc/emacs/maintaining.texi
>
> This should go to the ELisp manual, not the Emacs User manual.
>

I don't know how to resolve this issue: there seems no proper place to
insert the defun section. I'm gonna leave my updated version of the
defun section here in this email, and updated all other parts in the new
version of the patch (as attached). You may decide where to put this part.

--------------------- vc-responsible-backend defun -------------------------
@defun vc-responsible-backend file
This function can be used to determine the responsible VC backend of
the given @var{file}.  For example, if @file{emacs.c} is a file
tracked by git, @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.  Instead, 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
--------------------- vc-responsible-backend defun ENDS---------------------

> Last, but not least: documentation changes need ChangeLog-style commit
> log messages as well (just use "C-x 4 a" to get a preformatted
> skeleton from which you could start).

Fixed in the new patch. The new version now also mentions
`vc-responsible-backend' in a different way in maintaining.texi. Feel
free to review again. Thanks!

diff --git a/doc/emacs/ChangeLog.1 b/doc/emacs/ChangeLog.1
index 3f746ebd763f..c5d150af8124 100644
--- a/doc/emacs/ChangeLog.1
+++ b/doc/emacs/ChangeLog.1
@@ -1,3 +1,8 @@
+2016-10-30  Hong Xu  <[email-masked]>
+
+	* maintaining.texi (Version Control Systems): Mention
+	`vc-responsible-backend' when explaining VC back ends.
+
 2015-03-29  Dani Moncayo  <[email-masked]>
 
 	* files.texi (Diff Mode): Doc fix.
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index aca29910b7d3..884d40be5634 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -223,7 +223,7 @@ Version Control Systems
 @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
@@ -233,6 +233,10 @@ Version Control Systems
 supports almost all SRC operations.
 @end itemize
 
+@findex vc-responsible-backend
+To determine which back end is in charge of a file, the function
+@code{vc-responsible-backend} can be used.
+
 @node VCS Concepts
 @subsubsection Concepts of Version Control
 
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index ac020d095397..2ddf4e19e1f7 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -959,7 +959,11 @@ vc-responsible-backend
 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,