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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.97 - (show annotations)
Mon May 20 17:49:12 2002 UTC (11 years, 11 months ago) by kaz
Branch: MAIN
Changes since 1.96: +20 -0 lines
Adding mcvs remap command.

* dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
behavior is now preorder (visit directory before its entries).
A keyword is provided to select the old postorder behavior.
A catch is provided in dirwalk-fi that allows the caller to
skip processing the currently traversed directory. The for-each-*
macros provide a local function called (skip) to do this.
(delete-recursive): This function depends on postorder behavior
in for-each-file-info, so it explicitly selects it now.

* mcvs.lisp (*remap-options*): New constant.
(*mcvs-command-table*): Add entry for new function.
(*usage*): Describes new function.

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

  ViewVC Help
Powered by ViewVC 1.1.5