/[meta-cvs]/meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3
ViewVC logotype

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.205.2.2 - (hide annotations)
Sat Oct 12 20:29:47 2002 UTC (11 years, 6 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since 1.205.2.1: +5 -0 lines
* code/filt.lisp (mcvs-filt): Do not filter F- names if
immediately preceded by MCVS/ prefix.
1 kaz 1.205.2.1 2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
2    
3 kaz 1.205.2.2 * code/filt.lisp (mcvs-filt): Do not filter F- names if
4     immediately preceded by MCVS/ prefix.
5    
6     2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
7    
8 kaz 1.205.2.1 * code/clisp-unix.lisp (execute-program): Provide debug traces
9     for command execution.
10    
11 kaz 1.205 2002-10-09 Kaz Kylheku <kaz@ashi.footprints.net>
12    
13     * code/add.lisp (*add-help*): Remove spurious text cut and pasted from
14     checkout help.
15    
16 kaz 1.196 2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
17    
18 kaz 1.204 * code/prop.lisp (mcvs-prop): Result of real-to-abstract-path
19     must be canonicalized.
20    
21     * code/remove.lisp (mcvs-remove): Likewise.
22    
23     * code/generic.lisp (mcvs-generic): Likewise.
24    
25     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
26    
27 kaz 1.203 * code/move.lisp (move-guts, mcvs-move): Canonicalize the destination
28     path in mcvs-move, rather than mcvs-guts.
29    
30     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
31    
32 kaz 1.202 * code/create.lisp (mcvs-create): Add the DISPLACED filename
33     to the .cvsignore file.
34    
35     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
36    
37 kaz 1.201 * code/posix.lisp (path-prefix-equal): Handle empty strings.
38    
39     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
40    
41 kaz 1.200 * code/move.lisp (move-guts): If an error occurs for each
42     source in a multiple move, and the user skips each source,
43     generate the error that all sources were skipped.
44    
45     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
46    
47 kaz 1.199 * code/move.lisp (source-check): Generate error if a move
48     of the sandbox root is attempted.
49    
50     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
51    
52 kaz 1.198 * code/remap.lisp (mcvs-remap): Preserve property lists of
53     mapping entries, and pick up changes in execute permission.
54    
55     * code/mapping.lisp (mapping-convert-out): If the mapping entry's
56     executable flag is nil, then remove the :exec entry from the property
57     list.
58    
59     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
60    
61 kaz 1.197 * code/mapping.lisp (equal-filemaps): Repair completely broken
62     function.
63    
64     * code/move.lisp (mcvs-move): Added little hack for turning
65     no-op moves into errors. Without this the behavior is confusing,
66     since the program appears to do nothing.
67    
68     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
69    
70 kaz 1.196 * code/add.lisp (mcvs-add): Provide a continue restart around
71     the code that builds up the expanded-paths for each iteration of the
72     loop. Without this, errors in that code cause the program to bail, even
73     though errors in the rest of the loop body are continuable.
74    
75 kaz 1.189 2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
76    
77 kaz 1.195 * code/dirwalk.lisp (dirwalk): If the argument is not a directory,
78     the callback must still be invoked. This was done prior to
79     a 2002-05-20 commit. I can't quite remember why it was changed;
80     but I seem to recall thinking about the new dirwalk-skip catch,
81     and how it must be always visible to the callback closure, so
82     that the (skip) mechanism works.
83    
84     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
85    
86 kaz 1.194 * code/add.lisp (mcvs-add): Reshuffle restart to a higher nesting
87     level, so that an error on one item won't abort the whole operation.
88    
89     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
90    
91 kaz 1.193 * code/convert.lisp (mcvs-convert): Maintenance so that this tool
92     at least runs, even though it doesn't do anything resembling a
93     reasonable conversion job.
94    
95     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
96    
97 kaz 1.192 * code/clisp-unix.lisp (guid-gen): Changes for Cygwin broke the
98     case when /dev/urandom is available.
99    
100     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
101    
102 kaz 1.191 * code/find-bind.lisp (find-bind): Allow empty variable list, as
103     described by the documented syntax.
104    
105     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
106    
107 kaz 1.190 * code/error.lisp (mcvs-error-handler): Simplify roundabout way
108     of printing error message.
109    
110     * code/mapping.lisp (mapping-write): Incorporate the low level error
111     message into the more informative error message.
112    
113     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
114    
115 kaz 1.189 Error messages no longer specify prefixes like "mcvs:" or
116     "mcvs-remove:".
117    
118     When no restarts are available, the error handler now adds the "mcvs:"
119     prefix when dumping the error text to the standard error stream,
120     and also adds a terminating newline.
121    
122     The inability to write to the MAP file is converted to a more
123     informative error message.
124    
125     New --debug option is supported to set the chatter level to 3.
126    
127     * code/chatter.lisp: Use the symbolic constant when defining the
128     default chatter level value.
129    
130     * code/mcvs-main.lisp (*cvs-options*, mcvs-help, mcvs-execute): Added
131     support for --debug option, and removed of prefixes from error
132     messages.
133    
134     * code/options.lisp (filter-global-options): Support --debug.
135     (parse-opt): Removed prefixes from error messages.
136    
137     * code/mapping.lisp (mapping-rename-files, mapping-dupe-check,
138     mapping-convert-in, mapping-synchronize, mapping-update): Removed
139     prefixes from error messages.
140     (mapping-write): Trap write error and convert to more informative
141     error message.
142    
143     * code/error.lisp (mcvs-error-handler): In the case when no restarts
144     are available, format the error message by adding the mcvs: prefix
145     and a terminating newline.
146    
147     * code/purge.lisp (mcvs-purge): Removed prefixes from error messages.
148    
149     * code/restore.lisp (mcvs-restore): Likewise.
150    
151     * code/move.lisp (move-guts, mcvs-move): Likewise.
152    
153     * code/grab.lisp (mcvs-grab): Likewise.
154    
155     * code/prop.lisp (mcvs-prop): Likewise.
156    
157     * code/filt.lisp (filt-select-map, mcvs-filt): Likewise.
158    
159     * code/branch.lisp (where-is-the-repository, mcvs-branch,
160     cvs-make-or-advance-tag, mcvs-merge, mcvs-list-branches,
161     mcvs-switch-wrapper): Likewise.
162    
163     * code/add.lisp (mcvs-add, mcvs-add): Likewise.
164    
165     * code/remove.lisp (mcvs-remove): Likewise.
166    
167     * code/convert.lisp (classify-tags, mcvs-convert): Likewise.
168    
169     * code/checkout.lisp (mcvs-checkout): Likewise.
170    
171     * code/generic.lisp (mcvs-generic, mcvs-diff-wrapper): Likewise.
172    
173     * code/create.lisp (mcvs-create, mcvs-create): Likewise.
174    
175     * code/remap.lisp (mcvs-remap, mcvs-remap): Likewise.
176    
177 kaz 1.188 2002-09-25 Kaz Kylheku <kaz@ashi.footprints.net>
178    
179     Minimal changes for building on Cygwin.
180    
181     * code/install.sh (space_check, dash_check): Function definitions
182     modified to conform to bash2.
183    
184     * code/clisp-unix.lisp (*have-dev-random*, *mcvs-random-state*):
185     New special variables.
186     (guid-gen): Rewritten to fall back on the Common Lisp random
187     function if /dev/urandom is not available.
188    
189 kaz 1.180 2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
190    
191 kaz 1.187 * code/mcvs-main.lisp (*options*): New variable. Gives
192     scripts access to to some global options. The *args* variable now
193     holds only the remaining arguments after the options.
194     (mcvs-execute): Sets up *args* and *options* accordingly.
195     No longer parses out the --error-continue and --error-terminate
196     options.
197    
198     * code/options.lisp (filter-global-options): The handling of
199     --error-continue and --error-terminate is done here. This is
200     the place to handle options that must be removed (not passed
201     down to CVS) and which do not trigger immediate actions in
202     mcvs-execute.
203    
204     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
205    
206 kaz 1.186 * code/mcvs-main.lisp (*args*): New global variable. Gives
207 kaz 1.185 scripts access to command line.
208    
209     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
210    
211 kaz 1.184 * code/mcvs-main.lisp (*cvs-options*): Add -i parameter which
212     takes the name of a script to invoke.
213     (*usage*): Updated to describe new option.
214     (mcvs-execute): Parse out -i option and load the specified file.
215    
216     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
217    
218 kaz 1.183 * code/install.sh: Don't specify -K full option when running
219     specific, generated CLISP image already. When generating mcvs.mem,
220     load the compiled version mcvs-main, rather than mcvs-main.lisp.
221    
222     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
223    
224 kaz 1.182 * code/install.sh: Check that the installation target path won't
225     look like a command line option to shell commands.
226    
227     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
228    
229 kaz 1.181 * code/mcvs-main.lisp (*mcvs-command-table*): Added help for remove.
230    
231     * code/remove.lisp (*remove-help*): New string constant.
232    
233     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
234    
235 kaz 1.180 * code/grab.lisp (mcvs-grab): Inspect the execute permissions
236     of stable and moved files, and update the :EXEC propery of
237     their mapping entries accordingly. In other words, grab changes
238     in execute permissions properly.
239    
240 kaz 1.179 2002-09-18 Kaz Kylheku <kaz@ashi.footprints.net>
241    
242     * code/restore.lisp (mcvs-restore): Was still generating old-style
243     mapping entries.
244    
245     * code/clisp-unix.lisp (executable-p (string)): New method for
246     executable-p generic function that takes a filename.
247    
248 kaz 1.177 2002-09-17 Kaz Kylheku <kaz@ashi.footprints.net>
249    
250 kaz 1.178 * code/install.sh: Check that the installation target path
251     does not contain any spaces. It cannot, because it is used
252     in the #! line of an interpreter script. As a consequence of
253     this check, whitespace precautions in the expansion of $TARGET,
254     $TARGET_LIB and $TARGET_BIN have been removed.
255    
256     2002-09-17 Kaz Kylheku <kaz@ashi.footprints.net>
257    
258 kaz 1.177 * code/checkout.lisp (mcvs-checkout): If a subdirectory path
259     is specified, verify that it is relative, and that it points
260     within the module.
261    
262 kaz 1.175 2002-09-16 Kaz Kylheku <kaz@ashi.footprints.net>
263    
264 kaz 1.176 * code/mcvs-main.lisp (*checkout-options*): Removed -A and -N
265     options.
266     (*mcvs-command-table*): Added help for checkout and add.
267    
268     * code/checkout.lisp (*checkout-help*): New string constant.
269    
270     * code/add.help (*add-help*): Likewise.
271    
272     * code/create.lisp (*create-help*): Mention interactive file
273     type specification.
274    
275     2002-09-16 Kaz Kylheku <kaz@ashi.footprints.net>
276    
277 kaz 1.175 * code/mcvs-main.lisp (*mcvs-command-table*): Add *grab-help*.
278    
279     * code/grab.lisp (*grab-help*): New string constant.
280    
281 kaz 1.172 2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
282    
283 kaz 1.174 * code/clisp-linux.lisp: File removed.
284    
285     2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
286    
287 kaz 1.173 Implement help text for create command.
288    
289     * code/mcvs-main.lisp (mcvs-help): Fixes.
290     (*mcvs-command-table*): Add *create-help*.
291    
292     * code/create.lisp (*create-help*): New string constant.
293    
294     2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
295    
296 kaz 1.172 Revamping help system to support more detailed help
297     for individual commands.
298    
299     * code/mcvs-main.lisp (mcvs-help): New function.
300     (*help-options*): New constant.
301     (*mcvs-command-table*): New entry in each sublist element;
302     this is either nil, or a string containing help text.
303     (mcvs-execute): Update to use new table structure.
304    
305 kaz 1.171 2002-09-10 Kaz Kylheku <kaz@ashi.footprints.net>
306    
307     * code/filt.lisp (mcvs-filt): Bugfix: was trying to
308     use NIL as if it were a mapping-entry struct after an unsuccessful
309     gethash.
310    
311     2002-09-10 Kaz Kylheku <kaz@ashi.footprints.net>
312    
313     Fix installation braindamage. The problem is that
314     the linkkit material is architecture specific; it was
315     wrong to copy that from CLISP.
316    
317     * code/install.sh (CLISP_PATH, CLISP_ROOT, CLISP_LIB): New
318     variables, dynamically computed from clisp's location.
319     The script now runs the clisp-link under $CLISP_LIB rather
320     than using a replica, and uses $CLISP_LIB/linkkit rather
321     than a replica linkkit.
322     (CLISP): Variable renamed to LISPRUN.
323    
324     * code/clisp-link: File removed.
325     * code/linkkit/modules.d: Likewise.
326     * code/linkkit/modules.c: Likewise.
327     * code/linkkit/clisp.h: Likewise.
328    
329 kaz 1.168 2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
330    
331 kaz 1.170 Fix mistake dating back to April.
332    
333     * code/branch.lisp (mcvs-merge): Symbol T was being invoked
334     as function in the case that merge is invoked on a sandbox
335     that is sticky to a non-branch tag.
336    
337     2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
338    
339 kaz 1.169 Another stupid error.
340    
341     * code/create.lisp (mcvs-create): Fix use to unbound
342     variable file-info which should be fi.
343    
344     2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
345    
346 kaz 1.168 Fix stupid error.
347    
348     * code/mcvs-main.lisp (*move-options*): New constant.
349     (*mcvs-command-table*): Fix broken entry for "move" and "mv".
350    
351 kaz 1.167 2002-09-07 Kaz Kylheku <kaz@ashi.footprints.net>
352    
353     Eliminate inappropriate pluralization in messages.
354    
355     * code/grab.lisp (mcvs-grab): Use ~:p to substitute a 's'
356     if the parameter is other than 1.
357    
358     * code/options.lisp (parse-opt): Likewise.
359    
360 kaz 1.165 2002-09-06 Kaz Kylheku <kaz@ashi.footprints.net>
361    
362 kaz 1.166 * code/prop.lisp (mcvs-prop): Support --value option to
363     associate an arbitrary value with a property indicator.
364    
365     * code/mcvs-main.lisp (*usage*): Describe --value and
366     clarify syntax.
367    
368     2002-09-06 Kaz Kylheku <kaz@ashi.footprints.net>
369    
370 kaz 1.165 Unify command option parsing, and enable it to handle options with
371     any number of required parameters.
372    
373     * code/options.lisp (parse-opt): Function rewritten. Argument
374     syntax and semantics have changed. Options are specified
375     as an association list whose member are string-integer
376     pairs. The string is the option name, the integer specifies
377     the number of required parameters.
378     (option-spec-expand): New function.
379     (option-spec): New macro.
380     (define-option-constant): New macro.
381    
382     * code/mcvs-main.lisp (*cvs-options-arg*): Constant removed.
383     (*cvs-options*, *create-options*, *grab-options*, *checkout-options*,
384     *add-options*, *remove-options*, *update-options*,
385     *switch-options*, *commit-options*, *diff-options*, *tag-options*,
386     *log-options*, *status-options*, *annotate-options, *filt-options*,
387     *convert-options*, *branch-options*, *merge-options*,
388     *remerge-options*, *list-branches-options*, *remap-options*,
389     *purge-options*, *restore-options*, *prop-options*): Constant
390     definitions refactored using define-option-constant macro.
391     (*mcvs-command-table*): Use , rather than ,@ to insert
392     option specs.
393     (*usage*): Suggest cleaner syntax for prop options.
394     (mcvs-execute): Switch to new parse-opt.
395    
396 kaz 1.162 2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
397    
398 kaz 1.164 New prop command for manipulating property lists.
399    
400     * code/mcvs-main.lisp (*prop-options*): New constant.
401     (*mcvs-command-table*): New entry.
402     (*usage*): Update.
403    
404     * code/mapping.lisp (mapping-entry-parse-plist): Just unconditionally
405     set execute slot based on :exec property.
406    
407     * code/prop.lisp: New file.
408    
409     2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
410    
411 kaz 1.163 Be transparent with respect to mapping entry property lists:
412     preserve unrecognized indicators and values.
413    
414     * code/mapping.lisp (mapping-entry): New slot, raw-plist,
415     records raw property list from external mapping representation.
416     (mapping-entry-parse-attributes): Renamed to mapping-entry-parse-plist.
417     Argument dropped; parses raw-plist slot instead.
418     (mapping-convert-in): Set raw-plist slot to value of fourth list
419     element of :FILE entry, or fifth list element of :SYMLINK entry.
420     (mapping-convert-out): Unify any slot values that are represented as
421     properties into raw-plist, and insert any non-empty plists into
422     external representation.
423    
424     2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
425    
426 kaz 1.162 Low level support for versioning executable bit.
427    
428     * code/unix-bindings/unix.lisp (unix-funcs:chmod): New callout
429     function.
430    
431     * code/clisp-unix.lisp (executable-p, make-executable,
432     make-non-executable): New generic functions.
433     (executable-p (file-info), make-executable (file-info),
434     make-executable (string), make-non-executable (file-info),
435     make-non-executable (string)): New methods.
436    
437     * code/add.lisp (mcvs-add): Record whether new file is
438     executable or not, by setting executable slot in mapping-entry.
439    
440     * code/create.lisp (mcvs-create): Likewise.
441    
442     * code/sync.lisp (synchronize-files): New parameter,
443     should-be-executable, tells function which way to set
444     permissions after synchronizing files.
445    
446     * code/mapping.lisp (mapping-entry): New slot, executable.
447     (mapping-entry-parse-attributes): New function, parses
448     new optional property list from :FILE entries in a mapping.
449     (mapping-convert-in): Parse property list that may be present in fourth
450     list element of a :FILE entry.
451     (mapping-convert-out): Write out executable flag as
452     :EXEC property, if true.
453     (mapping-synchronize): Pass executable flag down to synchronize-files.
454    
455 kaz 1.161 2002-09-02 Kaz Kylheku <kaz@ashi.footprints.net>
456    
457     * code/grab.lisp (determine-moved-files): Rename local
458     variable for clarity.
459     (determine-moved-symlinks): Actually compute what symlinks
460     are moved. Takes one more argument, the stable-files list.
461     (mcvs-grab): Fix small destructuring-bind bug in symlink
462     moving code. Also, read the targets of moved symlinks into
463     the map, like it is already done with stable symlinks.
464    
465 kaz 1.160 2002-09-01 Kaz Kylheku <kaz@ashi.footprints.net>
466    
467     * code/grab.lisp (mcvs-grab): Iterate over stable symlinks,
468     and incorporate changed targets into the mapping. In other
469     words, notice and incorporate retargetted symlinks.
470    
471 kaz 1.159 2002-08-31 Kaz Kylheku <kaz@ashi.footprints.net>
472    
473     Merging new symbolic link support from symlink-branch.
474    
475 kaz 1.160 * code/mapping.lisp (mapping-update): Resolve merge conflict.
476 kaz 1.159 The branch fixed the 2002-08-24 bug also.
477    
478     2002-08-31 Kaz Kylheku <kaz@ashi.footprints.net>
479    
480     * code/grab.lisp (move-candidates): Function renamed to
481     determine-moved-files.
482     (determine-moved-symlinks): New function, doesn't do anything
483     yet.
484     (mcvs-grab): Updated to process symlinks and use new
485     mapping-entry structure.
486    
487     2002-08-26 Kaz Kylheku <kaz@ashi.footprints.net>
488    
489     * code/remap.lisp (mcvs-remap): Use new mapping entry structure.
490     For now, preserve symbolic link entries as they are, processing only
491     files.
492    
493     * code/mapping.lisp (equal-mapping-entries, equal-mappings): New
494     functions.
495    
496     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
497    
498     * code/clisp-unix.lisp (initialize-instance link-error): Make
499     error message less confusing about which path refers to the
500     object being created, and which path refers to what it links to.
501    
502     * code/mapping.lisp (mapping-rename-files): Bugfix: destructuring-bind
503     appeared in place of with-slots.
504     (mapping-synchronize): When creating symbolic link, ensure that
505     its directory exists.
506     (mapping-update): Likewise.
507    
508     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
509    
510     * code/add.lisp (mcvs-add): Change to new mapping-entry data structure
511     and handle symbolic links.
512    
513     * code/create.lisp (mcvs-create): Likewise.
514    
515     * code/filt.lisp (make-filt-hash, mcvs-filt): Change to new
516     mapping-entry data structure. Filt does not care about symlinks.
517    
518     * code/types.lisp (types-remove-ignores, types-make-cvs-adds):
519     Change to new mapping-entry data structure.
520    
521     * code/mapping.lisp (mapping-generate-name): Renamed to
522     mapping-generate-id. Interface changes slightly.
523     (mapping-extract-kind): New function, factored out from mcvs-generic.
524     (mapping-update): Unlink existing symbolic link before
525     re-linking it.
526    
527     * code/convert.lisp (mcvs-convert): Use new name and interface
528     of mapping-generate-name function.
529    
530     * code/create.lisp (mcvs-create): Likewise.
531    
532     * code/generic.lisp (mcvs-generic): Code to extract :file
533     entries from map factored out to mapping-extract-kind.
534    
535    
536     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
537    
538     * code/generic.lisp (mcvs-generic): Use new mapping-entry data structure.
539     Filter out mapping entries which are other than of the :file type, so
540     we don't pass to CVS things it doesn't know about, like symbolic
541     links.
542    
543     2002-08-24 Kaz Kylheku <kaz@ashi.footprints.net>
544    
545     Support for symbolic links added to the mapping module. The format of
546     the map file has changed to accomodate this. The new format of the
547     list entries is (:keyword "id" "path" ...) where the keyword is either
548     :file or :symlink (for now, extensible obviously), "id" is a unique
549     identifier (for regular files, it is their MCVS/F-* name) and "path" is
550     the sandbox path. Other things can follow; for symlinks, there is a
551     string representing the symlink target. Internally, a new data type
552     called mapping-entry is used; this is a struct. So the functions which
553     read and write maps now convert between the struct format and the above
554     format.
555    
556     * code/unix-bindings/unix.lisp (unix-funcs:readlink): New function.
557    
558     * code/unix-bindings/impl.c (impl_readlink): New function.
559    
560     * code/clisp-unix.lisp (readlink-error): New condition.
561     (initialize-instance readlink-error): New method for
562     initialize-instance generic function, specialized for readlink-error.
563     (readlink): New function.
564    
565     * code/mapping.lisp (mapping-entry): New struct, with slots
566     file, id, path and target.
567     (mapping-same-object-p): Renamed to mapping-same-id-p.
568     (mapping-object-lookup, mapping-moved-p): Unused functions removed.
569     (mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
570     mapping-prefix-matches, mapping-same-path-p, mapping-rename-files,
571     mapping-removed-files): Functions updated to use the new data
572     structure.
573     (mapping-dupe-checks): Rewritten for new data structure, and to
574     use hashes rather than silly sorting.
575     (mapping-convert-old-style-in, mapping-convert-in,
576     mapping-convert-out): New functions.
577     (mapping-read): Handle new and old style representations,
578     handle conversion to internal representation.
579     (mapping-write): Convert to new-style external representation
580     before writing out.
581     (mapping-synchronize): Handle symbolic links. If a link is missing,
582     create it. If it's present but different from what it should be,
583     erase it and re-create it.
584     (mapping-update): Use new data structure. Handle symbolic links.
585    
586     * code/remove.lisp (mcvs-remove): Refer to new function
587     name, mapping-same-id-p.
588    
589 kaz 1.158 2002-08-24 Kaz Kylheku <kaz@ashi.footprints.net>
590    
591     * mapping.lisp (mapping-update): Bugfix
592     in logic which prints clobbering moves. The functions
593     abstract-to-real-path and second were applied in the wrong order.
594    
595 kaz 1.159 2002-08-23 Kaz Kylheku <kaz@ashi.footprints.net>
596    
597     * code/clisp-unix.lisp (link-error): New slot, kind. Holds
598     the string "symbolic" or "hard".
599     (initialize-instance link-error): Use new slot in constructing
600     message.
601     (link): Specify "hard" value for :kind slot of condition.
602     (symlink): New function.
603    
604     * code/clisp-linux.lisp: Likewise.
605    
606 kaz 1.156 2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
607    
608 kaz 1.159 * code/posix.lisp (execute-program): Function removed.
609     * code/clisp-linux.lisp (execute-program): Function added. Works
610 kaz 1.157 in terms of CLISP's run-program function rather than the shell
611     function, thus eliminating the need to build a command string
612     and escape shell characters.
613     * clisp-unix.lisp (excecute-program): Likewise.
614    
615     2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
616    
617 kaz 1.159 * code/posix.lisp (edit-file): Function renamed to invoke-file-on,
618 kaz 1.156 because this name clashes with a standard Common Lisp symbol.
619 kaz 1.159 * code/types.lisp (types-let-user-edit): Updated to use new name.
620 kaz 1.156
621 kaz 1.155 2002-08-05 Kaz Kylheku <kaz@ashi.footprints.net>
622    
623     Use getcwd to to implement mcvs-locate.
624    
625     * code/unix-bindings/unix.lisp (getcwd): New call out,
626     invokes impl_getcwd.
627    
628     * code/unix-bindings/impl.c (impl_getcwd): New function,
629     use getcwd() to obtain current working directory, resizing dynamic
630     buffer if necessary to get the entire path.
631    
632     * code/clisp-unix.lisp (getcwd): New wrapper function.
633    
634     * code/dirwalk.lisp (go-up): Function removed.
635    
636     * code/mapping.lisp (mcvs-locate): Rewritten to obtain
637     path using getcwd, then try looking for MCVS directory
638     in successively shorter prefixes of that path.
639    
640 kaz 1.152 2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
641    
642 kaz 1.154 Working back support for CLISP 2.27.
643    
644     * code/install.sh: Bogus *null-pointer* hack is no longer added
645     to the generated mcvs script, since we have our own FFI functions for
646     doing the test.
647    
648     * code/unix-bindings/unix.lisp (unix-funcs:null-pointer-p): New
649     function, tests a C pointer for null, returns T or NIL.
650     * code/unix-bindings/impl.c (impl_null_pointer_p): New function,
651     C implementation of unix-funcs:null-pointer-p.
652    
653     * code/clisp-unix.lisp (pointer-null): New macro, uses
654     ffi:foreign-address-null under CLISP 2.28 or greater, or
655     unix-funcs:null-pointer-p, under an older CLISP.
656    
657     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
658    
659 kaz 1.153 Fixes to get clean build from fresh checkout.
660    
661     * code/unix-bindings/link.sh: Remove test for presence of unix.c;
662     this was causing the failure to add the unix module to the module
663     list, which caused it to generate an empty modules.h file under
664     code/unix-bindings-linking-set, resulting in a bad build of lisp.run.
665    
666     * code/unix-bindings/Makefile: Add ``clean'' target, so we
667     can do a make clean here.
668    
669     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
670    
671 kaz 1.152 Retargetting CVS with new system call bindings that are not GNU/Linux
672     specific.
673    
674     * code/install.sh: The way Meta-CVS is installed changes now.
675     The argument is now a prefix above a bin and lib directory.
676     Invokes clisp-link to build a new CLISP linking set in the
677     directory code/unix-bindings-linking-set. The lisp executable
678     (lisp.run) is copied to $TARGET/lib/clisp/meta-cvs/ and the Meta-CVS
679     memory image is also copied there under the name lispinit.mem.
680     The mcvs script is then generated in $TARGET/bin, correctly referring
681     to these images.
682    
683     * code/system.lisp: Choose the new clisp-unix module, if running
684     under a CLISP image which has the new bindings loaded. Otherwise fall
685     back on the old clisp-linux, which uses the linuxlibc6 module.
686    
687     * code/clisp-unix.lisp: New file, closely based on clisp-linux.lisp,
688     but targetting new bindings in the unix-funcs package.
689    
690     * code/clisp-link: New file. Script borrowed from CLISP distribution,
691     needed for building CLISP executables with custom modules added.
692    
693     * code/linkkit: New directory. This is needed by by clisp-link.
694     * code/linkkit/modules.c: Borrowed file from CLISP, needed
695     by clisp-link.
696     * code/linkkit/clisp.h: Likewise.
697     * code/linkkit/modules.d: Likewise.
698    
699     * code/unix-bindings: New directory. This is a module kit used
700     by clisp-link to extend the Lisp executable and memory image
701     with new C functions.
702    
703     * code/unix-bindings/link.sh: Definitions of variables needed
704     by clisp-link.
705    
706     * code/unix-bindings/unix.lisp: The glue module which defines the Lisp
707     interface to the external C functions. Most of the functions call
708     directly into the system's C library, but a few call to wrapper
709     functions. Compiling unix.lisp produces a unix.c file which is
710     compiled and linked into the CLISP executable, and a unix.fas which
711     contains the Lisp interface bits that are loaded as part of the Lisp
712     image.
713    
714     * code/unix-bindings/Makefile: Rules for compiling the module, invoked by clisp-link.
715    
716     * code/unix-bindings/impl.c: Some special functions that help
717     implement the binding.
718    
719 kaz 1.149 2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
720    
721 kaz 1.150 More changes to syntax of grab command. Now -A must be
722     specified to do a grab onto main trunk.
723    
724     * code/mcvs-main.lisp (*grab-options*): -A option added.
725    
726     * code/grab.lisp (mcvs-grab): Test for presence of -A
727     option. Check that either -A or -r is present, but not both.
728    
729     2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
730    
731 kaz 1.149 Syntax of grab command changed. The branch is no longer
732     specified as an argument after the module name. Rather,
733     it is specified using the -r option.
734    
735     * code/mcvs-main.lisp (*grab-options*): -r added to list.
736    
737     * code/grab.lisp (mcvs-grab, mcvs-grab-wrapper): Argument
738     syntax change, support -r option.
739 kaz 1.152
740     * INSTALL: Instructions change, since building the GNU/Linux libc
741     into CLISP is no longer required.
742 kaz 1.149
743 kaz 1.147 2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
744    
745 kaz 1.148 * docs/meta-cvs.latex: Rewrote most of Introduction.
746    
747     2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
748    
749 kaz 1.147 New scripts for building LaTeX document. These do the right thing
750     to minimize the number of times latex is run. Make proved useless.
751    
752     * docs/generate.sh: New file.
753     * docs/cleanup.sh: New file.
754    
755 kaz 1.146 2002-07-20 Kaz Kylheku <kaz@ashi.footprints.net>
756    
757     * INSTALL: Revising CLISP installation instructions to the
758     easier method using --build.
759    
760 kaz 1.145 2002-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
761    
762     * README: Renaming file to QUICK-GUIDE.
763    
764     2002-07-17 Kaz Kylheku <kaz@ashi.footprints.net>
765 kaz 1.142
766 kaz 1.144 * code/generic.lisp (mcvs-generic): Support new keyword,
767     :no-fix-empty-file-list. Specifies that if no files are passed,
768     and the --metaonly option is not present, the CVS command is to be
769     executed without any file arguments.
770     (mcvs-commit-wrapper): Specify :no-fix-empty-file-list t when
771     calling mcvs-generic. Thus commit now has the behavior that
772     when it is passed no file arguments, it does a true global commit.
773    
774     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
775    
776 kaz 1.143 * code/restore.lisp (mcvs-restore): Work properly with
777     partial sandboxes; that is, move things to lost+found
778     directory at the top of the partial sandbox, rather than
779     the abstract root.
780    
781     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
782    
783 kaz 1.142 * code/mcvs-main.lisp (usage): Updated to describe restore
784     command.
785    
786 kaz 1.139 2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
787    
788 kaz 1.141 * code/grab.lisp (mcvs-grab): If there are only added files
789     or only removed files, don't bother scanning any files,
790     since there are no moves to compute.
791    
792     2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
793    
794 kaz 1.140 * code/find-bind.lisp (vector-bind): New macro, binds symbols
795 kaz 1.139 to elements of a vector.
796     (find-bind-extract-vals): Rewrite using vectors. Fixes
797     a bug: the old version was not handling duplicate keys
798     properly.
799     (find-bind): Integrate with new find-bind-extract-vals.
800    
801 kaz 1.138 2002-07-11 Kaz Kylheku <kaz@ashi.footprints.net>
802    
803     Directory structure rearrangement; source files are moved
804     under code/ subdirectory. A documentation directory is added.
805    
806 kaz 1.133 2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
807    
808 kaz 1.137 * move.lisp (move-guts): When moving multiple sources to
809     a target directory, provide a restart to skip a bad source.
810    
811     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
812    
813 kaz 1.136 * seqfuncs.lisp (intersection-difference): Support a new
814     keyword parameter :squash-nil.
815    
816     * mapping.lisp (mapping-difference): Filter non-moved pairs
817     directly in intersection-difference call using :squash-nil,
818     eliminating the need to do a second remove-if pass.
819    
820     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
821    
822 kaz 1.135 * mapping.lisp (mapping-difference): Rewrite using
823     intersection-difference.
824    
825     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
826    
827 kaz 1.134 * grab.lisp (added-removed): Function removed.
828     (mcvs-grab): Use new intersection-difference function
829     instead of added-removed.
830    
831     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
832    
833 kaz 1.133 * seqfuncs.lisp (intersection-difference): New function.
834    
835 kaz 1.131 2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
836    
837 kaz 1.132 * grab.lisp (mcvs-grab): Upgraded to work with partial sandbox.
838     Extra parameter added to specify subdirectory. File analysis
839     is only done on visible files.
840     (mcvs-grab-wrapper): Take optional parameter to specify
841     subdirectory.
842    
843     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
844    
845     * mapping.lisp (mapping-update): If no-delete-removed is
846     true, nevertheless print the ``* removing...'' messages
847     to show that removal from the mapping is going on.
848    
849     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
850    
851     * remap.lisp (mcvs-remap): Remap only the visible sandbox,
852     and combine resulting map with the invisible portion.
853    
854     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
855    
856     * remove.lisp (mcvs-remove): Added path conversions to support
857     partial sandboxes.
858    
859     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
860    
861     * generic.lisp (mcvs-generic): Added path conversions to support
862     partial sandboxes.
863    
864     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
865    
866     * add.lisp (mcvs-add): Added path conversions to support
867     partial sandboxes.
868    
869     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
870    
871 kaz 1.131 * grab.lisp (mcvs-grab): Bugfix: determination of common words
872     was failing on small file sets because the min function was
873     used instead of the max to compute the threshold.
874 kaz 1.132
875     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
876    
877     * move.lisp (source-check): Use real source path for checking
878     against MCVS/ area.
879     (mcvs-move): Ditto for destination path.
880    
881     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
882    
883     * mapping.lisp (mapping-update): Make sure only those files
884     are processed which are visible in the sandbox. If a file
885     is moved out of or into visibility, this is indicated in the
886     diagnostic output.
887    
888     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
889    
890     * mapping.lisp (real-path-exists): Use path-prefix-equal, because
891     that handles all the tricky cases.
892     (abstract-to-real-path): Handle the case when abstract path
893     is the same as the path prefix, with or without the trailing
894     slash.
895    
896     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
897    
898     Start of experimental ``partial sandbox'' work.
899    
900     * mapping.lisp (*mcvs-displaced-name*, *mcvs-displaced*): New
901     constants, hold name of administrative file MCVS/DISPLACED which stores
902     the displaced path prefix.
903     (*displaced-path-prefix*): New special variable, holds displaced
904     path prefix read from MCVS/DISPLACED.
905     (*displaced-path-length*): New special variable, holds length
906     of string stored in *displaced-path-prefix*.
907     (real-path-exists, abstract-to-real-path, real-to-abstract-path):
908     New functions for mapping between actual sandbox path, and
909     the abstract sandbox path stored in the mapping.
910     (in-sandbox-root-dir): Macro modified to read *mcvs-displaced*
911     administrative file, and set up the new special variables.
912     (mapping-synchronize): Only operate on files that are present
913     in the sandbox; i.e. that have real paths corresponding to their
914     abstract paths. Convert to the real path when calling lower
915     level file manipulation functions.
916     (mapping-update): Likewise, but this conversion is not complete.
917     (displaced-path-read, displaced-path-write): New functions for
918     reading and writing MCVS/DISPLACED.
919    
920     * checkout.lisp (mcvs-checkout): One extra optional parameter.
921     Specifies the subdirectory for executing a partial checkout.
922     (mcvs-checkout-wrapper): Parse out optional parameter.
923    
924     * grab.lisp (mcvs-grab): For now, when calling mcvs-checkout,
925     specify the new parameter as nil. Eventually, grab will work
926     over partial checkouts.
927    
928     * move.lisp: Upgraded to work with partial sandboxes.
929     (source-check): Convert source parameter to real path for
930     existence check.
931     (move-guts): Convert destination parameter to real path before
932     invoking (stat ...) on it.
933     (mcvs-move): Map all path arguments to abstract paths.
934 kaz 1.131
935 kaz 1.130 2002-07-04 Kaz Kylheku <kaz@ashi.footprints.net>
936    
937     * find-bind.lisp (find-bind-extract-vals): Rewrite for
938     efficiency. No impact on Meta-CVS, just done for the sake of improving
939     the quality of this highly reusable code. There is specialized
940     code now depending on whether the input sequence is a list or
941     a vector. A single pass is made over the sequence, with multiple
942     passes over the search values. The sequence could be large,
943     whereas the list of search values is typically going to be small.
944     (find-bind): Modified to reflect slight interface change
945     in find-bind-extract-vals.
946    
947 kaz 1.129 2002-07-03 Kaz Kylheku <kaz@ashi.footprints.net>
948    
949     * mcvs-main.lisp (*usage*): Describe --meta and --metaonly options.
950    
951 kaz 1.127 2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
952    
953 kaz 1.128 * purge.lisp (mcvs-purge): Factor out code for computing
954     deleted files.
955    
956     * mapping.lisp (mapping-removed-files): New function, contains
957     code factored from mcvs-purge.
958    
959     * restore.lisp: New file.
960     (mcvs-restore, mcvs-restore-wrapper): New functions.
961    
962     2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
963    
964 kaz 1.127 * checkout.lisp (mcvs-checkout): Don't delete the MCVS directory
965     of an existing checkout.
966    
967 kaz 1.125 2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
968    
969 kaz 1.126 Adding purge command.
970    
971     * mcvs-main.lisp (*purge-options*): New constant.
972     (*mcvs-command-table*): New entry.
973     (*usage*): Update.
974    
975     * purge.lisp: New file.
976     (mcvs-purge, mcvs-purge-wrapper): New functions.
977    
978     2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
979    
980 kaz 1.125 Grab no longer synchronizes to recreate deleted files immediately
981     before blowing them away.
982    
983     * grab.lisp (mcvs-grab): Specify :no-sync t when calling mcvs-remove.
984    
985     * remove.lisp (mcvs-remove): Support new no-sync keyword. This tells
986     mcvs-remove that the files being removed from the mapping,
987     don't exist in the sandbox. So it's not necessary to call
988     mapping-synchronize, and mapping-update can be told via
989     :no-delete-removed t not to try to remove deleted files.
990    
991     * mapping.lisp (mapping-update): New no-delete-removed keyword
992     parameter.
993    
994 kaz 1.121 2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
995 kaz 1.120
996 kaz 1.123 * create.lisp (mcvs-create): Take out vendor branch parameter,
997     use "Created-by-Meta-CVS" as the vendor tag.
998     (mcvs-create-wrapper): Take out vendor branch parameter.
999    
1000     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1001    
1002 kaz 1.122 * generic.lisp (mcvs-tag-wrapper): This one needs to include
1003     meta files by default.
1004    
1005     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1006    
1007 kaz 1.120 Moving toward sane, user-friendly handling of meta-files.
1008     Two new options are added --meta and --metaonly.
1009     All reporting commands---diff, log, annotate---default to
1010     not including the meta files. The update command remains special.
1011     It does not include meta files if given filename arguments.
1012     If invoked with no arguments, it does a global CVS up.
1013     The commit command defaults to including the meta files.
1014     The three options simply override default behavior.
1015    
1016 kaz 1.124 * options.lisp (*nometa-option*): Eliminated useless docstring.
1017 kaz 1.120 (*meta-option*): New variable.
1018     (*nometa-option*): New variable.
1019     (filter-global-options): Clean rewrite using find-bind.
1020    
1021     * generic.lisp (mcvs-generic): New keyword parameters
1022     default-include-meta-files, need-update-after. Implements new logic
1023     related to the new options. Performs (mapping-update) if
1024     need-update-after is true and metafiles were subject to cvs update.
1025     (mcvs-commit-wrapper): Calls mcvs-generic with
1026     :default-include-meta-files t.
1027    
1028     * update.lisp (mcvs-update): No longer overrides the *nometa-option*
1029     special variable. Passes :need-update-after t to mcvs-generic.
1030    
1031     * mcvs-main.lisp (*cvs-options*): New options entered into list.
1032    
1033 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1034 kaz 1.114
1035 kaz 1.119 * memoize.lisp (memoize-expander): Use ordinary hash for memoizing
1036     monadic functions.
1037    
1038 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1039 kaz 1.119
1040 kaz 1.117 Word comparisons are case-insensitive in mcvs grab now.
1041     Also, common words are determined and eliminated from the correlation.
1042     Common words are those that appear in at least 5 of the
1043     added or removed files, or 20% of them, whichever is greater.
1044    
1045     Noticed some unnecessary use of string-lessp on F-file names in
1046     mapping.lisp.
1047    
1048     * grab.lisp (read-word-hash): Use #'equalp test for case-insensitive
1049     string comparisons.
1050     (added-removed): Use string< instead of string-lessp for comparing
1051     paths.
1052     (determine-common-words, eliminate-common-words): New functions.
1053 kaz 1.118 (move-candidates): Acceptance threshold reduced to 30%, since
1054 kaz 1.117 elimination of common words reduces the similarity correlation.
1055     (mcvs-grab): Use string< instead of string-lessp when sorting paths.
1056     Do the common words computation.
1057    
1058     * mapping.lisp (mapping-dupe-check, mapping-write,
1059     mapping-difference): Use string< instead of string-lessp.
1060    
1061 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1062 kaz 1.117
1063 kaz 1.116 * memoize.lisp (factor-memo-labels): New function, rips apart
1064     functions generated by memoize-expander, in order to factor
1065     out the multi-hash defining let blocks.
1066     (memoized-labels): Interface corrected. Also, use new function to
1067     generate a labels block that allows for mutually recursive memoized
1068     functions which preserve hash contents across arbitrarily mutually
1069     recursive calls. This is done by enclosing the functions in one big
1070     let block which binds all the hashes.
1071    
1072 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1073 kaz 1.116
1074 kaz 1.115 * seqfuncs.lisp (lcs-list): Specify #'eq test for memoization
1075     parameters.
1076    
1077 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1078 kaz 1.115
1079 kaz 1.114 Adding some cool code: a multi-hash datatype which implements
1080     multi-dimensional sparse arrays using a tree of hash tables,
1081     and a function memoizer which uses multi hash to index on
1082     function arguments.
1083    
1084     * multi-hash.lisp (multi-hash): New class.
1085     (initialize-instance): New method on multi-hash.
1086     (multi-hash-common-code): New macro.
1087     (get-multi-hash, set-multi-hash): New functions.
1088    
1089     * memoize.lisp (define-memoized-function,
1090     memoized-labels): New macros.
1091     (remove-key-aux-rest strip-lambda-list, extract-tests,
1092     remove-tests, memoize-expander): New functions.
1093    
1094     * seqfuncs.lisp (lcs-list): Function is now correctly
1095     memoized using define-memoized-function.
1096    
1097 kaz 1.113 2002-06-26 Kaz Kylheku <kaz@ashi.footprints.net>
1098    
1099     * grab.lisp (read-word-hash): Memory use optimizations: use smaller
1100     initial size for tokens; re-use the same token object when the
1101     hash already contains a duplicate.
1102     (correlate): Renamed to correlate-word-hashes.
1103     (correlate-paths): New function; computes a confidence-reducing
1104     factor based on the differences between two paths.
1105     (move-candidates): Use correlate-paths to lower the confidence
1106     for distant moves. This could help sort out ambiguities when
1107     projects contain very similar or duplicate files which are subject
1108     to parallel moves.
1109    
1110     * seqfuncs.lisp (lcs-list, lcs-vector,
1111     longest-common-subsequence): New functions.
1112    
1113 kaz 1.112 2002-06-25 Kaz Kylheku <kaz@ashi.footprints.net>
1114    
1115     New feature: grab command. Takes snapshot of code and imports
1116     it to a branch, trying to determine which of the added and
1117     removed files are actually moves.
1118    
1119     * grab.lisp: New file.
1120     (read-word-hash, word-hash-file, correlate, added-removed,
1121     move-candidates, mcvs-grab, mcvs-grab-wrapper): New functions.
1122    
1123     * mcvs-main.lisp (*grab-options*): New constant.
1124     (*mcvs-command-table*): New entry.
1125     (*usage*): New text.
1126    
1127     * checkout.lisp (mcvs-checkout): Write out MAP-LOCAL even
1128     if :no-generate t is specified.
1129    
1130 kaz 1.110 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
1131    
1132 kaz 1.111 * checkout.lisp (mcvs-checkout): New key parameter, no-generate.
1133     Tells the checkout function not to unpack the MCVS directory.
1134     This will be useful when mcvs-checkout is used as a subfunction
1135     of the new grab command. Failed CVS call is now turned into
1136     an error. The MCVS subdirectory is *always* deleted, even if the
1137     checkout did not create the checkout directory.
1138    
1139     2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
1140    
1141 kaz 1.110 * dirwalk.lisp (dirwalk-fi): Bugfix: top call was not
1142     passing down keyword parameters to recursive call.
1143    
1144 kaz 1.107 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1145    
1146 kaz 1.109 * posix.lisp (canonicalize-path): Use concatenate-string
1147     instead of format.
1148    
1149     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1150    
1151 kaz 1.108 * posix.lisp (parse-posix-namestring): Clean rewrite.
1152    
1153     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1154    
1155 kaz 1.107 The ``import'' command is renamed to ``create''.
1156    
1157     * mcvs.main (*create-options*): Renamed to *import-options*.
1158     (*mcvs-command-table*): Updated.
1159     (*usage*): Updated.
1160    
1161     * import.lisp: File renamed to create.lisp.
1162     (mcvs-import): Renamed to mcvs-create; some arguments renamed.
1163     (mcvs-import-wrapper): Renamed to mcvs-create-wrapper.
1164    
1165     * README: Updated.
1166    
1167 kaz 1.104 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1168    
1169 kaz 1.106 * split.lisp (split-fields): Optimized to extract tokens directly
1170     from the input string using subseq rather than construct them
1171     character by character.
1172 kaz 1.105
1173     2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1174    
1175 kaz 1.104 * find-bind.lisp (find-bind): Use #'values instead of #'(lambda (x) x).
1176    
1177 kaz 1.102 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
1178    
1179 kaz 1.103 * clisp-linux.sh (:clisp-old): Added to *features*
1180     for CLISP 2.28 or higher.
1181     (*null-pointer*): Only defined when :clisp-old is present.
1182     (pointer-null): Use new ffi:foreign-pointer-null if :clisp-old
1183     feature is not present.
1184    
1185     * install.sh: Don't do *null-pointer* workaround hack
1186     unless :clisp-old feature is present in the memory image.
1187    
1188     2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
1189    
1190 kaz 1.102 * types.lisp (types-make-cvs-adds): Serious bugfix. Forgot
1191     to strip MCVS/ prefix from those F- files which don't match
1192     any type entries. This caused cvs add to fail for unsuffixed
1193     files.
1194    
1195 kaz 1.101 2002-06-08 Kaz Kylheku <kaz@ashi.footprints.net>
1196    
1197     * types.lisp (types-to-import-wrapper-args): Don't use backquote
1198     template to generate a list that will be destructively catenated
1199     by mapcan.
1200    
1201 kaz 1.100 2002-05-22 Kaz Kylheku <kaz@ashi.footprints.net>
1202    
1203     * checkout.lisp (mcvs-checkout): If a checkout directory is
1204     created and then the CVS checkout fails, the directory is
1205     then removed.
1206    
1207 kaz 1.97 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1208    
1209 kaz 1.100 * find-bind.lisp (find-bind-extract-vals, find-bind): Process default
1210 kaz 1.99 values in find-bind-extract-vals, instead of in the expansion of
1211     find-bind, thereby reducing some macro bloat.
1212    
1213     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1214    
1215 kaz 1.98 * remap.lisp (mcvs-remap): Loads MAP as well as MAP-LOCAL.
1216     If it the mappings differ, an error is signaled. The user can choose
1217     to ignore the error, in which case MAP is clobbered.
1218    
1219     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1220    
1221 kaz 1.97 Adding mcvs remap command.
1222    
1223     * dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
1224     behavior is now preorder (visit directory before its entries).
1225     A keyword is provided to select the old postorder behavior.
1226     A catch is provided in dirwalk-fi that allows the caller to
1227     skip processing the currently traversed directory. The for-each-*
1228     macros provide a local function called (skip) to do this.
1229     (delete-recursive): This function depends on postorder behavior
1230     in for-each-file-info, so it explicitly selects it now.
1231    
1232     * mcvs.lisp (*remap-options*): New constant.
1233     (*mcvs-command-table*): Add entry for new function.
1234     (*usage*): Describes new function.
1235    
1236     * remap.lisp: New file.
1237     (mcvs-remap, mcvs-remap-wrapper): New functions.
1238    
1239 kaz 1.96 2002-05-15 Kaz Kylheku <kaz@ashi.footprints.net>
1240    
1241     * sync.lisp (synchronize-files): Signal an error when the two files
1242     to be synchronized have the same time stamp. Provide two restarts
1243     for doing the synchronization either way.
1244    
1245 kaz 1.95 2002-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
1246    
1247     * mapping.lisp (in-sandbox-root-dir): Fix symbol macro
1248     sandbox-down-path; it was referring to the (quote #:DOWNPATH-NNN)
1249     rather than #:DOWNPATH-NNN.
1250    
1251 kaz 1.93 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
1252    
1253 kaz 1.94 * import.lisp (mcvs-import): Specify -I ! argument to cvs import
1254     so that it does not ignore any F- files.
1255    
1256     2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
1257    
1258 kaz 1.93 * mapping.lisp (mapping-update): Provide restart that allows
1259     user to ignore file removal error.
1260    
1261 kaz 1.92 2002-04-19 Kaz Kylheku <kaz@ashi.footprints.net>
1262    
1263     Porting to CMUCL.
1264    
1265     * system.lisp: Conditionally load new module cmucl-unix.
1266    
1267     * mapping.lisp (mapping-dupe-check, mapping-write,
1268     mapping-difference): Fixes related to sort function; we were
1269     relying on CLISP's preservation of the cons cell order.
1270    
1271     * cmucl-unix.lisp: New file.
1272    
1273 kaz 1.89 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
1274    
1275 kaz 1.90 * checkout.lisp (mcvs-checkout): Allow -d to specify current
1276     directory as the checkout directory. Do not complain if the
1277 kaz 1.91 target directory exists, just try to use it anyway,
1278     unless it is the root of an existing Meta-CVS sandbox. Use
1279 kaz 1.90 the mapping-update function to update the sandbox.
1280     These changes allow a Meta-CVS sandbox to blend with an existing
1281     directory structure, a useful feature.
1282    
1283     2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
1284    
1285 kaz 1.89 * generic.lisp (mcvs-generic): Change how empty file argument list
1286     is handled. Rather than rewriting it to '(".") we do a proper
1287     map-prefix-lookup. Synchronizing and invoking CVS is elided
1288     if the resulting list of files to process is empty and the --nometa
1289     option is specified.
1290    
1291 kaz 1.87 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
1292    
1293 kaz 1.88 * branch.lisp (parse-sticky): New function.
1294     (read-cvs-entries): New function.
1295     (same-tag-check): New function.
1296     (what-tag-are-we-on): Renamed to what-are-we-sticky-to. Calls
1297     parse-sticky to return structured tag.
1298     (mcvs-merge): Make use of structured tags.
1299     (mcvs-list-branches): Make use of structured tags. Indicate
1300     when sandbox is inconsistently sticky.
1301    
1302     2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
1303    
1304 kaz 1.87 * remove.lisp (mcvs-remove): Corrected careless bracketing
1305     introduced on 2002-03-15 that rendered this function ineffective.
1306    
1307 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1308 kaz 1.82
1309 kaz 1.86 Absolute paths resolved against sandbox root.
1310    
1311     * posix.lisp (path-absolute-p): New function. Predicate to
1312     test whether a path is absolute.
1313    
1314     * mapping.lisp (in-sandbox-root-dir): sandbox-translate-paths
1315     function detects absolute path, and treats it as relative to
1316     sandbox root.
1317    
1318     2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1319    
1320 kaz 1.84 New switch command added, plus sticky tag related
1321     bugfixes and enhancement of mcvs list-branches.
1322    
1323     mcvs-main.lisp (*switch-options*): New constant.
1324     (*mcvs-command-table*): New entries.
1325     (*usage*): New help text.
1326    
1327     branch.lisp (what-branch-are-we-on): Function renamed to
1328     what-tag-are-we-on. Tests the first letter which is T or N; if
1329     it is not T, then it's not a branch tag. If there is a tag,
1330     it returns two values; the second value is NIL if it is not
1331     a branch tag, T otherwise.
1332     (mcvs-merge): Modified to use what-tag-are-we-on.
1333     (mcvs-list-branches): Show additional information about the
1334     current sticky tag.
1335     (mcvs-merge-wrapper): Fix wrong parenthesization introduced
1336     earlier today.
1337     (mcvs-switch-wrapper): New function.
1338    
1339 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1340 kaz 1.84
1341 kaz 1.83 * branch.lisp (branch-tag-check): Check reserved symbol HEAD.
1342    
1343 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1344 kaz 1.83
1345 kaz 1.82 New command to list branches.
1346    
1347     * mcvs-main.lisp (*list-branches-options*): New constant.
1348     (*mcvs-command-table*): Entries for new command added.
1349     (*usage*): Help text added.
1350    
1351     * branch.lisp (mcvs-list-branches,
1352     mcvs-list-branches-wrapper): New functions.
1353    
1354 kaz 1.80 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
1355    
1356 kaz 1.81 * branch.lisp (where-is-the-repository): New function.
1357     (cvs-make-or-advance-tag): Pass down CVSROOT to cvs rtag using
1358     the -d global option.
1359    
1360     2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
1361    
1362 kaz 1.80 * branch.lisp (what-module-is-this): New function.
1363     (cvs-make-or-advance-tag): Use rtag rather than tag for tagging
1364     the branch being merged. This fixes the failure to merge added files.
1365     (mcvs-merge): Use mcvs-update rather than directly using cvs.
1366    
1367 kaz 1.78 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
1368    
1369 kaz 1.79 Implemented remerge command; redo a merge without moving
1370     around any tags.
1371    
1372     * branch.lisp (mcvs-merge): New keyword parameter remerge-p
1373     to indicate that a re-merge should be done, plus logic for
1374     doing so.
1375     (mcvs-remerge-wrapper): New function.
1376    
1377     * mcvs-main.lisp (*remerge-options*): New constant.
1378     (*mcvs-command-table*): New entry for remerge command.
1379    
1380     2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
1381    
1382 kaz 1.78 First cut at implementing more automated branching and merging.
1383    
1384     * mcvs-main.lisp (*branch-options*, *merge-options*): New constants.
1385     (*mcvs-command-table*): New entries for branch and merge commands.
1386     (*usage*): New help text.
1387    
1388     * branch.lisp: New file.
1389     (*branch-char*): New constant.
1390     (tags-from-cvs-log, what-branch-are-we-on, branch-tag-check,
1391     mcvs-branch, mcvs-branch-wrapper, cvs-make-or-advance-tag, mcvs-merge,
1392     mcvs-merge-wrapper): New functions.
1393    
1394 kaz 1.87 2002-04-01 Kaz Kylheku <kaz@ashi.footprints.net>
1395 kaz 1.77
1396     checkout.lisp (mcvs-checkout): Emit informational message
1397     when checkout completes, because it's not obvious what directory
1398     was just created.
1399    
1400 kaz 1.76 2002-02-38 Kaz Kylheku <kaz@ashi.footprints.net>
1401    
1402     Error checking added to mcvs move: verifies that all
1403     sources exist and are known to Meta-CVS.
1404    
1405     * move.lisp (source-check): New function.
1406     (simple-rename, simple-move-to-dir): Use new function.
1407    
1408 kaz 1.74 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
1409    
1410 kaz 1.75 * rcsparse.lisp: File renamed to rcs-utils.lisp.
1411     (rcs-delta): New slot, delta-hash.
1412     (rcs-make-delta-hash): New function.
1413     (rcs-parse): Calls rcs-make-delta-hash to set up new slot.
1414    
1415     * convert.lisp: require changed to match file rename.
1416    
1417     2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
1418    
1419 kaz 1.74 Some new macros for slot access.
1420    
1421     * slot-refs.lisp: New file.
1422     (with-slot-refs): New macro.
1423     (with-multi-slot-refs): New macro.
1424    
1425     * rcsparse.lisp (rcs-parse-newphrases, rcs-parse-admin,
1426     rcs-parse-delta): Replace uses
1427     of symbol-macrolet by with-slot-refs and with-multi-slot-refs.
1428    
1429 kaz 1.73 2002-03-19 Kaz Kylheku <kaz@ashi.footprints.net>
1430    
1431     Adding delta parsing to RCS parser.
1432    
1433     * rcsparse.lisp (rcs-delta): New struct.
1434     (rcs-file): New slot, deltas.
1435     (rcs-parse-newphrases): New function, factors out parsing of
1436     ``newphrases'' syntactic element out of rcs-parse-admin.
1437     (rcs-parse-admin): Use rcs-parse-newphrases.
1438     (rcs-parse-delta, rcs-parse-deltas): New functions.
1439     (rcs-parse): Parse both admin and deltas; store deltas in new
1440     rcs-file slot.
1441    
1442 kaz 1.72 2002-03-18 Kaz Kylheku <kaz@ashi.footprints.net>
1443    
1444     * posix.lisp (parse-posix-namestring): New function. Converts POSIX
1445     path to CL Path object.
1446 kaz 1.73
1447     * rcsparse.lisp: New file, implements RCS version file parser.
1448 kaz 1.72 (rcs-admin, rcs-file, rcs-token, rcs-token-stream): New structs.
1449     (rcs-peek-token, rcs-read-token): New generic functions.
1450     (rcs-extract-id-sym-or-num, rcs-extract-string,
1451     rcs-match-optional, rcs-match-token, rcs-parse, rcs-parse-admin,
1452     rcs-special-p): New functions.
1453    
1454     * convert.lisp (classify-tags): Work with association list rather
1455     than raw strings.
1456     (mcvs-convert): Use rcs-parse to extract tags. Fix call to
1457     mapping-generate name. Use parse-posix-namestring when opening
1458     version file. Generate informative chatter.
1459    
1460 kaz 1.69 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1461    
1462 kaz 1.71 * remove.lisp (mcvs-remove): More detailed error checking.
1463     Checks for remove attempts against MCVS/ area, removes of local
1464     files not versioned under Meta-CVS, and nonexistent files.
1465    
1466     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1467    
1468 kaz 1.70 * add.lisp (mcvs-add): Error message changed to tell user to use
1469     -R to add directory.
1470    
1471     * remove.lisp (mcvs-remove): New generalized boolean parameter
1472     indicates to do a recursive remove. This is controlled by the
1473     -R option which already exists. Behavior changed to not act
1474     on directories unless recursion is explicitly requested.
1475     (mcvs-remove-wrapper): Extract "R" option, pass down new boolean
1476     to mcvs-remove.
1477    
1478     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1479    
1480 kaz 1.69 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
1481    
1482 kaz 1.66 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1483    
1484 kaz 1.68 * checkout.lisp (mcvs-checkout): Bugfix: must use checkout-dir, not
1485     module, when testing whether directory exists or was created properly.
1486    
1487     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1488    
1489 kaz 1.67 Update takes file arguments now.
1490    
1491     * update.lisp (mcvs-update): If filename arguments are given, then
1492     just call mcvs-generic to do the work, but suppress the operation on
1493     meta files. If no filename arguments are given, then update everything.
1494     If the -p option is present, no synchronization is needed, before or
1495     after.
1496     (mcvs-update-wrapper): Pass command arguments down to mcvs-update.
1497    
1498     * mcvs-main.lisp (*update-options*): Add "p" option.
1499    
1500     * generic.lisp (mcvs-generic): New keyword parameter need-sync-after,
1501     a generalized boolean which can tell the function to do a
1502     mapping-synchronize after executing the CVS command.
1503    
1504     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1505    
1506 kaz 1.66 * filt.lisp (filt-select-map): Do allow a date and revision to be
1507     specified; the revision could be a branch tag.
1508    
1509 kaz 1.62 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1510    
1511 kaz 1.65 * mapping.lisp (malformed-map): New function.
1512     (mapping-dupe-check): Perform extra error checks when reading
1513     mapping, and turn them into a condition with a ``nice'' error message.
1514    
1515     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1516    
1517 kaz 1.64 * mcvs-filt.lisp (filt-select-map): Handle error gracefully
1518     when reading map. It's easy to give CVS is a nonexistent tag.
1519    
1520     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1521    
1522 kaz 1.63 The filt command takes arguments to select alternate revision
1523     of map.
1524    
1525     * mcvs-main.lisp (*filt-options*): New constant.
1526     (*mcvs-command-table*): Updated with new options.
1527     (mcvs-debug-shell): Restart name changed during debugging of filt
1528     changes.
1529    
1530     * filt.lisp (filt-select-map): New function. Loads either the
1531     local mapping, or retrieves an alternate mapping from CVS based
1532     on command line options.
1533     (mcvs-filt): Use filt-select-map rather than mapping-read.
1534    
1535     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1536    
1537 kaz 1.62 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
1538     metafiles.
1539    
1540 kaz 1.53 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1541    
1542 kaz 1.61 * import.lisp (mcvs-import): Create a .cvsignore file for ignoring
1543     MAP-LOCAL.
1544    
1545     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1546    
1547 kaz 1.60 Fix trailing slash bug in mcvs mv.
1548    
1549     * move.lisp (simple-move-to-dir): Canonicalize path after catenating
1550     destination and file base name. This nukes a double slash if
1551     we move to a name with a trailing slash.
1552     (move-guts): Treat a destination name that has a trailing slash
1553     as a directory, unless it exists already as a non-directory.
1554    
1555     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1556    
1557 kaz 1.59 * mcvs-main.lisp (*cvs-options*): Added "error-terminate" and
1558     "error-continue".
1559     (*usage*): Update and reformat help text.
1560     (mcvs-execute): Process "error-terminate" and "error-continue"
1561     options.
1562    
1563     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1564    
1565 kaz 1.58 * mapping.lisp (mapping-update): Messages related to moving,
1566     adding or removing files promoted to terse level, so only -Q
1567     can suppress them.
1568    
1569     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1570    
1571 kaz 1.57 * update.lisp (mcvs-update): Changing level of chatter messages.
1572     * move.lisp (mcvs-move): Likewise.
1573     * add.lisp (mcvs-add): Likewise.
1574     * remove.lisp (mcvs-remove): Likewise.
1575     * checkout.lisp (mcvs-checkout): Likewise.
1576     * generic.lisp (mcvs-generic): Likewise.
1577     * import.lisp (mcvs-import): Likewise.
1578     * mapping.lisp (mapping-dupe-check): Likewise.
1579     (mapping-update): Likewise.
1580    
1581     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1582    
1583 kaz 1.56 Support for -q, -Q and -e global options.
1584    
1585     * posix.lisp (*editor*): New special variable.
1586     (edit-file): Check *editor* variable; if not nil, use it.
1587    
1588     * mcvs-main.lisp (*usage*): Update help text.
1589     (mcvs-execute): Set *mcvs-chatter-level* according to -q or -Q.
1590     Set *editor* if -e is specified.
1591    
1592     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1593    
1594 kaz 1.55 * mcvs-main.lisp (*cvs-options*): Remove obsolete "a".
1595     (*cvs-options-arg*): Add missing "r".
1596     (*usage*): New constant, help text.
1597     (mcvs-execute): Process help and version command line options.
1598    
1599     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1600    
1601 kaz 1.54 * options.lisp (parse-opt): Make error messages more consistent.
1602    
1603     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1604    
1605 kaz 1.53 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
1606     the user might not care about the remaining unmatched list.
1607    
1608 kaz 1.49 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1609    
1610 kaz 1.52 * find-bind.lisp (find-bind): Documentation string change. Clarify
1611     that default values are substituted whenever a variable would
1612     otherwise be bound to the value NIL, even through an explicit
1613     match.
1614    
1615     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1616    
1617 kaz 1.51 Sane filtering of -d option in checkout.
1618    
1619     * find-bind.lisp (find-bind): Variable bindings can specify
1620     a third element, which provides a default value for any variables
1621     that turn out NIL.
1622    
1623     * checkout.lisp (mcvs-checkout): Filter out the -d dir option,
1624     and use it to override the name of the checkout directory,
1625     the way CVS checkout does it.
1626    
1627     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1628    
1629 kaz 1.50 Bugfix: mcvs add was not processing existing :ignore's in MCVS/TYPES.
1630    
1631     * add.lisp (mcvs-add): Use old types as well as new types
1632     to filter for ignores.
1633    
1634     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1635    
1636 kaz 1.49 * find-bind.lisp: New file.
1637     (find-bind-extract-vals): New function.
1638     (find-bind): New macro.
1639    
1640     * error.lisp (restart-destructure): Macro removed.
1641     (mcvs-error-handler): Uses generic find-bind instead of
1642     restart-destructure.
1643    
1644 kaz 1.43 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1645    
1646 kaz 1.48 * filt.lisp (mcvs-filt): Bugfix: do not stop processing line
1647     if F- file name is not found in hash table.
1648    
1649     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1650    
1651 kaz 1.47 Commit is handled through mcvs-generic, so it can take
1652     filename arguments, and honor --nometa.
1653    
1654     * commit.lisp: File removed.
1655     (mcvs-commit): Function removed.
1656     (mcvs-commit-wrapper): Moved to generic.lisp.
1657    
1658     * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp,
1659     changed to invoke mcvs-generic.
1660     (mcvs-generic): Only add TYPES file to list if it actually
1661     exists.
1662    
1663     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1664    
1665 kaz 1.46 New --nometa command line option.
1666    
1667     * mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
1668     (mcvs-execute): Filter global options to recognize
1669     Meta-CVS-specific ones.
1670    
1671     * options.lisp (*nometa-option*): New special variable.
1672     (filter-global-options): New function.
1673    
1674     * generic.lisp (mcvs-generic): Honor *nometa-option* special
1675     variable.
1676    
1677     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1678    
1679 kaz 1.45 * generic.lisp (mcvs-generic): Make sure TYPES file is
1680     included in list of files.
1681    
1682     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1683    
1684 kaz 1.44 * mcvs-main.lisp (*add-options*): Support -R option for add.
1685     Thus, recursive add works now.
1686    
1687     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1688    
1689 kaz 1.43 Fix mcvs filt so it handles suffixed F- files properly.
1690    
1691     * filt.lisp (make-filt-hash): New function.
1692     (mcvs-filt): After matching hex digits, also check for
1693     a suffix match.
1694    
1695 kaz 1.40 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1696    
1697 kaz 1.42 Support for file type keyword treatment under mcvs add.
1698    
1699     * add.lisp (mcvs-add): Restructured to build up list of new file
1700     suffixes, allow the user to edit the file which determines how
1701     they are treated, filter out ignored files and pass -k options
1702     to multiple cvs adds.
1703    
1704     * types.lisp (*mcvs-new-types*): New constant.
1705     (*types-comments*): Constant moved here from import.lisp.
1706     (types-remove-ignores): New function. Code factored out from
1707     mcvs-import.
1708     (types-let-user-edit): Likewise.
1709     (types-make-cvs-adds): New function.
1710    
1711     * import.lisp (*types-comments*): Constant removed. Moved to
1712     types.lisp
1713     (mcvs-import): Code factored out to new functions in types.lisp, which
1714     are also used by add.lisp.
1715    
1716     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1717    
1718 kaz 1.41 * print.lisp: New file.
1719     (print-assoc-list): New function.
1720     * types.lisp: Use print-assoc-list to nicely print the types.
1721     * import.lisp (mcvs-import): Don't bother getting user to
1722     edit the types if the type list is empty. In fact, don't
1723     even create the file.
1724    
1725     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1726    
1727     * add.lisp (mcvs-add): Use new form of mapping-generate-name.
1728    
1729     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1730    
1731 kaz 1.40 * import.lisp (mcvs-import): Fix broken restart for re-editing
1732     the types file.
1733     (*types-comments*): Drastically shorten the help text.
1734    
1735 kaz 1.38 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1736    
1737 kaz 1.39 Support for filetypes in import.
1738    
1739     * posix.lisp (suffix): Separator character parameter is optional;
1740     multiple occurences of character lead to one big suffix like
1741     ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but
1742     a hidden file like ".exrc".
1743     (edit-file): New function, brings up text editor for specified file.
1744    
1745     * clisp-linux.lisp (env-lookup): New function for environment
1746     variable lookup.
1747    
1748     * types.lisp: New source file.
1749     (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
1750     (types-read, types-write, types-sanity-check,
1751     types-to-import-wrapper-args): New functions.
1752    
1753     * import.lisp (*types-comments*): New constant.
1754     (mcvs-import): Restructured to build up list of file suffixes,
1755     allow the user to edit the file which determines how they
1756     are treated, filter out ignored files and pass -W options to cvs import
1757     to handle the rest. Failed cvs import is turned into restartable
1758     condition.
1759    
1760     * mapping.lisp (mapping-generate-name): Takes a suffix parameter.
1761     The F-files now carry a suffix obtained from the original file,
1762     because I have concluded that this was the only reasonable way
1763     to integrate with CVS.
1764    
1765     2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1766    
1767 kaz 1.38 * add.lisp (mcvs-add): Last change completely broke add due
1768     to not breaking out of the retry loop.
1769    
1770 kaz 1.36 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1771    
1772 kaz 1.37 * move.lisp (mcvs-move): If the mapping-update operation returns
1773     nil, or terminates by a non-local jump, restore the filemap.
1774     * mapping.lisp (mapping-update): When returning normally,
1775     return t. When returning after doing a rollback, return nil.
1776    
1777     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1778    
1779 kaz 1.36 * error.lisp (mcvs-error-handler): Bugfix. We were closing over
1780     a binding of the iteration variable of a dolist, which has only
1781     one binding over the entire loop.
1782    
1783     * mapping.lisp (mapping-update): Gathers up info all local
1784     clobbered files, and then throw the error. Provides restart
1785     which allows user to print the list of clobbered files, and
1786     a restart which allows the user to have those files clobbered.
1787    
1788     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1789    
1790     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for last bugfix.
1791    
1792 kaz 1.35 2002-02-11 Kaz Kylheku <kaz@ashi.footprints.net>
1793    
1794     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for bad
1795     destructuring-bind if there are no arguments.
1796    
1797 kaz 1.30 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1798    
1799 kaz 1.34 * mapping.lisp (mapping-difference): Reformatted documentation string.
1800     (mapping-update): Implemented a continue restart which rolls back
1801     the changes done to the local filesystem.
1802    
1803     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1804    
1805 kaz 1.31 * error.lisp (mcvs-error-handler): Rearranging the menu,
1806     so "T" is clumped with the main options, and any special restarts
1807 kaz 1.32 are clearly separated. Changed wording.
1808 kaz 1.31
1809     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1810    
1811 kaz 1.30 * update.lisp (mcvs-update): Re-print the "Invoking CVS" chatter
1812     if the user re-tries the error.
1813    
1814     * add.lisp (mcvs-add): CVS failure is now a restartable error;
1815 kaz 1.33 user can decide whether to roll back the effects or retry the
1816     CVS add, or terminate to keep the effects anyway despite
1817     the failed add.
1818 kaz 1.30
1819     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1820    
1821     * install.sh: Stop the script if there are compilation errors.
1822    
1823 kaz 1.24 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1824    
1825 kaz 1.29 * error.lisp (*mcvs-errors-occured-p*): New special variable.
1826     (mcvs-error-handler): Set *mcvs-errors-occured-p* to T.
1827     * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into
1828     account in computing termination status.
1829    
1830     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1831    
1832 kaz 1.28 * update.lisp: Remove spurious newlines from error messages.
1833     * add.lisp: Likewise.
1834     * options.lisp: Likewise.
1835     * mapping.lisp: Likewise.
1836    
1837     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1838    
1839 kaz 1.27 Adding some restarts around cvs update.
1840    
1841     * posix.lisp (execute-command-xargs): Bail with nil return
1842     value if any command line fails.
1843    
1844     * update.lisp (mcvs-update): Tests return value of execute-program
1845     and signal condition if it's nil. Provides a continue restart
1846     as well as a retry restart to try the command again.
1847    
1848     * error.lisp (mcvs-error-handler): Show retry restarts as
1849     a special menu item "R".
1850    
1851     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1852    
1853 kaz 1.26 Added a much improved error handling routine in anticipation
1854     of better use of restarts.
1855    
1856     * error.lisp: New file
1857     (restart-destructure): New macro.
1858     (*mcvs-error-treatment*): Special variable, moved here from
1859     mcvs-main.
1860     (mcvs-error-handler): New function.
1861    
1862     * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
1863     (mcvs-execute): Bind error to new mcvs-error-handler instad
1864     of mcvs-top-error-handler.
1865    
1866     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1867    
1868 kaz 1.25 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
1869     for status command added.
1870    
1871     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1872    
1873 kaz 1.24 Hooking conversion tool into command structure.
1874    
1875     * mcvs-main.lisp (*convert-options*): New constant.
1876     (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
1877     * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
1878     (mcvs-convert-wrapper): New function.
1879    
1880 kaz 1.22 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
1881    
1882 kaz 1.23 Beginning work on repository conversion utility.
1883    
1884     * convert.lisp: New file. Contains conversion utility
1885     to make an Meta-CVS repository from an ordinary CVS repository,
1886     while preserving all history, tags and branches.
1887     (remove-attic-component, classify-tags, read-tags,
1888     mcvs-convert): New functions.
1889    
1890     * posix.lisp (suffix): New function. Computes suffix of file.
1891     (execute-program-xargs): New optional parameter, for specifying
1892     fixed part added at the end of each generated command line.
1893    
1894     * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
1895     (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
1896     (mapping-generate-name): New key parameter no-dir for not adding
1897     the directory prefix.
1898    
1899     2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
1900    
1901 kaz 1.22 * checkout.lisp (mcvs-checkout): Ensure local mapping is
1902     sorted when written out, for easier comparisons.
1903    
1904 kaz 1.21 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
1905    
1906     * sync.lisp (synchronize-files): Return :dir symbol when either
1907     argument is a directory.
1908     * mapping.lisp (mapping-synchronize): Chatter output messages
1909     are shorter. Handles :dir return value from synchronize-files.
1910     (mapping-update): New sanity checks for moved and added
1911     files, to avoid clobbering local files. Removed redundant
1912     call to ensure-directories-exit in move logic, because
1913     synchronize-files will do it anyway. Chatter messages reordered
1914     to occur before their corresponding action is done.
1915    
1916     2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
1917    
1918     Improve error handling, and builtin ``debug shell''.
1919    
1920     * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
1921     can have new domain value, namely :decline.
1922     (mcvs-top-error-handler): Print error message when terminating
1923     non-restartable error. Handle new :decline treatment by
1924     simply returning.
1925     (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
1926     so that errors are caught by debugger.
1927    
1928 kaz 1.20 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
1929    
1930     * mapping.lisp (mapping-sort): Removed function.
1931     (mapping-write): Sort written map by F- file names,
1932     not by path names. This is far better for merging, because
1933     files stay in the same place when they are renamed.
1934    
1935 kaz 1.17 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1936    
1937 kaz 1.19 Added status, log and annotate.
1938    
1939     * mcvs-main.lisp: (*log-options*, *status-options*,
1940     *annotate-options*): New constants.
1941     (*mcvs-command-table*): Add new entries.
1942    
1943     * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
1944     mcvs-annotate-wrapper): New functions.
1945    
1946     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1947    
1948 kaz 1.18 Added tag command.
1949    
1950     * diff.lisp: File renamed to generic.lisp.
1951     (mcvs-diff): Function renamed to mcvs-generic.
1952    
1953     * generic.lisp (mcvs-generic): Function no longer dedicated to
1954     diffing only; takes CVS command to execute as an argument,
1955     also takes arguments and files as separate lists.
1956     (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
1957     (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
1958     tag command.
1959    
1960     * mcvs-main.lisp (*tag-options*): New constant.
1961     (*mcvs-command-table*): New entry for tag command.
1962    
1963     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1964    
1965 kaz 1.17 Added workaround for operating system argument passing limitations,
1966     resembling the Unix xargs utility. Also, trimmed some fat
1967     from the basename function.
1968    
1969     * clisp-linux.lisp: (*argument-limit*): New constant added.
1970     (arglist-to-command-string): Function removed.
1971     (execute-program): Function removed.
1972     (shell-interpreter): New function, wrapper for CLISP's shell
1973     function, turns exit status into T (success) or NIL (failure).
1974    
1975     * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
1976     of execute-program.
1977    
1978     * posix.lisp (basename): Does not canonicalize path name. This
1979     turns out to be an unnecessary performance hit in some cases.
1980     (arglist-to-command-string): New function. Similar to what was
1981     removed from clisp-linux, but this one properly escapes all
1982     shell metacharacters.
1983     (execute-program): New function, calls shell-interpreter.
1984     (execute-program-xargs): New function. Takes two argument lists.
1985     Forms one or more command lines by combining the first argument list
1986     with one or more pieces of the second argument list, and
1987     executes each command. The length of the pieces is determined
1988     by the argument passing limit.
1989    
1990     * dirwalk.lisp (ensure-directories-gone): Add use of
1991     canonicalize-path because basename doesn't do it.
1992    
1993 kaz 1.12 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
1994    
1995 kaz 1.16 Algorithmic efficiency improvements. No longer using
1996     abstract set operations to update file structure or find
1997     duplicates in the maps. Could still streamline the sorting.
1998    
1999     * mapping.lisp (mapping-sort): Express more succinctly using key.
2000     (mapping-dupe-check): Rewrite using loop over sorted lists.
2001     (mapping-difference): New function for computing mapping change.
2002     (mapping-update): Modify to use mapping-difference.
2003    
2004     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2005    
2006 kaz 1.15 * mapping.lisp (mapping-update): When moving files, ensure
2007     that the target is unlinked if it exists.
2008    
2009     * move.lisp (simple-rename): No longer do target unlinking
2010     here. Also bugfix: it wasn't handling renames of directories
2011     containing just one file.
2012    
2013     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2014    
2015 kaz 1.13 * mapping.lisp (mapping-dupe-check): New function for
2016     detecting duplicate objects or paths in a mapping.
2017     (mapping-sane-p): Function removed.
2018     (mapping-read): Use mapping-dupe-check to verify a map
2019     when asked by the sanity-check keyword.
2020     (mapping-update): Specify sanity check when reading MCVS/MAP.
2021    
2022 kaz 1.14 * checkout.lisp (mcvs-checkout): Checkout also performs
2023     sanity check.
2024    
2025 kaz 1.13 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2026    
2027 kaz 1.12 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
2028     to establish proper termination status.
2029    
2030 kaz 1.8 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2031    
2032 kaz 1.10 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
2033     properly based on knowledge of each command's set of options.
2034     (parse-args): Function removed.
2035    
2036 kaz 1.11 * options.lisp (parse-opt): Correctly process long options with
2037     arguments. Argument is part of the string, separated by = symbol.
2038    
2039 kaz 1.10 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2040    
2041 kaz 1.9 * options.lisp (parse-opt): When multiple options characters are
2042     bunched up into one argument, and one of them other than the
2043     last one takes an argument, then the remaining ones are
2044     considered to constitute a string which is an argument to that
2045     option. For instance -y32 means -y 32, not -y -3 -2, assuming
2046     that y is an option that requires an argument.
2047    
2048     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2049    
2050     Top level handler terminates by non-local exit back to
2051     mcvs function, rather than by calling (exit).
2052    
2053     * mcvs-main.lisp (mcvs-top-error-handler): Restructured
2054     to call (throw 'mcvs-exit t).
2055     (mcvs-execute): Ensure that NIL is returned by normal exit.
2056     (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
2057     accordingly.
2058    
2059    
2060     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2061    
2062 kaz 1.8 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
2063    
2064     * mapping.lisp (filemap-generate-name, filemap-sort,
2065     filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
2066     filemap-prefix-matches, filemap-object-lookup,
2067     filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
2068     filemap-rename-files, filemap-sane-p): Old names removed.
2069     (mapping-generate-name, mapping-sort,
2070     mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
2071     mapping-prefix-matches, mapping-object-lookup,
2072     mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
2073     mapping-rename-files, mapping-sane-p): New names created.
2074     (mapping-read, mapping-write, mapping-synchronize,
2075     mapping-update): Edit calls to renamed functions.
2076     * add.lisp (mcvs-add): Likewise.
2077     * diff.lisp (mcvs-diff): Likewise.
2078     * filt.lisp (mcvs-filt): Likewise.
2079     * import.lisp (mcvs-import): Likewise.
2080     * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
2081     * remove.lisp (mcvs-remove): Likewise.
2082    
2083 kaz 1.6 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2084    
2085 kaz 1.7 Factored out repeated code for reading and writing of the MAP and
2086     MAP-LOCAL files.
2087    
2088     * mapping.lisp (mapping-read, mapping-write): New functions.
2089     (mapping-synchronize, mapping-update): Use new functions.
2090     * move.lisp (mcvs-move): Likewise.
2091     * filt.lisp (mcvs-filt): Likewise.
2092     * add.lisp (mcvs-add): Likewise.
2093     * remove.lisp (mcvs-remove): Likewise.
2094     * checkout.lisp (mcvs-checkout): Likewise.
2095     * diff.lisp (mcvs-diff): Likewise.
2096     * import.lisp (mcvs-import): Likewise.
2097    
2098     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2099    
2100 kaz 1.6 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
2101     hard coding "MCVS" string.
2102    
2103     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2104    
2105     * MCVS-PAPER: Renamed to Meta-CVS-PAPER
2106    
2107     * README: Change all references to MCVS to Meta-CVS, the
2108     new official name of the program.
2109     * add.lisp: Likewise
2110     * chatter.lisp: Likewise
2111     * checkout.lisp: Likewise
2112     * clisp-linux.lisp: Likewise
2113     * commit.lisp: Likewise
2114     * diff.lisp: Likewise
2115     * dirwalk.lisp: Likewise
2116     * filt.lisp: Likewise
2117     * import.lisp: Likewise
2118     * INSTALL: Likewise
2119     * mapping.lisp: Likewise
2120     * mcvs-main.lisp: Likewise
2121     * Meta-CVS-PAPER: Likewise
2122     * move.lisp: Likewise
2123     * options.lisp: Likewise
2124     * posix.lisp: Likewise
2125     * RELEASE-NOTES: Likewise
2126     * remove.lisp: Likewise
2127     * restart.lisp: Likewise
2128     * seqfuncs.lisp: Likewise
2129     * split.lisp: Likewise
2130     * sync.lisp: Likewise
2131     * system.lisp: Likewise
2132     * update.lisp: Likewise
2133    
2134 kaz 1.4 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
2135    
2136 kaz 1.5 * move.lisp (move-guts): test the actual filesystem as well
2137     as the map for existence of a directory or file. This makes
2138     the move operation behave better. Files can be moved to an
2139     existing directory that is not known to MCVS, and a file
2140     can properly clobber a target file that is not known to MCVS.
2141    
2142     * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
2143     methods for these generic functions for a NIL argument, such
2144     that they return NIL.
2145    
2146     2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
2147    
2148 kaz 1.4 * move.lisp (simple-move-to-dir): eliminated a bunch of code
2149     with the result that mcvs mv now works more like the Unix mv
2150     when moving a directory to another directory.
2151    
2152     * mcvs-main.lisp (mcvs-execute): fix bogus error message
2153     when options are given but no command.
2154    
2155     * README: don't use -z3 in example because this style of
2156     specifying an argument to an option doesn't work.
2157    
2158 kaz 1.1 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
2159    
2160     * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
2161     recursivep to be a generalized boolean variable. This allows
2162     mcvs add -R to work properly.
2163 kaz 1.2
2164     * mcvs-main.lisp (*cvs-command-options-arg*): add support
2165     for -u parameter, useful in cvs diff.
2166 kaz 1.3 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5