Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to symlink-branch~merged-to-HEAD-0:||(view) (annotate)|
Support for symbolic links added to the mapping module. The format of the map file has changed to accomodate this. The new format of the list entries is (:keyword "id" "path" ...) where the keyword is either :file or :symlink (for now, extensible obviously), "id" is a unique identifier (for regular files, it is their MCVS/F-* name) and "path" is the sandbox path. Other things can follow; for symlinks, there is a string representing the symlink target. Internally, a new data type called mapping-entry is used; this is a struct. So the functions which read and write maps now convert between the struct format and the above format. * code/unix-bindings/unix.lisp (unix-funcs:readlink): New function. * code/unix-bindings/impl.c (impl_readlink): New function. * code/clisp-unix.lisp (readlink-error): New condition. (initialize-instance readlink-error): New method for initialize-instance generic function, specialized for readlink-error. (readlink): New function. * code/mapping.lisp (mapping-entry): New struct, with slots file, id, path and target. (mapping-same-object-p): Renamed to mapping-same-id-p. (mapping-object-lookup, mapping-moved-p): Unused functions removed. (mapping-extract-paths, mapping-lookup, mapping-prefix-lookup, mapping-prefix-matches, mapping-same-path-p, mapping-rename-files, mapping-removed-files): Functions updated to use the new data structure. (mapping-dupe-checks): Rewritten for new data structure, and to use hashes rather than silly sorting. (mapping-convert-old-style-in, mapping-convert-in, mapping-convert-out): New functions. (mapping-read): Handle new and old style representations, handle conversion to internal representation. (mapping-write): Convert to new-style external representation before writing out. (mapping-synchronize): Handle symbolic links. If a link is missing, create it. If it's present but different from what it should be, erase it and re-create it. (mapping-update): Use new data structure. Handle symbolic links. * code/remove.lisp (mcvs-remove): Refer to new function name, mapping-same-id-p.
Merging from partial-sandbox-branch.
Grab no longer synchronizes to recreate deleted files immediately before blowing them away. * grab.lisp (mcvs-grab): Specify :no-sync t when calling mcvs-remove. * remove.lisp (mcvs-remove): Support new no-sync keyword. This tells mcvs-remove that the files being removed from the mapping, don't exist in the sandbox. So it's not necessary to call mapping-synchronize, and mapping-update can be told via :no-delete-removed t not to try to remove deleted files. * mapping.lisp (mapping-update): New no-delete-removed keyword parameter.
* remove.lisp (mcvs-remove): Corrected careless bracketing introduced on 2002-03-15 (1.16) that rendered this function ineffective.
* remove.lisp (mcvs-remove): More detailed error checking. Checks for remove attempts against MCVS/ area, removes of local files not versioned under Meta-CVS, and nonexistent files.
* add.lisp (mcvs-add): Error message changed to tell user to use -R to add directory. * remove.lisp (mcvs-remove): New generalized boolean parameter indicates to do a recursive remove. This is controlled by the -R option which already exists. Behavior changed to not act on directories unless recursion is explicitly requested. (mcvs-remove-wrapper): Extract "R" option, pass down new boolean to mcvs-remove.
* remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
* 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.
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.
First cut at pass-through of CVS options.
Moving closer toward delivery.
A bit of refactoring. Added mcvs-move.
Sort map in mcvs-remove before writing it out. New routines in mapping, in preparation for file deletion.
mcvs-remove: do nothing if no arguments mcvs-update: resynchronize links after CVS update.
Change to some error reporting.
Adding mcvs-remove operation.
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|