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

  ViewVC Help
Powered by ViewVC 1.1.5