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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.39 - (show annotations)
Sat Feb 16 19:41:43 2002 UTC (12 years, 2 months ago) by kaz
Branch: MAIN
Changes since 1.38: +30 -0 lines
Support for filetypes in import.

* posix.lisp (suffix): Separator character parameter is optional;
multiple occurences of character lead to one big suffix like
".tar.gz" instead of ".gz".  A leading dot means it's not a suffix but
a hidden file like ".exrc".
(edit-file): New function, brings up text editor for specified file.

* clisp-linux.lisp (env-lookup): New function for environment
variable lookup.

* types.lisp: New source file.
(*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
(types-read, types-write, types-sanity-check,
types-to-import-wrapper-args): New functions.

* import.lisp (*types-comments*): New constant.
(mcvs-import): Restructured to build up list of file suffixes,
allow the user to edit the file which determines how they
are treated, filter out ignored files and pass -W options to cvs import
to handle the rest. Failed cvs import is turned into restartable
condition.

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

  ViewVC Help
Powered by ViewVC 1.1.5