/[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 - (hide 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 kaz 1.78 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 kaz 1.77 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 kaz 1.76 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 kaz 1.74 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
30    
31 kaz 1.75 * 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 kaz 1.74 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 kaz 1.73 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 kaz 1.72 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 kaz 1.73
68     * rcsparse.lisp: New file, implements RCS version file parser.
69 kaz 1.72 (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 kaz 1.69 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
82    
83 kaz 1.71 * 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 kaz 1.70 * 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 kaz 1.69 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
102    
103 kaz 1.66 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
104    
105 kaz 1.68 * 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 kaz 1.67 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 kaz 1.66 * filt.lisp (filt-select-map): Do allow a date and revision to be
128     specified; the revision could be a branch tag.
129    
130 kaz 1.62 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
131    
132 kaz 1.65 * 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 kaz 1.64 * 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 kaz 1.63 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 kaz 1.62 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
159     metafiles.
160    
161 kaz 1.53 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
162    
163 kaz 1.61 * 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 kaz 1.60 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 kaz 1.59 * 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 kaz 1.58 * 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 kaz 1.57 * 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 kaz 1.56 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 kaz 1.55 * 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 kaz 1.54 * options.lisp (parse-opt): Make error messages more consistent.
223    
224     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
225    
226 kaz 1.53 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
227     the user might not care about the remaining unmatched list.
228    
229 kaz 1.49 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
230    
231 kaz 1.52 * 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 kaz 1.51 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 kaz 1.50 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 kaz 1.49 * 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 kaz 1.43 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
266    
267 kaz 1.48 * 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 kaz 1.47 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 kaz 1.46 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 kaz 1.45 * 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 kaz 1.44 * 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 kaz 1.43 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 kaz 1.40 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
317    
318 kaz 1.42 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 kaz 1.41 * 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 kaz 1.40 * import.lisp (mcvs-import): Fix broken restart for re-editing
353     the types file.
354     (*types-comments*): Drastically shorten the help text.
355    
356 kaz 1.38 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
357    
358 kaz 1.39 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 kaz 1.38 * add.lisp (mcvs-add): Last change completely broke add due
389     to not breaking out of the retry loop.
390    
391 kaz 1.36 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
392    
393 kaz 1.37 * 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 kaz 1.36 * 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 kaz 1.35 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 kaz 1.30 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
419    
420 kaz 1.34 * 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 kaz 1.31 * error.lisp (mcvs-error-handler): Rearranging the menu,
427     so "T" is clumped with the main options, and any special restarts
428 kaz 1.32 are clearly separated. Changed wording.
429 kaz 1.31
430     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
431    
432 kaz 1.30 * 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 kaz 1.33 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 kaz 1.30
440     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
441    
442     * install.sh: Stop the script if there are compilation errors.
443    
444 kaz 1.24 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
445    
446 kaz 1.29 * 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 kaz 1.28 * 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 kaz 1.27 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 kaz 1.26 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 kaz 1.25 * 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 kaz 1.24 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 kaz 1.22 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
502    
503 kaz 1.23 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 kaz 1.22 * checkout.lisp (mcvs-checkout): Ensure local mapping is
523     sorted when written out, for easier comparisons.
524    
525 kaz 1.21 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 kaz 1.20 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 kaz 1.17 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
557    
558 kaz 1.19 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 kaz 1.18 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 kaz 1.17 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 kaz 1.12 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
615    
616 kaz 1.16 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 kaz 1.15 * 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 kaz 1.13 * 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 kaz 1.14 * checkout.lisp (mcvs-checkout): Checkout also performs
644     sanity check.
645    
646 kaz 1.13 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
647    
648 kaz 1.12 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
649     to establish proper termination status.
650    
651 kaz 1.8 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
652    
653 kaz 1.10 * 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 kaz 1.11 * options.lisp (parse-opt): Correctly process long options with
658     arguments. Argument is part of the string, separated by = symbol.
659    
660 kaz 1.10 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
661    
662 kaz 1.9 * 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 kaz 1.8 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 kaz 1.6 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
705    
706 kaz 1.7 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 kaz 1.6 * 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 kaz 1.4 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
756    
757 kaz 1.5 * 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 kaz 1.4 * 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 kaz 1.1 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 kaz 1.2
785     * mcvs-main.lisp (*cvs-command-options-arg*): add support
786     for -u parameter, useful in cvs diff.
787 kaz 1.3 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5