changeset 50990:b51c3d855e30

(cvs-parse-table): Remove unused var `type'. Look up `.cvsignore' to see what to do with `new-dir' messages. (cvs-parse-merge): Remove unused var `handled'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 14 May 2003 15:00:31 +0000
parents 22b7d191671a
children d79cc0e092b2
files lisp/pcvs-parse.el
diffstat 1 files changed, 16 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/pcvs-parse.el	Wed May 14 02:03:10 2003 +0000
+++ b/lisp/pcvs-parse.el	Wed May 14 15:00:31 2003 +0000
@@ -199,7 +199,7 @@
 
 (defun cvs-parse-table ()
   "Table of message objects for `cvs-parse-process'."
-  (let (c file dir path type base-rev subtype)
+  (let (c file dir path base-rev subtype)
     (cvs-or
 
      (cvs-parse-status)
@@ -266,7 +266,20 @@
        (and
 	(cvs-match "New directory `\\(.*\\)' -- ignored$" (dir 1))
 	;; (cvs-parsed-fileinfo 'MESSAGE " " (file-name-as-directory dir))
-	(cvs-parsed-fileinfo '(NEED-UPDATE . NEW-DIR) dir t))
+	;; These messages either correspond to a true new directory
+	;; that an update will bring in, or to a directory that's empty
+	;; on the current branch (either because it only exists in other
+	;; branches, or because it's been removed).
+	(if (ignore-errors
+	      (with-current-buffer
+		  (find-file-noselect (expand-file-name
+				       ".cvsignore" (file-name-directory dir)))
+		(goto-char (point-min))
+		(re-search-forward
+		 (concat "^" (regexp-quote (file-name-nondirectory dir)) "/$")
+		 nil t)))
+	    t		       ;The user requested to ignore those messages.
+	  (cvs-parsed-fileinfo '(NEED-UPDATE . NEW-DIR) dir t)))
 
        ;; File removed, since it is removed (by third party) in repository.
        (and
@@ -387,7 +400,7 @@
 
 
 (defun cvs-parse-merge ()
-  (let (path base-rev head-rev handled type)
+  (let (path base-rev head-rev type)
     ;; A merge (maybe with a conflict).
     (and
      (cvs-match "RCS file: .*$")