/[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.4 - (hide annotations)
Sun Oct 13 22:39:20 2002 UTC (11 years, 6 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since 1.205.2.3: +12 -0 lines
* code/mcvs-main.lisp (*export-options*): New constant.
(*mcvs-command-table*): New entries for export command.

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

  ViewVC Help
Powered by ViewVC 1.1.5