[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [O] Re: Using babel to generate a commit log
From: |
Nick Dokos |
Subject: |
Re: [O] Re: Using babel to generate a commit log |
Date: |
Wed, 30 Mar 2011 09:43:16 -0400 |
Luke Crook <address@hidden> wrote:
> Jambunathan K <kjambunathan <at> gmail.com> writes:
>
> >
> > Luke Crook <luke <at> balooga.com> writes:
> >
> > > 2) I have to add at delay of at least 5 seconds (set-for 5 t) as vc-git
> calls
> > > "git log" as an asynchronous process. If not for the delay then babel
> > > immediately returns an empty buffer and the "vc-call-backend" process
> > > never
> > > completes.
> > >
> > > Is there a better way that I can accomplish (2) ?
> >
> > Quick hints if you are willing to settle for some hacks.
> >
> > In vc-do-command, you may have to set OKSTATUS to 0. Track
> > `vc-disable-async-diff' in vc.el and vc-svn.el for possible hints.
> >
>
> I changed my code to wait until the 'Git' process completes. Luckily "vc-call-
> backend" returns the async process.
>
Oh, I missed that - thanks for pointing it out.
> #+begin_src emacs-lisp :var limit="" :file test.log :exports results
> ;; Most of this code is copied from vc.el vc-print-log
> (when (vc-find-backend-function (vc-backend (buffer-file-name
> (current-buffer)))
> 'print-log)
> (let* ((limit (if (numberp limit) limit vc-log-show-limit))
> (vc-fileset (vc-deduce-fileset t)) ;FIXME: Why t? --Stef
> (backend (car vc-fileset))
> (files (cadr vc-fileset)))
> (with-temp-buffer
> (let ((status (vc-call-backend backend
> 'print-log
> files
> (current-buffer))))
> (while (not (eq 'exit (process-status status)))
> (sit-for 1 t))
> (buffer-string)))))
> #+end_src
>
... or you could use a sentinel :-)
One bit of defensive programming might be to check that status *is* a
process before you do the wait: vc-do-command returns a real status in
the synchronous case, so if you cut-n-paste this code with some other
command that does not use async, it'll blow up.
Nick
Re: [O] Using babel to generate a commit log, Suvayu Ali, 2011/03/30
- [O] Re: Using babel to generate a commit log, Luke Crook, 2011/03/30
- Re: [O] Re: Using babel to generate a commit log, Nick Dokos, 2011/03/30
- [O] Re: Using babel to generate a commit log, Luke Crook, 2011/03/30
- Re: [O] Re: Using babel to generate a commit log, Nick Dokos, 2011/03/30
- [O] Re: Using babel to generate a commit log, Luke Crook, 2011/03/30
- [O] Re: Using babel to generate a commit log, Luke Crook, 2011/03/30
- Re: [O] Re: Using babel to generate a commit log, Eric Schulte, 2011/03/30