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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.116 - (show annotations)
Fri Jun 28 15:13:09 2002 UTC (11 years, 9 months ago) by kaz
Branch: MAIN
Changes since 1.115: +11 -0 lines
* memoize.lisp (factor-memo-labels): New function, rips apart
functions generated by memoize-expander, in order to factor
out the multi-hash defining let blocks.
(memoized-labels): Interface corrected. Also, use new function to
generate a labels block that allows for mutually recursive memoized
functions which preserve hash contents across arbitrarily mutually
recursive calls. This is done by enclosing the functions in one big
let block which binds all the hashes.
1 2002-06-27 Kaz Kylheku <kaz@ashi.footprints.net>
2
3 * memoize.lisp (factor-memo-labels): New function, rips apart
4 functions generated by memoize-expander, in order to factor
5 out the multi-hash defining let blocks.
6 (memoized-labels): Interface corrected. Also, use new function to
7 generate a labels block that allows for mutually recursive memoized
8 functions which preserve hash contents across arbitrarily mutually
9 recursive calls. This is done by enclosing the functions in one big
10 let block which binds all the hashes.
11
12 2002-06-27 Kaz Kylheku <kaz@ashi.footprints.net>
13
14 * seqfuncs.lisp (lcs-list): Specify #'eq test for memoization
15 parameters.
16
17 2002-06-27 Kaz Kylheku <kaz@ashi.footprints.net>
18
19 Adding some cool code: a multi-hash datatype which implements
20 multi-dimensional sparse arrays using a tree of hash tables,
21 and a function memoizer which uses multi hash to index on
22 function arguments.
23
24 * multi-hash.lisp (multi-hash): New class.
25 (initialize-instance): New method on multi-hash.
26 (multi-hash-common-code): New macro.
27 (get-multi-hash, set-multi-hash): New functions.
28
29 * memoize.lisp (define-memoized-function,
30 memoized-labels): New macros.
31 (remove-key-aux-rest strip-lambda-list, extract-tests,
32 remove-tests, memoize-expander): New functions.
33
34 * seqfuncs.lisp (lcs-list): Function is now correctly
35 memoized using define-memoized-function.
36
37 2002-06-26 Kaz Kylheku <kaz@ashi.footprints.net>
38
39 * grab.lisp (read-word-hash): Memory use optimizations: use smaller
40 initial size for tokens; re-use the same token object when the
41 hash already contains a duplicate.
42 (correlate): Renamed to correlate-word-hashes.
43 (correlate-paths): New function; computes a confidence-reducing
44 factor based on the differences between two paths.
45 (move-candidates): Use correlate-paths to lower the confidence
46 for distant moves. This could help sort out ambiguities when
47 projects contain very similar or duplicate files which are subject
48 to parallel moves.
49
50 * seqfuncs.lisp (lcs-list, lcs-vector,
51 longest-common-subsequence): New functions.
52
53 2002-06-25 Kaz Kylheku <kaz@ashi.footprints.net>
54
55 New feature: grab command. Takes snapshot of code and imports
56 it to a branch, trying to determine which of the added and
57 removed files are actually moves.
58
59 * grab.lisp: New file.
60 (read-word-hash, word-hash-file, correlate, added-removed,
61 move-candidates, mcvs-grab, mcvs-grab-wrapper): New functions.
62
63 * mcvs-main.lisp (*grab-options*): New constant.
64 (*mcvs-command-table*): New entry.
65 (*usage*): New text.
66
67 * checkout.lisp (mcvs-checkout): Write out MAP-LOCAL even
68 if :no-generate t is specified.
69
70 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
71
72 * checkout.lisp (mcvs-checkout): New key parameter, no-generate.
73 Tells the checkout function not to unpack the MCVS directory.
74 This will be useful when mcvs-checkout is used as a subfunction
75 of the new grab command. Failed CVS call is now turned into
76 an error. The MCVS subdirectory is *always* deleted, even if the
77 checkout did not create the checkout directory.
78
79 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
80
81 * dirwalk.lisp (dirwalk-fi): Bugfix: top call was not
82 passing down keyword parameters to recursive call.
83
84 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
85
86 * posix.lisp (canonicalize-path): Use concatenate-string
87 instead of format.
88
89 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
90
91 * posix.lisp (parse-posix-namestring): Clean rewrite.
92
93 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
94
95 The ``import'' command is renamed to ``create''.
96
97 * mcvs.main (*create-options*): Renamed to *import-options*.
98 (*mcvs-command-table*): Updated.
99 (*usage*): Updated.
100
101 * import.lisp: File renamed to create.lisp.
102 (mcvs-import): Renamed to mcvs-create; some arguments renamed.
103 (mcvs-import-wrapper): Renamed to mcvs-create-wrapper.
104
105 * README: Updated.
106
107 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
108
109 * split.lisp (split-fields): Optimized to extract tokens directly
110 from the input string using subseq rather than construct them
111 character by character.
112
113 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
114
115 * find-bind.lisp (find-bind): Use #'values instead of #'(lambda (x) x).
116
117 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
118
119 * clisp-linux.sh (:clisp-old): Added to *features*
120 for CLISP 2.28 or higher.
121 (*null-pointer*): Only defined when :clisp-old is present.
122 (pointer-null): Use new ffi:foreign-pointer-null if :clisp-old
123 feature is not present.
124
125 * install.sh: Don't do *null-pointer* workaround hack
126 unless :clisp-old feature is present in the memory image.
127
128 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
129
130 * types.lisp (types-make-cvs-adds): Serious bugfix. Forgot
131 to strip MCVS/ prefix from those F- files which don't match
132 any type entries. This caused cvs add to fail for unsuffixed
133 files.
134
135 2002-06-08 Kaz Kylheku <kaz@ashi.footprints.net>
136
137 * types.lisp (types-to-import-wrapper-args): Don't use backquote
138 template to generate a list that will be destructively catenated
139 by mapcan.
140
141 2002-05-22 Kaz Kylheku <kaz@ashi.footprints.net>
142
143 * checkout.lisp (mcvs-checkout): If a checkout directory is
144 created and then the CVS checkout fails, the directory is
145 then removed.
146
147 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
148
149 * find-bind.lisp (find-bind-extract-vals, find-bind): Process default
150 values in find-bind-extract-vals, instead of in the expansion of
151 find-bind, thereby reducing some macro bloat.
152
153 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
154
155 * remap.lisp (mcvs-remap): Loads MAP as well as MAP-LOCAL.
156 If it the mappings differ, an error is signaled. The user can choose
157 to ignore the error, in which case MAP is clobbered.
158
159 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
160
161 Adding mcvs remap command.
162
163 * dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
164 behavior is now preorder (visit directory before its entries).
165 A keyword is provided to select the old postorder behavior.
166 A catch is provided in dirwalk-fi that allows the caller to
167 skip processing the currently traversed directory. The for-each-*
168 macros provide a local function called (skip) to do this.
169 (delete-recursive): This function depends on postorder behavior
170 in for-each-file-info, so it explicitly selects it now.
171
172 * mcvs.lisp (*remap-options*): New constant.
173 (*mcvs-command-table*): Add entry for new function.
174 (*usage*): Describes new function.
175
176 * remap.lisp: New file.
177 (mcvs-remap, mcvs-remap-wrapper): New functions.
178
179 2002-05-15 Kaz Kylheku <kaz@ashi.footprints.net>
180
181 * sync.lisp (synchronize-files): Signal an error when the two files
182 to be synchronized have the same time stamp. Provide two restarts
183 for doing the synchronization either way.
184
185 2002-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
186
187 * mapping.lisp (in-sandbox-root-dir): Fix symbol macro
188 sandbox-down-path; it was referring to the (quote #:DOWNPATH-NNN)
189 rather than #:DOWNPATH-NNN.
190
191 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
192
193 * import.lisp (mcvs-import): Specify -I ! argument to cvs import
194 so that it does not ignore any F- files.
195
196 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
197
198 * mapping.lisp (mapping-update): Provide restart that allows
199 user to ignore file removal error.
200
201 2002-04-19 Kaz Kylheku <kaz@ashi.footprints.net>
202
203 Porting to CMUCL.
204
205 * system.lisp: Conditionally load new module cmucl-unix.
206
207 * mapping.lisp (mapping-dupe-check, mapping-write,
208 mapping-difference): Fixes related to sort function; we were
209 relying on CLISP's preservation of the cons cell order.
210
211 * cmucl-unix.lisp: New file.
212
213 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
214
215 * checkout.lisp (mcvs-checkout): Allow -d to specify current
216 directory as the checkout directory. Do not complain if the
217 target directory exists, just try to use it anyway,
218 unless it is the root of an existing Meta-CVS sandbox. Use
219 the mapping-update function to update the sandbox.
220 These changes allow a Meta-CVS sandbox to blend with an existing
221 directory structure, a useful feature.
222
223 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
224
225 * generic.lisp (mcvs-generic): Change how empty file argument list
226 is handled. Rather than rewriting it to '(".") we do a proper
227 map-prefix-lookup. Synchronizing and invoking CVS is elided
228 if the resulting list of files to process is empty and the --nometa
229 option is specified.
230
231 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
232
233 * branch.lisp (parse-sticky): New function.
234 (read-cvs-entries): New function.
235 (same-tag-check): New function.
236 (what-tag-are-we-on): Renamed to what-are-we-sticky-to. Calls
237 parse-sticky to return structured tag.
238 (mcvs-merge): Make use of structured tags.
239 (mcvs-list-branches): Make use of structured tags. Indicate
240 when sandbox is inconsistently sticky.
241
242 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
243
244 * remove.lisp (mcvs-remove): Corrected careless bracketing
245 introduced on 2002-03-15 that rendered this function ineffective.
246
247 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
248
249 Absolute paths resolved against sandbox root.
250
251 * posix.lisp (path-absolute-p): New function. Predicate to
252 test whether a path is absolute.
253
254 * mapping.lisp (in-sandbox-root-dir): sandbox-translate-paths
255 function detects absolute path, and treats it as relative to
256 sandbox root.
257
258 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
259
260 New switch command added, plus sticky tag related
261 bugfixes and enhancement of mcvs list-branches.
262
263 mcvs-main.lisp (*switch-options*): New constant.
264 (*mcvs-command-table*): New entries.
265 (*usage*): New help text.
266
267 branch.lisp (what-branch-are-we-on): Function renamed to
268 what-tag-are-we-on. Tests the first letter which is T or N; if
269 it is not T, then it's not a branch tag. If there is a tag,
270 it returns two values; the second value is NIL if it is not
271 a branch tag, T otherwise.
272 (mcvs-merge): Modified to use what-tag-are-we-on.
273 (mcvs-list-branches): Show additional information about the
274 current sticky tag.
275 (mcvs-merge-wrapper): Fix wrong parenthesization introduced
276 earlier today.
277 (mcvs-switch-wrapper): New function.
278
279 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
280
281 * branch.lisp (branch-tag-check): Check reserved symbol HEAD.
282
283 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
284
285 New command to list branches.
286
287 * mcvs-main.lisp (*list-branches-options*): New constant.
288 (*mcvs-command-table*): Entries for new command added.
289 (*usage*): Help text added.
290
291 * branch.lisp (mcvs-list-branches,
292 mcvs-list-branches-wrapper): New functions.
293
294 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
295
296 * branch.lisp (where-is-the-repository): New function.
297 (cvs-make-or-advance-tag): Pass down CVSROOT to cvs rtag using
298 the -d global option.
299
300 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
301
302 * branch.lisp (what-module-is-this): New function.
303 (cvs-make-or-advance-tag): Use rtag rather than tag for tagging
304 the branch being merged. This fixes the failure to merge added files.
305 (mcvs-merge): Use mcvs-update rather than directly using cvs.
306
307 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
308
309 Implemented remerge command; redo a merge without moving
310 around any tags.
311
312 * branch.lisp (mcvs-merge): New keyword parameter remerge-p
313 to indicate that a re-merge should be done, plus logic for
314 doing so.
315 (mcvs-remerge-wrapper): New function.
316
317 * mcvs-main.lisp (*remerge-options*): New constant.
318 (*mcvs-command-table*): New entry for remerge command.
319
320 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
321
322 First cut at implementing more automated branching and merging.
323
324 * mcvs-main.lisp (*branch-options*, *merge-options*): New constants.
325 (*mcvs-command-table*): New entries for branch and merge commands.
326 (*usage*): New help text.
327
328 * branch.lisp: New file.
329 (*branch-char*): New constant.
330 (tags-from-cvs-log, what-branch-are-we-on, branch-tag-check,
331 mcvs-branch, mcvs-branch-wrapper, cvs-make-or-advance-tag, mcvs-merge,
332 mcvs-merge-wrapper): New functions.
333
334 2002-04-01 Kaz Kylheku <kaz@ashi.footprints.net>
335
336 checkout.lisp (mcvs-checkout): Emit informational message
337 when checkout completes, because it's not obvious what directory
338 was just created.
339
340 2002-02-38 Kaz Kylheku <kaz@ashi.footprints.net>
341
342 Error checking added to mcvs move: verifies that all
343 sources exist and are known to Meta-CVS.
344
345 * move.lisp (source-check): New function.
346 (simple-rename, simple-move-to-dir): Use new function.
347
348 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
349
350 * rcsparse.lisp: File renamed to rcs-utils.lisp.
351 (rcs-delta): New slot, delta-hash.
352 (rcs-make-delta-hash): New function.
353 (rcs-parse): Calls rcs-make-delta-hash to set up new slot.
354
355 * convert.lisp: require changed to match file rename.
356
357 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
358
359 Some new macros for slot access.
360
361 * slot-refs.lisp: New file.
362 (with-slot-refs): New macro.
363 (with-multi-slot-refs): New macro.
364
365 * rcsparse.lisp (rcs-parse-newphrases, rcs-parse-admin,
366 rcs-parse-delta): Replace uses
367 of symbol-macrolet by with-slot-refs and with-multi-slot-refs.
368
369 2002-03-19 Kaz Kylheku <kaz@ashi.footprints.net>
370
371 Adding delta parsing to RCS parser.
372
373 * rcsparse.lisp (rcs-delta): New struct.
374 (rcs-file): New slot, deltas.
375 (rcs-parse-newphrases): New function, factors out parsing of
376 ``newphrases'' syntactic element out of rcs-parse-admin.
377 (rcs-parse-admin): Use rcs-parse-newphrases.
378 (rcs-parse-delta, rcs-parse-deltas): New functions.
379 (rcs-parse): Parse both admin and deltas; store deltas in new
380 rcs-file slot.
381
382 2002-03-18 Kaz Kylheku <kaz@ashi.footprints.net>
383
384 * posix.lisp (parse-posix-namestring): New function. Converts POSIX
385 path to CL Path object.
386
387 * rcsparse.lisp: New file, implements RCS version file parser.
388 (rcs-admin, rcs-file, rcs-token, rcs-token-stream): New structs.
389 (rcs-peek-token, rcs-read-token): New generic functions.
390 (rcs-extract-id-sym-or-num, rcs-extract-string,
391 rcs-match-optional, rcs-match-token, rcs-parse, rcs-parse-admin,
392 rcs-special-p): New functions.
393
394 * convert.lisp (classify-tags): Work with association list rather
395 than raw strings.
396 (mcvs-convert): Use rcs-parse to extract tags. Fix call to
397 mapping-generate name. Use parse-posix-namestring when opening
398 version file. Generate informative chatter.
399
400 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
401
402 * remove.lisp (mcvs-remove): More detailed error checking.
403 Checks for remove attempts against MCVS/ area, removes of local
404 files not versioned under Meta-CVS, and nonexistent files.
405
406 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
407
408 * add.lisp (mcvs-add): Error message changed to tell user to use
409 -R to add directory.
410
411 * remove.lisp (mcvs-remove): New generalized boolean parameter
412 indicates to do a recursive remove. This is controlled by the
413 -R option which already exists. Behavior changed to not act
414 on directories unless recursion is explicitly requested.
415 (mcvs-remove-wrapper): Extract "R" option, pass down new boolean
416 to mcvs-remove.
417
418 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
419
420 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
421
422 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
423
424 * checkout.lisp (mcvs-checkout): Bugfix: must use checkout-dir, not
425 module, when testing whether directory exists or was created properly.
426
427 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
428
429 Update takes file arguments now.
430
431 * update.lisp (mcvs-update): If filename arguments are given, then
432 just call mcvs-generic to do the work, but suppress the operation on
433 meta files. If no filename arguments are given, then update everything.
434 If the -p option is present, no synchronization is needed, before or
435 after.
436 (mcvs-update-wrapper): Pass command arguments down to mcvs-update.
437
438 * mcvs-main.lisp (*update-options*): Add "p" option.
439
440 * generic.lisp (mcvs-generic): New keyword parameter need-sync-after,
441 a generalized boolean which can tell the function to do a
442 mapping-synchronize after executing the CVS command.
443
444 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
445
446 * filt.lisp (filt-select-map): Do allow a date and revision to be
447 specified; the revision could be a branch tag.
448
449 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
450
451 * mapping.lisp (malformed-map): New function.
452 (mapping-dupe-check): Perform extra error checks when reading
453 mapping, and turn them into a condition with a ``nice'' error message.
454
455 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
456
457 * mcvs-filt.lisp (filt-select-map): Handle error gracefully
458 when reading map. It's easy to give CVS is a nonexistent tag.
459
460 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
461
462 The filt command takes arguments to select alternate revision
463 of map.
464
465 * mcvs-main.lisp (*filt-options*): New constant.
466 (*mcvs-command-table*): Updated with new options.
467 (mcvs-debug-shell): Restart name changed during debugging of filt
468 changes.
469
470 * filt.lisp (filt-select-map): New function. Loads either the
471 local mapping, or retrieves an alternate mapping from CVS based
472 on command line options.
473 (mcvs-filt): Use filt-select-map rather than mapping-read.
474
475 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
476
477 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
478 metafiles.
479
480 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
481
482 * import.lisp (mcvs-import): Create a .cvsignore file for ignoring
483 MAP-LOCAL.
484
485 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
486
487 Fix trailing slash bug in mcvs mv.
488
489 * move.lisp (simple-move-to-dir): Canonicalize path after catenating
490 destination and file base name. This nukes a double slash if
491 we move to a name with a trailing slash.
492 (move-guts): Treat a destination name that has a trailing slash
493 as a directory, unless it exists already as a non-directory.
494
495 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
496
497 * mcvs-main.lisp (*cvs-options*): Added "error-terminate" and
498 "error-continue".
499 (*usage*): Update and reformat help text.
500 (mcvs-execute): Process "error-terminate" and "error-continue"
501 options.
502
503 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
504
505 * mapping.lisp (mapping-update): Messages related to moving,
506 adding or removing files promoted to terse level, so only -Q
507 can suppress them.
508
509 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
510
511 * update.lisp (mcvs-update): Changing level of chatter messages.
512 * move.lisp (mcvs-move): Likewise.
513 * add.lisp (mcvs-add): Likewise.
514 * remove.lisp (mcvs-remove): Likewise.
515 * checkout.lisp (mcvs-checkout): Likewise.
516 * generic.lisp (mcvs-generic): Likewise.
517 * import.lisp (mcvs-import): Likewise.
518 * mapping.lisp (mapping-dupe-check): Likewise.
519 (mapping-update): Likewise.
520
521 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
522
523 Support for -q, -Q and -e global options.
524
525 * posix.lisp (*editor*): New special variable.
526 (edit-file): Check *editor* variable; if not nil, use it.
527
528 * mcvs-main.lisp (*usage*): Update help text.
529 (mcvs-execute): Set *mcvs-chatter-level* according to -q or -Q.
530 Set *editor* if -e is specified.
531
532 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
533
534 * mcvs-main.lisp (*cvs-options*): Remove obsolete "a".
535 (*cvs-options-arg*): Add missing "r".
536 (*usage*): New constant, help text.
537 (mcvs-execute): Process help and version command line options.
538
539 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
540
541 * options.lisp (parse-opt): Make error messages more consistent.
542
543 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
544
545 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
546 the user might not care about the remaining unmatched list.
547
548 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
549
550 * find-bind.lisp (find-bind): Documentation string change. Clarify
551 that default values are substituted whenever a variable would
552 otherwise be bound to the value NIL, even through an explicit
553 match.
554
555 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
556
557 Sane filtering of -d option in checkout.
558
559 * find-bind.lisp (find-bind): Variable bindings can specify
560 a third element, which provides a default value for any variables
561 that turn out NIL.
562
563 * checkout.lisp (mcvs-checkout): Filter out the -d dir option,
564 and use it to override the name of the checkout directory,
565 the way CVS checkout does it.
566
567 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
568
569 Bugfix: mcvs add was not processing existing :ignore's in MCVS/TYPES.
570
571 * add.lisp (mcvs-add): Use old types as well as new types
572 to filter for ignores.
573
574 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
575
576 * find-bind.lisp: New file.
577 (find-bind-extract-vals): New function.
578 (find-bind): New macro.
579
580 * error.lisp (restart-destructure): Macro removed.
581 (mcvs-error-handler): Uses generic find-bind instead of
582 restart-destructure.
583
584 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
585
586 * filt.lisp (mcvs-filt): Bugfix: do not stop processing line
587 if F- file name is not found in hash table.
588
589 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
590
591 Commit is handled through mcvs-generic, so it can take
592 filename arguments, and honor --nometa.
593
594 * commit.lisp: File removed.
595 (mcvs-commit): Function removed.
596 (mcvs-commit-wrapper): Moved to generic.lisp.
597
598 * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp,
599 changed to invoke mcvs-generic.
600 (mcvs-generic): Only add TYPES file to list if it actually
601 exists.
602
603 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
604
605 New --nometa command line option.
606
607 * mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
608 (mcvs-execute): Filter global options to recognize
609 Meta-CVS-specific ones.
610
611 * options.lisp (*nometa-option*): New special variable.
612 (filter-global-options): New function.
613
614 * generic.lisp (mcvs-generic): Honor *nometa-option* special
615 variable.
616
617 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
618
619 * generic.lisp (mcvs-generic): Make sure TYPES file is
620 included in list of files.
621
622 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
623
624 * mcvs-main.lisp (*add-options*): Support -R option for add.
625 Thus, recursive add works now.
626
627 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
628
629 Fix mcvs filt so it handles suffixed F- files properly.
630
631 * filt.lisp (make-filt-hash): New function.
632 (mcvs-filt): After matching hex digits, also check for
633 a suffix match.
634
635 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
636
637 Support for file type keyword treatment under mcvs add.
638
639 * add.lisp (mcvs-add): Restructured to build up list of new file
640 suffixes, allow the user to edit the file which determines how
641 they are treated, filter out ignored files and pass -k options
642 to multiple cvs adds.
643
644 * types.lisp (*mcvs-new-types*): New constant.
645 (*types-comments*): Constant moved here from import.lisp.
646 (types-remove-ignores): New function. Code factored out from
647 mcvs-import.
648 (types-let-user-edit): Likewise.
649 (types-make-cvs-adds): New function.
650
651 * import.lisp (*types-comments*): Constant removed. Moved to
652 types.lisp
653 (mcvs-import): Code factored out to new functions in types.lisp, which
654 are also used by add.lisp.
655
656 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
657
658 * print.lisp: New file.
659 (print-assoc-list): New function.
660 * types.lisp: Use print-assoc-list to nicely print the types.
661 * import.lisp (mcvs-import): Don't bother getting user to
662 edit the types if the type list is empty. In fact, don't
663 even create the file.
664
665 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
666
667 * add.lisp (mcvs-add): Use new form of mapping-generate-name.
668
669 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
670
671 * import.lisp (mcvs-import): Fix broken restart for re-editing
672 the types file.
673 (*types-comments*): Drastically shorten the help text.
674
675 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
676
677 Support for filetypes in import.
678
679 * posix.lisp (suffix): Separator character parameter is optional;
680 multiple occurences of character lead to one big suffix like
681 ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but
682 a hidden file like ".exrc".
683 (edit-file): New function, brings up text editor for specified file.
684
685 * clisp-linux.lisp (env-lookup): New function for environment
686 variable lookup.
687
688 * types.lisp: New source file.
689 (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
690 (types-read, types-write, types-sanity-check,
691 types-to-import-wrapper-args): New functions.
692
693 * import.lisp (*types-comments*): New constant.
694 (mcvs-import): Restructured to build up list of file suffixes,
695 allow the user to edit the file which determines how they
696 are treated, filter out ignored files and pass -W options to cvs import
697 to handle the rest. Failed cvs import is turned into restartable
698 condition.
699
700 * mapping.lisp (mapping-generate-name): Takes a suffix parameter.
701 The F-files now carry a suffix obtained from the original file,
702 because I have concluded that this was the only reasonable way
703 to integrate with CVS.
704
705 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
706
707 * add.lisp (mcvs-add): Last change completely broke add due
708 to not breaking out of the retry loop.
709
710 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
711
712 * move.lisp (mcvs-move): If the mapping-update operation returns
713 nil, or terminates by a non-local jump, restore the filemap.
714 * mapping.lisp (mapping-update): When returning normally,
715 return t. When returning after doing a rollback, return nil.
716
717 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
718
719 * error.lisp (mcvs-error-handler): Bugfix. We were closing over
720 a binding of the iteration variable of a dolist, which has only
721 one binding over the entire loop.
722
723 * mapping.lisp (mapping-update): Gathers up info all local
724 clobbered files, and then throw the error. Provides restart
725 which allows user to print the list of clobbered files, and
726 a restart which allows the user to have those files clobbered.
727
728 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
729
730 * checkout.lisp (mcvs-checkout-wrapper): Bugfix for last bugfix.
731
732 2002-02-11 Kaz Kylheku <kaz@ashi.footprints.net>
733
734 * checkout.lisp (mcvs-checkout-wrapper): Bugfix for bad
735 destructuring-bind if there are no arguments.
736
737 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
738
739 * mapping.lisp (mapping-difference): Reformatted documentation string.
740 (mapping-update): Implemented a continue restart which rolls back
741 the changes done to the local filesystem.
742
743 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
744
745 * error.lisp (mcvs-error-handler): Rearranging the menu,
746 so "T" is clumped with the main options, and any special restarts
747 are clearly separated. Changed wording.
748
749 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
750
751 * update.lisp (mcvs-update): Re-print the "Invoking CVS" chatter
752 if the user re-tries the error.
753
754 * add.lisp (mcvs-add): CVS failure is now a restartable error;
755 user can decide whether to roll back the effects or retry the
756 CVS add, or terminate to keep the effects anyway despite
757 the failed add.
758
759 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
760
761 * install.sh: Stop the script if there are compilation errors.
762
763 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
764
765 * error.lisp (*mcvs-errors-occured-p*): New special variable.
766 (mcvs-error-handler): Set *mcvs-errors-occured-p* to T.
767 * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into
768 account in computing termination status.
769
770 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
771
772 * update.lisp: Remove spurious newlines from error messages.
773 * add.lisp: Likewise.
774 * options.lisp: Likewise.
775 * mapping.lisp: Likewise.
776
777 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
778
779 Adding some restarts around cvs update.
780
781 * posix.lisp (execute-command-xargs): Bail with nil return
782 value if any command line fails.
783
784 * update.lisp (mcvs-update): Tests return value of execute-program
785 and signal condition if it's nil. Provides a continue restart
786 as well as a retry restart to try the command again.
787
788 * error.lisp (mcvs-error-handler): Show retry restarts as
789 a special menu item "R".
790
791 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
792
793 Added a much improved error handling routine in anticipation
794 of better use of restarts.
795
796 * error.lisp: New file
797 (restart-destructure): New macro.
798 (*mcvs-error-treatment*): Special variable, moved here from
799 mcvs-main.
800 (mcvs-error-handler): New function.
801
802 * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
803 (mcvs-execute): Bind error to new mcvs-error-handler instad
804 of mcvs-top-error-handler.
805
806 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
807
808 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
809 for status command added.
810
811 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
812
813 Hooking conversion tool into command structure.
814
815 * mcvs-main.lisp (*convert-options*): New constant.
816 (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
817 * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
818 (mcvs-convert-wrapper): New function.
819
820 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
821
822 Beginning work on repository conversion utility.
823
824 * convert.lisp: New file. Contains conversion utility
825 to make an Meta-CVS repository from an ordinary CVS repository,
826 while preserving all history, tags and branches.
827 (remove-attic-component, classify-tags, read-tags,
828 mcvs-convert): New functions.
829
830 * posix.lisp (suffix): New function. Computes suffix of file.
831 (execute-program-xargs): New optional parameter, for specifying
832 fixed part added at the end of each generated command line.
833
834 * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
835 (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
836 (mapping-generate-name): New key parameter no-dir for not adding
837 the directory prefix.
838
839 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
840
841 * checkout.lisp (mcvs-checkout): Ensure local mapping is
842 sorted when written out, for easier comparisons.
843
844 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
845
846 * sync.lisp (synchronize-files): Return :dir symbol when either
847 argument is a directory.
848 * mapping.lisp (mapping-synchronize): Chatter output messages
849 are shorter. Handles :dir return value from synchronize-files.
850 (mapping-update): New sanity checks for moved and added
851 files, to avoid clobbering local files. Removed redundant
852 call to ensure-directories-exit in move logic, because
853 synchronize-files will do it anyway. Chatter messages reordered
854 to occur before their corresponding action is done.
855
856 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
857
858 Improve error handling, and builtin ``debug shell''.
859
860 * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
861 can have new domain value, namely :decline.
862 (mcvs-top-error-handler): Print error message when terminating
863 non-restartable error. Handle new :decline treatment by
864 simply returning.
865 (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
866 so that errors are caught by debugger.
867
868 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
869
870 * mapping.lisp (mapping-sort): Removed function.
871 (mapping-write): Sort written map by F- file names,
872 not by path names. This is far better for merging, because
873 files stay in the same place when they are renamed.
874
875 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
876
877 Added status, log and annotate.
878
879 * mcvs-main.lisp: (*log-options*, *status-options*,
880 *annotate-options*): New constants.
881 (*mcvs-command-table*): Add new entries.
882
883 * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
884 mcvs-annotate-wrapper): New functions.
885
886 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
887
888 Added tag command.
889
890 * diff.lisp: File renamed to generic.lisp.
891 (mcvs-diff): Function renamed to mcvs-generic.
892
893 * generic.lisp (mcvs-generic): Function no longer dedicated to
894 diffing only; takes CVS command to execute as an argument,
895 also takes arguments and files as separate lists.
896 (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
897 (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
898 tag command.
899
900 * mcvs-main.lisp (*tag-options*): New constant.
901 (*mcvs-command-table*): New entry for tag command.
902
903 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
904
905 Added workaround for operating system argument passing limitations,
906 resembling the Unix xargs utility. Also, trimmed some fat
907 from the basename function.
908
909 * clisp-linux.lisp: (*argument-limit*): New constant added.
910 (arglist-to-command-string): Function removed.
911 (execute-program): Function removed.
912 (shell-interpreter): New function, wrapper for CLISP's shell
913 function, turns exit status into T (success) or NIL (failure).
914
915 * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
916 of execute-program.
917
918 * posix.lisp (basename): Does not canonicalize path name. This
919 turns out to be an unnecessary performance hit in some cases.
920 (arglist-to-command-string): New function. Similar to what was
921 removed from clisp-linux, but this one properly escapes all
922 shell metacharacters.
923 (execute-program): New function, calls shell-interpreter.
924 (execute-program-xargs): New function. Takes two argument lists.
925 Forms one or more command lines by combining the first argument list
926 with one or more pieces of the second argument list, and
927 executes each command. The length of the pieces is determined
928 by the argument passing limit.
929
930 * dirwalk.lisp (ensure-directories-gone): Add use of
931 canonicalize-path because basename doesn't do it.
932
933 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
934
935 Algorithmic efficiency improvements. No longer using
936 abstract set operations to update file structure or find
937 duplicates in the maps. Could still streamline the sorting.
938
939 * mapping.lisp (mapping-sort): Express more succinctly using key.
940 (mapping-dupe-check): Rewrite using loop over sorted lists.
941 (mapping-difference): New function for computing mapping change.
942 (mapping-update): Modify to use mapping-difference.
943
944 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
945
946 * mapping.lisp (mapping-update): When moving files, ensure
947 that the target is unlinked if it exists.
948
949 * move.lisp (simple-rename): No longer do target unlinking
950 here. Also bugfix: it wasn't handling renames of directories
951 containing just one file.
952
953 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
954
955 * mapping.lisp (mapping-dupe-check): New function for
956 detecting duplicate objects or paths in a mapping.
957 (mapping-sane-p): Function removed.
958 (mapping-read): Use mapping-dupe-check to verify a map
959 when asked by the sanity-check keyword.
960 (mapping-update): Specify sanity check when reading MCVS/MAP.
961
962 * checkout.lisp (mcvs-checkout): Checkout also performs
963 sanity check.
964
965 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
966
967 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
968 to establish proper termination status.
969
970 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
971
972 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
973 properly based on knowledge of each command's set of options.
974 (parse-args): Function removed.
975
976 * options.lisp (parse-opt): Correctly process long options with
977 arguments. Argument is part of the string, separated by = symbol.
978
979 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
980
981 * options.lisp (parse-opt): When multiple options characters are
982 bunched up into one argument, and one of them other than the
983 last one takes an argument, then the remaining ones are
984 considered to constitute a string which is an argument to that
985 option. For instance -y32 means -y 32, not -y -3 -2, assuming
986 that y is an option that requires an argument.
987
988 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
989
990 Top level handler terminates by non-local exit back to
991 mcvs function, rather than by calling (exit).
992
993 * mcvs-main.lisp (mcvs-top-error-handler): Restructured
994 to call (throw 'mcvs-exit t).
995 (mcvs-execute): Ensure that NIL is returned by normal exit.
996 (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
997 accordingly.
998
999
1000 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
1001
1002 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
1003
1004 * mapping.lisp (filemap-generate-name, filemap-sort,
1005 filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
1006 filemap-prefix-matches, filemap-object-lookup,
1007 filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
1008 filemap-rename-files, filemap-sane-p): Old names removed.
1009 (mapping-generate-name, mapping-sort,
1010 mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
1011 mapping-prefix-matches, mapping-object-lookup,
1012 mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
1013 mapping-rename-files, mapping-sane-p): New names created.
1014 (mapping-read, mapping-write, mapping-synchronize,
1015 mapping-update): Edit calls to renamed functions.
1016 * add.lisp (mcvs-add): Likewise.
1017 * diff.lisp (mcvs-diff): Likewise.
1018 * filt.lisp (mcvs-filt): Likewise.
1019 * import.lisp (mcvs-import): Likewise.
1020 * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
1021 * remove.lisp (mcvs-remove): Likewise.
1022
1023 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1024
1025 Factored out repeated code for reading and writing of the MAP and
1026 MAP-LOCAL files.
1027
1028 * mapping.lisp (mapping-read, mapping-write): New functions.
1029 (mapping-synchronize, mapping-update): Use new functions.
1030 * move.lisp (mcvs-move): Likewise.
1031 * filt.lisp (mcvs-filt): Likewise.
1032 * add.lisp (mcvs-add): Likewise.
1033 * remove.lisp (mcvs-remove): Likewise.
1034 * checkout.lisp (mcvs-checkout): Likewise.
1035 * diff.lisp (mcvs-diff): Likewise.
1036 * import.lisp (mcvs-import): Likewise.
1037
1038 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1039
1040 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
1041 hard coding "MCVS" string.
1042
1043 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1044
1045 * MCVS-PAPER: Renamed to Meta-CVS-PAPER
1046
1047 * README: Change all references to MCVS to Meta-CVS, the
1048 new official name of the program.
1049 * add.lisp: Likewise
1050 * chatter.lisp: Likewise
1051 * checkout.lisp: Likewise
1052 * clisp-linux.lisp: Likewise
1053 * commit.lisp: Likewise
1054 * diff.lisp: Likewise
1055 * dirwalk.lisp: Likewise
1056 * filt.lisp: Likewise
1057 * import.lisp: Likewise
1058 * INSTALL: Likewise
1059 * mapping.lisp: Likewise
1060 * mcvs-main.lisp: Likewise
1061 * Meta-CVS-PAPER: Likewise
1062 * move.lisp: Likewise
1063 * options.lisp: Likewise
1064 * posix.lisp: Likewise
1065 * RELEASE-NOTES: Likewise
1066 * remove.lisp: Likewise
1067 * restart.lisp: Likewise
1068 * seqfuncs.lisp: Likewise
1069 * split.lisp: Likewise
1070 * sync.lisp: Likewise
1071 * system.lisp: Likewise
1072 * update.lisp: Likewise
1073
1074 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
1075
1076 * move.lisp (move-guts): test the actual filesystem as well
1077 as the map for existence of a directory or file. This makes
1078 the move operation behave better. Files can be moved to an
1079 existing directory that is not known to MCVS, and a file
1080 can properly clobber a target file that is not known to MCVS.
1081
1082 * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
1083 methods for these generic functions for a NIL argument, such
1084 that they return NIL.
1085
1086 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
1087
1088 * move.lisp (simple-move-to-dir): eliminated a bunch of code
1089 with the result that mcvs mv now works more like the Unix mv
1090 when moving a directory to another directory.
1091
1092 * mcvs-main.lisp (mcvs-execute): fix bogus error message
1093 when options are given but no command.
1094
1095 * README: don't use -z3 in example because this style of
1096 specifying an argument to an option doesn't work.
1097
1098 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
1099
1100 * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
1101 recursivep to be a generalized boolean variable. This allows
1102 mcvs add -R to work properly.
1103
1104 * mcvs-main.lisp (*cvs-command-options-arg*): add support
1105 for -u parameter, useful in cvs diff.
1106 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5