summaryrefslogtreecommitdiff
path: root/lisp/pcvs-parse.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2003-05-14 15:00:31 +0000
committerStefan Monnier <monnier@iro.umontreal.ca>2003-05-14 15:00:31 +0000
commit0ded0280ab0255cbad50008c2aea69eadd23bd15 (patch)
treefcaab13b7404587fcb1a9aa8743fcfc0dfe7e093 /lisp/pcvs-parse.el
parentfd93e33104f25932d6b3e8bd4f8411fd5e127c8b (diff)
downloademacs-0ded0280ab0255cbad50008c2aea69eadd23bd15.tar.gz
(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'.
Diffstat (limited to 'lisp/pcvs-parse.el')
-rw-r--r--lisp/pcvs-parse.el19
1 files changed, 16 insertions, 3 deletions
diff --git a/lisp/pcvs-parse.el b/lisp/pcvs-parse.el
index 542069f7432..b8dbe815388 100644
--- a/lisp/pcvs-parse.el
+++ b/lisp/pcvs-parse.el
@@ -199,7 +199,7 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
(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 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
(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 @@ The remaining KEYS are passed directly to `cvs-create-fileinfo'."
(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: .*$")