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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.112 - (show annotations)
Tue Jun 25 23:39:19 2002 UTC (11 years, 10 months ago) by kaz
Branch: MAIN
CVS Tags: mcvs-0-15
Changes since 1.111: +17 -0 lines
New feature: grab command. Takes snapshot of code and imports
it to a branch, trying to determine which of the added and
removed files are actually moves.

* grab.lisp: New file.
(read-word-hash, word-hash-file, correlate, added-removed,
move-candidates, mcvs-grab, mcvs-grab-wrapper): New functions.

* mcvs-main.lisp (*grab-options*): New constant.
(*mcvs-command-table*): New entry.
(*usage*): New text.

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

  ViewVC Help
Powered by ViewVC 1.1.5