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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5