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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5