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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.78 - (show annotations)
Tue Apr 2 23:38:19 2002 UTC (12 years ago) by kaz
Branch: MAIN
Changes since 1.77: +14 -0 lines
First cut at implementing more automated branching and merging.

* mcvs-main.lisp (*branch-options*, *merge-options*): New constants.
(*mcvs-command-table*): New entries for branch and merge commands.
(*usage*): New help text.

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

  ViewVC Help
Powered by ViewVC 1.1.5