/[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.3 - (hide annotations)
Sat Oct 12 22:32:23 2002 UTC (11 years, 6 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since 1.205.2.2: +8 -0 lines
* code/mcvs-main.lisp (*update-options*): Added -C option.

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

  ViewVC Help
Powered by ViewVC 1.1.5