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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5