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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.214 - (hide annotations)
Mon Oct 14 03:05:40 2002 UTC (11 years, 6 months ago) by kaz
Branch: MAIN
Changes since 1.213: +4 -0 lines
Merging from mcvs-1-0-branch.

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

  ViewVC Help
Powered by ViewVC 1.1.5