--- vc.el.~1.746.~ 2009-12-17 08:25:35.000000000 +1100 +++ vc.el 2010-03-24 10:43:14.000000000 +1100 @@ -1593,9 +1593,17 @@ (interactive (list current-prefix-arg t)) (if historic (call-interactively 'vc-version-diff) - (when buffer-file-name (vc-buffer-sync not-urgent)) - (vc-diff-internal t (vc-deduce-fileset t) nil nil - (called-interactively-p 'interactive)))) + (let ((fileset (vc-deduce-fileset t))) + (vc-buffer-sync-fileset fileset not-urgent) + (vc-diff-internal t fileset nil nil + (called-interactively-p 'interactive))))) + +(defun vc-buffer-sync-fileset (fileset not-urgent) + (dolist (filename (cadr fileset)) + (let ((buffer (find-buffer-visiting filename))) + (if buffer + (with-current-buffer buffer + (vc-buffer-sync not-urgent)))))) ;;;###autoload (defun vc-root-diff (historic &optional not-urgent)