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

  ViewVC Help
Powered by ViewVC 1.1.5