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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5