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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.219 - (show annotations)
Sat Oct 26 21:10:42 2002 UTC (11 years, 5 months ago) by kaz
Branch: MAIN
Changes since 1.218: +6 -0 lines
Merging from mcvs-1-0-branch.

* code/grab.lisp (*grab-help*): Rewritten.

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

  ViewVC Help
Powered by ViewVC 1.1.5