Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to mcvs-0-13:||(view) (annotate)|
Adding mcvs remap command. * dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default behavior is now preorder (visit directory before its entries). A keyword is provided to select the old postorder behavior. A catch is provided in dirwalk-fi that allows the caller to skip processing the currently traversed directory. The for-each-* macros provide a local function called (skip) to do this. (delete-recursive): This function depends on postorder behavior in for-each-file-info, so it explicitly selects it now. * mcvs.lisp (*remap-options*): New constant. (*mcvs-command-table*): Add entry for new function. (*usage*): Describes new function. * remap.lisp: New file. (mcvs-remap, mcvs-remap-wrapper): New functions.
Help text now indicates that sw is an abbreviation for switch.
New switch command added, plus sticky tag related bugfixes and enhancement of mcvs list-branches. mcvs-main.lisp (*switch-options*): New constant. (*mcvs-command-table*): New entries. (*usage*): New help text. branch.lisp (what-branch-are-we-on): Function renamed to what-tag-are-we-on. Tests the first letter which is T or N; if it is not T, then it's not a branch tag. If there is a tag, it returns two values; the second value is NIL if it is not a branch tag, T otherwise. (mcvs-merge): Modified to use what-tag-are-we-on. (mcvs-list-branches): Show additional information about the current sticky tag. (mcvs-merge-wrapper): Fix wrong parenthesization introduced earlier today. (mcvs-switch-wrapper): New function.
New command to list branches. * mcvs-main.lisp (*list-branches-options*): New constant. (*mcvs-command-table*): Entries for new command added. (*usage*): Help text added. * branch.lisp (mcvs-list-branches, mcvs-list-branches-wrapper): New functions.
Add help for remerge.
Implemented remerge command; redo a merge without moving around any tags. * branch.lisp (mcvs-merge): New keyword parameter remerge-p to indicate that a re-merge should be done, plus logic for doing so. (mcvs-remerge-wrapper): New function. * mcvs-main.lisp (*remerge-options*): New constant. (*mcvs-command-table*): New entry for remerge command.
First cut at implementing more automated branching and merging. * mcvs-main.lisp (*branch-options*, *merge-options*): New constants. (*mcvs-command-table*): New entries for branch and merge commands. (*usage*): New help text. * branch.lisp: New file. (*branch-char*): New constant. (tags-from-cvs-log, what-branch-are-we-on, branch-tag-check, mcvs-branch, mcvs-branch-wrapper, cvs-make-or-advance-tag, mcvs-merge, mcvs-merge-wrapper): New functions.
Update takes file arguments now. * update.lisp (mcvs-update): If filename arguments are given, then just call mcvs-generic to do the work, but suppress the operation on meta files. If no filename arguments are given, then update everything. If the -p option is present, no synchronization is needed, before or after. (mcvs-update-wrapper): Pass command arguments down to mcvs-update. * mcvs-main.lisp (*update-options*): Add "p" option. * generic.lisp (mcvs-generic): New keyword parameter need-sync-after, a generalized boolean which can tell the function to do a mapping-synchronize after executing the CVS command.
The filt command takes arguments to select alternate revision of map. * mcvs-main.lisp (*filt-options*): New constant. (*mcvs-command-table*): Updated with new options. (mcvs-debug-shell): Restart name changed during debugging of filt changes. * filt.lisp (filt-select-map): New function. Loads either the local mapping, or retrieves an alternate mapping from CVS based on command line options. (mcvs-filt): Use filt-select-map rather than mapping-read.
* mcvs-main.lisp (*cvs-options*): Added "error-terminate" and "error-continue". (*usage*): Update and reformat help text. (mcvs-execute): Process "error-terminate" and "error-continue" options.
Support for -q, -Q and -e global options. * posix.lisp (*editor*): New special variable. (edit-file): Check *editor* variable; if not nil, use it. * mcvs-main.lisp (*usage*): Update help text. (mcvs-execute): Set *mcvs-chatter-level* according to -q or -Q. Set *editor* if -e is specified.
* mcvs-main.lisp (*cvs-options*): Remove obsolete "a". (*cvs-options-arg*): Add missing "r". (*usage*): New constant, help text. (mcvs-execute): Process help and version command line options.
Commit is handled through mcvs-generic, so it can take filename arguments, and honor --nometa. * commit.lisp: File removed. (mcvs-commit): Function removed. (mcvs-commit-wrapper): Moved to generic.lisp. * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp, changed to invoke mcvs-generic. (mcvs-generic): Only add TYPES file to list if it actually exists.
New --nometa command line option. * mcvs-main.lisp (*cvs-options*): Add "nometa" to list. (mcvs-execute): Filter global options to recognize Meta-CVS-specific ones. * options.lisp (*nometa-option*): New special variable. (filter-global-options): New function. * generic.lisp (mcvs-generic): Honor *nometa-option* special variable.
* mcvs-main.lisp (*add-options*): Support -R option for add. Thus, recursive add works now.
*** empty log message ***
* error.lisp (*mcvs-errors-occured-p*): New special variable. (mcvs-error-handler): Set *mcvs-errors-occured-p* to T. * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into account in computing termination status.
Added a much improved error handling routine in anticipation of better use of restarts. * error.lisp: New file (restart-destructure): New macro. (*mcvs-error-treatment*): Special variable, moved here from mcvs-main. (mcvs-error-handler): New function. * mcvs-main.lisp (mcvs-top-error-handler): Function removed. (mcvs-execute): Bind error to new mcvs-error-handler instad of mcvs-top-error-handler.
* mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation for status command added.
Hooking conversion tool into command structure. * mcvs-main.lisp (*convert-options*): New constant. (*mcvs-command-table*): New entry for mcvs-convert-wrapper. * convert.lisp (mcvs-convert): Fix reference to nonexistent variable. (mcvs-convert-wrapper): New function.
* sync.lisp (synchronize-files): Return :dir symbol when either argument is a directory. * mapping.lisp (mapping-synchronize): Chatter output messages are shorter. Handles :dir return value from synchronize-files. (mapping-update): New sanity checks for moved and added files, to avoid clobbering local files. Removed redundant call to ensure-directories-exit in move logic, because synchronize-files will do it anyway. Chatter messages reordered to occur before their corresponding action is done. * mcvs-main.lisp (*mcvs-error-treatment*): Special variable can have new domain value, namely :decline. (mcvs-top-error-handler): Print error message when terminating non-restartable error. Handle new :decline treatment by simply returning. (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline so that errors are caught by debugger.
Oops, fix wrong options in command table.
Added status, log and annotate. * mcvs-main.lisp: (*log-options*, *status-options*, *annotate-options*): New constants. (*mcvs-command-table*): Add new entries. * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper, mcvs-annotate-wrapper): New functions.
Added tag command. * diff.lisp: File renamed to generic.lisp. (mcvs-diff): Function renamed to mcvs-generic. * generic.lisp (mcvs-generic): Function no longer dedicated to diffing only; takes CVS command to execute as an argument, also takes arguments and files as separate lists. (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly. (mcvs-tag-wrapper): New function, uses mcvs-generic to implement tag command. * mcvs-main.lisp (*tag-options*): New constant. (*mcvs-command-table*): New entry for tag command.
* mcvs-main.lisp (mcvs): Use CLISP's exit function correctly to establish proper termination status.
Forgot a few important diff options.
* mcvs-main.lisp (mcvs-execute): Parse command-specific options properly based on knowledge of each command's set of options. (parse-args): Function removed.
* options.lisp (parse-opt): When multiple options characters are bunched up into one argument, and one of them other than the last one takes an argument, then the remaining ones are considered to constitute a string which is an argument to that option. For instance -y32 means -y 32, not -y -3 -2, assuming that y is an option that requires an argument. Top level handler terminates by non-local exit back to mcvs function, rather than by calling (exit). * mcvs-main.lisp (mcvs-top-error-handler): Restructured to call (throw 'mcvs-exit t). (mcvs-execute): Ensure that NIL is returned by normal exit. (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1) accordingly.
MCVS is being renamed to Meta-CVS.
* move.lisp (simple-move-to-dir): eliminated a bunch of code with the result that mcvs mv now works more like the Unix mv when moving a directory to another directory. * mcvs-main.lisp (mcvs-execute): fix bogus error message when options are given but no command. * README: don't use -z3 in example because this style of specifying an argument to an option doesn't work.
Add "fi" shorthand for "filt".
* add.lisp (mcvs-add): Remove bogus test for NIL or T; allow recursivep to be a generalized boolean variable. This allows mcvs add -R to work properly. * mcvs-main.lisp (*cvs-command-options-arg*): add support for -u parameter, useful in cvs diff.
Added mcvs filt command to decode F- names in text streams.
Added simple top-level error handling mechanism.
First cut at pass-through of CVS options.
Format string fixes.
Adding simple debugging shell.
Added (provide "mcvs-main").
Moving closer toward delivery.
A bit of refactoring. Added mcvs-move.
Adding mcvs-remove operation.
Adding all existing source files.
This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, select a symbolic revision name using the selection box, or choose 'Use Text Field' and enter a numeric revision.
|Powered by ViewVC 1.1.5|