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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.208 - (hide annotations)
Sat Oct 12 20:34:23 2002 UTC (11 years, 6 months ago) by kaz
Branch: MAIN
Changes since 1.207: +10 -0 lines
Merging from mcvs-1-0-branch.

* code/filt.lisp (mcvs-filt): Do not filter F- names if
immediately preceded by MCVS/ prefix.

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

  ViewVC Help
Powered by ViewVC 1.1.5