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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.54 - (show annotations)
Tue Mar 12 17:35:30 2002 UTC (12 years, 1 month ago) by kaz
Branch: MAIN
Changes since 1.53: +4 -0 lines
* options.lisp (parse-opt): Make error messages more consistent.
1 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
2
3 * options.lisp (parse-opt): Make error messages more consistent.
4
5 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
6
7 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
8 the user might not care about the remaining unmatched list.
9
10 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
11
12 * find-bind.lisp (find-bind): Documentation string change. Clarify
13 that default values are substituted whenever a variable would
14 otherwise be bound to the value NIL, even through an explicit
15 match.
16
17 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
18
19 Sane filtering of -d option in checkout.
20
21 * find-bind.lisp (find-bind): Variable bindings can specify
22 a third element, which provides a default value for any variables
23 that turn out NIL.
24
25 * checkout.lisp (mcvs-checkout): Filter out the -d dir option,
26 and use it to override the name of the checkout directory,
27 the way CVS checkout does it.
28
29 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
30
31 Bugfix: mcvs add was not processing existing :ignore's in MCVS/TYPES.
32
33 * add.lisp (mcvs-add): Use old types as well as new types
34 to filter for ignores.
35
36 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
37
38 * find-bind.lisp: New file.
39 (find-bind-extract-vals): New function.
40 (find-bind): New macro.
41
42 * error.lisp (restart-destructure): Macro removed.
43 (mcvs-error-handler): Uses generic find-bind instead of
44 restart-destructure.
45
46 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
47
48 * filt.lisp (mcvs-filt): Bugfix: do not stop processing line
49 if F- file name is not found in hash table.
50
51 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
52
53 Commit is handled through mcvs-generic, so it can take
54 filename arguments, and honor --nometa.
55
56 * commit.lisp: File removed.
57 (mcvs-commit): Function removed.
58 (mcvs-commit-wrapper): Moved to generic.lisp.
59
60 * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp,
61 changed to invoke mcvs-generic.
62 (mcvs-generic): Only add TYPES file to list if it actually
63 exists.
64
65 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
66
67 New --nometa command line option.
68
69 * mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
70 (mcvs-execute): Filter global options to recognize
71 Meta-CVS-specific ones.
72
73 * options.lisp (*nometa-option*): New special variable.
74 (filter-global-options): New function.
75
76 * generic.lisp (mcvs-generic): Honor *nometa-option* special
77 variable.
78
79 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
80
81 * generic.lisp (mcvs-generic): Make sure TYPES file is
82 included in list of files.
83
84 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
85
86 * mcvs-main.lisp (*add-options*): Support -R option for add.
87 Thus, recursive add works now.
88
89 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
90
91 Fix mcvs filt so it handles suffixed F- files properly.
92
93 * filt.lisp (make-filt-hash): New function.
94 (mcvs-filt): After matching hex digits, also check for
95 a suffix match.
96
97 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
98
99 Support for file type keyword treatment under mcvs add.
100
101 * add.lisp (mcvs-add): Restructured to build up list of new file
102 suffixes, allow the user to edit the file which determines how
103 they are treated, filter out ignored files and pass -k options
104 to multiple cvs adds.
105
106 * types.lisp (*mcvs-new-types*): New constant.
107 (*types-comments*): Constant moved here from import.lisp.
108 (types-remove-ignores): New function. Code factored out from
109 mcvs-import.
110 (types-let-user-edit): Likewise.
111 (types-make-cvs-adds): New function.
112
113 * import.lisp (*types-comments*): Constant removed. Moved to
114 types.lisp
115 (mcvs-import): Code factored out to new functions in types.lisp, which
116 are also used by add.lisp.
117
118 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
119
120 * print.lisp: New file.
121 (print-assoc-list): New function.
122 * types.lisp: Use print-assoc-list to nicely print the types.
123 * import.lisp (mcvs-import): Don't bother getting user to
124 edit the types if the type list is empty. In fact, don't
125 even create the file.
126
127 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
128
129 * add.lisp (mcvs-add): Use new form of mapping-generate-name.
130
131 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
132
133 * import.lisp (mcvs-import): Fix broken restart for re-editing
134 the types file.
135 (*types-comments*): Drastically shorten the help text.
136
137 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
138
139 Support for filetypes in import.
140
141 * posix.lisp (suffix): Separator character parameter is optional;
142 multiple occurences of character lead to one big suffix like
143 ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but
144 a hidden file like ".exrc".
145 (edit-file): New function, brings up text editor for specified file.
146
147 * clisp-linux.lisp (env-lookup): New function for environment
148 variable lookup.
149
150 * types.lisp: New source file.
151 (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
152 (types-read, types-write, types-sanity-check,
153 types-to-import-wrapper-args): New functions.
154
155 * import.lisp (*types-comments*): New constant.
156 (mcvs-import): Restructured to build up list of file suffixes,
157 allow the user to edit the file which determines how they
158 are treated, filter out ignored files and pass -W options to cvs import
159 to handle the rest. Failed cvs import is turned into restartable
160 condition.
161
162 * mapping.lisp (mapping-generate-name): Takes a suffix parameter.
163 The F-files now carry a suffix obtained from the original file,
164 because I have concluded that this was the only reasonable way
165 to integrate with CVS.
166
167 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
168
169 * add.lisp (mcvs-add): Last change completely broke add due
170 to not breaking out of the retry loop.
171
172 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
173
174 * move.lisp (mcvs-move): If the mapping-update operation returns
175 nil, or terminates by a non-local jump, restore the filemap.
176 * mapping.lisp (mapping-update): When returning normally,
177 return t. When returning after doing a rollback, return nil.
178
179 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
180
181 * error.lisp (mcvs-error-handler): Bugfix. We were closing over
182 a binding of the iteration variable of a dolist, which has only
183 one binding over the entire loop.
184
185 * mapping.lisp (mapping-update): Gathers up info all local
186 clobbered files, and then throw the error. Provides restart
187 which allows user to print the list of clobbered files, and
188 a restart which allows the user to have those files clobbered.
189
190 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
191
192 * checkout.lisp (mcvs-checkout-wrapper): Bugfix for last bugfix.
193
194 2002-02-11 Kaz Kylheku <kaz@ashi.footprints.net>
195
196 * checkout.lisp (mcvs-checkout-wrapper): Bugfix for bad
197 destructuring-bind if there are no arguments.
198
199 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
200
201 * mapping.lisp (mapping-difference): Reformatted documentation string.
202 (mapping-update): Implemented a continue restart which rolls back
203 the changes done to the local filesystem.
204
205 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
206
207 * error.lisp (mcvs-error-handler): Rearranging the menu,
208 so "T" is clumped with the main options, and any special restarts
209 are clearly separated. Changed wording.
210
211 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
212
213 * update.lisp (mcvs-update): Re-print the "Invoking CVS" chatter
214 if the user re-tries the error.
215
216 * add.lisp (mcvs-add): CVS failure is now a restartable error;
217 user can decide whether to roll back the effects or retry the
218 CVS add, or terminate to keep the effects anyway despite
219 the failed add.
220
221 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
222
223 * install.sh: Stop the script if there are compilation errors.
224
225 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
226
227 * error.lisp (*mcvs-errors-occured-p*): New special variable.
228 (mcvs-error-handler): Set *mcvs-errors-occured-p* to T.
229 * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into
230 account in computing termination status.
231
232 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
233
234 * update.lisp: Remove spurious newlines from error messages.
235 * add.lisp: Likewise.
236 * options.lisp: Likewise.
237 * mapping.lisp: Likewise.
238
239 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
240
241 Adding some restarts around cvs update.
242
243 * posix.lisp (execute-command-xargs): Bail with nil return
244 value if any command line fails.
245
246 * update.lisp (mcvs-update): Tests return value of execute-program
247 and signal condition if it's nil. Provides a continue restart
248 as well as a retry restart to try the command again.
249
250 * error.lisp (mcvs-error-handler): Show retry restarts as
251 a special menu item "R".
252
253 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
254
255 Added a much improved error handling routine in anticipation
256 of better use of restarts.
257
258 * error.lisp: New file
259 (restart-destructure): New macro.
260 (*mcvs-error-treatment*): Special variable, moved here from
261 mcvs-main.
262 (mcvs-error-handler): New function.
263
264 * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
265 (mcvs-execute): Bind error to new mcvs-error-handler instad
266 of mcvs-top-error-handler.
267
268 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
269
270 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
271 for status command added.
272
273 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
274
275 Hooking conversion tool into command structure.
276
277 * mcvs-main.lisp (*convert-options*): New constant.
278 (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
279 * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
280 (mcvs-convert-wrapper): New function.
281
282 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
283
284 Beginning work on repository conversion utility.
285
286 * convert.lisp: New file. Contains conversion utility
287 to make an Meta-CVS repository from an ordinary CVS repository,
288 while preserving all history, tags and branches.
289 (remove-attic-component, classify-tags, read-tags,
290 mcvs-convert): New functions.
291
292 * posix.lisp (suffix): New function. Computes suffix of file.
293 (execute-program-xargs): New optional parameter, for specifying
294 fixed part added at the end of each generated command line.
295
296 * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
297 (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
298 (mapping-generate-name): New key parameter no-dir for not adding
299 the directory prefix.
300
301 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
302
303 * checkout.lisp (mcvs-checkout): Ensure local mapping is
304 sorted when written out, for easier comparisons.
305
306 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
307
308 * sync.lisp (synchronize-files): Return :dir symbol when either
309 argument is a directory.
310 * mapping.lisp (mapping-synchronize): Chatter output messages
311 are shorter. Handles :dir return value from synchronize-files.
312 (mapping-update): New sanity checks for moved and added
313 files, to avoid clobbering local files. Removed redundant
314 call to ensure-directories-exit in move logic, because
315 synchronize-files will do it anyway. Chatter messages reordered
316 to occur before their corresponding action is done.
317
318 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
319
320 Improve error handling, and builtin ``debug shell''.
321
322 * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
323 can have new domain value, namely :decline.
324 (mcvs-top-error-handler): Print error message when terminating
325 non-restartable error. Handle new :decline treatment by
326 simply returning.
327 (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
328 so that errors are caught by debugger.
329
330 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
331
332 * mapping.lisp (mapping-sort): Removed function.
333 (mapping-write): Sort written map by F- file names,
334 not by path names. This is far better for merging, because
335 files stay in the same place when they are renamed.
336
337 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
338
339 Added status, log and annotate.
340
341 * mcvs-main.lisp: (*log-options*, *status-options*,
342 *annotate-options*): New constants.
343 (*mcvs-command-table*): Add new entries.
344
345 * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
346 mcvs-annotate-wrapper): New functions.
347
348 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
349
350 Added tag command.
351
352 * diff.lisp: File renamed to generic.lisp.
353 (mcvs-diff): Function renamed to mcvs-generic.
354
355 * generic.lisp (mcvs-generic): Function no longer dedicated to
356 diffing only; takes CVS command to execute as an argument,
357 also takes arguments and files as separate lists.
358 (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
359 (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
360 tag command.
361
362 * mcvs-main.lisp (*tag-options*): New constant.
363 (*mcvs-command-table*): New entry for tag command.
364
365 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
366
367 Added workaround for operating system argument passing limitations,
368 resembling the Unix xargs utility. Also, trimmed some fat
369 from the basename function.
370
371 * clisp-linux.lisp: (*argument-limit*): New constant added.
372 (arglist-to-command-string): Function removed.
373 (execute-program): Function removed.
374 (shell-interpreter): New function, wrapper for CLISP's shell
375 function, turns exit status into T (success) or NIL (failure).
376
377 * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
378 of execute-program.
379
380 * posix.lisp (basename): Does not canonicalize path name. This
381 turns out to be an unnecessary performance hit in some cases.
382 (arglist-to-command-string): New function. Similar to what was
383 removed from clisp-linux, but this one properly escapes all
384 shell metacharacters.
385 (execute-program): New function, calls shell-interpreter.
386 (execute-program-xargs): New function. Takes two argument lists.
387 Forms one or more command lines by combining the first argument list
388 with one or more pieces of the second argument list, and
389 executes each command. The length of the pieces is determined
390 by the argument passing limit.
391
392 * dirwalk.lisp (ensure-directories-gone): Add use of
393 canonicalize-path because basename doesn't do it.
394
395 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
396
397 Algorithmic efficiency improvements. No longer using
398 abstract set operations to update file structure or find
399 duplicates in the maps. Could still streamline the sorting.
400
401 * mapping.lisp (mapping-sort): Express more succinctly using key.
402 (mapping-dupe-check): Rewrite using loop over sorted lists.
403 (mapping-difference): New function for computing mapping change.
404 (mapping-update): Modify to use mapping-difference.
405
406 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
407
408 * mapping.lisp (mapping-update): When moving files, ensure
409 that the target is unlinked if it exists.
410
411 * move.lisp (simple-rename): No longer do target unlinking
412 here. Also bugfix: it wasn't handling renames of directories
413 containing just one file.
414
415 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
416
417 * mapping.lisp (mapping-dupe-check): New function for
418 detecting duplicate objects or paths in a mapping.
419 (mapping-sane-p): Function removed.
420 (mapping-read): Use mapping-dupe-check to verify a map
421 when asked by the sanity-check keyword.
422 (mapping-update): Specify sanity check when reading MCVS/MAP.
423
424 * checkout.lisp (mcvs-checkout): Checkout also performs
425 sanity check.
426
427 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
428
429 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
430 to establish proper termination status.
431
432 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
433
434 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
435 properly based on knowledge of each command's set of options.
436 (parse-args): Function removed.
437
438 * options.lisp (parse-opt): Correctly process long options with
439 arguments. Argument is part of the string, separated by = symbol.
440
441 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
442
443 * options.lisp (parse-opt): When multiple options characters are
444 bunched up into one argument, and one of them other than the
445 last one takes an argument, then the remaining ones are
446 considered to constitute a string which is an argument to that
447 option. For instance -y32 means -y 32, not -y -3 -2, assuming
448 that y is an option that requires an argument.
449
450 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
451
452 Top level handler terminates by non-local exit back to
453 mcvs function, rather than by calling (exit).
454
455 * mcvs-main.lisp (mcvs-top-error-handler): Restructured
456 to call (throw 'mcvs-exit t).
457 (mcvs-execute): Ensure that NIL is returned by normal exit.
458 (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
459 accordingly.
460
461
462 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
463
464 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
465
466 * mapping.lisp (filemap-generate-name, filemap-sort,
467 filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
468 filemap-prefix-matches, filemap-object-lookup,
469 filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
470 filemap-rename-files, filemap-sane-p): Old names removed.
471 (mapping-generate-name, mapping-sort,
472 mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
473 mapping-prefix-matches, mapping-object-lookup,
474 mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
475 mapping-rename-files, mapping-sane-p): New names created.
476 (mapping-read, mapping-write, mapping-synchronize,
477 mapping-update): Edit calls to renamed functions.
478 * add.lisp (mcvs-add): Likewise.
479 * diff.lisp (mcvs-diff): Likewise.
480 * filt.lisp (mcvs-filt): Likewise.
481 * import.lisp (mcvs-import): Likewise.
482 * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
483 * remove.lisp (mcvs-remove): Likewise.
484
485 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
486
487 Factored out repeated code for reading and writing of the MAP and
488 MAP-LOCAL files.
489
490 * mapping.lisp (mapping-read, mapping-write): New functions.
491 (mapping-synchronize, mapping-update): Use new functions.
492 * move.lisp (mcvs-move): Likewise.
493 * filt.lisp (mcvs-filt): Likewise.
494 * add.lisp (mcvs-add): Likewise.
495 * remove.lisp (mcvs-remove): Likewise.
496 * checkout.lisp (mcvs-checkout): Likewise.
497 * diff.lisp (mcvs-diff): Likewise.
498 * import.lisp (mcvs-import): Likewise.
499
500 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
501
502 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
503 hard coding "MCVS" string.
504
505 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
506
507 * MCVS-PAPER: Renamed to Meta-CVS-PAPER
508
509 * README: Change all references to MCVS to Meta-CVS, the
510 new official name of the program.
511 * add.lisp: Likewise
512 * chatter.lisp: Likewise
513 * checkout.lisp: Likewise
514 * clisp-linux.lisp: Likewise
515 * commit.lisp: Likewise
516 * diff.lisp: Likewise
517 * dirwalk.lisp: Likewise
518 * filt.lisp: Likewise
519 * import.lisp: Likewise
520 * INSTALL: Likewise
521 * mapping.lisp: Likewise
522 * mcvs-main.lisp: Likewise
523 * Meta-CVS-PAPER: Likewise
524 * move.lisp: Likewise
525 * options.lisp: Likewise
526 * posix.lisp: Likewise
527 * RELEASE-NOTES: Likewise
528 * remove.lisp: Likewise
529 * restart.lisp: Likewise
530 * seqfuncs.lisp: Likewise
531 * split.lisp: Likewise
532 * sync.lisp: Likewise
533 * system.lisp: Likewise
534 * update.lisp: Likewise
535
536 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
537
538 * move.lisp (move-guts): test the actual filesystem as well
539 as the map for existence of a directory or file. This makes
540 the move operation behave better. Files can be moved to an
541 existing directory that is not known to MCVS, and a file
542 can properly clobber a target file that is not known to MCVS.
543
544 * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
545 methods for these generic functions for a NIL argument, such
546 that they return NIL.
547
548 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
549
550 * move.lisp (simple-move-to-dir): eliminated a bunch of code
551 with the result that mcvs mv now works more like the Unix mv
552 when moving a directory to another directory.
553
554 * mcvs-main.lisp (mcvs-execute): fix bogus error message
555 when options are given but no command.
556
557 * README: don't use -z3 in example because this style of
558 specifying an argument to an option doesn't work.
559
560 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
561
562 * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
563 recursivep to be a generalized boolean variable. This allows
564 mcvs add -R to work properly.
565
566 * mcvs-main.lisp (*cvs-command-options-arg*): add support
567 for -u parameter, useful in cvs diff.
568 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5