Subject: bug#21969: VC opens new window to display minimal messages

From: David Reitter <[email-masked]>
Date: Sat, 21 Nov 2015 20:07:05 -0500

On Nov 21, 2015, at 7:04 PM, Dmitry Gutov <[email-masked]> wrote:

> So, I'm not sure what's the best course of action here:
> 
> - Call 'git diff' synchronously, and leave all other backends with this problem.
> 
> - Call all 'diff' commands synchronously, and disregard the backends that might respond slowly to this command; the user will wait.
> 
> - Invent some other solutions, like introduce a timeout which we might wait for the backend to respond before popping the window, and abort (?) if the user interacts with Emacs during that time.

Try this:

Call asynchronously.  Install timeout or sentinel that checks if or when the process has finished.  If it’s just one line, remove the window that was created.

My thinking is that this is likely to be handled so quickly that redisplay will not have time to pop up the window.

However, I can see that this might use low-level functions (pop-to-buffer is very configurable).  

Alternatively, and perhaps that is the correct solution, I would start asynchronously and install a very brief timeout that opens up the new window unless the process has finished with just one line of output (or an error).

For the 25.1 branch, one could consider just calling it synchronously.