If you re-run M-x vc-diff from a *vc-diff* buffer, it doesn't ask you to save the buffer being diffed the way that it does when operating from that buffer itself C-x C-f /some/file/under/vc/control C-x v = C-x o # edit the file's buffer a bit C-x o # back to the *vc-diff* C-x v = => doesn't ask about saving the edits I wonder also if vc-diff might offer to save the whole of its "fileset", something like below. Not that I'm not smart enough to diff more than one file at a time :-) Maybe `vc-update' could share this `vc-buffer-sync-fileset' too. I thought to use find-buffer-visiting instead of the way vc-update has `member' in its save-some-buffers, just in case there's symlinks making names look different. 2010-03-25 Kevin Ryde * vc.el (vc-buffer-sync-fileset): New function. (vc-diff): Use it to save all relevant file buffers no matter where run (not just the current buffer).