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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5