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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.103 - (show annotations)
Sat Jun 22 02:27:44 2002 UTC (11 years, 9 months ago) by kaz
Branch: MAIN
Changes since 1.102: +11 -0 lines
* clisp-linux.sh (:clisp-old): Added to *features*
for CLISP 2.28 or higher.
(*null-pointer*): Only defined when :clisp-old is present.
(pointer-null): Use new ffi:foreign-pointer-null if :clisp-old
feature is not present.

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

  ViewVC Help
Powered by ViewVC 1.1.5