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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.42 - (hide annotations)
Sat Mar 9 21:44:28 2002 UTC (12 years, 1 month ago) by kaz
Branch: MAIN
Changes since 1.41: +21 -0 lines
Support for file type keyword treatment under mcvs add.

* add.lisp (mcvs-add): Restructured to build up list of new file
suffixes, allow the user to edit the file which determines how
they are treated, filter out ignored files and pass -k options
to multiple cvs adds.

* types.lisp (*mcvs-new-types*): New constant.
(*types-comments*): Constant moved here from import.lisp.
(types-remove-ignores): New function. Code factored out from
mcvs-import.
(types-let-user-edit): Likewise.
(types-make-cvs-adds): New function.

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

  ViewVC Help
Powered by ViewVC 1.1.5