Commit 3a5129a1 authored by Dmitry Gutov's avatar Dmitry Gutov

vc-hg-dir-status-files: Fix when DIR is not repository root

* lisp/vc/vc-hg.el (vc-hg-dir-status-files):
Make sure it works correctly in a subdirectory of the repo root.
Bind default-directory to DIR and add 're: -I .' to the arguments
(bug#39380).
parent 89d0c445
......@@ -1352,14 +1352,14 @@ REV is the revision to check out into WORKFILE."
;; Follows vc-exec-after.
(declare-function vc-set-async-update "vc-dispatcher" (process-buffer))
(defun vc-hg-dir-status-files (_dir files update-function)
(defun vc-hg-dir-status-files (dir files update-function)
;; XXX: We can't pass DIR directly to 'hg status' because that
;; returns all ignored files if FILES is non-nil (bug#22481).
;; If honoring DIR ever becomes important, try using '-I DIR/'.
(vc-hg-command (current-buffer) 'async files
"status"
(concat "-mardu" (if files "i"))
"-C")
(let ((default-directory dir))
(vc-hg-command (current-buffer) 'async files
"status" "re:" "-I" "."
(concat "-mardu" (if files "i"))
"-C"))
(vc-run-delayed
(vc-hg-after-dir-status update-function)))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment