/[meta-cvs]/meta-cvs/F-233AD6EEE14894A7303F09519A2AB734
ViewVC logotype

Diff of /meta-cvs/F-233AD6EEE14894A7303F09519A2AB734

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.69 by kaz, Sat Oct 5 18:09:48 2002 UTC revision 1.69.2.16 by kaz, Thu Feb 13 07:20:49 2003 UTC
# Line 2  Line 2 
2  ;;; which is distributed under the GNU license.  ;;; which is distributed under the GNU license.
3  ;;; Copyright 2002 Kaz Kylheku  ;;; Copyright 2002 Kaz Kylheku
4    
5    ;; Clear out requires for mcvs-upgrade to work right.
6    (setf *modules* nil)
7    
8  (require "create")  (require "create")
9  (require "checkout")  (require "checkout")
10  (require "grab")  (require "grab")
11  (require "add")  (require "add")
12  (require "remove")  (require "remove")
13  (require "move")  (require "move")
14    (require "link")
15  (require "update")  (require "update")
16  (require "filt")  (require "filt")
17  (require "generic")  (require "generic")
# Line 17  Line 21 
21  (require "purge")  (require "purge")
22  (require "restore")  (require "restore")
23  (require "prop")  (require "prop")
24    (require "watch")
25  (require "split")  (require "split")
26  (require "restart")  (require "restart")
27  (require "error")  (require "error")
# Line 24  Line 29 
29  (require "find-bind")  (require "find-bind")
30  (provide "mcvs-main")  (provide "mcvs-main")
31    
32  (define-option-constant *cvs-options*  (define-option-constant *global-options*
33    (0 arg "H" "help" "Q" "q" "r" "w" "l" "n" "t" "v" "f" "version"    (0 arg "H" "help" "Q" "q" "r" "w" "l" "n" "t" "v" "f" "version"
34           "meta" "metaonly" "nometa" "error-continue" "error-terminate"           "meta" "metaonly" "nometa" "error-continue" "error-terminate"
35           "debug")           "debug")
36    (1 arg "T" "e" "d" "r" "z" "s" "i"))    (1 arg "T" "e" "d" "r" "z" "s" "i" "up"))
37    
38  (define-option-constant *help-options*)  (define-option-constant *help-options*)
39    
# Line 44  Line 49 
49    (0 arg "f")    (0 arg "f")
50    (1 arg "r" "D" "d" "k" "j"))    (1 arg "r" "D" "d" "k" "j"))
51    
52    (define-option-constant *export-options*
53      (0 arg "f")
54      (1 arg "r" "D" "d" "k"))
55    
56  (define-option-constant *add-options*  (define-option-constant *add-options*
57    (0 arg "R")    (0 arg "R")
58    (1 arg "k" "m"))    (1 arg "k" "m"))
# Line 52  Line 61 
61    (0 arg "R"))    (0 arg "R"))
62    
63  (define-option-constant *update-options*  (define-option-constant *update-options*
64    (0 arg "A" "f" "p")    (0 arg "A" "C" "f" "p")
65    (1 arg "k" "r" "D" "j" "I" "W"))    (1 arg "k" "r" "D" "j" "I" "W"))
66    
67  (define-option-constant *switch-options*  (define-option-constant *switch-options*
# Line 95  Line 104 
104    (1 arg "r" "D"))    (1 arg "r" "D"))
105    
106  (define-option-constant *move-options*)  (define-option-constant *move-options*)
107    (define-option-constant *link-options*)
108  (define-option-constant *convert-options*)  (define-option-constant *convert-options*)
109  (define-option-constant *branch-options*)  (define-option-constant *branch-options*)
110  (define-option-constant *merge-options*)  
111  (define-option-constant *remerge-options*)  (define-option-constant *merge-options*
112      (1 arg "k"))
113    
114    (define-option-constant *remerge-options*
115      (1 arg "k"))
116    
117  (define-option-constant *list-branches-options*)  (define-option-constant *list-branches-options*)
118  (define-option-constant *remap-options*)  (define-option-constant *remap-options*)
119  (define-option-constant *purge-options*)  (define-option-constant *purge-options*)
# Line 108  Line 123 
123    (1 arg "set" "clear" "remove")    (1 arg "set" "clear" "remove")
124    (2 arg "value"))    (2 arg "value"))
125    
126    (define-option-constant *watch-options*
127      (0 arg "on" "off")
128      (1 arg "add" "remove"))
129    
130    (define-option-constant *watchers-options*)
131    (define-option-constant *edit-options*)
132    (define-option-constant *unedit-options*)
133    (define-option-constant *editors-options*)
134    
135  (defun mcvs-help (global-options command-options args)  (defun mcvs-help (global-options command-options args)
136    (declare (special *usage* *mcvs-command-table*)    (declare (special *usage* *mcvs-command-table*)
137             (ignore global-options command-options))             (ignore global-options command-options))
# Line 139  Line 163 
163     ("grab" ,#'mcvs-grab-wrapper ,*grab-help* ,*grab-options*)     ("grab" ,#'mcvs-grab-wrapper ,*grab-help* ,*grab-options*)
164     ("checkout" ,#'mcvs-checkout-wrapper ,*checkout-help* ,*checkout-options*)     ("checkout" ,#'mcvs-checkout-wrapper ,*checkout-help* ,*checkout-options*)
165     ("co" ,#'mcvs-checkout-wrapper ,*checkout-help* ,*checkout-options*)     ("co" ,#'mcvs-checkout-wrapper ,*checkout-help* ,*checkout-options*)
166       ("export" ,#'mcvs-export-wrapper ,*export-help* ,*export-options*)
167       ("ex" ,#'mcvs-export-wrapper ,*export-help* ,*export-options*)
168     ("add" ,#'mcvs-add-wrapper ,*add-help* ,*add-options*)     ("add" ,#'mcvs-add-wrapper ,*add-help* ,*add-options*)
169     ("remove" ,#'mcvs-remove-wrapper ,*remove-help* ,*remove-options*)     ("remove" ,#'mcvs-remove-wrapper ,*remove-help* ,*remove-options*)
170     ("rm" ,#'mcvs-remove-wrapper ,*remove-help* ,*remove-options*)     ("rm" ,#'mcvs-remove-wrapper ,*remove-help* ,*remove-options*)
171     ("move" ,#'mcvs-move-wrapper nil ,*move-options*)     ("move" ,#'mcvs-move-wrapper ,*move-help* ,*move-options*)
172     ("mv" ,#'mcvs-move-wrapper nil ,*move-options*)     ("mv" ,#'mcvs-move-wrapper ,*move-help* ,*move-options*)
173       ("link" ,#'mcvs-link-wrapper ,*link-help* ,*link-options*)
174       ("ln" ,#'mcvs-link-wrapper ,*link-help* ,*link-options*)
175     ("update" ,#'mcvs-update-wrapper nil ,*update-options*)     ("update" ,#'mcvs-update-wrapper nil ,*update-options*)
176     ("up" ,#'mcvs-update-wrapper nil ,*update-options*)     ("up" ,#'mcvs-update-wrapper nil ,*update-options*)
177     ("commit" ,#'mcvs-commit-wrapper nil ,*commit-options*)     ("commit" ,#'mcvs-commit-wrapper nil ,*commit-options*)
# Line 157  Line 185 
185     ("filt" ,#'mcvs-filt-wrapper nil ,*filt-options*)     ("filt" ,#'mcvs-filt-wrapper nil ,*filt-options*)
186     ("fi" ,#'mcvs-filt-wrapper nil ,*filt-options*)     ("fi" ,#'mcvs-filt-wrapper nil ,*filt-options*)
187     ("convert" ,#'mcvs-convert-wrapper nil ,*convert-options*)     ("convert" ,#'mcvs-convert-wrapper nil ,*convert-options*)
188     ("branch" ,#'mcvs-branch-wrapper nil ,*branch-options*)     ("branch" ,#'mcvs-branch-wrapper ,*branch-help* ,*branch-options*)
189     ("switch" ,#'mcvs-switch-wrapper nil ,*switch-options*)     ("switch" ,#'mcvs-switch-wrapper nil ,*switch-options*)
190     ("sw" ,#'mcvs-switch-wrapper nil ,*switch-options*)     ("sw" ,#'mcvs-switch-wrapper nil ,*switch-options*)
191     ("merge" ,#'mcvs-merge-wrapper nil ,*merge-options*)     ("merge" ,#'mcvs-merge-wrapper nil ,*merge-options*)
# Line 167  Line 195 
195     ("purge" ,#'mcvs-purge-wrapper nil ,*purge-options*)     ("purge" ,#'mcvs-purge-wrapper nil ,*purge-options*)
196     ("restore" ,#'mcvs-restore-wrapper nil ,*restore-options*)     ("restore" ,#'mcvs-restore-wrapper nil ,*restore-options*)
197     ("remap" ,#'mcvs-remap-wrapper nil ,*remap-options*)     ("remap" ,#'mcvs-remap-wrapper nil ,*remap-options*)
198     ("prop" ,#'mcvs-prop-wrapper nil ,*prop-options*)))     ("prop" ,#'mcvs-prop-wrapper nil ,*prop-options*)
199       ("watch" ,#'mcvs-watch-wrapper nil ,*watch-options*)
200       ("watchers" ,#'mcvs-watchers-wrapper nil ,*watchers-options*)
201       ("edit" ,#'mcvs-edit-wrapper nil ,*edit-options*)
202       ("unedit" ,#'mcvs-unedit-wrapper nil ,*unedit-options*)
203       ("editors" ,#'mcvs-editors-wrapper nil ,*editors-options*)))
204    
205  (defconstant *usage*  (defconstant *usage*
206  "Meta-CVS command syntax:  "Meta-CVS command syntax:
# Line 180  Global options: Line 213  Global options:
213                       help specific to that command is printed instead.                       help specific to that command is printed instead.
214    -Q                 Very quiet, generate output only for serious problems. (*)    -Q                 Very quiet, generate output only for serious problems. (*)
215    -q                 Somewhat quiet, some informational messages suppresed. (*)    -q                 Somewhat quiet, some informational messages suppresed. (*)
216      -n                 Dry run; do not modify filesystem. (*)
217    --debug            Verbose debug output; -Q and -q are ignored but still    --debug            Verbose debug output; -Q and -q are ignored but still
218                       passed to CVS.                       passed to CVS.
219    -r                 Make working files read-only. (@)    -r                 Make working files read-only. (@)
# Line 214  Commands: Line 248  Commands:
248    grab               Take a snapshot of an external source tree, such    grab               Take a snapshot of an external source tree, such
249                       as a third-party release, and incorporate it into                       as a third-party release, and incorporate it into
250                       the working copy. Tries to discover file moves.                       the working copy. Tries to discover file moves.
251    checkout (co)      Retrieve a Meta-CVS project from CVS and build    checkout (co)      Retrieve a Meta-CVS project from the repository to
252                         create a working copy.
253      export (ex)        Retrieve a Meta-CVS project without creating a
254                       working copy.                       working copy.
255    add                Place files (or directories with add -R) under    add                Place files (or directories with add -R) under
256                       version control.                       version control.
257    remove (rm)        Remove files or directories.    remove (rm)        Remove files or directories.
258    move (mv)          Rename files and directories.    move (mv)          Rename files and directories.
259      link (ln)          Create a versioned symbolic link.
260    update (up)        Incorporate latest changes from repository into    update (up)        Incorporate latest changes from repository into
261                       working copy.                       working copy.
262    commit (ci)        Incorporate outstanding changes in the working copy    commit (ci)        Incorporate outstanding changes in the working copy
# Line 255  Commands: Line 292  Commands:
292                       directory under cryptic names.                       directory under cryptic names.
293    prop               Manipulate properties.    prop               Manipulate properties.
294                         prop --set <bool-prop-name> [ files ... ]                         prop --set <bool-prop-name> [ files ... ]
295                         prop --clear <bool-prop-name> [ files ... ]                         prop --clear <bool-prop-name> [ files ... ]
296                         prop --value <prop-name> <new-value> [ files ... ]                         prop --value <prop-name> <new-value> [ files ... ]
297                         prop --remove <prop-name> [ files ... ]                         prop --remove <prop-name> [ files ... ]
298                       The ``exec'' property represents the execute permission                       The ``exec'' property represents the execute permission
299                       of a file.  More than one --set, --clear, --value                       of a file.  More than one --set, --clear, --value
300                       or --remove may be specified before the files.                       or --remove may be specified before the files.
301      watch              Manipulate per-file CVS watch settings.
302                           watch --on [ files ... ]
303                           watch --off [ files ... ]
304                           watch --add <action> [ files ... ]
305                           watch --remove <action> [ files ... ]
306      watchers           See who is watching files.
307      edit               Indicate the intent to edit a watched file.
308      unedit             Retract the indication signaled by edit.
309      editors            See who is editing files.
310    convert            Convert a CVS module to a Meta-CVS project. This requires    convert            Convert a CVS module to a Meta-CVS project. This requires
311                       filesystem-level access to the repository. This is                       filesystem-level access to the repository. This is
312                       currently an experimental command that is known not                       currently an experimental command that is known not
313                       to work 100%.")                       to work 100%.")
314    
 (defvar *options*)  
 (defvar *args*)  
   
315  (defun mcvs-execute (args)  (defun mcvs-execute (args)
316    (handler-bind ((error #'mcvs-error-handler))    (handler-bind ((error #'mcvs-error-handler))
317      (multiple-value-bind (global-options global-args)      (multiple-value-bind (global-options global-args)
318                           (parse-opt args *cvs-options*)                           (parse-opt args *global-options*)
319        (setf global-options (filter-global-options global-options))        (setf global-options (filter-global-options global-options))
320    
321        (find-bind (:test #'string= :key #'first)        (when *print-usage*
322                   ((help-long "help") (help "H") (quiet "q")          (terpri)
323                    (very-quiet "Q") (version "v") (version-long "version")          (write-line *usage*)
324                    (editor "e") (interpret-file "i"))          (terpri)
325                   global-options          (throw 'mcvs-terminate nil))
         (setf *args* global-args)  
         (setf *options* global-options)  
         (when (or help-long help)  
           (terpri)  
           (write-line *usage*)  
           (terpri)  
           (throw 'mcvs-terminate nil))  
         (when (or version version-long)  
           (let* ((vers (split-words "$Name$" "$:- "))  
                  (major (third vers))  
                  (minor (fourth vers)))  
             (if (and major minor)  
               (format t "Meta-CVS version ~a.~a (c) 2002 Kaz Kylheku~%"  
                       major minor)  
               (format t "Meta-CVS unknown version (c) 2002 Kaz Kylheku~%"))  
             (throw 'mcvs-terminate nil)))  
         (when editor  
           (setf *editor* (second editor)))  
         (cond  
           (very-quiet (setf *mcvs-chatter-level* *mcvs-silent*))  
           (quiet (setf *mcvs-chatter-level* *mcvs-terse*)))  
         (when interpret-file  
           (load (second interpret-file))  
           (throw 'mcvs-terminate nil)))  
326    
327        (when (not (first global-args))        (when (not (first global-args))
328          (write-line "Meta-CVS requires a command argument.")          (write-line "Meta-CVS requires a command argument.")

Legend:
Removed from v.1.69  
changed lines
  Added in v.1.69.2.16

  ViewVC Help
Powered by ViewVC 1.1.5