From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: Patch to make VC annotate async Date: Sun, 24 Jun 2007 15:33:51 -0400 Message-ID: References: NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1182713653 3918 80.91.229.12 (24 Jun 2007 19:34:13 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sun, 24 Jun 2007 19:34:13 +0000 (UTC) Cc: Emacs Hackers To: tromey@redhat.com Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sun Jun 24 21:34:10 2007 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1I2XqU-0003jF-56 for ged-emacs-devel@m.gmane.org; Sun, 24 Jun 2007 21:34:02 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I2XqR-0006HE-Bb for ged-emacs-devel@m.gmane.org; Sun, 24 Jun 2007 15:33:59 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1I2XqN-0006F3-87 for emacs-devel@gnu.org; Sun, 24 Jun 2007 15:33:55 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1I2XqL-000683-5n for emacs-devel@gnu.org; Sun, 24 Jun 2007 15:33:54 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1I2XqL-00067m-1t for emacs-devel@gnu.org; Sun, 24 Jun 2007 15:33:53 -0400 Original-Received: from tomts40.bellnexxia.net ([209.226.175.97] helo=tomts40-srv.bellnexxia.net) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1I2XqK-00037a-MY for emacs-devel@gnu.org; Sun, 24 Jun 2007 15:33:52 -0400 Original-Received: from ceviche.home ([74.12.206.238]) by tomts40-srv.bellnexxia.net (InterMail vM.5.01.06.13 201-253-122-130-113-20050324) with ESMTP id <20070624193351.ESDB3229.tomts40-srv.bellnexxia.net@ceviche.home> for ; Sun, 24 Jun 2007 15:33:51 -0400 Original-Received: by ceviche.home (Postfix, from userid 20848) id F22A4B4B9B; Sun, 24 Jun 2007 15:33:51 -0400 (EDT) In-Reply-To: (Tom Tromey's message of "Sat\, 23 Jun 2007 20\:32\:11 -0600") User-Agent: Gnus/5.11 (Gnus v5.11) Emacs/22.1.50 (gnu/linux) X-detected-kernel: Solaris 8 (1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:73769 Archived-At: > This patch changes the VC annotate command to allow back ends to run > annotation in the background. It also changes the CVS back end to > do this. I've been using a local patch to do the same thing for a long time now. The main problem has been that the UI is somewhat incompatible with an async behavior: the coloring of lines may depend on the overall youngest and oldest lines, so the color of even the first line may depend on the content of the last line. IIRC that was the main reason not to accept my changes at first. But IIRC I've fixed this since so that the colors are updated as the content comes along. I'll try and extract a new patch for it. > * vc.el (vc-annotate-display-select): Don't pop to buffer if one > is specified. > (vc-annotate): Run vc-annotate-display-select via vc-exec-after. Oh, so you don't even add the coloring until after the whole data was received. Hmmm... > * vc-cvs.el (vc-cvs-annotate-output): New variable. > (vc-cvs-annotate-process-filter): New function. > (vc-cvs-annotate-command): Run command async. Use > vc-cvs-annotate-process-filter. I don't understand the prupose of vc-cvs-annotate-process-filter. In my implementation I haven't needed any change to vc-cvs.el other than passing the `async' flag to vc-do-command. Stefan