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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.26 - (show annotations)
Sun Feb 10 04:09:51 2002 UTC (12 years, 2 months ago) by kaz
Branch: MAIN
Changes since 1.25: +15 -0 lines
Added a much improved error handling routine in anticipation
of better use of restarts.

* error.lisp: New file
(restart-destructure): New macro.
(*mcvs-error-treatment*): Special variable, moved here from
mcvs-main.
(mcvs-error-handler): New function.

* mcvs-main.lisp (mcvs-top-error-handler): Function removed.
(mcvs-execute): Bind error to new mcvs-error-handler instad
of mcvs-top-error-handler.
1 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
2
3 Added a much improved error handling routine in anticipation
4 of better use of restarts.
5
6 * error.lisp: New file
7 (restart-destructure): New macro.
8 (*mcvs-error-treatment*): Special variable, moved here from
9 mcvs-main.
10 (mcvs-error-handler): New function.
11
12 * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
13 (mcvs-execute): Bind error to new mcvs-error-handler instad
14 of mcvs-top-error-handler.
15
16 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
17
18 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
19 for status command added.
20
21 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
22
23 Hooking conversion tool into command structure.
24
25 * mcvs-main.lisp (*convert-options*): New constant.
26 (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
27 * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
28 (mcvs-convert-wrapper): New function.
29
30 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
31
32 Beginning work on repository conversion utility.
33
34 * convert.lisp: New file. Contains conversion utility
35 to make an Meta-CVS repository from an ordinary CVS repository,
36 while preserving all history, tags and branches.
37 (remove-attic-component, classify-tags, read-tags,
38 mcvs-convert): New functions.
39
40 * posix.lisp (suffix): New function. Computes suffix of file.
41 (execute-program-xargs): New optional parameter, for specifying
42 fixed part added at the end of each generated command line.
43
44 * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
45 (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
46 (mapping-generate-name): New key parameter no-dir for not adding
47 the directory prefix.
48
49 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
50
51 * checkout.lisp (mcvs-checkout): Ensure local mapping is
52 sorted when written out, for easier comparisons.
53
54 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
55
56 * sync.lisp (synchronize-files): Return :dir symbol when either
57 argument is a directory.
58 * mapping.lisp (mapping-synchronize): Chatter output messages
59 are shorter. Handles :dir return value from synchronize-files.
60 (mapping-update): New sanity checks for moved and added
61 files, to avoid clobbering local files. Removed redundant
62 call to ensure-directories-exit in move logic, because
63 synchronize-files will do it anyway. Chatter messages reordered
64 to occur before their corresponding action is done.
65
66 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
67
68 Improve error handling, and builtin ``debug shell''.
69
70 * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
71 can have new domain value, namely :decline.
72 (mcvs-top-error-handler): Print error message when terminating
73 non-restartable error. Handle new :decline treatment by
74 simply returning.
75 (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
76 so that errors are caught by debugger.
77
78 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
79
80 * mapping.lisp (mapping-sort): Removed function.
81 (mapping-write): Sort written map by F- file names,
82 not by path names. This is far better for merging, because
83 files stay in the same place when they are renamed.
84
85 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
86
87 Added status, log and annotate.
88
89 * mcvs-main.lisp: (*log-options*, *status-options*,
90 *annotate-options*): New constants.
91 (*mcvs-command-table*): Add new entries.
92
93 * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
94 mcvs-annotate-wrapper): New functions.
95
96 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
97
98 Added tag command.
99
100 * diff.lisp: File renamed to generic.lisp.
101 (mcvs-diff): Function renamed to mcvs-generic.
102
103 * generic.lisp (mcvs-generic): Function no longer dedicated to
104 diffing only; takes CVS command to execute as an argument,
105 also takes arguments and files as separate lists.
106 (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
107 (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
108 tag command.
109
110 * mcvs-main.lisp (*tag-options*): New constant.
111 (*mcvs-command-table*): New entry for tag command.
112
113 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
114
115 Added workaround for operating system argument passing limitations,
116 resembling the Unix xargs utility. Also, trimmed some fat
117 from the basename function.
118
119 * clisp-linux.lisp: (*argument-limit*): New constant added.
120 (arglist-to-command-string): Function removed.
121 (execute-program): Function removed.
122 (shell-interpreter): New function, wrapper for CLISP's shell
123 function, turns exit status into T (success) or NIL (failure).
124
125 * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
126 of execute-program.
127
128 * posix.lisp (basename): Does not canonicalize path name. This
129 turns out to be an unnecessary performance hit in some cases.
130 (arglist-to-command-string): New function. Similar to what was
131 removed from clisp-linux, but this one properly escapes all
132 shell metacharacters.
133 (execute-program): New function, calls shell-interpreter.
134 (execute-program-xargs): New function. Takes two argument lists.
135 Forms one or more command lines by combining the first argument list
136 with one or more pieces of the second argument list, and
137 executes each command. The length of the pieces is determined
138 by the argument passing limit.
139
140 * dirwalk.lisp (ensure-directories-gone): Add use of
141 canonicalize-path because basename doesn't do it.
142
143 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
144
145 Algorithmic efficiency improvements. No longer using
146 abstract set operations to update file structure or find
147 duplicates in the maps. Could still streamline the sorting.
148
149 * mapping.lisp (mapping-sort): Express more succinctly using key.
150 (mapping-dupe-check): Rewrite using loop over sorted lists.
151 (mapping-difference): New function for computing mapping change.
152 (mapping-update): Modify to use mapping-difference.
153
154 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
155
156 * mapping.lisp (mapping-update): When moving files, ensure
157 that the target is unlinked if it exists.
158
159 * move.lisp (simple-rename): No longer do target unlinking
160 here. Also bugfix: it wasn't handling renames of directories
161 containing just one file.
162
163 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
164
165 * mapping.lisp (mapping-dupe-check): New function for
166 detecting duplicate objects or paths in a mapping.
167 (mapping-sane-p): Function removed.
168 (mapping-read): Use mapping-dupe-check to verify a map
169 when asked by the sanity-check keyword.
170 (mapping-update): Specify sanity check when reading MCVS/MAP.
171
172 * checkout.lisp (mcvs-checkout): Checkout also performs
173 sanity check.
174
175 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
176
177 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
178 to establish proper termination status.
179
180 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
181
182 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
183 properly based on knowledge of each command's set of options.
184 (parse-args): Function removed.
185
186 * options.lisp (parse-opt): Correctly process long options with
187 arguments. Argument is part of the string, separated by = symbol.
188
189 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
190
191 * options.lisp (parse-opt): When multiple options characters are
192 bunched up into one argument, and one of them other than the
193 last one takes an argument, then the remaining ones are
194 considered to constitute a string which is an argument to that
195 option. For instance -y32 means -y 32, not -y -3 -2, assuming
196 that y is an option that requires an argument.
197
198 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
199
200 Top level handler terminates by non-local exit back to
201 mcvs function, rather than by calling (exit).
202
203 * mcvs-main.lisp (mcvs-top-error-handler): Restructured
204 to call (throw 'mcvs-exit t).
205 (mcvs-execute): Ensure that NIL is returned by normal exit.
206 (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
207 accordingly.
208
209
210 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
211
212 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
213
214 * mapping.lisp (filemap-generate-name, filemap-sort,
215 filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
216 filemap-prefix-matches, filemap-object-lookup,
217 filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
218 filemap-rename-files, filemap-sane-p): Old names removed.
219 (mapping-generate-name, mapping-sort,
220 mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
221 mapping-prefix-matches, mapping-object-lookup,
222 mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
223 mapping-rename-files, mapping-sane-p): New names created.
224 (mapping-read, mapping-write, mapping-synchronize,
225 mapping-update): Edit calls to renamed functions.
226 * add.lisp (mcvs-add): Likewise.
227 * diff.lisp (mcvs-diff): Likewise.
228 * filt.lisp (mcvs-filt): Likewise.
229 * import.lisp (mcvs-import): Likewise.
230 * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
231 * remove.lisp (mcvs-remove): Likewise.
232
233 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
234
235 Factored out repeated code for reading and writing of the MAP and
236 MAP-LOCAL files.
237
238 * mapping.lisp (mapping-read, mapping-write): New functions.
239 (mapping-synchronize, mapping-update): Use new functions.
240 * move.lisp (mcvs-move): Likewise.
241 * filt.lisp (mcvs-filt): Likewise.
242 * add.lisp (mcvs-add): Likewise.
243 * remove.lisp (mcvs-remove): Likewise.
244 * checkout.lisp (mcvs-checkout): Likewise.
245 * diff.lisp (mcvs-diff): Likewise.
246 * import.lisp (mcvs-import): Likewise.
247
248 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
249
250 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
251 hard coding "MCVS" string.
252
253 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
254
255 * MCVS-PAPER: Renamed to Meta-CVS-PAPER
256
257 * README: Change all references to MCVS to Meta-CVS, the
258 new official name of the program.
259 * add.lisp: Likewise
260 * chatter.lisp: Likewise
261 * checkout.lisp: Likewise
262 * clisp-linux.lisp: Likewise
263 * commit.lisp: Likewise
264 * diff.lisp: Likewise
265 * dirwalk.lisp: Likewise
266 * filt.lisp: Likewise
267 * import.lisp: Likewise
268 * INSTALL: Likewise
269 * mapping.lisp: Likewise
270 * mcvs-main.lisp: Likewise
271 * Meta-CVS-PAPER: Likewise
272 * move.lisp: Likewise
273 * options.lisp: Likewise
274 * posix.lisp: Likewise
275 * RELEASE-NOTES: Likewise
276 * remove.lisp: Likewise
277 * restart.lisp: Likewise
278 * seqfuncs.lisp: Likewise
279 * split.lisp: Likewise
280 * sync.lisp: Likewise
281 * system.lisp: Likewise
282 * update.lisp: Likewise
283
284 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
285
286 * move.lisp (move-guts): test the actual filesystem as well
287 as the map for existence of a directory or file. This makes
288 the move operation behave better. Files can be moved to an
289 existing directory that is not known to MCVS, and a file
290 can properly clobber a target file that is not known to MCVS.
291
292 * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
293 methods for these generic functions for a NIL argument, such
294 that they return NIL.
295
296 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
297
298 * move.lisp (simple-move-to-dir): eliminated a bunch of code
299 with the result that mcvs mv now works more like the Unix mv
300 when moving a directory to another directory.
301
302 * mcvs-main.lisp (mcvs-execute): fix bogus error message
303 when options are given but no command.
304
305 * README: don't use -z3 in example because this style of
306 specifying an argument to an option doesn't work.
307
308 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
309
310 * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
311 recursivep to be a generalized boolean variable. This allows
312 mcvs add -R to work properly.
313
314 * mcvs-main.lisp (*cvs-command-options-arg*): add support
315 for -u parameter, useful in cvs diff.
316 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5