Romain Francoise <[EMAIL PROTECTED]> writes: > The format changed and Emacs doesn't know how to parse it. It's a > bug.
This wasn't the most constructive reply I ever sent, so I've done my homework and created a dpatch to fix this. Beware, it's a new-style dpatch, you need to tighten the build-dep: dpatch >= 2.0.9. It's been minimally tested, I don't use the Debian package so I didn't have all my environment but it appears to fix everything. Please test. Cheers, -- ,''`. : :' : Romain Francoise <[EMAIL PROTECTED]> `. `' http://people.debian.org/~rfrancoise/ `-
#! /bin/sh /usr/share/dpatch/dpatch-run ## pcl-cvs-format.dpatch by Romain Francoise <[EMAIL PROTECTED]> ## ## All lines beginning with `## DP:' are a description of the patch. ## DP: Port changes from upstream CVS to support the new format used ## DP: used by CVS. ## DP: Upstream changes by Stefan Monnier. @DPATCH@ diff -urNad emacs21-21.3+1/lisp/pcvs-parse.el /tmp/dpep.SXISqR/emacs21-21.3+1/lisp/pcvs-parse.el --- emacs21-21.3+1/lisp/pcvs-parse.el 2001-09-24 18:39:23.000000000 +0200 +++ /tmp/dpep.SXISqR/emacs21-21.3+1/lisp/pcvs-parse.el 2005-01-24 19:15:31.000000000 +0100 @@ -351,7 +351,7 @@ ;; File you removed still exists. Ignore (will be noted as removed). (cvs-match ".* should be removed and is still there$") ;; just a note - (cvs-match "use '.+ commit' to \\sw+ th\\sw+ files? permanently$") + (cvs-match "use ['`].+ commit' to \\sw+ th\\sw+ files? permanently$") ;; [add,status] followed by a more complete status description anyway (cvs-match "nothing known about .*$") ;; [update] problem with patch @@ -467,12 +467,14 @@ :head-rev head-rev)))) (defun cvs-parse-commit () - (let (path base-rev subtype) + (let (path file base-rev subtype) (cvs-or (and - (cvs-match "\\(Checking in\\|Removing\\) \\(.*\\);$" (path 2)) - (cvs-match ".*,v <-- .*$") + (cvs-or + (cvs-match "\\(Checking in\\|Removing\\) \\(.*\\);$" (path 2)) + t) + (cvs-match ".*,v <-- \\(.*\\)$" (file 1)) (cvs-or ;; deletion (cvs-match "new revision: delete; previous revision: \\([0-9.]*\\)$" @@ -483,15 +485,20 @@ ;; update (cvs-match "new revision: \\([0-9.]*\\); previous revision: .*$" (subtype 'COMMITTED) (base-rev 1))) - (cvs-match "done$") + (cvs-or (cvs-match "done$") t) + ;; In cvs-1.12.9 commit messages have been changed and became + ;; ambiguous. More specifically, the `path' above is not given. + ;; We assume here that in future releases the corresponding info will + ;; be put into `file'. (progn ;; Try to remove the temp files used by VC. - (vc-delete-automatic-version-backups (expand-file-name path)) + (vc-delete-automatic-version-backups (expand-file-name (or path file))) ;; it's important here not to rely on the default directory management ;; because `cvs commit' might begin by a series of Examining messages ;; so the processing of the actual checkin messages might begin with ;; a `current-dir' set to something different from "" - (cvs-parsed-fileinfo (cons 'UP-TO-DATE subtype) path 'trust + (cvs-parsed-fileinfo (cons 'UP-TO-DATE subtype) + (or path file) 'trust :base-rev base-rev))) ;; useless message added before the actual addition: ignored