Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to mcvs-1-1-98:||(view) (annotate)|
More renaming to get rid of mcvs- prefix. * code/chatter.lisp (*mcvs-debug*): Renamed to *chatter-debug*. (*mcvs-info*, *mcvs-terse*, *mcvs-silent*): Similarly. (*mcvs-chatter-level*): Renamed to *chatter-level*. * code/unix.lisp (*mcvs-editor*): Renamed to *edit-program*. * code/types.lisp (*mcvs-types-name*): Renamed to *types-file*. (*mcvs-types*): Renamed to *types-path*. (*mcvs-new-types*): Renamed to *types-new-path*. * code/mapping.lisp (*mcvs-dir*): Renamed to *admin-dir*. (*mcvs-map-name*): Renamed to *map-file*. (*mcvs-map-local-name*): Renamed to *map-local-file*. (*mcvs-displaced-name*): Renamed to *displaced-file*. (*mcvs-map*): Renamed to *map-path*. (*mcvs-map-local*): Renamed to *map-local-path*. (*mcvs-displaced*): Renamed to *displaced-path*.
Getting rid of mcvs- prefixes. * code/package.lisp (defpackage): shadow the merge symbol. * code/purge.lisp (mcvs-purge): renamed to purge (mcvs-purge-wrapper): renamed to purge-wrapper * code/restore.lisp (mcvs-restore): renamed to restore (mcvs-restore-wrapper): renamed to restore-wrapper * code/update.lisp (mcvs-update): renamed to update (mcvs-update-wrapper): renamed to update-wrapper * code/main.lisp (mcvs-help): renamed to help (*mcvs-command-table*): renamed to *command-table* (mcvs-terminate catch): renamed to terminate. * code/execute.lisp (mcvs-execute): renamed to execute * code/move.lisp (mcvs-move): renamed to move (mcvs-move-wrapper): renamed to move-wrapper * code/grab.lisp (mcvs-grab): renamed to grab (mcvs-grab-wrapper): renamed to grab-wrapper * code/prop.lisp (mcvs-prop): renamed to prop (mcvs-prop-wrapper): renamed to prop-wrapper * code/filt.lisp (mcvs-filt-loop): renamed to filt-loop (mcvs-filt): renamed to filt (mcvs-remote-filt): renamed to remote-filt (mcvs-filt-wrapper): renamed to filt-wrapper (mcvs-remote-filt-wrapper): renamed to remote-filt-wrapper * code/branch.lisp (mcvs-branch): renamed to branch (mcvs-branch-wrapper): renamed to branch-wrapper (mcvs-merge): renamed to merge (mcvs-list-branches): renamed to list-branches (mcvs-merge-wrapper): renamed to merge-wrapper (mcvs-remerge-wrapper): renamed to remerge-wrapper (mcvs-list-branches-wrapper): renamed to list-branches-wrapper (mcvs-switch-wrapper): renamed to switch-wrapper * code/link.lisp (mcvs-link): renamed to ln (mcvs-link-wrapper): renamed to link-wrapper * code/watch.lisp (mcvs-watch): renamed to watch (mcvs-watch-wrapper): renamed to watch-wrapper * code/add.lisp (mcvs-add): renamed to add (mcvs-add-wrapper): renamed to add-wrapper * code/remove.lisp (mcvs-remove): renamed to rm (mcvs-remove-wrapper): renamed to remove-wrapper * code/convert.lisp (mcvs-convert): renamed to convert (mcvs-convert-wrapper): renamed to convert-wrapper * code/error.lisp (mcvs-terminate): renamed to terminate (mcvs-error-handler): renamed to error-handler (*mcvs-error-treatment*): renamed to *error-treatment* (*mcvs-errors-occured-p*): renamed to *errors-occured-p* * code/checkout.lisp (mcvs-checkout): renamed to checkout (mcvs-checkout-wrapper): renamed to checkout-wrapper (mcvs-export-wrapper): renamed to export-wrapper * code/generic.lisp (mcvs-generic): renamed to generic (mcvs-commit-wrapper): renamed to commit-wrapper (mcvs-diff-wrapper): renamed to diff-wrapper (mcvs-tag-wrapper): renamed to tag-wrapper (mcvs-log-wrapper): renamed to log-wrapper (mcvs-status-wrapper): renamed to status-wrapper (mcvs-annotate-wrapper): renamed to annotate-wrapper (mcvs-watchers-wrapper): renamed to watchers-wrapper (mcvs-edit-wrapper): renamed to edit-wrapper (mcvs-unedit-wrapper): renamed to unedit-wrapper (mcvs-editors-wrapper): renamed to editors-wrapper (mcvs-sync-to-wrapper): renamed to sync-to-wrapper (mcvs-sync-from-wrapper): renamed to sync-from-wrapper * code/create.lisp (mcvs-create): renamed to create (mcvs-create-wrapper): renamed to create-wrapper * code/remap.lisp (mcvs-remap): renamed to remap (mcvs-remap-wrapper): renamed to remap-wrapper * code/mapping.lisp (mcvs-locate): renamed to locate
Stylistic change. * code/add.lisp: Change in-package calls not to use the all-caps "META-CVS" string string, but rather the :meta-cvs keyword. * code/branch.lisp: Likewise. * code/chatter.lisp: Likewise. * code/checkout.lisp: Likewise. * code/clisp-unix.lisp: Likewise. * code/cmucl-unix.lisp: Likewise. * code/convert.lisp: Likewise. * code/create.lisp: Likewise. * code/dirwalk.lisp: Likewise. * code/error.lisp: Likewise. * code/execute.lisp: Likewise. * code/filt.lisp: Likewise. * code/find-bind.lisp: Likewise. * code/generic.lisp: Likewise. * code/grab.lisp: Likewise. * code/link.lisp: Likewise. * code/main.lisp: Likewise. * code/mapping.lisp: Likewise. * code/memoize.lisp: Likewise. * code/move.lisp: Likewise. * code/multi-hash.lisp: Likewise. * code/options.lisp: Likewise. * code/paths.lisp: Likewise. * code/print.lisp: Likewise. * code/prop.lisp: Likewise. * code/purge.lisp: Likewise. * code/rcs-utils.lisp: Likewise. * code/remap.lisp: Likewise. * code/remove.lisp: Likewise. * code/restart.lisp: Likewise. * code/restore.lisp: Likewise. * code/seqfuncs.lisp: Likewise. * code/slot-refs.lisp: Likewise. * code/split.lisp: Likewise. * code/sync.lisp: Likewise. * code/types.lisp: Likewise. * code/unix.lisp: Likewise. * code/update.lisp: Likewise. * code/watch.lisp: Likewise.
Revamped loading system. Got rid of require/provide in all Lisp source files. * code/mcvs.lisp: New file. Responsible for compiling and loading everything in the right order. * code/mcvs-main.lisp: File renamed to main.lisp. * code/mcvs-package.lisp: File renamed to package.lisp. * code/system.lisp: File removed.
Merging from mcvs-1-0-branch. Improved error handling again in a flash of sanity. The whole idea of ``bail'' as a restart is gone. All code which must perform some complex cleanup action does so as part of normal unwinding. And so termination becomes safe. * code/update.lisp (mcvs-update): Change bail restart to continue. * code/mcvs-main.lisp (*global-options*): Remove "error-bail". (*usage*): Remove description of --error-bail. (mcvs-execute): Bind *mcvs-error-treatment* to :terminate rather than :bail if controlling TTY cannot be opened. * code/move.lisp (mcvs-move): Change "Undoing move" error message to "Undoing changes to map". * code/add.lisp (mcvs-add): Get rid of bail restart; move cleanup code into unwind-protect block. * code/error.lisp (*mcvs-error-treatment*): Touch up docstring. (mcvs-error-handler): Remove anything having to do with :bail. Change description of `T' command to suggest that it is safe. * code/options.lisp (filter-mcvs-options): Remove handling of "error-bail" option. * code/mapping.lisp (mapping-update): Get rid of outermost restart-case, which had just a bail restart. Replace it with unwind-protect block which does exactly the same restoration.
Merging from mcvs-1-0-branch. * code/mapping.lisp (mapping-read): Provide a restart for file errors, which lets the user interactively substitute an empty map if the file can't be read. This is intended to handle the case when MCVS/MAP is missing; for example, the user updated to a sticky date for which no revision of the MAP exists. The effect of continuing will be that all files will disappear. (mapping-synchronize): New :direction key parameter, passed down to synchronize-filed. The new :no-sync return value from synchronize-files is handled. (mapping-update): Select the :right direction for synchronizing moves, adds or rollbacks. Revamped the synchronization logic. Synchronization now happens in a specific direction. For example, if we are doing a diff, we just need to push changes from the tree to the MCVS directory, not the other way around. Or: before an update or commit, we push from the tree to MCVS, then after the update, in the other direction. * code/update.lisp (mcvs-update): The before update is done in the :left direction only, and the after update in the :right. * code/move.lisp (mcvs-move): The just-in-case sync is done in the :left direction only. * code/link.lisp (mcvs-link): Likewise. * code/remove.lisp (mcvs-remove): Likewise. * code/add.lisp (mcvs-add): Get rid of mapping-synchronize call; it's completely unnecessary, since the new files are not even in the MAP-LOCAL, and the add logic explicitly links them into the MCVS directory. * code/generic.lisp (mcvs-generic): New keyword parameter, need-sync-before. Before-synchronization done in :left direction, after-synchronization in :right direction. Before-synchronization is now not done by default; need-sync-before must be specified. (mcvs-commit-wrapper): Specify before and after sync. (mcvs-diff-wrapper, mcvs-status-wrapper, mcvs-edit-wrapper): Explicitly specify before sync. (mcvs-tag-wrapper, mcvs-annotate-wrapper): Implicitly specify no sync. (mcvs-unedit-wrapper): Add before sync. * code/sync.lisp (synchronize-files): New key parameter :direction, values can be :left, :right or :either. Default is :either. If the value is :left or :right, then a sync is done only in that direction, otherwise the value :no-sync is returned. Behavior change: if the left file is missing (F- file in MCVS directory) it is not re-created, but rather :no-sync is returned. Also, if both files exist, have the same timestamp, and are distinct objects, if the direction is :left or :right, then the appropriate restart is automatically chosen. So this will do the right thing on filesystems where link() is performed by copying, without bothering the user with the error.
Merging from mcvs-1-0-branch.
* code/mcvs-package.lisp: New file, defines META-CVS package. * code/purge.lisp: Put all symbols in new package. * code/restore.lisp: Likewise. * code/paths.lisp: Likewise. * code/install.sh: Likewise. * code/restart.lisp: Likewise. * code/update.lisp: Likewise. * code/move.lisp: Likewise. * code/grab.lisp: Likewise. * code/unix.lisp: Likewise. * code/slot-refs.lisp: Likewise. * code/prop.lisp: Likewise. * code/multi-hash.lisp: Likewise. * code/rcs-utils.lisp: Likewise. * code/branch.lisp: Likewise. * code/find-bind.lisp: Likewise. * code/execute.lisp: Likewise. * code/link.lisp: Likewise. * code/split.lisp: Likewise. * code/watch.lisp: Likewise. * code/clisp-unix.lisp: Likewise. * code/add.lisp: Likewise. * code/chatter.lisp: Likewise. * code/print.lisp: Likewise. * code/types.lisp: Likewise. * code/remove.lisp: Likewise. * code/convert.lisp: Likewise. * code/error.lisp: Likewise. * code/options.lisp: Likewise. * code/dirwalk.lisp: Likewise. * code/checkout.lisp: Likewise. * code/generic.lisp: Likewise. * code/sync.lisp: Likewise. * code/create.lisp: Likewise. * code/memoize.lisp: Likewise. * code/seqfuncs.lisp: Likewise. * code/cmucl-unix.lisp: Likewise. * code/remap.lisp: Likewise. * code/mapping.lisp: Put symbols in new package. Replace use of CLISP specific substring function with subseq. * code/filt.lisp: Likewise. * code/mcvs-main.lisp: Put symbols in new package. The mcvs function is renamed to main. * code/install.sh: Generate mcvs script that uses qualified name of new startup functiont to start the software.
Merging from mcvs-1-0 branch. Add help to move command. * code/mcvs-main.lisp (*mcvs-command-table*): Added *move-help*. * code/move.lisp (*mcvs-help*): New constant.
* code/move.lisp (move-guts, mcvs-move): Canonicalize the destination path in mcvs-move, rather than mcvs-guts.
* code/move.lisp (move-guts): If an error occurs for each source in a multiple move, and the user skips each source, generate the error that all sources were skipped.
* code/move.lisp (source-check): Generate error if a move of the sandbox root is attempted.
* code/mapping.lisp (equal-filemaps): Repair completely broken function. * code/move.lisp (mcvs-move): Added little hack for turning no-op moves into errors. Without this the behavior is confusing, since the program appears to do nothing.
Error messages no longer specify prefixes like "mcvs:" or "mcvs-remove:". When no restarts are available, the error handler now adds the "mcvs:" prefix when dumping the error text to the standard error stream, and also adds a terminating newline. The inability to write to the MAP file is converted to a more informative error message. New --debug option is supported to set the chatter level to 3.
* move.lisp (move-guts): When moving multiple sources to a target directory, provide a restart to skip a bad source.
Merging from partial-sandbox-branch.
Wording change in error message.
Additional fix: check for paths in MCVS/ area.
Error checking added to mcvs move: verifies that all sources exist and are known to Meta-CVS. * move.lisp (source-check): New function. (simple-rename, simple-move-to-dir): Use new function.
Fix trailing slash bug in mcvs mv. * move.lisp (simple-move-to-dir): Canonicalize path after catenating destination and file base name. This nukes a double slash if we move to a name with a trailing slash. (move-guts): Treat a destination name that has a trailing slash as a directory, unless it exists already as a non-directory.
* 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.
* move.lisp (mcvs-move): If the mapping-update operation returns nil, or terminates by a non-local jump, restore the filemap. * mapping.lisp (mapping-update): When returning normally, return t. When returning after doing a rollback, return nil.
* mapping.lisp (mapping-update): When moving files, ensure that the target is unlinked if it exists. * move.lisp (simple-rename): No longer do target unlinking here. Also bugfix: it wasn't handling renames of directories containing just one file.
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.
* move.lisp (move-guts): test the actual filesystem as well as the map for existence of a directory or file. This makes the move operation behave better. Files can be moved to an existing directory that is not known to MCVS, and a file can properly clobber a target file that is not known to MCVS. * clisp-linux.lisp (directory-p, regular-p, symlink-p): define methods for these generic functions for a NIL argument, such that they return NIL.
* 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.
First cut at pass-through of CVS options.
Some argument passing cleanup.
Moving closer toward delivery.
A bit of refactoring. Added mcvs-move.
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|