* lisp/vc/vc.el (vc-find-revision): Instead of binding
coding-system-for-write, make the buffer-file-coding-system of
the temporary buffer be no-conversion. This avoids the
unwanted side effect of not encoding the command-line
arguments of the VCS commands invoked by the backend.
(Bug#34350)
Most of this change is to boilerplate commentary such as license URLs.
This change was prompted by ftp://ftp.gnu.org's going-away party,
planned for November. Change these FTP URLs to https://ftp.gnu.org
instead. Make similar changes for URLs to other organizations moving
away from FTP. Also, change HTTP to HTTPS for URLs to gnu.org and
fsf.org when this works, as this will further help defend against
man-in-the-middle attacks (for this part I omitted the MS-DOS and
MS-Windows sources and the test tarballs to keep the workload down).
HTTPS is not fully working to lists.gnu.org so I left those URLs alone
for now.
* 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.
Problem reported by Artur Malabarba in:
http://lists.gnu.org/archive/html/emacs-devel/2015-11/msg01513.html
Most of these fixes are to documentation; many involve fixing
longstanding quoting glitches that are independent of the
recent substitute-command-keys changes. The changes to code are:
* lisp/cedet/mode-local.el (mode-local-augment-function-help)
(describe-mode-local-overload):
Substitute docstrings before displaying them.
* lisp/emacs-lisp/cl-macs.el (cl--transform-lambda):
Quote the generated docstring for later substitution.
* lisp/vc/vc.el (vc-message-unresolved-conflicts): New function.
* lisp/vc/vc-svn.el (vc-svn-find-file-hook):
* lisp/vc/vc-hg.el (vc-hg-find-file-hook):
* lisp/vc/vc-bzr.el (vc-bzr-find-file-hook):
* lisp/vc/vc-git.el (vc-git-find-file-hook): Use above new function
to display a standard message that specifies the conflicted file.
Before this change, the message VC used for indicating a conflicted
file was just "There are unresolved conflicts in this file" without
naming the file (and this language was duplicated in several places).
After this change, it's "There are unresolved conflicts in file FOO"
(and this language is now centralized in one function in vc.el).
Justification: It's important for the message to name the conflicted
file because the moment when VC realizes a file is conflicted does not
always come interactively. For example, some people automatically
find a set of Org Mode files on startup, and may keep those .org files
under version control. If any of the files are conflicted, the user
just sees some messages fly by, and might later check the "*Messages*"
buffer to find out what files were conflicted. I'm not saying this
happened to me or anything; it's a purely hypothetical example.
* lisp/vc/vc-bzr.el (vc-bzr-checkin):
* lisp/vc/vc-dav.el (vc-dav-checkin):
* lisp/vc/vc-git.el (vc-git-checkin):
* lisp/vc/vc-hg.el (vc-hg-checkin):
* lisp/vc/vc-mtn.el (vc-mtn-checkin): Accept and silently ignore
an additional optional argument, the revision to checkin.
* lisp/vc/vc-sccs.el (vc-sccs-checkin):
* lisp/vc/vc-cvs.el (vc-cvs-checkin):
* lisp/vc/vc-rcs.el (vc-rcs-checkin): Allow to optionally specify
a revision to checkin.
* lisp/vc/vc.el (vc-next-action): Allow to optionally specify the
revision when checking in files.
See http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00688.html
for the details.
This patch should not change behavior. It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.
* lisp/progmodes/project.el (project-ignores): New generic
function, and an implementation for the VC project type.
* lisp/progmodes/xref.el (xref--rgrep-command): Split, as a
variant of rgrep-default-command that handles a generic list of
ignores.
(xref-collect-matches): Use it, and pass through to it the value
of the newly added argument.
(xref-find-regexp): Handle ignored paths within the project.
Remove outdated comment.
* lisp/vc/vc.el (vc-default-ignore-completion-table):
Skip the comments and the empty lines.
* lisp/vc/log-view.el (log-view-toggle-entry-display): When
there's no next entry, delete until the end of the buffer.
(log-view-end-of-defun-1): Stop at eob.
* lisp/vc/vc-annotate.el
(vc-annotate-show-diff-revision-at-line-internal): Don't give up
when previous-revision is nil.
* lisp/vc/vc-git.el (vc-git-expanded-log-entry): End the arguments
with `--' to avoid ambiguity.
(vc-git-annotate-extract-revision-at-line): Exclude `^' from the
returned revision string.
(vc-git-annotate-time): Expect `^' before the first revision.
* lisp/vc/vc-git.el (vc-git-diff): Diff against an empty tree if
REV1 is nil, and REV2 is not.
* lisp/vc/vc.el: Update the description of the `diff' function.
* lisp/vc/vc.el (vc-print-log-internal): Pass nil
GOTO-LOCATION-FUNC to vc-log-internal-common when WORKING-REVISION
is not specified.
(vc-incoming-outgoing-internal): Always pass nil.
(vc-log-internal-common): When GOTO-LOCATION-FUNC is nil, don't
call it, and don't set vc-sentinel-movepoint (bug#15322).
(vc-print-root-log): Don't fetch the root working revision, nor
pass it to vc-print-log-internal.
This also removes switch "-C -C" from vc-git-annotate-command.
Fixes: debbugs:17945
* vc/vc.el (vc-annotate-switches): New defcustom.
* vc/vc-bzr.el (vc-bzr-annotate-switches): New defcustom.
(vc-bzr-annotate-command): Use it.
* vc/vc-cvs.el (vc-cvs-annotate-switches): New defcustom.
(vc-cvs-annotate-command): Use it.
* vc/vc-git.el (vc-git-annotate-switches): New defcustom.
(vc-git-annotate-command): Use it.
* vc/vc-hg.el (vc-hg-annotate-switches): New defcustom.
(vc-hg-annotate-command): Use it.
* vc/vc-mtn.el (vc-mtn-annotate-switches): New defcustom.
(vc-mtn-annotate-command): Use it.
* vc/vc-svn.el (vc-svn-annotate-switches): New defcustom.
(vc-svn-annotate-command): Use it.
* vc/vc.el, vc/vc-hg.el, vc/vc-git.el, vc/vc-hooks.el,
vc/vc-mtn.el, vc/vc-rcs.el, vc/vc-sccs.el, vc/vc-src.el: rrollback
method removed, to be replaced in the future by uncommit.
* vc.el, all backends: API simplification: Remove 4th 'default-state'
argument from vc-dir-status files and its backend methods - no backend
method ever set it. It was used only in the fallback method to to set
a default of 'up-to-date, though a convoluted call chain obscured
this.
* vc/vc.el and all backends: API simplification; clear-headers is no
longer a public method. It is now local to the one place it's used,
in the RCS steal-lock method.