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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.207 - (hide annotations)
Sat Oct 12 19:37:47 2002 UTC (11 years, 6 months ago) by kaz
Branch: MAIN
Changes since 1.206: +26 -6 lines
Rethink some decisions in the previous change. Reusing the
name posix.lisp for a new file will cause problems for people
using mcvs grab to keep up with Meta-CVS patches.

* code/posix.lisp: Renamed to unix.lisp.

* code/clisp-posix.lisp: Renamed back to clisp-unix.lisp, for
the sake of consistency.

* code/system.lisp: Updated.

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

  ViewVC Help
Powered by ViewVC 1.1.5