summaryrefslogtreecommitdiff
path: root/lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog5
-rw-r--r--lisp/cvs-status.el22
2 files changed, 26 insertions, 1 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 3f6a8ced5c4..b149e64c024 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,8 @@
+2004-08-22 Masatake YAMATO <jet@gyve.org>
+
+ * cvs-status.el (cvs-status-checkout): New function.
+ (cvs-status-mode-map): Add a key definition for `cvs-status-checkout'.
+
2004-08-21 David Kastrup <dak@gnu.org>
* net/ange-ftp.el (ange-ftp-hash-entry-exists-p)
diff --git a/lisp/cvs-status.el b/lisp/cvs-status.el
index b03182d87e4..b00984b60f1 100644
--- a/lisp/cvs-status.el
+++ b/lisp/cvs-status.el
@@ -48,7 +48,8 @@
("\M-n" . cvs-status-next)
("\M-p" . cvs-status-prev)
("t" . cvs-status-cvstrees)
- ("T" . cvs-status-trees))
+ ("T" . cvs-status-trees)
+ (">" . cvs-status-checkout))
"CVS-Status' keymap."
:group 'cvs-status
:inherit 'cvs-mode-map)
@@ -464,6 +465,25 @@ Optional prefix ARG chooses between two representations."
;;(sit-for 0)
))))))
+(defun-cvs-mode (cvs-status-checkout . NOARGS) (dir)
+ "Run cvs-checkout against the tag under the point.
+The files are stored to DIR."
+ (interactive
+ (let* ((module (cvs-get-module))
+ (branch (cvs-prefix-get 'cvs-branch-prefix))
+ (prompt (format "CVS Checkout Directory for `%s%s': "
+ module
+ (if branch (format "(branch: %s)" branch)
+ ""))))
+ (list
+ (read-directory-name prompt
+ nil default-directory nil))))
+ (let ((modules (cvs-string->strings (cvs-get-module)))
+ (flags (cvs-add-branch-prefix
+ (cvs-flags-query 'cvs-checkout-flags "cvs checkout flags")))
+ (cvs-cvsroot (cvs-get-cvsroot)))
+ (cvs-checkout modules dir flags)))
+
(defun cvs-tree-tags-insert (tags prev)
(when tags
(let* ((tag (car tags))