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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5