Parent Directory | Revision Log
|Links to HEAD:||(view) (annotate)|
|Links to mcvs-1-0-branch:||(view) (annotate)|
Fixes to convert command to make it useable. * code/posix.lisp (suffix): Return dir name as additional value. (execute-program-xargs): In the case that there are no variable args passed, the fixed trailing args should still be passed to the command. * code/convert.lisp (remove-attic-component): Rewrite with different semantics. (mcvs-convert): Fix path handling bug whereby basenames instead of full paths were written to MAP file. Don't call rcs to make tags when there are none. Extra tracing to tell user what is going on.
* code/posix.lisp (execute-program-xargs): Fix again: perform all of the split command lines, even if some of them fail. The returned status is a logical AND combination; if all of the subcommands succeeded then it's T, otherwise NIL.
* code/posix.lisp (execute-program-xargs): Bugfix: if program execution fails, then bail out of the entire function, not just the inner loop. Otherwise the program is wrongly run again, on a bogus file list.
* code/posix.lisp: Move some (declaim inline) to the correct location, before the function to be inlined. * code/clisp-unix.lisp: Likewise. * code/cmucl-unix.lisp: Likewise. * code/mapping.lisp: Likewise.
* code/posix.lisp (invoke-editor-on): Honor the CVSEDITOR and VISUAL environment variables, not just EDITOR.
Detect failure to start text editor. * code/posix.lisp (*editor*): Change name to *mcvs-editor*, due to name-clash with a CLISP extension! * code/mcvs-main.lisp: Likewise. * code/types.lisp (types-let-user-edit): Provide an individual restart-case block around the invocation of the text editor, which lets the user re-try the editor.
Compiler warning fix. * code/posix.lisp (*argument-limit*): Constant moved here. * code/clisp-unix.lisp (*argument-limit*): Constant removed. * code/cmucl-unix.lisp (*argument-limit*): Likewise.
* code/posix.lisp (path-prefix-equal): Handle empty strings.
* posix.lisp (execute-program): Function removed. * clisp-linux.lisp (execute-program): Function added. Works in terms of CLISP's run-program function rather than the shell function, thus eliminating the need to build a command string and escape shell characters. * clisp-unix.lisp (excecute-program): Likewise.
* posix.lisp (edit-file): Function renamed to invoke-file-on, because this name clashes with a standard Common Lisp symbol. * types.lisp (types-let-user-edit): Updated to use new name.
* posix.lisp (canonicalize-path): Use concatenate-string instead of format.
* posix.lisp (parse-posix-namestring): Clean rewrite.
Absolute paths resolved against sandbox root. * posix.lisp (path-absolute-p): New function. Predicate to test whether a path is absolute. * mapping.lisp (in-sandbox-root-dir): sandbox-translate-paths function detects absolute path, and treats it as relative to sandbox root.
* posix.lisp (parse-posix-namestring): New function. Converts POSIX path to CL Path object. * rcsparse.lisp: New file (rcs-admin, rcs-file, rcs-token, rcs-token-stream): New structs. (rcs-peek-token, rcs-read-token): New generic functions. (rcs-extract-id-sym-or-num, rcs-extract-string, rcs-match-optional, rcs-match-token, rcs-parse, rcs-parse-admin, rcs-special-p): New functions. * convert.lisp (classify-tags): Work with association list rather than raw strings. (mcvs-convert): Use rcs-parse to extract tags. Fix call to mapping-generate name. Use parse-posix-namestring when opening version file. Generate informative chatter.
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.
Support for filetypes in import. * posix.lisp (suffix): Separator character parameter is optional; multiple occurences of character lead to one big suffix like ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but a hidden file like ".exrc". (edit-file): New function, brings up text editor for specified file. * clisp-linux.lisp (env-lookup): New function for environment variable lookup. * types.lisp: New source file. (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename. (types-read, types-write, types-sanity-check, types-to-import-wrapper-args): New functions. * import.lisp (*types-comments*): New constant. (mcvs-import): Restructured to build up list of file suffixes, allow the user to edit the file which determines how they are treated, filter out ignored files and pass -W options to cvs import to handle the rest. Failed cvs import is turned into restartable condition. * mapping.lisp (mapping-generate-name): Takes a suffix parameter. The F-files now carry a suffix obtained from the original file, because I have concluded that this was the only reasonable way to integrate with CVS.
Adding some restarts around cvs update. * posix.lisp (execute-command-xargs): Bail with nil return value if any command line fails. * update.lisp (mcvs-update): Tests return value of execute-program and signal condition if it's nil. Provides a continue restart as well as a retry restart to try the command again. * error.lisp (mcvs-error-handler): Show retry restarts as a special menu item "R".
* convert.lisp: New file. Contains conversion utility to make an Meta-CVS repository from an ordinary CVS repository, while preserving all history, tags and branches. (remove-attic-component, classify-tags, read-tags, mcvs-convert): New functions. * posix.lisp (suffix): New function. Computes suffix of file. (execute-program-xargs): New optional parameter, for specifying fixed part added at the end of each generated command line. * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants. (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants. (mapping-generate-name): New key parameter no-dir for not adding the directory prefix.
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.
MCVS is being renamed to Meta-CVS.
Moving closer toward delivery.
A bit of refactoring. Added mcvs-move.
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|