Commit graph

185 commits

Author SHA1 Message Date
Sean Whitton
f836632aee Merge from origin/emacs-31
f89ff62367 Extend Tramp external operations
4dea6ea36b markdown-ts-mode: fix duplicated menu entries (bug#81201)
9cad2da66e ; Fix last change.
cd84bd6a0c vc-dir-recompute-file-state: Change directory to DEF-DIR
47bdbc8d85 Restore "interactive" when describing functions
1a5d9a4be3 Inhibit follow-link via `mouse-1' on the tab-bar (bug#81036)
c94d58ddbf Fix the tab close button appearance when clicking (bug#76...
a21614d4d6 ; Skip one vc-dir test on MS-Windows
abddd2075a ; Fix last change to vc-dir-recompute-file-state.
89bda8736a Install images with info documentation (bug#81204)
466789b511 vc-dir-recompute-file-state: Return nil state for nonexis...
2026-06-11 16:12:15 +01:00
Sean Whitton
cda9d9c733 Fix fontification in short unintegrated changes logs (bug#81215)
* lisp/vc/vc.el (vc-log-view-type): Replace with ...
(vc-log-view-types): ... this.  All uses changes.
(vc-log-remote-unintegrated): Newly pass a value for the log
view types.  This matters for Hg repositories.
(vc-print-log-internal): Ensure log view types always contains
either 'long' or 'short'.
(vc-root-log-incoming, vc-root-log-outgoing, vc-log-search):
* lisp/vc/vc-dir.el (vc-dir--count-outgoing): Pass both
log-incoming/log-outgoing/log-search and short/long for the log
view types.  This is necessary because these functions don't
call vc-print-log-internal.  This will need to be refactored
when implementing the new fileset-specific vc-log-incoming and
vc-log-outgoing.
2026-06-11 14:34:13 +01:00
Sean Whitton
971fa88a58 VC-Dir: Clear and populate async headers in vc-dir-resynch-file too
* lisp/vc/vc-dir.el (vc-dir--set-header): New function, factored out.
(vc-dir-resynch-file, vc-dir-refresh): Use it.
2026-06-10 15:26:36 +01:00
Sean Whitton
9cad2da66e ; Fix last change. 2026-06-10 13:37:57 +01:00
Sean Whitton
cd84bd6a0c vc-dir-recompute-file-state: Change directory to DEF-DIR
* lisp/vc/vc-dir.el (vc-dir-recompute-file-state): Change
directory to DEF-DIR before calling into the backend.
* test/lisp/vc/vc-tests/vc-test-misc.el
(vc-test-vc-dir-on-symlink): Test that the file has the right
state.
2026-06-10 13:36:52 +01:00
Sean Whitton
abddd2075a ; Fix last change to vc-dir-recompute-file-state. 2026-06-09 14:37:54 +01:00
Sean Whitton
466789b511 vc-dir-recompute-file-state: Return nil state for nonexistent file
* lisp/vc/vc-dir.el (vc-dir-recompute-file-state): Return nil
state for nonexistent file (bug#81191).
2026-06-09 12:09:14 +01:00
Sean Whitton
d7e7dd62ff Merge from origin/emacs-31
71ea4bbb6c vc-test-vc-dir-on-symlink: Use vc-test--with-author-identity
b8fa2243ea Fix M-RET in 'markdown-ts-in-table-mode-map'
c244314974 Fix recurrence of bug#80803 after changes in bug#80967
2026-06-09 11:33:26 +01:00
Sean Whitton
f343f20b94 Mark vc-dir-show-outgoing-count obsolete
* lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): Mark obsolete.
(vc-dir-async-header-values): Use a list of cons.
(vc-dir-headers, vc-dir-refresh): Update for new
vc-dir-async-header-values structure.
* doc/emacs/maintaining.texi (VC Directory Buffer): Delete
mention of the variable.
* etc/NEWS: Announce the obsoletion.
2026-06-09 11:32:13 +01:00
Sean Whitton
a0dc061fa2 VC-Dir: Handle counting outgoing revisions asynchronously
* lisp/vc/vc-dir.el (log-view-message-re): Declare.
(vc-dir--count-outgoing): Rewrite to not block on populating the
outgoing log.
(vc-dir-async-header-values): New variable.
(vc-dir-headers): Just insert "Outgoing   : ", not its value.
(vc-dir-refresh): Insert overlays for async fields.
* lisp/vc/vc.el (vc--count-outgoing): Delete.
2026-06-08 19:17:47 +01:00
Sean Whitton
c244314974 Fix recurrence of bug#80803 after changes in bug#80967
* lisp/vc/vc-dir.el (vc-dir-resynch-file): Pass only truenames
to vc-dir-recompute-file-state.
* test/lisp/vc/vc-tests/vc-test-misc.el (vc-git): Require.
(vc-test-vc-dir-on-symlink): New test.
2026-06-08 15:29:12 +01:00
Sean Whitton
7226082f46 vc-dir-refresh: Respect non-essential wrt saving buffers
* lisp/vc/vc-dir.el (vc-dir-refresh): If non-essential is
non-nil, don't call vc-buffer-sync-fileset.
2026-06-04 10:49:23 +01:00
Sean Whitton
2c2f1c00ac ; * lisp/vc/vc-dir.el (vc-dir-update): Add an assertion. 2026-06-01 09:51:08 +01:00
Sean Whitton
69286be27d ; Fix an overwide docstring line. 2026-05-28 10:19:02 +01:00
Eli Zaretskii
2c1b45f5c5 ; Improve documentation of 'vc-dir-auto-hide-up-to-date'
* lisp/vc/vc-dir.el (vc-dir-auto-hide-up-to-date): Doc fix.

* doc/emacs/maintaining.texi (VC Directory Buffer): Document
'vc-dir-auto-hide-up-to-date'.  (Bug#81033)
2026-05-24 14:44:07 +03:00
Sean Whitton
07f2bbc905 vc-dir-resynch-file: Pass down non-truename'd FILE
* lisp/vc/vc-dir.el (vc-dir-recompute-file-state): Delete
recently introduced TRUENAME parameter.
(vc-dir-resynch-file): Pass the file name from before calling
file-truename to vc-dir-recompute-file-state.
2026-05-12 09:49:53 +01:00
João Távora
48b064a2aa Fix 'vc-dir-resynch-file' again (bug#80967)
This unbreak project-vc-dir for dirs under non-truename
hierarchies.

The following commit presumably makes 'M-x vc-dir' usable again
for versioned directories inside non-truename hierarchies,

   commit e05fab5775
   Author: Stephen Berman <stephen.berman@gmx.net>
   Date:   Sat May 2 15:11:37 2026 +0200

       Fix 'vc-dir-resynch-file' (bug#80803)

       * lisp/vc/vc-dir.el (vc-dir-resynch-file): Apply 'file-truename'
       instead of 'expand-file-name' to FNAME argument to prevent
       spurious display of symlinked files in *vc-dir* buffer.

However the similar command 'M-x project-vc-dir' was broken and made
unusable in similar circumstances.

This relatively simple fix addresses both situations touching only the
problematic 'vc-resynch-file' and one of its callees,
'vc-dir-recompute-file-state', which now discerns clearly between the
short/familiar name to present in the list and the "fname" to use to
call into the backend to gather the VC state.  Since this function is
also called from another context, where the requirements are less clear,
keeping current smenatics in that situation seemed prudent, so the new
behaviour is activate with a new optional parameter.

* lisp/vc/vc-dir.el (vc-dir-resynch-file): Call
vc-dir-recompute-file-state with truename=t.
(vc-dir-recompute-file-state): Accept optional truename param.
2026-05-07 22:15:42 +01:00
Stephen Berman
e05fab5775 Fix 'vc-dir-resynch-file' (bug#80803)
* lisp/vc/vc-dir.el (vc-dir-resynch-file): Apply 'file-truename'
instead of 'expand-file-name' to FNAME argument to prevent
spurious display of symlinked files in *vc-dir* buffer.
2026-05-02 15:11:37 +02:00
Sean Whitton
7d9dad4241 New VC commands for remote unintegrated changes
* lisp/vc/vc.el (vc--outgoing-base, vc--outgoing-base-mergebase):
New FORCE-TOPIC parameter.
(vc--maybe-read-outgoing-base): New NO-DOUBLE parameter.
(vc-root-diff-remote-unintegrated, vc-diff-remote-unintegrated)
(vc-log-remote-unintegrated, vc-root-log-remote-unintegrated):
New commands (bug#80434).
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind them.
* doc/emacs/vc1-xtra.texi (Unintegrated Changes):
* etc/NEWS: Document them.
2026-04-29 14:54:40 +01:00
Sean Whitton
ae40c3a438 New commands to report diffs of all local changes
* lisp/vc/vc.el (vc-root-diff-outgoing-and-edited)
(vc-diff-outgoing-and-edited): New commands (bug#80434).
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind them.
* doc/emacs/maintaining.texi (VC Change Log):
* etc/NEWS: Document them.
2026-04-29 14:46:37 +01:00
Sean Whitton
525b7b1424 Rename outstanding changes commands to "unintegrated changes"
* doc/emacs/vc1-xtra.texi (Outstanding Changes): Rename node
from this ...
(Unintegrated Changes): ... to this (bug#80434).  References
changed.
* etc/NEWS: Document the change.
* lisp/vc/vc-git.el (vc-git-topic-outgoing-base)
(vc-git-log-view-mode):
* lisp/vc/vc-hg.el (vc-hg-print-log, vc-hg-log-view-mode):
* lisp/vc/vc.el (vc-root-diff-outstanding, vc-diff-outstanding)
(vc-log-outstanding, vc-root-log-outstanding):
Rename from these ...
(vc-root-diff-unintegrated, vc-diff-unintegrated)
(vc-log-unintegrated, vc-root-log-unintegrated):
... to these (bug#80434).  All uses changed.
(vc-log-view-type): Rename 'log-outstanding' type to
'log-unintegrated'.  All uses changed.
2026-04-27 13:35:31 +01:00
Sean Whitton
3289886f84 * lisp/vc/vc-dir.el (vc-dir-update): Remove empty directory entries. 2026-04-05 15:51:31 +01:00
Sean Whitton
d604445954 New option vc-dir-auto-hide-up-to-date
* lisp/vc/vc-dir.el (vc-dir-hide-up-to-date-on-revert): Delete.
(vc-dir-auto-hide-up-to-date): New option.
(vc-dir-update, vc-dir-revert-buffer-function): Use it.
* etc/NEWS: Document it.
2026-04-05 15:50:46 +01:00
Sean Whitton
af69eb2f27 VC-Dir next action: Offer to hide up-to-date items
* lisp/vc/vc-dir.el (vc-dir--up-to-date-states): New constant.
(vc-dir-hide-state): Use it.
(vc-dir--only-files-state-and-model): New function.
(vc-dir-root-next-action, vc-dir-deduce-fileset): Use it.
* lisp/vc/vc.el (vc-only-files-state-and-model): Improve error
message readability.
2026-04-05 14:58:55 +01:00
Sean Whitton
b055b6e889 New command vc-dir-root-next-action
* lisp/vc/vc-dir.el (vc-dir-root-next-action): New command.
(vc-dir-mode-map): Bind it.
* doc/emacs/maintaining.texi (VC Directory Commands):
* etc/NEWS: Document it.
2026-02-21 17:18:24 +00:00
Sean Whitton
0903fe3ac0 Show "committing" pseudo-state in VC-Dir during an async checkin
* lisp/vc/vc-dir.el (vc-dir-fileinfo): New 'display-state'
field.
(vc-dir-update): Use it.
(vc-default-dir-printer):
* lisp/vc/vc-git.el (vc-git-dir-printer): Use it.  Fontify a
display state of "committing" as vc-dir-status-warning.
* lisp/vc/vc-hooks.el (vc--file-getinheprop): New function.
* lisp/vc/vc.el (vc-checkin): Set "committing" display state on
items we are checking in asynchronously.
2026-02-20 11:37:34 +00:00
Sean Whitton
c18469b20c vc-dir-show-outgoing-count: Mark a safe local variable
* lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): Mark a safe
local variable.
2026-02-18 18:44:05 +00:00
Sean Whitton
39a2a2e3b5 Use -outstanding not -outgoing-base in VC command names
* lisp/vc/vc.el (vc-root-diff-outgoing-base)
(vc-diff-outgoing-base, vc-log-outgoing-base)
(vc-root-log-outgoing-base): Rename from these ...
(vc-root-diff-outstanding, vc-diff-outstanding)
(vc-log-outstanding, vc-root-log-outstanding): ... to these.
All uses changed.
2026-02-17 15:26:20 +00:00
Sean Whitton
12e53dfafe New C-x v T l and C-x v T L commands
* lisp/vc/vc.el (vc-log-outgoing-base)
(vc-root-log-outgoing-base): New commands.
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map): Bind them.
* doc/emacs/vc1-xtra.texi (Outstanding Changes):
* etc/NEWS: Document them.
2026-01-29 17:01:32 +00:00
Sean Whitton
43d6907ad9 Move outstanding changes commands from 'o' to 'T'
The main reason for this is that then these commands can have
the same bindings in VC-Dir buffers that they have under
vc-prefix-map.  'T' is a good mnemonic for "Topic" and a
serviceable mnemonic for "outsTanding".

* lisp/vc/vc-hooks.el (vc-prefix-map): Move 'o' to 'T'.
* lisp/vc/vc-dir.el (vc-dir-mode-map): New 'T' bindings.
2026-01-28 16:13:47 +00:00
Sean Whitton
29bdba37f2 New bindings for vc-revert
* lisp/vc/vc-dir.el (vc-dir-mode-map): Bind vc-revert to '@'.
* lisp/vc/vc-hooks.el (vc-prefix-map): Additionally bind
vc-revert to 'C-x v @'.
* doc/emacs/maintaining.texi (VC Undo, VC Directory Commands):
* etc/NEWS: Document the change.
2026-01-23 14:11:27 +00:00
Sean Whitton
aa6e42f18b Rename VC outgoing and incoming log commands to include "-root-"
* lisp/vc/vc.el (vc-log-incoming, vc-log-outgoing): Rename ...
(vc-root-log-incoming, vc-root-log-outgoing): ... to these.  All
uses changed.  Leave behind obsolete function aliases.
* lisp/emacs-lisp/package-vc.el (package-vc-log-incoming):
Rename ...
(package-vc-root-log-incoming): ... to this.  All uses changed.
Leave behind obsolete function alias.
2026-01-14 12:48:02 +00:00
Sean Whitton
c31f6adc31 ; Add 2026 to copyright years. 2026-01-01 12:54:34 +00:00
Sean Whitton
3e35226da6 New command 'C-x v b l'
* lisp/vc/vc.el (vc--read-branch-to-log): New function.
(vc-print-root-branch-log): Rewrite to use
vc--read-branch-to-log and vc--with-backend-in-rootdir.
(vc-print-fileset-branch-log): New command.
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map):
(vc-menu-map): Bind it.
* doc/emacs/maintaining.texi (VC Change Log):
* etc/NEWS: Document it.
2025-12-28 16:09:44 +00:00
Sean Whitton
124d3cde04 Move 'C-x v b l' to 'C-x v b L', rename command
* lisp/vc/vc-dir.el (vc-dir-mode-map):
* lisp/vc/vc-hooks.el (vc-prefix-map, vc-menu-map): Replace
bindings of 'b l' with 'b L'.
* lisp/vc/vc.el (vc-print-root-branch-log): Rename from
'vc-print-branch-log'.  All uses changed.
(vc-print-branch-log): New obsolete alias.
* doc/emacs/maintaining.texi (VC Change Log)
(VC Directory Commands):
* doc/emacs/vc1-xtra.texi (Editing VC Commands):
* etc/NEWS: Document the change.
2025-12-28 12:28:06 +00:00
Sean Whitton
f9172be29a Make VC-Dir's 'd' able to delete unregistered files
* lisp/vc/vc.el (vc-delete-file): Simplify.
* lisp/vc/vc-dir.el (vc-dir-delete-file): Handle deleting
unregistered files, too.
(vc-dir-menu-map, vc-dir-mode-map): Replace bindings for
vc-dir-clean-files with ones for vc-dir-delete-file.
* doc/emacs/maintaining.texi (VC Directory Commands):
* etc/NEWS: Document the bindings change.
2025-12-18 21:46:49 +00:00
Sean Whitton
1cd6428bce ; * lisp/vc/vc-dir.el (vc-dir-menu-map): Delete obsolete comment. 2025-12-18 21:43:57 +00:00
Sean Whitton
a80f45deb2 Make C-g skip counting outgoing revisions for VC-Dir
* lisp/vc/vc-dir.el (vc-dir--count-outgoing): New function,
factored out.
(vc-dir-headers): Use it.
2025-12-09 18:49:17 +00:00
Sean Whitton
fab0bfc78f vc-dir-headers: Set a delayed message during vc--count-outgoing
* lisp/vc/vc-dir.el (vc-dir-headers): Set a delayed message
during vc--count-outgoing.
2025-12-07 15:19:23 +00:00
Sean Whitton
1bdf9dd6cd New user option vc-dir-show-outgoing-count
* lisp/vc/vc-dir.el (vc-dir-show-outgoing-count): New defcustom.
(vc-dir-headers): Use it.
* doc/emacs/maintaining.texi (VC Directory Buffer):
* etc/NEWS: Document it.
2025-12-06 16:24:59 +00:00
Eli Zaretskii
3945654f05 Merge from origin/emacs-30
998d45d5d1 ; * lisp/calc/calc-units.el: Better reference for CODATA ...
fae83f1eb8 ; Improve documentation of 'char-script-table'
3e489ed804 ; * src/font.c (Flist_fonts): Doc fix.
4c292b6f70 ; vc-dir-clean-files: Improve docstring and message (bug#...
8a6b84dbcb Fix doc string of 'display-buffer'
2025-12-06 08:58:57 -05:00
Sean Whitton
b0a0127880 vc-dir-headers: Use ngettext, move the newline out of 'propertize'
* lisp/vc/vc-dir.el (vc-dir-headers): Use ngettext, move the
newline out of 'propertize'.
2025-12-01 22:00:42 +00:00
Sean Whitton
4271fc0daa * lisp/vc/vc-dir.el (vc-dir-headers): Put newlines in better places. 2025-12-01 12:19:20 +00:00
Sean Whitton
5b07a81bed New display of outgoing revisions count in VC-Dir
This relies on how vc--incoming-revision now caches incoming
revisions.

* lisp/vc/vc.el (vc--count-outgoing): New function.
* lisp/vc/vc-dir.el (vc-dir-header-urgent-value): New face.
(vc-dir-outgoing-revisions-map): New keymap.
(vc-dir-headers): Use them.
* etc/NEWS: Document the change.
2025-11-30 21:35:23 +00:00
Eli Zaretskii
4c292b6f70 ; vc-dir-clean-files: Improve docstring and message (bug#79914).
Co-authored-by: Kristoffer Balintona <krisbalintona@gmail.com>
2025-11-30 17:10:36 +00:00
Sean Whitton
158bf5da77 Refine VC-Dir mass mark changes
* lisp/vc/vc-dir.el (vc-dir-mark-file): Prompt before unmarking
all subitems.  Use y-or-n-p and user-error instead of
yes-or-no-p and error.
(vc-dir-unmark-file): Use y-or-n-p instead of yes-or-no-p.
(vc-dir-allow-mass-mark-changes): Update docs.
2025-11-25 21:37:27 +00:00
Eli Zaretskii
521e06d3ef Merge from origin/emacs-30
53aac6aecd ; Improve documentation of commands that split current wi...
2025-10-18 06:15:46 -04:00
Eli Zaretskii
53aac6aecd ; Improve documentation of commands that split current window
* doc/emacs/sending.texi (Sending Mail):
* doc/emacs/dired.texi (Dired Enter, Dired Visiting):
* doc/emacs/maintaining.texi (Old Revisions)
(Change Log Commands, Looking Up Identifiers):
* doc/emacs/windows.texi (Displaying Buffers):
* doc/emacs/files.texi (Visiting): Add cross-references to where
user options are described which control how windows are split.

* lisp/mail/sendmail.el (mail-other-window):
* lisp/gnus/message.el (message-mail-other-window)
(message-news-other-window):
* lisp/replace.el (occur-mode-goto-occurrence-other-window):
* lisp/vc/vc.el (vc-revision-other-window):
* lisp/vc/vc-dir.el (vc-dir-find-file-other-window):
* lisp/progmodes/xref.el (xref-find-definitions-other-window):
* lisp/simple.el (compose-mail-other-window)
(clone-indirect-buffer-other-window):
* lisp/vc/add-log.el (add-change-log-entry-other-window):
* lisp/view.el (view-file-other-window)
(view-buffer-other-window):
* lisp/window.el (switch-to-buffer-other-window):
* lisp/files.el (find-file-other-window)
(find-file-read-only-other-window)
(find-alternate-file-other-window):
* lisp/dired.el (dired-other-window)
(dired-mouse-find-file-other-window)
(dired-find-file-other-window, dired-jump-other-window): Mention
in the doc strings how to control the way the current window is
split.
2025-10-18 10:47:29 +03:00
Sean Whitton
aae6a9a740 ; * lisp/vc/vc-dir.el (vc-dir-resynch-file): Use cl-nset-difference. 2025-10-13 16:38:49 +01:00
Sean Whitton
78416e8bed * lisp/vc/vc-dir.el (vc-dir-resynch-file): Use file-in-directory-p.
For better compatibility with MS-Windows.
2025-10-13 16:38:14 +01:00