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

  ViewVC Help
Powered by ViewVC 1.1.5