branch: elpa/git-commit
commit d1e2beb8663f57d3bb58781f43eb28b3f079f547
Author: Jonas Bernoulli <[email protected]>
Commit: Jonas Bernoulli <[email protected]>

    magit-file-checkout: Support selecting a directory
    
    Closes #5170.
---
 lisp/magit-files.el | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/lisp/magit-files.el b/lisp/magit-files.el
index f38be1d046..68736a48c9 100644
--- a/lisp/magit-files.el
+++ b/lisp/magit-files.el
@@ -489,7 +489,7 @@ Git, then fallback to using `delete-file'."
   (interactive
    (let ((rev (magit-read-branch-or-commit
                "Checkout from revision" magit-buffer-revision)))
-     (list rev (magit-read-file-from-rev rev "Checkout file"))))
+     (list rev (magit-read-file-from-rev rev "Checkout file" nil t))))
   (magit-with-toplevel
     (magit-run-git "checkout" rev "--" file)))
 
@@ -497,8 +497,10 @@ Git, then fallback to using `delete-file'."
 
 (defvar magit-read-file-hist nil)
 
-(defun magit-read-file-from-rev (rev prompt &optional default)
+(defun magit-read-file-from-rev (rev prompt &optional default include-dirs)
   (let ((files (magit-revision-files rev)))
+    (when include-dirs
+      (setq files (sort (nconc files (magit-revision-directories rev)))))
     (magit-completing-read
      prompt files nil t nil 'magit-read-file-hist
      (car (member (or default (magit-current-file)) files)))))

Reply via email to