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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5