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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.221 - (show annotations)
Mon Oct 28 04:01:15 2002 UTC (11 years, 5 months ago) by kaz
Branch: MAIN
Changes since 1.220: +11 -0 lines
Merging from mcvs-1-0-branch.

Bugfix to the directory restructuring code. A clobbering
file add was not actually removing the clobbered file, but leaving
it up to the synchronization algorithm, so the time-stamp would
decide whether the local file gets clobbered by the repository one,
or whether it wins.

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

  ViewVC Help
Powered by ViewVC 1.1.5