[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#1256: Race condition in vc-diff
From: |
Stefan Monnier |
Subject: |
bug#1256: Race condition in vc-diff |
Date: |
Sat, 25 Oct 2008 22:31:18 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) |
> If you visit this file and do "C-x v =" in a single-window frame that
> is more than about 30 lines tall, and if the backend diff command is
> fast enough, the diff window will remain half the size of the screen,
> rather than being shrunk to fit the buffer. This is because
> vc-exec-after finds that the buffer process has already finished, and
> runs vc-diff-finish before the diff buffer has been made visible. In
> that case, vc-diff-finish assumes that the user has already buried it.
> I am not a big fan of this shrink-wrapping, but I do think vc-diff
> ought to behave consistently (and it has worked this way for quite a
> while now). The attached patch is sufficient to fix it.
As the comment indicates, this patch is not quite good enough because
pop-to-buffer may change point. We probably will need to manipulate
point explicitly to work around the problem. BTW you can make the
"race-condition" deterministic by making the diff command synchronous
(as is the case with the RCS backend, for example, where your problem
should just *always* happen).
Stefan