From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: [babel] VC-Log does not run correctly Date: Thu, 08 Sep 2011 16:16:39 +0200 Message-ID: <80pqjbce60.fsf@somewhere.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org #+TITLE: Last VC Log #+AUTHOR: Seb Vauban #+DATE: 2011-09-08 #+LANGUAGE: en #+OPTIONS: num:nil toc:nil * Abstract I'm trying to get, from the VC backend (currently SVN in my case), the name and date of the last committer. Eventually, as well the last log message. Therefore, I try to use the =vc-log= function in the Library of Babel, copied back in this buffer, for the sake of simplicity. When calling =C-c C-e b= on this buffer, I get asked by Emacs: "Buffer has a running process; kill it? (yes or no)" - If I don't say anything, the export process is just hanging in the blue... - If I say yes, the export process really begins, but there is no vc log inserted where I expect it. - Exactly the same (as if I say yes) happens if I say no: export goes on, but no vc log! What could go wrong here? * Org Source #+source: vc-log #+headers: :var limit=-1 #+headers: :var buf=(buffer-name (current-buffer)) #+begin_src emacs-lisp :exports none ;; Most of this code is copied from vc.el vc-print-log (require 'vc) (when (vc-find-backend-function (vc-backend (buffer-file-name (get-buffer buf))) 'print-log) (let ((limit -1) (vc-fileset nil) (backend nil) (files nil)) (with-current-buffer (get-buffer buf) (setq vc-fileset (vc-deduce-fileset t)) ; FIXME: Why t? --Stef (setq backend (car vc-fileset)) (setq files (cadr vc-fileset))) (with-temp-buffer (let ((status (vc-call-backend backend 'print-log files (current-buffer)))) (when (and (processp status) ; Make sure status is a process (= 0 (process-exit-status status))) ; which has not terminated (while (not (eq 'exit (process-status status))) (sit-for 1 t))) (buffer-string))))) #+end_src Last edited by XXX on XXX #+call: vc-log() * HTML Result #+begin_src html Last VC Log Org Source Last edited by XXX on XXX Working file: c:/home/sva/ecm.org Date: 2011-09-08 Author: Seb Vauban Validate XHTML 1.0 #+end_src As you can see, there is no vc log at all, well the header of the vc log buffer: "Working file: c:/home/sva/ecm.org" * Messages buffer #+begin_src text Export buffer: Exporting... Running svn status -v ecm.html in foreground... Running svn status -v ecm.html...OK = 0 Position saved to mark ring, go back with M-x org-mark-ring-goto. (info) +-> Requiring `help-fns'... already loaded [6 times] executing Emacs-Lisp code block (vc-log)... (buf (quote "ecm.org")) (limit (quote -1)) Running svn log -rHEAD:0 ecm.org in background... done "Working file: c:/home/sva/ecm.org " (info) +-> Requiring `help-fns'... already loaded executing Emacs-Lisp code block... (results (quote "Working file: c:/home/sva/ecm.org ")) Code block evaluation complete. org-babel-exp processing... org-babel-exp processing... Exporting... Saving file c:/home/sva/ecm.html... Wrote c:/home/sva/ecm.html Running svn status -v ecm.html in foreground... Running svn status -v ecm.html...OK = 0 Exporting... done #+end_src Any idea on how to help me going further with this? Best regards, Seb -- Sebastien Vauban