/[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.31 - (show annotations)
Thu Nov 21 06:13:47 2002 UTC (11 years, 5 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since 1.205.2.30: +11 -0 lines
Some security fixes.  Funny I didn't think of this sooner!

* code/types.lisp (types-read): Make sure *read-eval* is bound to
nil when calling READ.

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

  ViewVC Help
Powered by ViewVC 1.1.5