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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.97 - (hide annotations)
Mon May 20 17:49:12 2002 UTC (11 years, 11 months ago) by kaz
Branch: MAIN
Changes since 1.96: +20 -0 lines
Adding mcvs remap command.

* dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
behavior is now preorder (visit directory before its entries).
A keyword is provided to select the old postorder behavior.
A catch is provided in dirwalk-fi that allows the caller to
skip processing the currently traversed directory. The for-each-*
macros provide a local function called (skip) to do this.
(delete-recursive): This function depends on postorder behavior
in for-each-file-info, so it explicitly selects it now.

* mcvs.lisp (*remap-options*): New constant.
(*mcvs-command-table*): Add entry for new function.
(*usage*): Describes new function.

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

  ViewVC Help
Powered by ViewVC 1.1.5