74a972cace Skip proced refine tests on Darwin
c50ce03afc ; Fix recent additions to the manuals
c818c5bbaf ; * lisp/term/w32-win.el (tree-sitter--library-abi): Decl...
b71d3b2f52 ; Better clarify function types in C-h f (bug#73626)
59b3eae481 ; Introduce type specifiers to the elisp manual (bug#73626)
83fc3cf53a Future-proof loading tree-sitter library on MS-Windows
3eb3018682 ; Improve documentation of 'category' in display-buffer a...
4d80c4f485 ; More accurate documentation of 'set-mark-command'
70dd5705e1 Fix overriding 'c-ts-mode' by 'c-mode'
331610aef0 ; Improve vc-dir help-echo
9c484d5101 ; Avoid assertion violations in "temacs -Q"
8dc9dfdc38 lisp/progmodes/c-ts-mode.el: Demote loading c-ts-mode as ...
426bce8a67 ; In PROBLEMS mention issue with .Xresources on Gnome des...
* lisp/vc/vc-git.el (vc-git-stash-read): Use a keyword argument.
Abbreviate the prompt reference to the most recent stash.
(vc-git-stash-pop): Update call to vc-git-stash-read.
* lisp/vc/vc-git.el (vc-git-stash-read): New DEFAULT-MOST-RECENT
optional argument. Use format-prompt. Signal user-error
immediately if there are no stashes. Rewrite docstring.
(vc-git-stash-show, vc-git-stash-apply, vc-git-stash-pop)
(vc-git-stash-delete): Drop trailing ": " from prompts.
(vc-git-stash-pop): Pass non-nil DEFAULT-MOST-RECENT to
vc-git-stash-read.
* lisp/vc/vc-git.el (vc-git--deduce-files-for-stash): New function.
(vc-git-stash, vc-git-stash-snapshot): Use it to determine what
to stash. Update and expand docstrings.
(vc-git-stash-snapshot): No longer unconditionally snapshot all
uncommitted changes across the whole working tree.
* lisp/vc/vc.el (vc-diff-patch-string): Use display-buffer, not
pop-to-buffer, for consistency with log-edit-diff-fileset.
(vc-modify-change-comment): Use save-selected-window around
vc-diff-internal to avoid leaving the *vc-diff* window selected,
for consistency with log-edit-diff-fileset.
* lisp/vc/vc-dispatcher.el (log-edit-diff-fileset)
(log-edit-diff-patch): Declare.
(vc-log-edit, vc-start-logentry): New optional argument
DIFF-FUNCTION to specify log-edit-diff-function in the generated
Log Edit buffer.
* lisp/vc/vc.el (vc-modify-change-comment): Pass the new
DIFF-FUNCTION argument to vc-start-logentry.
* lisp/vc/vc-git.el (vc-git-resolve-when-done): When
vc-git-resolve-conflicts is unstage-maybe, don't clear the
staging area during a rebase, am, revert or cherry-pick.
(vc-git-resolve-conflicts): Update docstring in light of changes
to vc-git-resolve-when-done.
(vc-git--cmds-in-progress): Detect reverts and cherry-pick
operations in progress.
* etc/NEWS: Update the entry for
vc-allow-rewriting-published-history.
* lisp/vc/vc-git.el (vc-git-log-edit-toggle-amend):
Add a check against published history (bug#64055).
* lisp/vc/vc.el (vc-clone): Make interactive. Call
vc-guess-url-backend. Always return DIRECTORY if it names a
directory. New optional argument OPEN-DIR.
(vc--remotes-history): New defvar.
* etc/NEWS: Announce these changes.
* lisp/emacs-lisp/package-vc.el (package-vc--backend-type)
(package-vc-heuristic-alist, package-vc--guess-backend): Rename
to vc-cloneable-backends-custom-type, vc-clone-heuristic-alist
and vc-guess-url-backend respectively, and move to
lisp/vc/vc.el. Make package-vc-heuristic-alist an obsolete
alias.
(package-vc--clone, package-vc--read-package-name)
(package-vc-install, package-vc-checkout): Use
vc-guess-url-backend.
* lisp/vc/vc.el (vc-cloneable-backends-custom-type)
(vc-clone-heuristic-alist, vc-guess-url-backend): New defconst,
defcustom and defun, respectively: renamed and moved here from
lisp/emacs-lisp/package-vc.el.
* lisp/vc/vc.el (vc-allow-rewriting-published-history): Use
increasingly permissive values nil->ask->t rather than
nil->t->no-ask. Recommend `ask' or nil.
* lisp/vc/vc-git.el (vc-git--assert-allowed-rewrite): Update
accordingly.
* lisp/vc/vc-git.el (vc-git-modify-change-comment): Check that a
rebase with --autosquash won't make any other changes and give
the user a chance to abort.
* lisp/vc/vc.el (vc-allow-rewriting-published-history): New option.
* lisp/vc/vc-git.el (vc-git--assert-allowed-rewrite)
(vc-git-modify-change-comment): New functions (bug#64055).
(vc-git--current-branch): Factor out of vc-git-dir--branch-headers.
(vc-git--log-edit-extract-headers): Factor out of vc-git-checkin.
* etc/NEWS: Announce the new support and option.
* lisp/vc/diff-mode.el (diff-find-source-location): Undo part of
the previous change, so that 'reverse' does not affect whether the
"other file" is used (bug#62731).
(diff-apply-hunk): Make that choice here.
* lisp/vc/vc-dispatcher.el (vc-start-logentry): Restore previous
logic for determining the parent buffer from before my recent
change to this function. If the attempt to determine the parent
buffer fails, signal an error immediately.
(vc-dispatcher-browsing): Consider derived modes of
log-view-mode, too, as indicating that we are in a directory
browser.
Firstly, we are unlikely to do any unifying, because both amend
capabilities have been around for a long time now and we don't
want to break people's usage. Secondly, there is now a plan for
dealing with dangerous git operations described in bug#64055.
* lisp/vc/log-view.el (log-edit): Require.
(log-view-modify-change-comment): When log-edit-hook would
insert an empty Summary header, prepend one to the old comment.
This gets us closer to using log-view-modify-change-comment with modern
VCS. What remains is implementing the modify-change-comment backend
action for those VCS.
* lisp/vc/vc.el: New get-change-comment backend action.
(vc-modify-change-comment): Pass the backend to vc-start-logentry.
* lisp/vc/log-view.el (log-view-extract-comment): Use new
get-change-comment action.
* lisp/vc/vc-git.el (vc-git-get-change-comment): Factor out of
vc-git-log-edit-toggle-amend.
* lisp/vc/vc-dispatcher.el (vc-start-logentry): When determining
the parent buffer, if get-file-buffer returns nil, use the
current buffer. Also, if the first file is a directory, don't
try to call get-file-buffer, just use the current buffer.
* lisp/vc/log-edit.el (log-edit--make-header-line): Factor out
of log-edit-insert-message-template.
(log-edit-set-header): Call log-edit--make-header-line so that
the Log Edit header is propertized as a field.
* lisp/vc/vc.el (vc-root-version-diff):
Don't try calling 'vc-deduce-fileset', instead construct a fileset
suitable for the root directory right away. This way the revision
completion for the root diff doesn't depend on the current buffer,
or the file at point (bug#73232).
(vc-diff-build-argument-list-internal): No special case when
invoked on a directory, or when the current file is not "dirty".
Make REV1-DEFAULT a string value.
* etc/NEWS: Mention the change.
* lisp/vc/vc-git.el (vc-git--program-version): Detect Git version
on remote hosts separately from the local one (buf#73320).
(vc-git-connection-default-profile): Set up collection-local
profile. And use it for the 'vc-git' :application.
(vc-git--program-version): Operate on the connection-local value
of 'vc-git--program-version'.
* lisp/vc/diff-mode.el (diff-find-file-name): Allow entering
non-existing file name when the corresponding hunk is of type
"create file" (bug#62731). Default to file name with deleted
prefix if diff-buffer-type is Git or Hg. Make sure not to add
such input to diff-remembered-files-alist, it would be hard to
change otherwise in case of typo.
(diff-setup-buffer-type):
Match against the diff header common to 'hg diff' output.
(diff-find-source-location): Look at the other source when the
buffer is applied in reverse.
(diff-apply-hunk): Delect file deletion and pass a different
argument to 'diff-find-source-location' in such case. Bind
diff-vc-backend to nil to avoid older revision buffer being
returned. In the end, offer to delete the file if the hunk was of
corresponding type and matched the existing contents.
* etc/NEWS: Mention the new capability.