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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.46 - (show annotations)
Sun Mar 10 02:02:48 2002 UTC (12 years, 1 month ago) by kaz
Branch: MAIN
Changes since 1.45: +14 -0 lines
New --nometa command line option.

* mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
(mcvs-execute): Filter global options to recognize
Meta-CVS-specific ones.

* options.lisp (*nometa-option*): New special variable.
(filter-global-options): New function.

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

  ViewVC Help
Powered by ViewVC 1.1.5