mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-06-14 04:21:24 +00:00
Don't query on exit for dir-status-files VC backend processes
* lisp/vc/vc-bzr.el (vc-bzr-dir-status-files): * lisp/vc/vc-cvs.el (vc-cvs-dir-status-files): * lisp/vc/vc-git.el (vc-git-dir-status-goto-stage): * lisp/vc/vc-hg.el (vc-hg-dir-status-files): * lisp/vc/vc-svn.el (vc-svn-dir-status-files): Set the query-on-exit flag for the processes populating VC-Dir buffers to nil.
This commit is contained in:
parent
aa6acc69ed
commit
0a8a5d4fad
5 changed files with 51 additions and 48 deletions
|
|
@ -1032,7 +1032,9 @@ stream. Standard error output is discarded."
|
|||
|
||||
(defun vc-bzr-dir-status-files (dir files update-function)
|
||||
"Return a list of conses (file . state) for DIR."
|
||||
(apply #'vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S" files)
|
||||
(set-process-query-on-exit-flag
|
||||
(apply #'vc-bzr-command "status" (current-buffer) 'async dir "-v" "-S" files)
|
||||
nil)
|
||||
;; FIXME: Consider `vc-run-delayed-success'.
|
||||
(vc-run-delayed
|
||||
(vc-bzr-after-dir-status update-function
|
||||
|
|
|
|||
|
|
@ -1083,9 +1083,11 @@ Query all files in DIR if files is nil."
|
|||
(let ((local (vc-cvs-stay-local-p dir)))
|
||||
(if (and (not files) local (not (eq local 'only-file)))
|
||||
(vc-cvs-dir-status-heuristic dir update-function))
|
||||
(vc-cvs-command (current-buffer) 'async
|
||||
files
|
||||
"-f" "-n" "-q" "update")
|
||||
(set-process-query-on-exit-flag
|
||||
(vc-cvs-command (current-buffer) 'async
|
||||
files
|
||||
"-f" "-n" "-q" "update")
|
||||
nil)
|
||||
;; FIXME: Consider `vc-run-delayed-success'.
|
||||
(vc-run-delayed
|
||||
(vc-cvs-after-dir-status update-function))))
|
||||
|
|
|
|||
|
|
@ -724,44 +724,39 @@ or an empty string if none."
|
|||
|
||||
(defun vc-git-dir-status-goto-stage (git-state)
|
||||
;; TODO: Look into reimplementing this using `git status --porcelain=v2'.
|
||||
(let ((files (vc-git-dir-status-state->files git-state))
|
||||
(allowed-exit 1))
|
||||
(erase-buffer)
|
||||
(pcase (vc-git-dir-status-state->stage git-state)
|
||||
('update-index
|
||||
(if files
|
||||
(progn (vc-git-command (current-buffer) 'async files
|
||||
"add" "--refresh" "--")
|
||||
;; git-add exits 128 if some of FILES are untracked;
|
||||
;; we can ignore that (bug#79999).
|
||||
(setq allowed-exit 128))
|
||||
(vc-git-command (current-buffer) 'async nil
|
||||
"update-index" "--refresh")))
|
||||
('ls-files-added
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-c" "-s" "--"))
|
||||
('ls-files-up-to-date
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-c" "-s" "--"))
|
||||
('ls-files-conflict
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-u" "--"))
|
||||
('ls-files-missing
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-d" "--"))
|
||||
('ls-files-unknown
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-o" "--exclude-standard" "--"))
|
||||
('ls-files-ignored
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"ls-files" "-z" "-o" "-i" "--directory"
|
||||
"--no-empty-directory" "--exclude-standard" "--"))
|
||||
;; --relative added in Git 1.5.5.
|
||||
('diff-index
|
||||
(vc-git-command (current-buffer) 'async files
|
||||
"diff-index" "--relative" "-z" "-M" "HEAD" "--")))
|
||||
(vc-run-delayed-success allowed-exit
|
||||
(vc-git-after-dir-status-stage git-state))))
|
||||
(cl-flet ((git-cmd (&rest args)
|
||||
(set-process-query-on-exit-flag
|
||||
(apply #'vc-git-command (current-buffer) 'async args)
|
||||
nil)))
|
||||
(let ((files (vc-git-dir-status-state->files git-state))
|
||||
(allowed-exit 1))
|
||||
(erase-buffer)
|
||||
(pcase (vc-git-dir-status-state->stage git-state)
|
||||
('update-index
|
||||
(if files
|
||||
(progn (git-cmd files "add" "--refresh" "--")
|
||||
;; git-add exits 128 if some of FILES are untracked;
|
||||
;; we can ignore that (bug#79999).
|
||||
(setq allowed-exit 128))
|
||||
(git-cmd nil "update-index" "--refresh")))
|
||||
('ls-files-added
|
||||
(git-cmd files "ls-files" "-z" "-c" "-s" "--"))
|
||||
('ls-files-up-to-date
|
||||
(git-cmd files "ls-files" "-z" "-c" "-s" "--"))
|
||||
('ls-files-conflict
|
||||
(git-cmd files "ls-files" "-z" "-u" "--"))
|
||||
('ls-files-missing
|
||||
(git-cmd files "ls-files" "-z" "-d" "--"))
|
||||
('ls-files-unknown
|
||||
(git-cmd files "ls-files" "-z" "-o" "--exclude-standard" "--"))
|
||||
('ls-files-ignored
|
||||
(git-cmd files "ls-files" "-z" "-o" "-i" "--directory"
|
||||
"--no-empty-directory" "--exclude-standard" "--"))
|
||||
;; --relative added in Git 1.5.5.
|
||||
('diff-index
|
||||
(git-cmd files "diff-index" "--relative" "-z" "-M" "HEAD" "--")))
|
||||
(vc-run-delayed-success allowed-exit
|
||||
(vc-git-after-dir-status-stage git-state)))))
|
||||
|
||||
(defun vc-git-dir-status-files (_dir files update-function)
|
||||
"Return a list of (FILE STATE EXTRA) entries for DIR."
|
||||
|
|
|
|||
|
|
@ -1544,11 +1544,13 @@ REV is the revision to check out into WORKFILE."
|
|||
;; XXX: We can't pass DIR directly to 'hg status' because that
|
||||
;; returns all ignored files if FILES is non-nil (bug#22481).
|
||||
(let ((default-directory dir))
|
||||
(apply #'vc-hg-command '(t nil) 'async files
|
||||
"status" (concat "-mardu" (if files "i")) "-C"
|
||||
(if (version<= "4.2" (vc-hg--program-version))
|
||||
'("--config" "commands.status.relative=1")
|
||||
'("re:" "-I" "."))))
|
||||
(set-process-query-on-exit-flag
|
||||
(apply #'vc-hg-command '(t nil) 'async files
|
||||
"status" (concat "-mardu" (if files "i")) "-C"
|
||||
(if (version<= "4.2" (vc-hg--program-version))
|
||||
'("--config" "commands.status.relative=1")
|
||||
'("re:" "-I" ".")))
|
||||
nil))
|
||||
(vc-run-delayed-success 0
|
||||
(vc-hg-after-dir-status update-function)))
|
||||
|
||||
|
|
|
|||
|
|
@ -227,7 +227,9 @@ A value of `default' means to use the value of `vc-resolve-conflicts'."
|
|||
CALLBACK is called as (CALLBACK RESULT BUFFER), where
|
||||
RESULT is a list of conses (FILE . STATE) for directory DIR."
|
||||
;; FIXME shouldn't this rather default to all the files in dir?
|
||||
(apply #'vc-svn-command (current-buffer) 'async nil "status" "-u" files)
|
||||
(set-process-query-on-exit-flag
|
||||
(apply #'vc-svn-command (current-buffer) 'async nil "status" "-u" files)
|
||||
nil)
|
||||
;; FIXME: Consider `vc-run-delayed-success'.
|
||||
(vc-run-delayed (vc-svn-after-dir-status callback t)))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue