aboutsummaryrefslogtreecommitdiff
path: root/lisp/magit-git.el
AgeCommit message (Collapse)Author
2026-04-16magit-read-module-path: Fix previous changePedro Ribeiro Mendes JĂșnior
Only augment the predicate if there actually is one. Fix problem introduced in d527f833.
2026-04-08magit-untracked-files: Use git-status instead of git-ls-filesJonas Bernoulli
The former is better at taking ignore rules into account. Remove the recently added `magit--untracked-files', which also used the former. The new `magit-untracked-files' is essentially the same as that short-lived function, but preserves its own function signature.
2026-04-08magit-list-files: Never limit to subdirectoryJonas Bernoulli
Never limit the list of files to those in `default-directory' and always return paths relative to the top-level. This affects other `magit-*-files' functions and their callers. Some callers of these functions explicitly used `magit-with-toplevel' and we can stop doing that now. Other callers did not use that macro but should have done so. Among those, many were always called from the top-level, so this bug was theoretical in those cases. Others are more likely to be called from a subdirectory. There are no callers that actually need just the files from a subdirectory.
2026-04-08magit-revision-{files,directories}: Use --full-treeJonas Bernoulli
That is cheaper than `magit-with-toplevel'.
2026-04-08magit-git.el: Split up Files sectionJonas Bernoulli
Two definitions have to be moved.
2026-04-08magit--git-w32-path-hack: Renamed variableJonas Bernoulli
2026-04-08magit-cygwin-mount-points: Move definitionJonas Bernoulli
2026-04-06magit-read-module-path: Add Helm kludgeJonas Bernoulli
Predicates are evaluate with the minibuffer as the current buffer. Unlike for other completion frameworks, Helm does not ensure that the value of `default-directory' in that buffer is the same as in the buffer from which completion was invoked, making it necessary to explicitly reinforce the expected value. Closes #5546.
2026-04-02magit-cygwin-mount-points: Fix typo in previous commitJonas Bernoulli
2026-04-01magit-cygwin-mount-points: Fix regressionJonas Bernoulli
In [1: 7fe84a4cd0] we started using the new `magit--early-process-lines' but that did not take into account that `string-match-p' may end up with nil as STRING, which is a type error. Closes #5548.
2026-03-31magit--untracked-files: New functionJonas Bernoulli
This is a potential replacement for `magit-untracked-files', but actually replacing that requires more work.
2026-03-30Support visiting anonymous blobsJonas Bernoulli
I.e., support visiting a blob via its blob oid without knowing a commit and tree path in which it can be found.
2026-03-30Use cond more instead of if and prognJonas Bernoulli
2026-03-29Make Cond-Let's when$ availableJonas Bernoulli
2026-03-29magit-process-git-arguments: Fix typo in docstringJonas Bernoulli
2026-03-29magit-blob-oid: Support Git releases before v2.36.0Jonas Bernoulli
Closes #5544.
2026-03-29magit-blob-oid: Do not assume call from top-levelJonas Bernoulli
2026-03-28Fix typos in manual and docstringsJonas Bernoulli
2026-03-28magit--git-insert: Prefix debugging messagesJonas Bernoulli
We enable `magit-git-debug' in hairy cases, in which case it helps to avoid any possible confusion, such about whether a given message is coming from here or elsewhere.
2026-03-28magit--git-insert: Only return error if return-error is non-nilJonas Bernoulli
Returning the Git error message causes many caller to signal a Lisp error, which isn't what we want when we enable `magit-git-debug'.
2026-03-25magit--abbrev-if-oid: Renamed functionJonas Bernoulli
2026-03-25magit-rev-{eq,equal}: CosmeticsJonas Bernoulli
2026-03-24magit-tag-p: Improve performanceJonas Bernoulli
2026-03-24magit-blob-p: New functionJonas Bernoulli
2026-03-24magit-commit-p: Future-proof docstringJonas Bernoulli
2026-03-22Declare crm-prompt for released Emacs versionsJonas Bernoulli
2026-03-22magit-read-range: Remove misleading crm hint from promptJonas Bernoulli
Closes #5538.
2026-03-21magit-git-config-p: Correct docstringJonas Bernoulli
2026-03-13magit-find-file-noselect: Fix finding blobs over TRAMPKyle Meyer
magit-find-file-noselect inserts blob contents via magit--refresh-blob-buffer. As of f55bfaf79 (Set new magit-blob-oid in blob buffers and only refresh if necessary, 2026-02-03), magit--refresh-blob-buffer inserts the blob contents only if the value returned by magit-blob-oid is different from what's stored in magit-buffer-blob-oid (unless optional FORCE argument is non-nil). Over TRAMP, magit-blob-oid returns nil because the file name with a remote identifier is passed to ls-tree and ls-files. This nil value is the same as the initial magit-buffer-blob-oid value, leading to commands like magit-ediff-stage and magit-diff-visit-file generating empty buffers for blobs. Update magit-blob-oid and magit--file-index-stages to call magit-convert-filename-for-git so that the local file name is passed to ls-tree/ls-files. Fixes #5529.
2026-02-21magit-merge-{plain,editmsg,nocommit}: Support creating octopus mergesJonas Bernoulli
Closes #5523.
2026-02-17magit-git-executable-not-found: Remove broken link from messageJonas Bernoulli
Not only did my handcrafted url-shortener break, the actual page at the target always read just "Under construction". ;P
2026-02-03Set new magit-blob-oid in blob buffers and only refresh if necessaryJonas Bernoulli
2026-02-03magit--insert-blob-contents: Spin out new functionJonas Bernoulli
2026-02-03magit-find-file-noselect: Pivot to file if index has multiple stagesJonas Bernoulli
2026-01-21magit-git-string: Return nil if exit status is not zeroJonas Bernoulli
Also ignore stderr when determining the first line of output to be returned. (When `magit-git-debug' is non-nil, it is still inserted into the process buffer.) The new implementation is similar to the experimental `magit-git-string-p', except that that did not ignore stderr, which I consider a bug. Define `magit-git-string-p' as an obsolete alias of `magit-git-debug', despite this change in behavior; doing so is more likely to fix latent bugs than to be a breaking change.
2026-01-21magit-git-string-p: Stop using experimental functionJonas Bernoulli
In the only two cases where we used this function instead of `magit-git-string', that did not make a difference. Also see next commit, which changes `magit-git-string' to take some inspiration from this function, but without being exactly the same.
2026-01-21magit-rev-head-p: Again assume that REV actually is a revisionJonas Bernoulli
We stopped doing that in [1: 5c2ca6e2b2] for the benefit of its only caller, which doesn't need that anymore since the previous commit. 1: 2015-07-07 5c2ca6e2b2af877d715869f3fd265f706ab35b45 magit-rev-head-p: deal with invalid input
2026-01-21magit-rev-head-p: Use magit-rev-eqJonas Bernoulli
2026-01-21magit-hash-range: Add docstringJonas Bernoulli
2026-01-21magit-commit-oid: New functionJonas Bernoulli
Replace `magit-rev-hash' and some uses of `magit-commit-p', preparing for `magit-commit-p' to return t instead of the oid.
2026-01-21magit-rev-verify-commit: Deprecate aliasJonas Bernoulli
2026-01-21magit--rev-dereference: CosmeticsJonas Bernoulli
2026-01-11magit-buffer-refname: Convert to alias for magit-buffer-revisionJonas Bernoulli
2026-01-09magit-get-@{push}-branch: Improve verificationJonas Bernoulli
Continue to return the resolved but abbreviated refname, or nil if the remote tracking branch does not exist. However, no longer assume that the full ref begins with "refs/remotes/".
2026-01-09magit-get-@{push}-branch: Support full ref as argumentJonas Bernoulli
2026-01-09magit-get-push-branch: Support full ref as argumentJonas Bernoulli
2026-01-01Improve indentation of condJonas Bernoulli
Emacs 31.1 adds variable `lisp-indent-local-overrides'.
2026-01-01Bump copyright yearsJonas Bernoulli
2025-12-15magit-{common-,}post-{commit,merge,rewrite}: New hooksJonas Bernoulli
2025-12-15Add support for triggering lisp hooks from git hooksJonas Bernoulli