Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to symlink-branch:||(view) (annotate)|
* code/add.lisp (mcvs-add): Change to new mapping-entry data structure and handle symbolic links. * code/types.lisp (types-remove-ignores, types-make-cvs-adds): Change to new mapping-entry data structure. * code/mapping.lisp (mapping-generate-name): Renamed to mapping-generate-id. Interface changes slightly. (mapping-extract-kind): New function, factored out from mcvs-generic. (mapping-update): Unlink existing symbolic link before re-linking it. * code/convert.lisp (mcvs-convert): Use new name and interface of mapping-generate-name function. * code/create.lisp (mcvs-create): Likewise. * code/generic.lisp (mcvs-generic): Code to extract :file entries from map factored out to mapping-extract-kind.
* generic.lisp (mcvs-generic): Use new mapping-entry data structure. Filter out mapping entries which are other than of the :file type, so we don't pass to CVS things it doesn't know about, like symbolic links.
* code/generic.lisp (mcvs-generic): Support new keyword, :no-fix-empty-file-list. Specifies that if no files are passed, and the --metaonly option is not present, the CVS command is to be executed without any file arguments. (mcvs-commit-wrapper): Specify :no-fix-empty-file-list t when calling mcvs-generic. Thus commit now has the behavior that when it is passed no file arguments, it does a true global commit.
Merging from partial-sandbox-branch.
* generic.lisp (mcvs-tag-wrapper): This one needs to include meta files by default.
* options.lisp (*nometa-option*): Eliminated rid useless docstring. (*meta-option*): New variable. (*nometa-option*): New variable. (filter-global-options): Clean rewrite using find-bind. * generic.lisp (mcvs-generic): New keyword parameters default-include-meta-files, need-update-after. Implements new logic related to the new options. Performs (mapping-update) if need-update-after is true and metafiles were subject to cvs update. (mcvs-commit-wrapper): Calls mcvs-generic with :default-include-meta-files t. * update.lisp (mcvs-update): No longer overrides the *nometa-option* special variable. Passes :need-update-after t to mcvs-generic. * mcvs-main.lisp (*cvs-options*): New options entered into list.
* generic.lisp (mcvs-generic): Change how empty file argument list is handled. Rather than rewriting it to '(".") we do a proper map-prefix-lookup. Synchronizing and invoking CVS is elided if the resulting list of files to process is empty and the --nometa option is specified.
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.
* generic.lisp (mcvs-generic): Add .cvsignore to the list of metafiles.
* update.lisp (mcvs-update): Changing level of chatter messages. * move.lisp (mcvs-move): Likewise. * add.lisp (mcvs-add): Likewise. * remove.lisp (mcvs-remove): Likewise. * checkout.lisp (mcvs-checkout): Likewise. * generic.lisp (mcvs-generic): Likewise. * import.lisp (mcvs-import): Likewise. * mapping.lisp (mapping-dupe-check): Likewise. (mapping-update): Likewise.
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.
* generic.lisp (mcvs-generic): Make sure TYPES file is included in list of files.
Oops, broken tag command.
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.
Added workaround for operating system argument passing limitations, resembling the Unix xargs utility. Also, trimmed some fat from the basename function. * clisp-linux.lisp: (*argument-limit*): New constant added. (arglist-to-command-string): Function removed. (execute-program): Function removed. (shell-interpreter): New function, wrapper for CLISP's shell function, turns exit status into T (success) or NIL (failure). * diff.lisp (mcvs-diff): Uses execute-program-xargs instead of execute-program. * posix.lisp (basename): Does not canonicalize path name. This turns out to be an unnecessary performance hit in some cases. (arglist-to-command-string): New function. Similar to what was removed from clisp-linux, but this one properly escapes all shell metacharacters. (execute-program): New function, calls shell-interpreter. (execute-program-xargs): New function. Takes two argument lists. Forms one or more command lines by combining the first argument list with one or more pieces of the second argument list, and executes each command. The length of the pieces is determined by the argument passing limit. * dirwalk.lisp (ensure-directories-gone): Add use of canonicalize-path because basename doesn't do it.
Renamed all ``filemap-'' functions to ``mapping-'' prefix. * mapping.lisp (filemap-generate-name, filemap-sort, filemap-extract-paths, filemap-lookup, filemap-prefix-lookup, filemap-prefix-matches, filemap-object-lookup, filemap-same-object-p, filemap-same-path-p, filemap-moved-p, filemap-rename-files, filemap-sane-p): Old names removed. (mapping-generate-name, mapping-sort, mapping-extract-paths, mapping-lookup, mapping-prefix-lookup, mapping-prefix-matches, mapping-object-lookup, mapping-same-object-p, mapping-same-path-p, mapping-moved-p, mapping-rename-files, mapping-sane-p): New names created. (mapping-read, mapping-write, mapping-synchronize, mapping-update): Edit calls to renamed functions. * add.lisp (mcvs-add): Likewise. * diff.lisp (mcvs-diff): Likewise. * filt.lisp (mcvs-filt): Likewise. * import.lisp (mcvs-import): Likewise. * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise. * remove.lisp (mcvs-remove): Likewise.
Factored out repeated code for reading and writing of the MAP and MAP-LOCAL files. * mapping.lisp (mapping-read, mapping-write): New functions. (mapping-synchronize, mapping-update): Use new functions. * move.lisp (mcvs-move): Likewise. * filt.lisp (mcvs-filt): Likewise. * add.lisp (mcvs-add): Likewise. * remove.lisp (mcvs-remove): Likewise. * checkout.lisp (mcvs-checkout): Likewise. * diff.lisp (mcvs-diff): Likewise. * import.lisp (mcvs-import): Likewise.
MCVS is being renamed to Meta-CVS.
mcvs diff includes MAP file now.
First cut at pass-through of CVS options.
Fix minor problem in diff.
Moving closer toward delivery.
A bit of refactoring. Added mcvs-move.
Change to some error reporting.
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|