Subject: Re: bug#5054: Asynchronous vc-bzr-diff (Man truncated)

From: Dan Nicolaescu <[email-masked]>
Date: Tue, 12 Jan 2010 16:01:52 -0800 (PST)

Juri Linkov <[email-masked]> writes:

  > > But maybe this part should be written separately so that other packages
  > > waiting for the completion of asynchronous processes could use it too.
  > 
  > It seems the bzr vc backend needs the same treatment.
  > 
  > When `vc-diff' reports that there are no differences, then vc
  > displays the *vc-diff* buffer with a single line in it:
  > 
  >   No changes between working revision and workfile.
  > 

This is due to this code in vc.el:vc-diff-internal

    (if (and (zerop (buffer-size))
             (not (get-buffer-process (current-buffer))))
        ;; Treat this case specially so as not to pop the buffer.
        (progn
          (message "%s" (cdr messages))
          nil)

  > bzr's behavior differs from the git backend that doesn't display the
  > *vc-diff* buffer.  It displays this line only in the echo area.

vc-git-diff does not call the diff command asynchronously (probably
because nobody had a problem with it being synchronous), but vc-bzr-diff
is asynchronous.