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

  ViewVC Help
Powered by ViewVC 1.1.5