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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.218 - (show annotations)
Sat Oct 26 18:56:29 2002 UTC (11 years, 5 months ago) by kaz
Branch: MAIN
Changes since 1.217: +22 -0 lines
Merging from mcvs-1-0-branch.

* code/mcvs-main.lisp (*usage*): Expand tabs to spaces.

* code/add.lisp (*add-help*): Likewise.

* code/remove.lisp (*remove-help*): Likewise.

* code/create.lisp (*create-help*): Likewise.

* code/purge.lisp (mcvs-purge): Get rid the processing of the
nonexistent -n option from purge code.  The global option -n does an
adequate job of implementing a dry run.

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

  ViewVC Help
Powered by ViewVC 1.1.5