aboutsummaryrefslogtreecommitdiff
path: root/lisp/magit-git.el
diff options
context:
space:
mode:
authorJonas Bernoulli <jonas@bernoul.li>2026-03-30 22:31:57 +0200
committerJonas Bernoulli <jonas@bernoul.li>2026-03-30 22:31:57 +0200
commitbef6bdc62fc0ffba77dd6a91baaf53bffcbcd5ad (patch)
tree81da8cf675323746362a8a720e9d8651221635b4 /lisp/magit-git.el
parent315d85c765afbce10b08c5c9164da64bc789197a (diff)
Support visiting anonymous blobs
I.e., support visiting a blob via its blob oid without knowing a commit and tree path in which it can be found.
Diffstat (limited to 'lisp/magit-git.el')
-rw-r--r--lisp/magit-git.el12
1 files changed, 7 insertions, 5 deletions
diff --git a/lisp/magit-git.el b/lisp/magit-git.el
index 7a52a52..d8d9d83 100644
--- a/lisp/magit-git.el
+++ b/lisp/magit-git.el
@@ -1349,12 +1349,14 @@ Sorted from longest to shortest CYGWIN name."
(magit-git-lines "ls-files" "--stage" "--"
(magit-convert-filename-for-git file))))
-(defun magit--insert-blob-contents (rev file)
+(defun magit--insert-blob-contents (obj file)
(let ((coding-system-for-read (or coding-system-for-read 'undecided)))
- (magit-git-insert "cat-file" "-p"
- (if (equal rev "{index}")
- (concat ":" file)
- (concat rev ":" file)))
+ (if (magit-blob-p obj)
+ (magit-git-insert "cat-file" "blob" obj)
+ (magit-git-insert "cat-file" "-p"
+ (if (equal obj "{index}")
+ (concat ":" file)
+ (concat obj ":" file))))
(setq buffer-file-coding-system last-coding-system-used)
nil))