summaryrefslogtreecommitdiff
path: root/test/lisp/vc
AgeCommit message (Collapse)Author
2026-05-23vc-test--rename-file: Disable part of test for SCCSSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Disable part of test for SCCS.
2026-04-27; Don't skip 'vc-test-src-version-diff' testEli Zaretskii
* test/lisp/vc/vc-tests/vc-tests.el (vc-test-src-version-diff): Don't skip, it passes.
2026-04-27Fix vc-tests for SRCEli Zaretskii
* lisp/vc/vc-src.el (vc-src-register): Support "registering" directories in FILES. (vc-src-rename-file): Fix implementation and support renaming directories. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file) (vc-test-src-version-diff): Skip parts that don't work with SRC. (Bug#80862)
2026-04-26Fix renaming files and directories under RCSEli Zaretskii
* lisp/vc/vc-rcs.el (vc-rcs-register): Filter out directories from FILES. (vc-rcs-rename-file): Support OLD being a directory. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file) (vc-test--rename-directory): Re-enable these tests for RCS. (vc-test--rename-directory): Disable 'yes-or-no-p' questions that RCS asks when it needs to create the RCS/ subdirectory: this lets the test run without user interaction.
2026-04-23vc-hg-after-dir-status: Rewrite to handle current 'hg status' outputSean Whitton
* lisp/vc/vc-hg.el (vc-hg-after-dir-status): Rewrite to handle renames where the "R" line comes arbitrarily later in the output. * test/lisp/vc/vc-hg-tests.el (vc-hg-test--after-dir-status-expect): New function. (vc-hg-after-dir-status): New test.
2026-04-16vc-rename-file: Fix skipping calling into the backendSean Whitton
* lisp/vc/vc.el (vc-rename-file): Replace broken attempted use of vc-dir-status-files with walking OLD using vc-file-tree-walk. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): Assert that the files are registered or not as appropriate. New test case in which there are only registered files.
2026-04-15vc-rename-file: Fix case of directory with only untracked filesSean Whitton
* lisp/vc/vc.el (vc-rename-file): Don't call into the backend if moving a directory containing only untracked files. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): New test for this case.
2026-04-15; * test/lisp/vc/vc-tests/vc-tests.el: Disable new tests on RCS.Sean Whitton
2026-04-15Fix renaming whole directories with MercurialSean Whitton
* lisp/vc/vc-hg.el (vc-hg-rename-file): Use 'hg mv --after'. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-directory): New test.
2026-04-15vc-rename-file: New OK-IF-ALREADY-EXISTS parameterSean Whitton
* lisp/vc/vc.el (vc-delete-file): New NOCONFIRM parameter. (vc-rename-file): New OK-IF-ALREADY-EXISTS parameter. * lisp/dired-aux.el (dired-rename-file): Pass it. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test it. Also test moving files into an existing directory.
2026-04-15; vc-test--working-revision: Update for vc-hg changeSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--working-revision): Recognize '0000000000000000000000000000000000000000' now that vc-hg-working-revision returns changeset hashes.
2026-03-11Tweak recent error descriptor changesBasil L. Contovounesios
* etc/NEWS: Fix capitalization and markup. * lisp/emacs-lisp/ert.el (ert--should-error-handle-error): Prefer any over cl-some where either will do. * lisp/epa-file.el (epa-file--find-file-not-found-function): Reindent. (epa-file--error-add-context): Use correct variables. Add docstring. * lisp/ffap.el (ffap-machine-p): * lisp/gnus/nnmaildir.el (nnmaildir--emlink-p): Prefer string-equal-ignore-case over case fiddling. * lisp/gnus/gnus-search.el (gnus-search-run-query): Fix typo in error re-signaling. * lisp/ibuffer.el (ibuffer-confirm-operation-on): Prefer string search over regexp matching where either will do. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--run-maybe-unsupported-function): Pacify unused condition-case error variable warnings (bug#72212).
2026-03-10test subdirectory: Use new error-APIStefan Monnier
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--run-maybe-unsupported-function): Remove dummy branch in `condition-case`. * test/lisp/arc-mode-tests.el (define-arc-mode-test-on-type): Use `error-slot-value`. * test/src/process-tests.el (process-tests--ignore-EMFILE): * test/src/filelock-tests.el (filelock-tests-unlock-spoiled) (filelock-tests-kill-buffer-spoiled): * test/lisp/vc/vc-git-tests.el (vc-git-test--run): * test/lisp/proced-tests.el (proced--assert-process-valid-cpu-refinement): * test/lisp/emacs-lisp/pp-tests.el (pp-tests--sanity): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env) (edebug-tests-post-command): * test/lisp/autorevert-tests.el (auto-revert--deftest-remote): * test/infra/android/test-controller.el (ats-connect):
2026-03-04Revert "Repair serious breakage in the batch tests."Michael Albinus
This reverts commit feac53141577161c32a7a6dfe75399a5ae98a7c1. This patch has deactivated 253 test cases without a sufficient reasoning. Instead it speaks about a shotgun in its commite message. The patch is reverted because - It hasn't been discussed on emacs-devel. It should have, because it is a serious change in our infrastructure (new official tag :nobatch). Any documentation of this change, for example in test/README, is missing. - The proper way to deactivate such tests would have been (skip-when noninteractive) Even better to skip for the respective reasons. - There is no fault report. There is no information about how these tests have failed. Since it hasn't been a problem so far for us, nobody will work on a fix forever.
2026-02-25Repair serious breakage in the batch tests.Eric S. Raymond
There were a bunch of tests that were breaking make check and should never be run in batch mode, because they do things like assuming there is a controlling tty or assuming we can access network services when we can't (e/g. in a CI/CD environment). I have shotgunned this problem by tagging all the failing tests with :nobatch and then changing the default and expensive selectors so make check won't barf all over its shoes. As many of these :nobatch should be individually removed as possible, after upgrading the test harness to mock the environmental stuff they need. Investigate these failures with "make check-nobatch".
2026-02-23Fix VC Git error when patch matches staged changesPaul Nelson
* lisp/vc/vc-git.el (vc-git--checkin): Check that patch-string is not empty before applying it. This prevents an error when the patch exactly matches the index (bug#80228). * test/lisp/vc/vc-git-tests.el (vc-git-test-checkin-patch-staged-diff): New test.
2026-02-05; * test/lisp/vc/ediff-mult-tests.el: use ert-with-temp-directoryMattias Engdegård
Suggested by Pip Cet.
2026-02-04ediff-mult-tests.el: remove temporary directory after testMattias Engdegård
* test/lisp/vc/ediff-mult-tests.el (ediff-test-bug3348): Clean up.
2026-02-04Make vc-git-tests work with git < 2.46Mattias Engdegård
* test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): The 'unset' subcommand to 'git config' was introduced in git 2.46; use the '--unset' option instead.
2026-01-30Factor out vc-git--branch-remotesSean Whitton
* lisp/vc/vc-git.el (vc-git--branch-remotes): New function. (vc-git-trunk-or-topic-p): Use it. * test/lisp/vc/vc-git-tests.el (vc-git-test-branch-remotes): New test.
2026-01-17Automatically detect the VC outgoing base (bug#80006)Sean Whitton
* lisp/vc/vc-git.el (vc-git--current-branch): Rename to ... (vc-git-working-branch): ... this. All uses changed. (vc-git-trunk-or-topic-p, vc-git-topic-outgoing-base): * lisp/vc/vc-hg.el (vc-hg--working-branch, vc-hg-working-branch) (vc-hg-trunk-or-topic-p, vc-hg-topic-outgoing-base): * lisp/vc/vc-hooks.el (vc--safe-branch-regexps-p): * lisp/vc/vc.el (vc-default-working-branch) (vc-default-trunk-or-topic-p, vc--match-branch-name-regexps) (vc--outgoing-base, vc--outgoing-base-mergebase) (vc--maybe-read-outgoing-base): New functions. (vc-diff-outgoing-base): Call vc--outgoing-base-mergebase. (vc-root-diff-outgoing-base, vc-diff-outgoing-base): Use vc--maybe-read-outgoing-base in interactive specification. (working-branch, trunk-or-topic-p, topic-outgoing-base): New specifications for backend functions. (vc-trunk-branch-regexps, vc-topic-branch-regexps): New variables. * .dir-locals.el: Commented entries for the new variables. * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-match-branch-name-regexps): New test. * doc/emacs/vc1-xtra.texi (Outstanding Changes): Document the new functionality.
2026-01-14; * test/lisp/vc/vc-tests/vc-tests.el: Fix authorship metadata.Sean Whitton
2026-01-01; Add 2026 to copyright years.Sean Whitton
2025-12-26December 2025 spelling fixesPaul Eggert
Some of the fixes are to continue to use American rather than British spelling. * doc/misc/modus-themes.org (my-modus-themes-engraved-faces): Fix misspelled ‘:foreground’s. * etc/themes/modus-themes.el (modus-themes-faces): Fix misspelled ‘modus-themes-bold’. * lisp/emacs-lisp/rx.el (rx--normalize-char-pattern): Rename from rx--normalise-char-pattern. (rx--optimize-or-args): Rename from rx--optimise-or-args. * lisp/frame.el (frame--special-parameters): Fix misspelled "right-divider-width". * lisp/net/tramp.el (tramp-fingerprint-prompt-regexp): Use American spelling “centered”, to match current libfprintf. * lisp/org/org-fold-core.el (org-fold-core--optimize-for-huge-buffers): Rename from org-fold-core--optimise-for-huge-buffers. (org-fold-core-update-optimization): Rename from org-fold-core-update-optimisation, leaving an alias behind. (org-fold-core-remove-optimization): Rename from org-fold-core-remove-optimisation, leaving an alias behind. * lisp/org/org.el (org-advertized-archive-subtree): This alias is now obsolete. * lisp/play/zone.el (zone-ignored-buffers): Fix misspelling of ‘zone--buffer-encrypted-p’. * lisp/progmodes/csharp-mode.el (csharp-ts-mode-faces): Fix misspelling of ‘csharp’ group. * lisp/vc/vc.el (vc-clonable-backends-custom-type): Rename from vc-cloneable-backends-custom-type, leaving an alias behind. * test/lisp/emacs-lisp/bytecomp-tests.el: (bytecomp-tests--warn-arity-non-compiled-callee): Rename from bytecomp-tests--warn-arity-noncompiled-callee. (bytecomp-test-defface-spec): Reword a deliberate misspelling of “default” that is so common I don’t want it to pollute the spelling dictionary. * test/lisp/emacs-lisp/package-vc-tests.el: (package-vc-tests-preserve-artifacts): Rename from package-vc-tests-preserve-artifacts. * test/lisp/eshell/em-prompt-tests.el: (em-prompt-test/forward-backward-paragraph-1): Reword a deliberate misspelling of “goodbye” that is so common I don’t want it to pollute the spelling dictionary.
2025-12-09Update email in vc-tests and vc-git-testsPrzemysław Kryger
* test/lisp/vc/vc-git-tests.el (vc-git-test--with-repo): Use example.com, domain following RFC 2606. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-author-identity): Use example.com, domain following RFC 2606.
2025-12-07; vc-test-exec-after-3: Delete unused FAILS local value.Sean Whitton
2025-12-07Check for successful exit when parsing output with vc-exec-afterSean Whitton
When using vc-exec-after to parse program output, check that the program didn't die to a signal or exit with an error exit code before attempting the parse. Continue to use plain vc-run-delayed where we aren't parsing output, because in these cases it doesn't matter to CODE if the output is incomplete. * lisp/vc/vc-dispatcher.el (vc-exec-after): <process-status>: Treat PROC dying to a signal the same as PROC exiting non-zero. (vc-exec-after): <accept-process-output>: Restore making a nonblocking call, for the case of vc-exec-after called from a process sentinel. diff-hl *does* require this. (vc-exec-after): <OKSTATUS>: New parameter, replacing SUCCESS, which never worked as documented. * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-exec-after-3): Test it. (vc-run-delayed-success): New macro. * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage): * lisp/vc/vc-hg.el (vc-hg-dir-status-files): * lisp/vc/vc.el (vc-pull-and-push): Use it. * lisp/obsolete/vc-arch.el (vc-exec-after): * lisp/obsolete/vc-mtn.el (vc-exec-after): * lisp/vc/vc-bzr.el (vc-exec-after): * lisp/vc/vc-cvs.el (vc-exec-after): * lisp/vc/vc-git.el (vc-exec-after): * lisp/vc/vc-hg.el (vc-exec-after): * lisp/vc/vc-svn.el (vc-exec-after): Update declarations.
2025-11-29Handle copying additions & removals between working treesSean Whitton
* lisp/vc/diff-mode.el (diff-file-kill): New optional DELETE parameter. (diff-kill-creations-deletions): * lisp/vc/vc.el (vc--fileset-by-state): New functions. (diff-kill-creations-deletions, diff-filename-drop-dir) (diff-hunk-file-names, diff-file-next, diff-hunk-header-re) (vc-dir-resynch-file): Declare. (vc--apply-to-other-working-tree): Handle copying and moving files in the added, removed, missing and unregistered states. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--apply-to-other-working-tree): New test.
2025-11-20; * test/lisp/vc/vc-tests/vc-test-misc.el: Fix compiler warnings.Sean Whitton
2025-11-10vc-do-command: Support discarding standard errorSean Whitton
* lisp/vc/vc-dispatcher.el (vc-do-command): Support discarding standard error. * lisp/vc/vc-hg.el (vc-hg-dir-status-files): Discard standard error of 'hg status' to avoid parsing mistakes. (vc-hg-command): Update docstring given new meaning of first argument to vc-do-command. * test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-do-command-1) (vc-test-do-command-2, vc-test-do-command-3) (vc-test-do-command-4, vc-test-do-command-5) (vc-test-do-command-6, vc-test-do-command-7): New tests.
2025-11-08Adapt vc-test-misc to MS-WindowsEli Zaretskii
* test/lisp/vc/vc-tests/vc-test-misc.el (vc-test-exec-after-1) (vc-test-exec-after-2, vc-test-exec-after-3) (vc-test-exec-after-4, vc-test-exec-after-5): Fix shell commands for MS-Windows: use "&" instead of ";" and don't use fractional times for 'sleep', as some Windows ports of 'sleep' don't support that.
2025-11-07New tests for vc-exec-afterSean Whitton
* test/lisp/vc/vc-tests/vc-test-misc.el (vc-test--exec-after-wait): New macro. (vc-test-exec-after-1, vc-test-exec-after-2) (vc-test-exec-after-3, vc-test-exec-after-4) (vc-test-exec-after-5): New tests.
2025-10-20; * test/lisp/vc/vc-tests/vc-tests.el: use write-region, againMattias Engdegård
2025-10-20vc-test--with-temp-change: Use write-regionSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change): Use write-region (bug#79657).
2025-10-19vc-rename-file: Make it work regardless of default-directorySean Whitton
* lisp/vc/vc.el (vc-rename-file): Make it work regardless of default-directory; now the only influence of default-directory should be resolving OLD and NEW if they are relative file names. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--rename-file): Test the influence of default-directory on vc-rename-file.
2025-10-05VC: Use symbolic names for the working revisionSean Whitton
* lisp/vc/vc-hg.el (vc-hg-diff): When OLDVERS is ".", behave the same as if OLDVERS was the actual working revision. (vc-hg-previous-revision): Return ".~1" for input ".", ".~3" for input ".^^" et cetera. Also, when passed non-symbolic revisions, use "REV~1" instead of "REV^" for MS-Windows compatibility. (vc-hg-working-revision-symbol): * lisp/vc/vc-git.el (vc-git-working-revision-symbol): * lisp/vc/vc-hooks.el (vc-symbolic-working-revision): New functions. (vc-default-mode-line-string): * lisp/vc/ediff-vers.el (ediff-vc-merge-internal): * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): * lisp/vc/vc.el (vc-diff-build-argument-list-internal) (vc-diff-outgoing, vc-revision-other-window, vc-default-revert): Call vc-symbolic-working-revision. (vc-buffer-revision): Specify that this should always be a revision number/hash, not a symbolic name. * lisp/vc/vc-git.el (vc-git-previous-revision): Return "HEAD~1" for input "HEAD", "HEAD~3" for input "HEAD^^" et cetera.
2025-10-01vc-add-working-tree: Finish by starting DiredSean Whitton
There won't be any uncommitted changes in the new working tree yet, so vc-dir is unlikely to be useful. * lisp/vc/vc.el (vc-add-working-tree): Finish by calling 'dired' not 'vc-dir'. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): Delete stubbing out 'vc-dir'.
2025-09-30vc-test--checkin-patch: Use atomic change groupsSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-temp-change): New macro. (vc-test--checkin-patch): Use it.
2025-09-27vc-test--checkin-patch: Restore alternative revert code pathSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): For the last stage of the test, restore alternative code path for Git, though this time limited to when running the test on MS-Windows. Cf. subthread starting from <https://lists.gnu.org/archive/html/emacs-devel/2025-09/msg00785.html>.
2025-09-26vc-test--checkin-patch: Use {author} not {user}Sean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): Use Mercurial template '{author}' not '{user}' for compatibility.
2025-09-24vc-git--checkin: Apply PATCH-STRING to working treeSean Whitton
* lisp/vc/vc-git.el (vc-git--with-apply-temp-to-staging): Rename ... (vc-git--with-apply-temp): ... to this. New ARGS parameter. All uses changes. (vc-git--checkin): In POST function, apply PATCH-STRING to the working tree with 'git apply --3way --ours'. * lisp/vc/vc-hg.el (vc-hg--checkin): Document what the call to 'hg update' is for. * test/lisp/vc/vc-tests/vc-tests.el (vc-test--checkin-patch): Delete completed FIXME and workaround.
2025-09-21VC checkin-patch: Support extracting commit metadata from patchesSean Whitton
* lisp/vc/vc-git.el (vc-git--mailinfo): New function. (vc-git-checkin-patch): Use it to extract authorship, date and log message information from patches. (vc-git--call): New INFILE argument. All uses changed. * lisp/vc/vc-hg.el (vc-hg--checkin): When COMMENT is nil, take authorship, date and log message information from the patch. * lisp/vc/vc.el (checkin-patch): Specify to use authorship, date and comment information in PATCH-STRING (bug#79408). (prepare-patch): Specify that patch should include authorship identity, date and log message information for REV if supported. (diff-bounds-of-hunk): Declare. (vc-default-checkin-patch): Warn if it looks like we will ignore patch authorship information. * test/lisp/vc/vc-tests/vc-tests.el (vc-hg-command) (vc-git--out-str): Declare. (vc-test--checkin-patch): New function. (vc-test-git08-checkin-patch, vc-test-hg08-checkin-patch): New tests.
2025-09-01Rename arg REMOTE-LOCATION -> UPSTREAM-LOCATIONSean Whitton
* lisp/vc/vc-bzr.el (vc-bzr-log-incoming) (vc-bzr-incoming-revision, vc-bzr-log-outgoing): * lisp/vc/vc-git.el (vc-git-incoming-revision): * lisp/vc/vc-hg.el (vc-hg-incoming-revision): * lisp/vc/vc.el (vc-root-diff-incoming, vc-diff-incoming) (vc-root-diff-outgoing, vc-diff-outgoing) (vc-root-diff-outgoing-base, vc-diff-outgoing-base) (vc-incoming-outgoing-internal, vc-remote-location-history) (vc--incoming-revision, vc-log-incoming, vc-default-log-incoming) (vc-log-outgoing, vc-default-log-outgoing): Rename arguments REMOTE-LOCATION -> UPSTREAM-LOCATION. Adjust strings. (vc--maybe-read-remote-location): Rename ... (vc--maybe-read-upstream-location): ... to this.
2025-08-16vc-test--with-author-identity: Handle MercurialSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-hg-global-switches): Declare. (vc-test--with-author-identity): Handle Mercurial.
2025-08-12vc-test--other-working-trees: Export env vars so Git finds an authorSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--with-author-identity): New macro, factored out of vc-test--version-diff. (vc-test--version-diff, vc-test--other-working-trees): Use it.
2025-08-12vc-test--other-working-trees: Fix a skip conditionSean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): For Git, don't try moving the first working tree unless we have Git>=2.29.
2025-08-12vc-test-git07-other-working-trees: Widen scope of skip on Git<=2.17Sean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): Delete condition to skip 'move-working-tree' tests on Git<=2.17. (vc-test-git07-other-working-trees): Skip this whole test on Git<=2.17 (discussion in bug#79024).
2025-08-10Fix some 'git worktree' compatibility issuesSean Whitton
* lisp/vc/vc-git.el (vc-git-delete-working-tree): Reimplement to avoid requiring 'git worktree remove'. (vc-git-move-working-tree): Use 'git worktree move' if 'git worktree repair' is not available. Give a more informative error message if we don't even have that. * test/lisp/vc/vc-tests/vc-tests.el (vc-git--program-version): Declare. (vc-test--other-working-trees): Skip vc-move-working-tree tests with Git old enough to lack 'git worktree move'.
2025-08-04Fix vc-git worktrees and vc-tests for directories with symlinksMattias Engdegård
* lisp/vc/vc-git.el (vc-git-known-other-working-trees): * test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): Tolerate directories with symlinks in them, such as the standard temporary dirs on MacOS. 'git worktree list' outputs expanded names.
2025-07-27vc-test--other-working-trees: Stub out 'vc-dir'Sean Whitton
* test/lisp/vc/vc-tests/vc-tests.el (vc-test--other-working-trees): Stub out 'vc-dir' when adding the second working tree.