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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.92 - (hide annotations)
Fri Apr 19 18:56:58 2002 UTC (12 years ago) by kaz
Branch: MAIN
Changes since 1.91: +12 -0 lines
Porting to CMUCL.

* system.lisp: Conditionally load new module cmucl-unix.

* mapping.lisp (mapping-dupe-check, mapping-write,
mapping-difference): Fixes related to sort function; we were
relying on CLISP's preservation of the cons cell order.

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

  ViewVC Help
Powered by ViewVC 1.1.5