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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5