From cf77dd27af3e9893f4051887cb0e17999bbdb631 Mon Sep 17 00:00:00 2001 From: Stefan Monnier Date: Thu, 10 Feb 2011 14:37:42 -0500 Subject: [PATCH] * lisp/vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid bzr locking race condition. --- lisp/ChangeLog | 3 +++ lisp/vc/vc-dir.el | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index dd33dda4382..70dc7697814 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,8 @@ 2011-02-10 Stefan Monnier + * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid + bzr locking race condition. + * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is still valid before using it. diff --git a/lisp/vc/vc-dir.el b/lisp/vc/vc-dir.el index 5f386bcee76..38fbaaedd32 100644 --- a/lisp/vc/vc-dir.el +++ b/lisp/vc/vc-dir.el @@ -1061,6 +1061,9 @@ Throw an error if another update process is in progress." (unless (vc-dir-fileinfo->directory info) (setf (vc-dir-fileinfo->needs-update info) t) nil)) vc-ewoc) + ;; Bzr has serious locking problems, so setup the headers first (this is + ;; synchronous) rather than doing it while dir-status is running. + (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "") (lexical-let ((buffer (current-buffer))) (with-current-buffer vc-dir-process-buffer (cd def-dir) @@ -1081,8 +1084,7 @@ Throw an error if another update process is in progress." (vc-dir-refresh-files (mapcar 'vc-dir-fileinfo->name remaining) 'up-to-date) - (setq mode-line-process nil))))))))) - (ewoc-set-hf vc-ewoc (vc-dir-headers backend def-dir) "")))) + (setq mode-line-process nil)))))))))))) (defun vc-dir-show-fileentry (file) "Insert an entry for a specific file into the current *VC-dir* listing. -- 2.39.5