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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.85.2.1 - (hide annotations)
Fri Apr 5 00:02:06 2002 UTC (12 years ago) by kaz
Branch: deferred-adds-branch
Changes since 1.85: +20 -0 lines
Deferred adds feature, to get around the bug in cvs whereby
one cannot add files and then create a branch and switch to
it and commit them there.

add.lisp (mcvs-add): Do not execute cvs add commands, but instead
save them in a local MCVS metafile called ADD-LOCAL.
(complete-local-adds): New function, performs the deferred adds
and then removes ADD-LOCAL.
(mcvs-commit-wrapper): Function moved here out of generic.lisp.
Calls complete-local-adds before doing the commit.

generlic.lisp (mcvs-commit-wrapper): Function moved to add.lisp.

import.lisp (mcvs-import): Put ADD-LOCAL name under .cvsignore .

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

  ViewVC Help
Powered by ViewVC 1.1.5