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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.107 - (show annotations)
Sun Jun 23 19:18:11 2002 UTC (11 years, 9 months ago) by kaz
Branch: MAIN
Changes since 1.106: +14 -0 lines
The ``import'' command is renamed to ``create''.

* mcvs.main (*create-options*): Renamed to *import-options*.
(*mcvs-command-table*): Updated.
(*usage*): Updated.

* import.lisp: File renamed to create.lisp.
(mcvs-import): Renamed to mcvs-create; some arguments renamed.
(mcvs-import-wrapper): Renamed to mcvs-create-wrapper.

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

  ViewVC Help
Powered by ViewVC 1.1.5