/[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 - (show 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 2002-10-30 Kaz Kylheku <kaz@ashi.footprints.net>
2
3 * 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 * 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 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 2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
30
31 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 * 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 * 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 * 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 * 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 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 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 2002-10-19 Kaz Kylheku <kaz@ashi.footprints.net>
91
92 * UPGRADE-EXISTING: New file.
93
94 2002-10-19 Kaz Kylheku <kaz@ashi.footprints.net>
95
96 * 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 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 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 2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
124
125 * code/install.sh: generate a script called mcvs-upgrade.
126
127 2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
128
129 * 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 * 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 * code/mcvs-main.lisp (*usage*): Describe export and watch commands.
147
148 2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
149
150 * 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 * code/mcvs-main.lisp (*export-options*): New constant.
158 (*mcvs-command-table*): New entries for export command.
159
160 * 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 (mcvs-checkout-wrapper): Common function factored out into a flet.
164 (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
168 2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
169
170 * 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 * 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 * code/clisp-unix.lisp (execute-program): Provide debug traces
184 for command execution.
185
186 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 2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
192
193 * 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 * 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 * 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 * code/posix.lisp (path-prefix-equal): Handle empty strings.
213
214 2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
215
216 * 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 * 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 * 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 * 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 * 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 2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
251
252 * 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 * 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 * 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 * 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 * 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 * 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 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 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 2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
365
366 * 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 * code/mcvs-main.lisp (*args*): New global variable. Gives
382 scripts access to command line.
383
384 2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
385
386 * 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 * 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 * 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 * 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 * 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 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 2002-09-17 Kaz Kylheku <kaz@ashi.footprints.net>
424
425 * 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 * 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 2002-09-16 Kaz Kylheku <kaz@ashi.footprints.net>
438
439 * 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 * code/mcvs-main.lisp (*mcvs-command-table*): Add *grab-help*.
453
454 * code/grab.lisp (*grab-help*): New string constant.
455
456 2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
457
458 * code/clisp-linux.lisp: File removed.
459
460 2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
461
462 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 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 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 2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
505
506 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 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 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 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 2002-09-06 Kaz Kylheku <kaz@ashi.footprints.net>
536
537 * 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 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 2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
572
573 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 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 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 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 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 2002-08-31 Kaz Kylheku <kaz@ashi.footprints.net>
647
648 Merging new symbolic link support from symlink-branch.
649
650 * code/mapping.lisp (mapping-update): Resolve merge conflict.
651 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 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 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 2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
782
783 * code/posix.lisp (execute-program): Function removed.
784 * code/clisp-linux.lisp (execute-program): Function added. Works
785 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 * code/posix.lisp (edit-file): Function renamed to invoke-file-on,
793 because this name clashes with a standard Common Lisp symbol.
794 * code/types.lisp (types-let-user-edit): Updated to use new name.
795
796 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 2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
816
817 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 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 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 2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
895
896 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 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
915 * INSTALL: Instructions change, since building the GNU/Linux libc
916 into CLISP is no longer required.
917
918 2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
919
920 * docs/meta-cvs.latex: Rewrote most of Introduction.
921
922 2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
923
924 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 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 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
941 * 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 * 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 * code/mcvs-main.lisp (usage): Updated to describe restore
959 command.
960
961 2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
962
963 * 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 * code/find-bind.lisp (vector-bind): New macro, binds symbols
970 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 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 2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
982
983 * 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 * 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 * mapping.lisp (mapping-difference): Rewrite using
998 intersection-difference.
999
1000 2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
1001
1002 * 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 * seqfuncs.lisp (intersection-difference): New function.
1009
1010 2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
1011
1012 * 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 * 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
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
1110 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 2002-07-03 Kaz Kylheku <kaz@ashi.footprints.net>
1123
1124 * mcvs-main.lisp (*usage*): Describe --meta and --metaonly options.
1125
1126 2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
1127
1128 * 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 * checkout.lisp (mcvs-checkout): Don't delete the MCVS directory
1140 of an existing checkout.
1141
1142 2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
1143
1144 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 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 2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1170
1171 * 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 * 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 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 * options.lisp (*nometa-option*): Eliminated useless docstring.
1192 (*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 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1209
1210 * memoize.lisp (memoize-expander): Use ordinary hash for memoizing
1211 monadic functions.
1212
1213 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1214
1215 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 (move-candidates): Acceptance threshold reduced to 30%, since
1229 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 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1237
1238 * 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 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1248
1249 * seqfuncs.lisp (lcs-list): Specify #'eq test for memoization
1250 parameters.
1251
1252 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1253
1254 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 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 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 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
1306
1307 * 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 * dirwalk.lisp (dirwalk-fi): Bugfix: top call was not
1317 passing down keyword parameters to recursive call.
1318
1319 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1320
1321 * posix.lisp (canonicalize-path): Use concatenate-string
1322 instead of format.
1323
1324 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1325
1326 * posix.lisp (parse-posix-namestring): Clean rewrite.
1327
1328 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1329
1330 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 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1343
1344 * 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
1348 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1349
1350 * find-bind.lisp (find-bind): Use #'values instead of #'(lambda (x) x).
1351
1352 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
1353
1354 * 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 * 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 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 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 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1383
1384 * find-bind.lisp (find-bind-extract-vals, find-bind): Process default
1385 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 * 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 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 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 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 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
1427
1428 * 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 * mapping.lisp (mapping-update): Provide restart that allows
1434 user to ignore file removal error.
1435
1436 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 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
1449
1450 * checkout.lisp (mcvs-checkout): Allow -d to specify current
1451 directory as the checkout directory. Do not complain if the
1452 target directory exists, just try to use it anyway,
1453 unless it is the root of an existing Meta-CVS sandbox. Use
1454 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 * 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 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
1467
1468 * 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 * remove.lisp (mcvs-remove): Corrected careless bracketing
1480 introduced on 2002-03-15 that rendered this function ineffective.
1481
1482 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1483
1484 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 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 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1515
1516 * branch.lisp (branch-tag-check): Check reserved symbol HEAD.
1517
1518 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1519
1520 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 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
1530
1531 * 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 * 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 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
1543
1544 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 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 2002-04-01 Kaz Kylheku <kaz@ashi.footprints.net>
1570
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 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 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
1584
1585 * 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 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 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 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
1622 * rcsparse.lisp: New file, implements RCS version file parser.
1623 (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 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1636
1637 * 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 * 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 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
1656
1657 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1658
1659 * 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 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 * filt.lisp (filt-select-map): Do allow a date and revision to be
1682 specified; the revision could be a branch tag.
1683
1684 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1685
1686 * 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 * 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 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 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
1713 metafiles.
1714
1715 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1716
1717 * 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 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 * 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 * 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 * 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 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 * 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 * options.lisp (parse-opt): Make error messages more consistent.
1777
1778 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1779
1780 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
1781 the user might not care about the remaining unmatched list.
1782
1783 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1784
1785 * 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 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 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 * 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 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1820
1821 * 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 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 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 * 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 * 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 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 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1871
1872 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 * 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 * import.lisp (mcvs-import): Fix broken restart for re-editing
1907 the types file.
1908 (*types-comments*): Drastically shorten the help text.
1909
1910 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1911
1912 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 * add.lisp (mcvs-add): Last change completely broke add due
1943 to not breaking out of the retry loop.
1944
1945 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1946
1947 * 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 * 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 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 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1973
1974 * 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 * error.lisp (mcvs-error-handler): Rearranging the menu,
1981 so "T" is clumped with the main options, and any special restarts
1982 are clearly separated. Changed wording.
1983
1984 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1985
1986 * 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 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
1994 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1995
1996 * install.sh: Stop the script if there are compilation errors.
1997
1998 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1999
2000 * 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 * 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 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 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 * 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 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 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
2056
2057 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 * checkout.lisp (mcvs-checkout): Ensure local mapping is
2077 sorted when written out, for easier comparisons.
2078
2079 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 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 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
2111
2112 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 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 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 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2169
2170 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 * 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 * 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 * checkout.lisp (mcvs-checkout): Checkout also performs
2198 sanity check.
2199
2200 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2201
2202 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
2203 to establish proper termination status.
2204
2205 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2206
2207 * 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 * options.lisp (parse-opt): Correctly process long options with
2212 arguments. Argument is part of the string, separated by = symbol.
2213
2214 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2215
2216 * 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 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 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2259
2260 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 * 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 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
2310
2311 * 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 * 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 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
2339 * mcvs-main.lisp (*cvs-command-options-arg*): add support
2340 for -u parameter, useful in cvs diff.
2341 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5