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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.205.2.20 - (hide annotations)
Sun Oct 27 00:25:38 2002 UTC (11 years, 5 months ago) by kaz
Branch: mcvs-1-0-branch
Changes since 1.205.2.19: +11 -0 lines
New link command for creating symlinks.

* mcvs-main.lisp (*link-options*): New option constant.
(*mcvs-command-table*): Entries for new command added.
(*usage*): Help text added.

* link.lisp: New file.
(mcvs-link, mcvs-link-wrapper): New functions.
1 kaz 1.205.2.16 2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
2    
3 kaz 1.205.2.20 New link command for creating symlinks.
4    
5     * mcvs-main.lisp (*link-options*): New option constant.
6     (*mcvs-command-table*): Entries for new command added.
7     (*usage*): Help text added.
8    
9     * link.lisp: New file.
10     (mcvs-link, mcvs-link-wrapper): New functions.
11    
12     2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
13    
14 kaz 1.205.2.19 * code/grab.lisp (*grab-help*): Rewritten.
15    
16     * code/checkout.lisp (*export-help*): Formatted for 80 columns.
17    
18     2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
19    
20 kaz 1.205.2.18 * code/mcvs-main.lisp (*usage*): Expand tabs to spaces.
21    
22     * code/add.lisp (*add-help*): Likewise.
23    
24     * code/remove.lisp (*remove-help*): Likewise.
25    
26     * code/create.lisp (*create-help*): Likewise.
27    
28     2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
29    
30 kaz 1.205.2.17 * code/purge.lisp (mcvs-purge): Get rid the processing of the
31     nonexistent -n option from purge code. The global option -n does an
32     adequate job of implementing a dry run.
33    
34     2002-10-26 Kaz Kylheku <kaz@ashi.footprints.net>
35    
36 kaz 1.205.2.16 * code/mapping.lisp (mapping-removed-files): Skip over the MCVS/CVS
37     directory, which can contain CVS-generated files with F- names and a ,t
38     suffix. These trip up the algorithm.
39    
40 kaz 1.205.2.15 2002-10-21 Kaz Kylheku <kaz@ashi.footprints.net>
41    
42     Add help to move command.
43    
44     * code/mcvs-main.lisp (*mcvs-command-table*): Added *move-help*.
45    
46     * code/move.lisp (*mcvs-help*): New constant.
47    
48 kaz 1.205.2.14 2002-10-20 Kaz Kylheku <kaz@ashi.footprints.net>
49    
50     Fix broken ``filt -r''.
51    
52     * code/mapping.lisp (mapping-read-raw-map): New function; reads
53     map from stream and does sanity check.
54     (mapping-read): Argument can be a filename or stream. Call to
55     mapping-read-raw-map to factor out common code for both cases.
56    
57     * code/filt.lisp (filt-select-map): This was still just
58     reading the raw structure from the cvs coprocess, which worked under
59     the old map format, when the internal and external representations
60     were the same. Now it calls mapping-read on the stream.
61    
62 kaz 1.205.2.12 2002-10-19 Kaz Kylheku <kaz@ashi.footprints.net>
63    
64 kaz 1.205.2.13 * UPGRADE-EXISTING: New file.
65    
66     2002-10-19 Kaz Kylheku <kaz@ashi.footprints.net>
67    
68 kaz 1.205.2.12 * code/mcvs-main.lisp: Clear out *modules* list before requiring
69     modules. This is needed so that mcvs-upgrade works, because there
70     is already a populated list in the Lisp image.
71    
72 kaz 1.205.2.11 2002-10-17 Kaz Kylheku <kaz@ashi.footprints.net>
73    
74     Detect failure to start text editor.
75    
76     * code/posix.lisp (*editor*): Change name to *mcvs-editor*, due
77     to name-clash with a CLISP extension!
78    
79     * code/mcvs-main.lisp: Likewise.
80    
81     * code/types.lisp (types-let-user-edit): Provide an individual
82     restart-case block around the invocation of the text editor,
83     which lets the user re-try the editor.
84    
85 kaz 1.205.2.10 2002-10-14 Kaz Kylheku <kaz@ashi.footprints.net>
86    
87     Compiler warning fix.
88    
89     * code/posix.lisp (*argument-limit*): Constant moved here.
90    
91     * code/clisp-unix.lisp (*argument-limit*): Constant removed.
92    
93     * code/cmucl-unix.lisp (*argument-limit*): Likewise.
94    
95 kaz 1.205.2.4 2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
96    
97 kaz 1.205.2.9 * code/install.sh: generate a script called mcvs-upgrade.
98    
99     2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
100    
101 kaz 1.205.2.8 * code/prop.lisp (mcvs-prop): Read *mcvs-map*, not *mcvs-map-local*.
102    
103     2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
104    
105 kaz 1.205.2.7 * code/mcvs-main.lisp (*watchers-options*): New constant.
106     (*edit-options*): Likewise.
107     (*unedit-options*): Likewise.
108     (*editors-options*): Likewise.
109     (*mcvs-command-table*): Added watchers, edit unedit, and editors
110     commands.
111     (*usage*): Updated.
112    
113     * code/generic.lisp (mcvs-watchers-wrapper, mcvs-edit-wrapper,
114     mcvs-unedit-wrapper, mcvs-editors-wrapper): New functions.
115    
116     2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
117    
118 kaz 1.205.2.6 * code/mcvs-main.lisp (*usage*): Describe export and watch commands.
119    
120     2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
121    
122 kaz 1.205.2.5 * code/mcvs-main.lisp (*watch-options*): New constant.
123     (*mcvs-command-table*): New entry for watch command.
124    
125     * code/watch.lisp: New file.
126    
127     2002-10-13 Kaz Kylheku <kaz@ashi.footprints.net>
128    
129 kaz 1.205.2.4 * code/mcvs-main.lisp (*export-options*): New constant.
130     (*mcvs-command-table*): New entries for export command.
131    
132 kaz 1.205.2.5 * code/checkout.lisp (mcvs-checkout): New keyword to specify export
133     behavior. This causes cvs export to be run instead of checkout,
134     and the MCVS directory to be deleted after.
135 kaz 1.205.2.4 (mcvs-checkout-wrapper): Common function factored out into a flet.
136 kaz 1.205.2.5 (mcvs-export-wrapper): New function. Verifies that one of -D and -r
137     options is present, then runs mcvs-checkout, specifying export
138     behavior.
139 kaz 1.205.2.4
140 kaz 1.205.2.1 2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
141    
142 kaz 1.205.2.3 * code/mcvs-main.lisp (*update-options*): Added -C option.
143    
144     * code/update.lisp (mcvs-update): Fall back on the mcvs-generic
145     if --metaonly or --nometa is specified to run CVS on specific
146     files.
147    
148     2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
149    
150 kaz 1.205.2.2 * code/filt.lisp (mcvs-filt): Do not filter F- names if
151     immediately preceded by MCVS/ prefix.
152    
153     2002-10-12 Kaz Kylheku <kaz@ashi.footprints.net>
154    
155 kaz 1.205.2.1 * code/clisp-unix.lisp (execute-program): Provide debug traces
156     for command execution.
157    
158 kaz 1.205 2002-10-09 Kaz Kylheku <kaz@ashi.footprints.net>
159    
160     * code/add.lisp (*add-help*): Remove spurious text cut and pasted from
161     checkout help.
162    
163 kaz 1.196 2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
164    
165 kaz 1.204 * code/prop.lisp (mcvs-prop): Result of real-to-abstract-path
166     must be canonicalized.
167    
168     * code/remove.lisp (mcvs-remove): Likewise.
169    
170     * code/generic.lisp (mcvs-generic): Likewise.
171    
172     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
173    
174 kaz 1.203 * code/move.lisp (move-guts, mcvs-move): Canonicalize the destination
175     path in mcvs-move, rather than mcvs-guts.
176    
177     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
178    
179 kaz 1.202 * code/create.lisp (mcvs-create): Add the DISPLACED filename
180     to the .cvsignore file.
181    
182     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
183    
184 kaz 1.201 * code/posix.lisp (path-prefix-equal): Handle empty strings.
185    
186     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
187    
188 kaz 1.200 * code/move.lisp (move-guts): If an error occurs for each
189     source in a multiple move, and the user skips each source,
190     generate the error that all sources were skipped.
191    
192     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
193    
194 kaz 1.199 * code/move.lisp (source-check): Generate error if a move
195     of the sandbox root is attempted.
196    
197     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
198    
199 kaz 1.198 * code/remap.lisp (mcvs-remap): Preserve property lists of
200     mapping entries, and pick up changes in execute permission.
201    
202     * code/mapping.lisp (mapping-convert-out): If the mapping entry's
203     executable flag is nil, then remove the :exec entry from the property
204     list.
205    
206     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
207    
208 kaz 1.197 * code/mapping.lisp (equal-filemaps): Repair completely broken
209     function.
210    
211     * code/move.lisp (mcvs-move): Added little hack for turning
212     no-op moves into errors. Without this the behavior is confusing,
213     since the program appears to do nothing.
214    
215     2002-10-06 Kaz Kylheku <kaz@ashi.footprints.net>
216    
217 kaz 1.196 * code/add.lisp (mcvs-add): Provide a continue restart around
218     the code that builds up the expanded-paths for each iteration of the
219     loop. Without this, errors in that code cause the program to bail, even
220     though errors in the rest of the loop body are continuable.
221    
222 kaz 1.189 2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
223    
224 kaz 1.195 * code/dirwalk.lisp (dirwalk): If the argument is not a directory,
225     the callback must still be invoked. This was done prior to
226     a 2002-05-20 commit. I can't quite remember why it was changed;
227     but I seem to recall thinking about the new dirwalk-skip catch,
228     and how it must be always visible to the callback closure, so
229     that the (skip) mechanism works.
230    
231     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
232    
233 kaz 1.194 * code/add.lisp (mcvs-add): Reshuffle restart to a higher nesting
234     level, so that an error on one item won't abort the whole operation.
235    
236     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
237    
238 kaz 1.193 * code/convert.lisp (mcvs-convert): Maintenance so that this tool
239     at least runs, even though it doesn't do anything resembling a
240     reasonable conversion job.
241    
242     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
243    
244 kaz 1.192 * code/clisp-unix.lisp (guid-gen): Changes for Cygwin broke the
245     case when /dev/urandom is available.
246    
247     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
248    
249 kaz 1.191 * code/find-bind.lisp (find-bind): Allow empty variable list, as
250     described by the documented syntax.
251    
252     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
253    
254 kaz 1.190 * code/error.lisp (mcvs-error-handler): Simplify roundabout way
255     of printing error message.
256    
257     * code/mapping.lisp (mapping-write): Incorporate the low level error
258     message into the more informative error message.
259    
260     2002-10-05 Kaz Kylheku <kaz@ashi.footprints.net>
261    
262 kaz 1.189 Error messages no longer specify prefixes like "mcvs:" or
263     "mcvs-remove:".
264    
265     When no restarts are available, the error handler now adds the "mcvs:"
266     prefix when dumping the error text to the standard error stream,
267     and also adds a terminating newline.
268    
269     The inability to write to the MAP file is converted to a more
270     informative error message.
271    
272     New --debug option is supported to set the chatter level to 3.
273    
274     * code/chatter.lisp: Use the symbolic constant when defining the
275     default chatter level value.
276    
277     * code/mcvs-main.lisp (*cvs-options*, mcvs-help, mcvs-execute): Added
278     support for --debug option, and removed of prefixes from error
279     messages.
280    
281     * code/options.lisp (filter-global-options): Support --debug.
282     (parse-opt): Removed prefixes from error messages.
283    
284     * code/mapping.lisp (mapping-rename-files, mapping-dupe-check,
285     mapping-convert-in, mapping-synchronize, mapping-update): Removed
286     prefixes from error messages.
287     (mapping-write): Trap write error and convert to more informative
288     error message.
289    
290     * code/error.lisp (mcvs-error-handler): In the case when no restarts
291     are available, format the error message by adding the mcvs: prefix
292     and a terminating newline.
293    
294     * code/purge.lisp (mcvs-purge): Removed prefixes from error messages.
295    
296     * code/restore.lisp (mcvs-restore): Likewise.
297    
298     * code/move.lisp (move-guts, mcvs-move): Likewise.
299    
300     * code/grab.lisp (mcvs-grab): Likewise.
301    
302     * code/prop.lisp (mcvs-prop): Likewise.
303    
304     * code/filt.lisp (filt-select-map, mcvs-filt): Likewise.
305    
306     * code/branch.lisp (where-is-the-repository, mcvs-branch,
307     cvs-make-or-advance-tag, mcvs-merge, mcvs-list-branches,
308     mcvs-switch-wrapper): Likewise.
309    
310     * code/add.lisp (mcvs-add, mcvs-add): Likewise.
311    
312     * code/remove.lisp (mcvs-remove): Likewise.
313    
314     * code/convert.lisp (classify-tags, mcvs-convert): Likewise.
315    
316     * code/checkout.lisp (mcvs-checkout): Likewise.
317    
318     * code/generic.lisp (mcvs-generic, mcvs-diff-wrapper): Likewise.
319    
320     * code/create.lisp (mcvs-create, mcvs-create): Likewise.
321    
322     * code/remap.lisp (mcvs-remap, mcvs-remap): Likewise.
323    
324 kaz 1.188 2002-09-25 Kaz Kylheku <kaz@ashi.footprints.net>
325    
326     Minimal changes for building on Cygwin.
327    
328     * code/install.sh (space_check, dash_check): Function definitions
329     modified to conform to bash2.
330    
331     * code/clisp-unix.lisp (*have-dev-random*, *mcvs-random-state*):
332     New special variables.
333     (guid-gen): Rewritten to fall back on the Common Lisp random
334     function if /dev/urandom is not available.
335    
336 kaz 1.180 2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
337    
338 kaz 1.187 * code/mcvs-main.lisp (*options*): New variable. Gives
339     scripts access to to some global options. The *args* variable now
340     holds only the remaining arguments after the options.
341     (mcvs-execute): Sets up *args* and *options* accordingly.
342     No longer parses out the --error-continue and --error-terminate
343     options.
344    
345     * code/options.lisp (filter-global-options): The handling of
346     --error-continue and --error-terminate is done here. This is
347     the place to handle options that must be removed (not passed
348     down to CVS) and which do not trigger immediate actions in
349     mcvs-execute.
350    
351     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
352    
353 kaz 1.186 * code/mcvs-main.lisp (*args*): New global variable. Gives
354 kaz 1.185 scripts access to command line.
355    
356     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
357    
358 kaz 1.184 * code/mcvs-main.lisp (*cvs-options*): Add -i parameter which
359     takes the name of a script to invoke.
360     (*usage*): Updated to describe new option.
361     (mcvs-execute): Parse out -i option and load the specified file.
362    
363     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
364    
365 kaz 1.183 * code/install.sh: Don't specify -K full option when running
366     specific, generated CLISP image already. When generating mcvs.mem,
367     load the compiled version mcvs-main, rather than mcvs-main.lisp.
368    
369     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
370    
371 kaz 1.182 * code/install.sh: Check that the installation target path won't
372     look like a command line option to shell commands.
373    
374     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
375    
376 kaz 1.181 * code/mcvs-main.lisp (*mcvs-command-table*): Added help for remove.
377    
378     * code/remove.lisp (*remove-help*): New string constant.
379    
380     2002-09-21 Kaz Kylheku <kaz@ashi.footprints.net>
381    
382 kaz 1.180 * code/grab.lisp (mcvs-grab): Inspect the execute permissions
383     of stable and moved files, and update the :EXEC propery of
384     their mapping entries accordingly. In other words, grab changes
385     in execute permissions properly.
386    
387 kaz 1.179 2002-09-18 Kaz Kylheku <kaz@ashi.footprints.net>
388    
389     * code/restore.lisp (mcvs-restore): Was still generating old-style
390     mapping entries.
391    
392     * code/clisp-unix.lisp (executable-p (string)): New method for
393     executable-p generic function that takes a filename.
394    
395 kaz 1.177 2002-09-17 Kaz Kylheku <kaz@ashi.footprints.net>
396    
397 kaz 1.178 * code/install.sh: Check that the installation target path
398     does not contain any spaces. It cannot, because it is used
399     in the #! line of an interpreter script. As a consequence of
400     this check, whitespace precautions in the expansion of $TARGET,
401     $TARGET_LIB and $TARGET_BIN have been removed.
402    
403     2002-09-17 Kaz Kylheku <kaz@ashi.footprints.net>
404    
405 kaz 1.177 * code/checkout.lisp (mcvs-checkout): If a subdirectory path
406     is specified, verify that it is relative, and that it points
407     within the module.
408    
409 kaz 1.175 2002-09-16 Kaz Kylheku <kaz@ashi.footprints.net>
410    
411 kaz 1.176 * code/mcvs-main.lisp (*checkout-options*): Removed -A and -N
412     options.
413     (*mcvs-command-table*): Added help for checkout and add.
414    
415     * code/checkout.lisp (*checkout-help*): New string constant.
416    
417     * code/add.help (*add-help*): Likewise.
418    
419     * code/create.lisp (*create-help*): Mention interactive file
420     type specification.
421    
422     2002-09-16 Kaz Kylheku <kaz@ashi.footprints.net>
423    
424 kaz 1.175 * code/mcvs-main.lisp (*mcvs-command-table*): Add *grab-help*.
425    
426     * code/grab.lisp (*grab-help*): New string constant.
427    
428 kaz 1.172 2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
429    
430 kaz 1.174 * code/clisp-linux.lisp: File removed.
431    
432     2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
433    
434 kaz 1.173 Implement help text for create command.
435    
436     * code/mcvs-main.lisp (mcvs-help): Fixes.
437     (*mcvs-command-table*): Add *create-help*.
438    
439     * code/create.lisp (*create-help*): New string constant.
440    
441     2002-09-11 Kaz Kylheku <kaz@ashi.footprints.net>
442    
443 kaz 1.172 Revamping help system to support more detailed help
444     for individual commands.
445    
446     * code/mcvs-main.lisp (mcvs-help): New function.
447     (*help-options*): New constant.
448     (*mcvs-command-table*): New entry in each sublist element;
449     this is either nil, or a string containing help text.
450     (mcvs-execute): Update to use new table structure.
451    
452 kaz 1.171 2002-09-10 Kaz Kylheku <kaz@ashi.footprints.net>
453    
454     * code/filt.lisp (mcvs-filt): Bugfix: was trying to
455     use NIL as if it were a mapping-entry struct after an unsuccessful
456     gethash.
457    
458     2002-09-10 Kaz Kylheku <kaz@ashi.footprints.net>
459    
460     Fix installation braindamage. The problem is that
461     the linkkit material is architecture specific; it was
462     wrong to copy that from CLISP.
463    
464     * code/install.sh (CLISP_PATH, CLISP_ROOT, CLISP_LIB): New
465     variables, dynamically computed from clisp's location.
466     The script now runs the clisp-link under $CLISP_LIB rather
467     than using a replica, and uses $CLISP_LIB/linkkit rather
468     than a replica linkkit.
469     (CLISP): Variable renamed to LISPRUN.
470    
471     * code/clisp-link: File removed.
472     * code/linkkit/modules.d: Likewise.
473     * code/linkkit/modules.c: Likewise.
474     * code/linkkit/clisp.h: Likewise.
475    
476 kaz 1.168 2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
477    
478 kaz 1.170 Fix mistake dating back to April.
479    
480     * code/branch.lisp (mcvs-merge): Symbol T was being invoked
481     as function in the case that merge is invoked on a sandbox
482     that is sticky to a non-branch tag.
483    
484     2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
485    
486 kaz 1.169 Another stupid error.
487    
488     * code/create.lisp (mcvs-create): Fix use to unbound
489     variable file-info which should be fi.
490    
491     2002-09-08 Kaz Kylheku <kaz@ashi.footprints.net>
492    
493 kaz 1.168 Fix stupid error.
494    
495     * code/mcvs-main.lisp (*move-options*): New constant.
496     (*mcvs-command-table*): Fix broken entry for "move" and "mv".
497    
498 kaz 1.167 2002-09-07 Kaz Kylheku <kaz@ashi.footprints.net>
499    
500     Eliminate inappropriate pluralization in messages.
501    
502     * code/grab.lisp (mcvs-grab): Use ~:p to substitute a 's'
503     if the parameter is other than 1.
504    
505     * code/options.lisp (parse-opt): Likewise.
506    
507 kaz 1.165 2002-09-06 Kaz Kylheku <kaz@ashi.footprints.net>
508    
509 kaz 1.166 * code/prop.lisp (mcvs-prop): Support --value option to
510     associate an arbitrary value with a property indicator.
511    
512     * code/mcvs-main.lisp (*usage*): Describe --value and
513     clarify syntax.
514    
515     2002-09-06 Kaz Kylheku <kaz@ashi.footprints.net>
516    
517 kaz 1.165 Unify command option parsing, and enable it to handle options with
518     any number of required parameters.
519    
520     * code/options.lisp (parse-opt): Function rewritten. Argument
521     syntax and semantics have changed. Options are specified
522     as an association list whose member are string-integer
523     pairs. The string is the option name, the integer specifies
524     the number of required parameters.
525     (option-spec-expand): New function.
526     (option-spec): New macro.
527     (define-option-constant): New macro.
528    
529     * code/mcvs-main.lisp (*cvs-options-arg*): Constant removed.
530     (*cvs-options*, *create-options*, *grab-options*, *checkout-options*,
531     *add-options*, *remove-options*, *update-options*,
532     *switch-options*, *commit-options*, *diff-options*, *tag-options*,
533     *log-options*, *status-options*, *annotate-options, *filt-options*,
534     *convert-options*, *branch-options*, *merge-options*,
535     *remerge-options*, *list-branches-options*, *remap-options*,
536     *purge-options*, *restore-options*, *prop-options*): Constant
537     definitions refactored using define-option-constant macro.
538     (*mcvs-command-table*): Use , rather than ,@ to insert
539     option specs.
540     (*usage*): Suggest cleaner syntax for prop options.
541     (mcvs-execute): Switch to new parse-opt.
542    
543 kaz 1.162 2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
544    
545 kaz 1.164 New prop command for manipulating property lists.
546    
547     * code/mcvs-main.lisp (*prop-options*): New constant.
548     (*mcvs-command-table*): New entry.
549     (*usage*): Update.
550    
551     * code/mapping.lisp (mapping-entry-parse-plist): Just unconditionally
552     set execute slot based on :exec property.
553    
554     * code/prop.lisp: New file.
555    
556     2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
557    
558 kaz 1.163 Be transparent with respect to mapping entry property lists:
559     preserve unrecognized indicators and values.
560    
561     * code/mapping.lisp (mapping-entry): New slot, raw-plist,
562     records raw property list from external mapping representation.
563     (mapping-entry-parse-attributes): Renamed to mapping-entry-parse-plist.
564     Argument dropped; parses raw-plist slot instead.
565     (mapping-convert-in): Set raw-plist slot to value of fourth list
566     element of :FILE entry, or fifth list element of :SYMLINK entry.
567     (mapping-convert-out): Unify any slot values that are represented as
568     properties into raw-plist, and insert any non-empty plists into
569     external representation.
570    
571     2002-09-05 Kaz Kylheku <kaz@ashi.footprints.net>
572    
573 kaz 1.162 Low level support for versioning executable bit.
574    
575     * code/unix-bindings/unix.lisp (unix-funcs:chmod): New callout
576     function.
577    
578     * code/clisp-unix.lisp (executable-p, make-executable,
579     make-non-executable): New generic functions.
580     (executable-p (file-info), make-executable (file-info),
581     make-executable (string), make-non-executable (file-info),
582     make-non-executable (string)): New methods.
583    
584     * code/add.lisp (mcvs-add): Record whether new file is
585     executable or not, by setting executable slot in mapping-entry.
586    
587     * code/create.lisp (mcvs-create): Likewise.
588    
589     * code/sync.lisp (synchronize-files): New parameter,
590     should-be-executable, tells function which way to set
591     permissions after synchronizing files.
592    
593     * code/mapping.lisp (mapping-entry): New slot, executable.
594     (mapping-entry-parse-attributes): New function, parses
595     new optional property list from :FILE entries in a mapping.
596     (mapping-convert-in): Parse property list that may be present in fourth
597     list element of a :FILE entry.
598     (mapping-convert-out): Write out executable flag as
599     :EXEC property, if true.
600     (mapping-synchronize): Pass executable flag down to synchronize-files.
601    
602 kaz 1.161 2002-09-02 Kaz Kylheku <kaz@ashi.footprints.net>
603    
604     * code/grab.lisp (determine-moved-files): Rename local
605     variable for clarity.
606     (determine-moved-symlinks): Actually compute what symlinks
607     are moved. Takes one more argument, the stable-files list.
608     (mcvs-grab): Fix small destructuring-bind bug in symlink
609     moving code. Also, read the targets of moved symlinks into
610     the map, like it is already done with stable symlinks.
611    
612 kaz 1.160 2002-09-01 Kaz Kylheku <kaz@ashi.footprints.net>
613    
614     * code/grab.lisp (mcvs-grab): Iterate over stable symlinks,
615     and incorporate changed targets into the mapping. In other
616     words, notice and incorporate retargetted symlinks.
617    
618 kaz 1.159 2002-08-31 Kaz Kylheku <kaz@ashi.footprints.net>
619    
620     Merging new symbolic link support from symlink-branch.
621    
622 kaz 1.160 * code/mapping.lisp (mapping-update): Resolve merge conflict.
623 kaz 1.159 The branch fixed the 2002-08-24 bug also.
624    
625     2002-08-31 Kaz Kylheku <kaz@ashi.footprints.net>
626    
627     * code/grab.lisp (move-candidates): Function renamed to
628     determine-moved-files.
629     (determine-moved-symlinks): New function, doesn't do anything
630     yet.
631     (mcvs-grab): Updated to process symlinks and use new
632     mapping-entry structure.
633    
634     2002-08-26 Kaz Kylheku <kaz@ashi.footprints.net>
635    
636     * code/remap.lisp (mcvs-remap): Use new mapping entry structure.
637     For now, preserve symbolic link entries as they are, processing only
638     files.
639    
640     * code/mapping.lisp (equal-mapping-entries, equal-mappings): New
641     functions.
642    
643     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
644    
645     * code/clisp-unix.lisp (initialize-instance link-error): Make
646     error message less confusing about which path refers to the
647     object being created, and which path refers to what it links to.
648    
649     * code/mapping.lisp (mapping-rename-files): Bugfix: destructuring-bind
650     appeared in place of with-slots.
651     (mapping-synchronize): When creating symbolic link, ensure that
652     its directory exists.
653     (mapping-update): Likewise.
654    
655     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
656    
657     * code/add.lisp (mcvs-add): Change to new mapping-entry data structure
658     and handle symbolic links.
659    
660     * code/create.lisp (mcvs-create): Likewise.
661    
662     * code/filt.lisp (make-filt-hash, mcvs-filt): Change to new
663     mapping-entry data structure. Filt does not care about symlinks.
664    
665     * code/types.lisp (types-remove-ignores, types-make-cvs-adds):
666     Change to new mapping-entry data structure.
667    
668     * code/mapping.lisp (mapping-generate-name): Renamed to
669     mapping-generate-id. Interface changes slightly.
670     (mapping-extract-kind): New function, factored out from mcvs-generic.
671     (mapping-update): Unlink existing symbolic link before
672     re-linking it.
673    
674     * code/convert.lisp (mcvs-convert): Use new name and interface
675     of mapping-generate-name function.
676    
677     * code/create.lisp (mcvs-create): Likewise.
678    
679     * code/generic.lisp (mcvs-generic): Code to extract :file
680     entries from map factored out to mapping-extract-kind.
681    
682    
683     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
684    
685     * code/generic.lisp (mcvs-generic): Use new mapping-entry data structure.
686     Filter out mapping entries which are other than of the :file type, so
687     we don't pass to CVS things it doesn't know about, like symbolic
688     links.
689    
690     2002-08-24 Kaz Kylheku <kaz@ashi.footprints.net>
691    
692     Support for symbolic links added to the mapping module. The format of
693     the map file has changed to accomodate this. The new format of the
694     list entries is (:keyword "id" "path" ...) where the keyword is either
695     :file or :symlink (for now, extensible obviously), "id" is a unique
696     identifier (for regular files, it is their MCVS/F-* name) and "path" is
697     the sandbox path. Other things can follow; for symlinks, there is a
698     string representing the symlink target. Internally, a new data type
699     called mapping-entry is used; this is a struct. So the functions which
700     read and write maps now convert between the struct format and the above
701     format.
702    
703     * code/unix-bindings/unix.lisp (unix-funcs:readlink): New function.
704    
705     * code/unix-bindings/impl.c (impl_readlink): New function.
706    
707     * code/clisp-unix.lisp (readlink-error): New condition.
708     (initialize-instance readlink-error): New method for
709     initialize-instance generic function, specialized for readlink-error.
710     (readlink): New function.
711    
712     * code/mapping.lisp (mapping-entry): New struct, with slots
713     file, id, path and target.
714     (mapping-same-object-p): Renamed to mapping-same-id-p.
715     (mapping-object-lookup, mapping-moved-p): Unused functions removed.
716     (mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
717     mapping-prefix-matches, mapping-same-path-p, mapping-rename-files,
718     mapping-removed-files): Functions updated to use the new data
719     structure.
720     (mapping-dupe-checks): Rewritten for new data structure, and to
721     use hashes rather than silly sorting.
722     (mapping-convert-old-style-in, mapping-convert-in,
723     mapping-convert-out): New functions.
724     (mapping-read): Handle new and old style representations,
725     handle conversion to internal representation.
726     (mapping-write): Convert to new-style external representation
727     before writing out.
728     (mapping-synchronize): Handle symbolic links. If a link is missing,
729     create it. If it's present but different from what it should be,
730     erase it and re-create it.
731     (mapping-update): Use new data structure. Handle symbolic links.
732    
733     * code/remove.lisp (mcvs-remove): Refer to new function
734     name, mapping-same-id-p.
735    
736 kaz 1.158 2002-08-24 Kaz Kylheku <kaz@ashi.footprints.net>
737    
738     * mapping.lisp (mapping-update): Bugfix
739     in logic which prints clobbering moves. The functions
740     abstract-to-real-path and second were applied in the wrong order.
741    
742 kaz 1.159 2002-08-23 Kaz Kylheku <kaz@ashi.footprints.net>
743    
744     * code/clisp-unix.lisp (link-error): New slot, kind. Holds
745     the string "symbolic" or "hard".
746     (initialize-instance link-error): Use new slot in constructing
747     message.
748     (link): Specify "hard" value for :kind slot of condition.
749     (symlink): New function.
750    
751     * code/clisp-linux.lisp: Likewise.
752    
753 kaz 1.156 2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
754    
755 kaz 1.159 * code/posix.lisp (execute-program): Function removed.
756     * code/clisp-linux.lisp (execute-program): Function added. Works
757 kaz 1.157 in terms of CLISP's run-program function rather than the shell
758     function, thus eliminating the need to build a command string
759     and escape shell characters.
760     * clisp-unix.lisp (excecute-program): Likewise.
761    
762     2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
763    
764 kaz 1.159 * code/posix.lisp (edit-file): Function renamed to invoke-file-on,
765 kaz 1.156 because this name clashes with a standard Common Lisp symbol.
766 kaz 1.159 * code/types.lisp (types-let-user-edit): Updated to use new name.
767 kaz 1.156
768 kaz 1.155 2002-08-05 Kaz Kylheku <kaz@ashi.footprints.net>
769    
770     Use getcwd to to implement mcvs-locate.
771    
772     * code/unix-bindings/unix.lisp (getcwd): New call out,
773     invokes impl_getcwd.
774    
775     * code/unix-bindings/impl.c (impl_getcwd): New function,
776     use getcwd() to obtain current working directory, resizing dynamic
777     buffer if necessary to get the entire path.
778    
779     * code/clisp-unix.lisp (getcwd): New wrapper function.
780    
781     * code/dirwalk.lisp (go-up): Function removed.
782    
783     * code/mapping.lisp (mcvs-locate): Rewritten to obtain
784     path using getcwd, then try looking for MCVS directory
785     in successively shorter prefixes of that path.
786    
787 kaz 1.152 2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
788    
789 kaz 1.154 Working back support for CLISP 2.27.
790    
791     * code/install.sh: Bogus *null-pointer* hack is no longer added
792     to the generated mcvs script, since we have our own FFI functions for
793     doing the test.
794    
795     * code/unix-bindings/unix.lisp (unix-funcs:null-pointer-p): New
796     function, tests a C pointer for null, returns T or NIL.
797     * code/unix-bindings/impl.c (impl_null_pointer_p): New function,
798     C implementation of unix-funcs:null-pointer-p.
799    
800     * code/clisp-unix.lisp (pointer-null): New macro, uses
801     ffi:foreign-address-null under CLISP 2.28 or greater, or
802     unix-funcs:null-pointer-p, under an older CLISP.
803    
804     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
805    
806 kaz 1.153 Fixes to get clean build from fresh checkout.
807    
808     * code/unix-bindings/link.sh: Remove test for presence of unix.c;
809     this was causing the failure to add the unix module to the module
810     list, which caused it to generate an empty modules.h file under
811     code/unix-bindings-linking-set, resulting in a bad build of lisp.run.
812    
813     * code/unix-bindings/Makefile: Add ``clean'' target, so we
814     can do a make clean here.
815    
816     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
817    
818 kaz 1.152 Retargetting CVS with new system call bindings that are not GNU/Linux
819     specific.
820    
821     * code/install.sh: The way Meta-CVS is installed changes now.
822     The argument is now a prefix above a bin and lib directory.
823     Invokes clisp-link to build a new CLISP linking set in the
824     directory code/unix-bindings-linking-set. The lisp executable
825     (lisp.run) is copied to $TARGET/lib/clisp/meta-cvs/ and the Meta-CVS
826     memory image is also copied there under the name lispinit.mem.
827     The mcvs script is then generated in $TARGET/bin, correctly referring
828     to these images.
829    
830     * code/system.lisp: Choose the new clisp-unix module, if running
831     under a CLISP image which has the new bindings loaded. Otherwise fall
832     back on the old clisp-linux, which uses the linuxlibc6 module.
833    
834     * code/clisp-unix.lisp: New file, closely based on clisp-linux.lisp,
835     but targetting new bindings in the unix-funcs package.
836    
837     * code/clisp-link: New file. Script borrowed from CLISP distribution,
838     needed for building CLISP executables with custom modules added.
839    
840     * code/linkkit: New directory. This is needed by by clisp-link.
841     * code/linkkit/modules.c: Borrowed file from CLISP, needed
842     by clisp-link.
843     * code/linkkit/clisp.h: Likewise.
844     * code/linkkit/modules.d: Likewise.
845    
846     * code/unix-bindings: New directory. This is a module kit used
847     by clisp-link to extend the Lisp executable and memory image
848     with new C functions.
849    
850     * code/unix-bindings/link.sh: Definitions of variables needed
851     by clisp-link.
852    
853     * code/unix-bindings/unix.lisp: The glue module which defines the Lisp
854     interface to the external C functions. Most of the functions call
855     directly into the system's C library, but a few call to wrapper
856     functions. Compiling unix.lisp produces a unix.c file which is
857     compiled and linked into the CLISP executable, and a unix.fas which
858     contains the Lisp interface bits that are loaded as part of the Lisp
859     image.
860    
861     * code/unix-bindings/Makefile: Rules for compiling the module, invoked by clisp-link.
862    
863     * code/unix-bindings/impl.c: Some special functions that help
864     implement the binding.
865    
866 kaz 1.149 2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
867    
868 kaz 1.150 More changes to syntax of grab command. Now -A must be
869     specified to do a grab onto main trunk.
870    
871     * code/mcvs-main.lisp (*grab-options*): -A option added.
872    
873     * code/grab.lisp (mcvs-grab): Test for presence of -A
874     option. Check that either -A or -r is present, but not both.
875    
876     2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
877    
878 kaz 1.149 Syntax of grab command changed. The branch is no longer
879     specified as an argument after the module name. Rather,
880     it is specified using the -r option.
881    
882     * code/mcvs-main.lisp (*grab-options*): -r added to list.
883    
884     * code/grab.lisp (mcvs-grab, mcvs-grab-wrapper): Argument
885     syntax change, support -r option.
886 kaz 1.152
887     * INSTALL: Instructions change, since building the GNU/Linux libc
888     into CLISP is no longer required.
889 kaz 1.149
890 kaz 1.147 2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
891    
892 kaz 1.148 * docs/meta-cvs.latex: Rewrote most of Introduction.
893    
894     2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
895    
896 kaz 1.147 New scripts for building LaTeX document. These do the right thing
897     to minimize the number of times latex is run. Make proved useless.
898    
899     * docs/generate.sh: New file.
900     * docs/cleanup.sh: New file.
901    
902 kaz 1.146 2002-07-20 Kaz Kylheku <kaz@ashi.footprints.net>
903    
904     * INSTALL: Revising CLISP installation instructions to the
905     easier method using --build.
906    
907 kaz 1.145 2002-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
908    
909     * README: Renaming file to QUICK-GUIDE.
910    
911     2002-07-17 Kaz Kylheku <kaz@ashi.footprints.net>
912 kaz 1.142
913 kaz 1.144 * code/generic.lisp (mcvs-generic): Support new keyword,
914     :no-fix-empty-file-list. Specifies that if no files are passed,
915     and the --metaonly option is not present, the CVS command is to be
916     executed without any file arguments.
917     (mcvs-commit-wrapper): Specify :no-fix-empty-file-list t when
918     calling mcvs-generic. Thus commit now has the behavior that
919     when it is passed no file arguments, it does a true global commit.
920    
921     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
922    
923 kaz 1.143 * code/restore.lisp (mcvs-restore): Work properly with
924     partial sandboxes; that is, move things to lost+found
925     directory at the top of the partial sandbox, rather than
926     the abstract root.
927    
928     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
929    
930 kaz 1.142 * code/mcvs-main.lisp (usage): Updated to describe restore
931     command.
932    
933 kaz 1.139 2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
934    
935 kaz 1.141 * code/grab.lisp (mcvs-grab): If there are only added files
936     or only removed files, don't bother scanning any files,
937     since there are no moves to compute.
938    
939     2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
940    
941 kaz 1.140 * code/find-bind.lisp (vector-bind): New macro, binds symbols
942 kaz 1.139 to elements of a vector.
943     (find-bind-extract-vals): Rewrite using vectors. Fixes
944     a bug: the old version was not handling duplicate keys
945     properly.
946     (find-bind): Integrate with new find-bind-extract-vals.
947    
948 kaz 1.138 2002-07-11 Kaz Kylheku <kaz@ashi.footprints.net>
949    
950     Directory structure rearrangement; source files are moved
951     under code/ subdirectory. A documentation directory is added.
952    
953 kaz 1.133 2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
954    
955 kaz 1.137 * move.lisp (move-guts): When moving multiple sources to
956     a target directory, provide a restart to skip a bad source.
957    
958     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
959    
960 kaz 1.136 * seqfuncs.lisp (intersection-difference): Support a new
961     keyword parameter :squash-nil.
962    
963     * mapping.lisp (mapping-difference): Filter non-moved pairs
964     directly in intersection-difference call using :squash-nil,
965     eliminating the need to do a second remove-if pass.
966    
967     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
968    
969 kaz 1.135 * mapping.lisp (mapping-difference): Rewrite using
970     intersection-difference.
971    
972     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
973    
974 kaz 1.134 * grab.lisp (added-removed): Function removed.
975     (mcvs-grab): Use new intersection-difference function
976     instead of added-removed.
977    
978     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
979    
980 kaz 1.133 * seqfuncs.lisp (intersection-difference): New function.
981    
982 kaz 1.131 2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
983    
984 kaz 1.132 * grab.lisp (mcvs-grab): Upgraded to work with partial sandbox.
985     Extra parameter added to specify subdirectory. File analysis
986     is only done on visible files.
987     (mcvs-grab-wrapper): Take optional parameter to specify
988     subdirectory.
989    
990     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
991    
992     * mapping.lisp (mapping-update): If no-delete-removed is
993     true, nevertheless print the ``* removing...'' messages
994     to show that removal from the mapping is going on.
995    
996     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
997    
998     * remap.lisp (mcvs-remap): Remap only the visible sandbox,
999     and combine resulting map with the invisible portion.
1000    
1001     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
1002    
1003     * remove.lisp (mcvs-remove): Added path conversions to support
1004     partial sandboxes.
1005    
1006     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
1007    
1008     * generic.lisp (mcvs-generic): Added path conversions to support
1009     partial sandboxes.
1010    
1011     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
1012    
1013     * add.lisp (mcvs-add): Added path conversions to support
1014     partial sandboxes.
1015    
1016     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
1017    
1018 kaz 1.131 * grab.lisp (mcvs-grab): Bugfix: determination of common words
1019     was failing on small file sets because the min function was
1020     used instead of the max to compute the threshold.
1021 kaz 1.132
1022     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
1023    
1024     * move.lisp (source-check): Use real source path for checking
1025     against MCVS/ area.
1026     (mcvs-move): Ditto for destination path.
1027    
1028     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
1029    
1030     * mapping.lisp (mapping-update): Make sure only those files
1031     are processed which are visible in the sandbox. If a file
1032     is moved out of or into visibility, this is indicated in the
1033     diagnostic output.
1034    
1035     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
1036    
1037     * mapping.lisp (real-path-exists): Use path-prefix-equal, because
1038     that handles all the tricky cases.
1039     (abstract-to-real-path): Handle the case when abstract path
1040     is the same as the path prefix, with or without the trailing
1041     slash.
1042    
1043     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
1044    
1045     Start of experimental ``partial sandbox'' work.
1046    
1047     * mapping.lisp (*mcvs-displaced-name*, *mcvs-displaced*): New
1048     constants, hold name of administrative file MCVS/DISPLACED which stores
1049     the displaced path prefix.
1050     (*displaced-path-prefix*): New special variable, holds displaced
1051     path prefix read from MCVS/DISPLACED.
1052     (*displaced-path-length*): New special variable, holds length
1053     of string stored in *displaced-path-prefix*.
1054     (real-path-exists, abstract-to-real-path, real-to-abstract-path):
1055     New functions for mapping between actual sandbox path, and
1056     the abstract sandbox path stored in the mapping.
1057     (in-sandbox-root-dir): Macro modified to read *mcvs-displaced*
1058     administrative file, and set up the new special variables.
1059     (mapping-synchronize): Only operate on files that are present
1060     in the sandbox; i.e. that have real paths corresponding to their
1061     abstract paths. Convert to the real path when calling lower
1062     level file manipulation functions.
1063     (mapping-update): Likewise, but this conversion is not complete.
1064     (displaced-path-read, displaced-path-write): New functions for
1065     reading and writing MCVS/DISPLACED.
1066    
1067     * checkout.lisp (mcvs-checkout): One extra optional parameter.
1068     Specifies the subdirectory for executing a partial checkout.
1069     (mcvs-checkout-wrapper): Parse out optional parameter.
1070    
1071     * grab.lisp (mcvs-grab): For now, when calling mcvs-checkout,
1072     specify the new parameter as nil. Eventually, grab will work
1073     over partial checkouts.
1074    
1075     * move.lisp: Upgraded to work with partial sandboxes.
1076     (source-check): Convert source parameter to real path for
1077     existence check.
1078     (move-guts): Convert destination parameter to real path before
1079     invoking (stat ...) on it.
1080     (mcvs-move): Map all path arguments to abstract paths.
1081 kaz 1.131
1082 kaz 1.130 2002-07-04 Kaz Kylheku <kaz@ashi.footprints.net>
1083    
1084     * find-bind.lisp (find-bind-extract-vals): Rewrite for
1085     efficiency. No impact on Meta-CVS, just done for the sake of improving
1086     the quality of this highly reusable code. There is specialized
1087     code now depending on whether the input sequence is a list or
1088     a vector. A single pass is made over the sequence, with multiple
1089     passes over the search values. The sequence could be large,
1090     whereas the list of search values is typically going to be small.
1091     (find-bind): Modified to reflect slight interface change
1092     in find-bind-extract-vals.
1093    
1094 kaz 1.129 2002-07-03 Kaz Kylheku <kaz@ashi.footprints.net>
1095    
1096     * mcvs-main.lisp (*usage*): Describe --meta and --metaonly options.
1097    
1098 kaz 1.127 2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
1099    
1100 kaz 1.128 * purge.lisp (mcvs-purge): Factor out code for computing
1101     deleted files.
1102    
1103     * mapping.lisp (mapping-removed-files): New function, contains
1104     code factored from mcvs-purge.
1105    
1106     * restore.lisp: New file.
1107     (mcvs-restore, mcvs-restore-wrapper): New functions.
1108    
1109     2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
1110    
1111 kaz 1.127 * checkout.lisp (mcvs-checkout): Don't delete the MCVS directory
1112     of an existing checkout.
1113    
1114 kaz 1.125 2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
1115    
1116 kaz 1.126 Adding purge command.
1117    
1118     * mcvs-main.lisp (*purge-options*): New constant.
1119     (*mcvs-command-table*): New entry.
1120     (*usage*): Update.
1121    
1122     * purge.lisp: New file.
1123     (mcvs-purge, mcvs-purge-wrapper): New functions.
1124    
1125     2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
1126    
1127 kaz 1.125 Grab no longer synchronizes to recreate deleted files immediately
1128     before blowing them away.
1129    
1130     * grab.lisp (mcvs-grab): Specify :no-sync t when calling mcvs-remove.
1131    
1132     * remove.lisp (mcvs-remove): Support new no-sync keyword. This tells
1133     mcvs-remove that the files being removed from the mapping,
1134     don't exist in the sandbox. So it's not necessary to call
1135     mapping-synchronize, and mapping-update can be told via
1136     :no-delete-removed t not to try to remove deleted files.
1137    
1138     * mapping.lisp (mapping-update): New no-delete-removed keyword
1139     parameter.
1140    
1141 kaz 1.121 2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1142 kaz 1.120
1143 kaz 1.123 * create.lisp (mcvs-create): Take out vendor branch parameter,
1144     use "Created-by-Meta-CVS" as the vendor tag.
1145     (mcvs-create-wrapper): Take out vendor branch parameter.
1146    
1147     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1148    
1149 kaz 1.122 * generic.lisp (mcvs-tag-wrapper): This one needs to include
1150     meta files by default.
1151    
1152     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
1153    
1154 kaz 1.120 Moving toward sane, user-friendly handling of meta-files.
1155     Two new options are added --meta and --metaonly.
1156     All reporting commands---diff, log, annotate---default to
1157     not including the meta files. The update command remains special.
1158     It does not include meta files if given filename arguments.
1159     If invoked with no arguments, it does a global CVS up.
1160     The commit command defaults to including the meta files.
1161     The three options simply override default behavior.
1162    
1163 kaz 1.124 * options.lisp (*nometa-option*): Eliminated useless docstring.
1164 kaz 1.120 (*meta-option*): New variable.
1165     (*nometa-option*): New variable.
1166     (filter-global-options): Clean rewrite using find-bind.
1167    
1168     * generic.lisp (mcvs-generic): New keyword parameters
1169     default-include-meta-files, need-update-after. Implements new logic
1170     related to the new options. Performs (mapping-update) if
1171     need-update-after is true and metafiles were subject to cvs update.
1172     (mcvs-commit-wrapper): Calls mcvs-generic with
1173     :default-include-meta-files t.
1174    
1175     * update.lisp (mcvs-update): No longer overrides the *nometa-option*
1176     special variable. Passes :need-update-after t to mcvs-generic.
1177    
1178     * mcvs-main.lisp (*cvs-options*): New options entered into list.
1179    
1180 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1181 kaz 1.114
1182 kaz 1.119 * memoize.lisp (memoize-expander): Use ordinary hash for memoizing
1183     monadic functions.
1184    
1185 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1186 kaz 1.119
1187 kaz 1.117 Word comparisons are case-insensitive in mcvs grab now.
1188     Also, common words are determined and eliminated from the correlation.
1189     Common words are those that appear in at least 5 of the
1190     added or removed files, or 20% of them, whichever is greater.
1191    
1192     Noticed some unnecessary use of string-lessp on F-file names in
1193     mapping.lisp.
1194    
1195     * grab.lisp (read-word-hash): Use #'equalp test for case-insensitive
1196     string comparisons.
1197     (added-removed): Use string< instead of string-lessp for comparing
1198     paths.
1199     (determine-common-words, eliminate-common-words): New functions.
1200 kaz 1.118 (move-candidates): Acceptance threshold reduced to 30%, since
1201 kaz 1.117 elimination of common words reduces the similarity correlation.
1202     (mcvs-grab): Use string< instead of string-lessp when sorting paths.
1203     Do the common words computation.
1204    
1205     * mapping.lisp (mapping-dupe-check, mapping-write,
1206     mapping-difference): Use string< instead of string-lessp.
1207    
1208 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1209 kaz 1.117
1210 kaz 1.116 * memoize.lisp (factor-memo-labels): New function, rips apart
1211     functions generated by memoize-expander, in order to factor
1212     out the multi-hash defining let blocks.
1213     (memoized-labels): Interface corrected. Also, use new function to
1214     generate a labels block that allows for mutually recursive memoized
1215     functions which preserve hash contents across arbitrarily mutually
1216     recursive calls. This is done by enclosing the functions in one big
1217     let block which binds all the hashes.
1218    
1219 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1220 kaz 1.116
1221 kaz 1.115 * seqfuncs.lisp (lcs-list): Specify #'eq test for memoization
1222     parameters.
1223    
1224 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
1225 kaz 1.115
1226 kaz 1.114 Adding some cool code: a multi-hash datatype which implements
1227     multi-dimensional sparse arrays using a tree of hash tables,
1228     and a function memoizer which uses multi hash to index on
1229     function arguments.
1230    
1231     * multi-hash.lisp (multi-hash): New class.
1232     (initialize-instance): New method on multi-hash.
1233     (multi-hash-common-code): New macro.
1234     (get-multi-hash, set-multi-hash): New functions.
1235    
1236     * memoize.lisp (define-memoized-function,
1237     memoized-labels): New macros.
1238     (remove-key-aux-rest strip-lambda-list, extract-tests,
1239     remove-tests, memoize-expander): New functions.
1240    
1241     * seqfuncs.lisp (lcs-list): Function is now correctly
1242     memoized using define-memoized-function.
1243    
1244 kaz 1.113 2002-06-26 Kaz Kylheku <kaz@ashi.footprints.net>
1245    
1246     * grab.lisp (read-word-hash): Memory use optimizations: use smaller
1247     initial size for tokens; re-use the same token object when the
1248     hash already contains a duplicate.
1249     (correlate): Renamed to correlate-word-hashes.
1250     (correlate-paths): New function; computes a confidence-reducing
1251     factor based on the differences between two paths.
1252     (move-candidates): Use correlate-paths to lower the confidence
1253     for distant moves. This could help sort out ambiguities when
1254     projects contain very similar or duplicate files which are subject
1255     to parallel moves.
1256    
1257     * seqfuncs.lisp (lcs-list, lcs-vector,
1258     longest-common-subsequence): New functions.
1259    
1260 kaz 1.112 2002-06-25 Kaz Kylheku <kaz@ashi.footprints.net>
1261    
1262     New feature: grab command. Takes snapshot of code and imports
1263     it to a branch, trying to determine which of the added and
1264     removed files are actually moves.
1265    
1266     * grab.lisp: New file.
1267     (read-word-hash, word-hash-file, correlate, added-removed,
1268     move-candidates, mcvs-grab, mcvs-grab-wrapper): New functions.
1269    
1270     * mcvs-main.lisp (*grab-options*): New constant.
1271     (*mcvs-command-table*): New entry.
1272     (*usage*): New text.
1273    
1274     * checkout.lisp (mcvs-checkout): Write out MAP-LOCAL even
1275     if :no-generate t is specified.
1276    
1277 kaz 1.110 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
1278    
1279 kaz 1.111 * checkout.lisp (mcvs-checkout): New key parameter, no-generate.
1280     Tells the checkout function not to unpack the MCVS directory.
1281     This will be useful when mcvs-checkout is used as a subfunction
1282     of the new grab command. Failed CVS call is now turned into
1283     an error. The MCVS subdirectory is *always* deleted, even if the
1284     checkout did not create the checkout directory.
1285    
1286     2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
1287    
1288 kaz 1.110 * dirwalk.lisp (dirwalk-fi): Bugfix: top call was not
1289     passing down keyword parameters to recursive call.
1290    
1291 kaz 1.107 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1292    
1293 kaz 1.109 * posix.lisp (canonicalize-path): Use concatenate-string
1294     instead of format.
1295    
1296     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1297    
1298 kaz 1.108 * posix.lisp (parse-posix-namestring): Clean rewrite.
1299    
1300     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
1301    
1302 kaz 1.107 The ``import'' command is renamed to ``create''.
1303    
1304     * mcvs.main (*create-options*): Renamed to *import-options*.
1305     (*mcvs-command-table*): Updated.
1306     (*usage*): Updated.
1307    
1308     * import.lisp: File renamed to create.lisp.
1309     (mcvs-import): Renamed to mcvs-create; some arguments renamed.
1310     (mcvs-import-wrapper): Renamed to mcvs-create-wrapper.
1311    
1312     * README: Updated.
1313    
1314 kaz 1.104 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1315    
1316 kaz 1.106 * split.lisp (split-fields): Optimized to extract tokens directly
1317     from the input string using subseq rather than construct them
1318     character by character.
1319 kaz 1.105
1320     2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
1321    
1322 kaz 1.104 * find-bind.lisp (find-bind): Use #'values instead of #'(lambda (x) x).
1323    
1324 kaz 1.102 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
1325    
1326 kaz 1.103 * clisp-linux.sh (:clisp-old): Added to *features*
1327     for CLISP 2.28 or higher.
1328     (*null-pointer*): Only defined when :clisp-old is present.
1329     (pointer-null): Use new ffi:foreign-pointer-null if :clisp-old
1330     feature is not present.
1331    
1332     * install.sh: Don't do *null-pointer* workaround hack
1333     unless :clisp-old feature is present in the memory image.
1334    
1335     2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
1336    
1337 kaz 1.102 * types.lisp (types-make-cvs-adds): Serious bugfix. Forgot
1338     to strip MCVS/ prefix from those F- files which don't match
1339     any type entries. This caused cvs add to fail for unsuffixed
1340     files.
1341    
1342 kaz 1.101 2002-06-08 Kaz Kylheku <kaz@ashi.footprints.net>
1343    
1344     * types.lisp (types-to-import-wrapper-args): Don't use backquote
1345     template to generate a list that will be destructively catenated
1346     by mapcan.
1347    
1348 kaz 1.100 2002-05-22 Kaz Kylheku <kaz@ashi.footprints.net>
1349    
1350     * checkout.lisp (mcvs-checkout): If a checkout directory is
1351     created and then the CVS checkout fails, the directory is
1352     then removed.
1353    
1354 kaz 1.97 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1355    
1356 kaz 1.100 * find-bind.lisp (find-bind-extract-vals, find-bind): Process default
1357 kaz 1.99 values in find-bind-extract-vals, instead of in the expansion of
1358     find-bind, thereby reducing some macro bloat.
1359    
1360     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1361    
1362 kaz 1.98 * remap.lisp (mcvs-remap): Loads MAP as well as MAP-LOCAL.
1363     If it the mappings differ, an error is signaled. The user can choose
1364     to ignore the error, in which case MAP is clobbered.
1365    
1366     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
1367    
1368 kaz 1.97 Adding mcvs remap command.
1369    
1370     * dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
1371     behavior is now preorder (visit directory before its entries).
1372     A keyword is provided to select the old postorder behavior.
1373     A catch is provided in dirwalk-fi that allows the caller to
1374     skip processing the currently traversed directory. The for-each-*
1375     macros provide a local function called (skip) to do this.
1376     (delete-recursive): This function depends on postorder behavior
1377     in for-each-file-info, so it explicitly selects it now.
1378    
1379     * mcvs.lisp (*remap-options*): New constant.
1380     (*mcvs-command-table*): Add entry for new function.
1381     (*usage*): Describes new function.
1382    
1383     * remap.lisp: New file.
1384     (mcvs-remap, mcvs-remap-wrapper): New functions.
1385    
1386 kaz 1.96 2002-05-15 Kaz Kylheku <kaz@ashi.footprints.net>
1387    
1388     * sync.lisp (synchronize-files): Signal an error when the two files
1389     to be synchronized have the same time stamp. Provide two restarts
1390     for doing the synchronization either way.
1391    
1392 kaz 1.95 2002-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
1393    
1394     * mapping.lisp (in-sandbox-root-dir): Fix symbol macro
1395     sandbox-down-path; it was referring to the (quote #:DOWNPATH-NNN)
1396     rather than #:DOWNPATH-NNN.
1397    
1398 kaz 1.93 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
1399    
1400 kaz 1.94 * import.lisp (mcvs-import): Specify -I ! argument to cvs import
1401     so that it does not ignore any F- files.
1402    
1403     2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
1404    
1405 kaz 1.93 * mapping.lisp (mapping-update): Provide restart that allows
1406     user to ignore file removal error.
1407    
1408 kaz 1.92 2002-04-19 Kaz Kylheku <kaz@ashi.footprints.net>
1409    
1410     Porting to CMUCL.
1411    
1412     * system.lisp: Conditionally load new module cmucl-unix.
1413    
1414     * mapping.lisp (mapping-dupe-check, mapping-write,
1415     mapping-difference): Fixes related to sort function; we were
1416     relying on CLISP's preservation of the cons cell order.
1417    
1418     * cmucl-unix.lisp: New file.
1419    
1420 kaz 1.89 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
1421    
1422 kaz 1.90 * checkout.lisp (mcvs-checkout): Allow -d to specify current
1423     directory as the checkout directory. Do not complain if the
1424 kaz 1.91 target directory exists, just try to use it anyway,
1425     unless it is the root of an existing Meta-CVS sandbox. Use
1426 kaz 1.90 the mapping-update function to update the sandbox.
1427     These changes allow a Meta-CVS sandbox to blend with an existing
1428     directory structure, a useful feature.
1429    
1430     2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
1431    
1432 kaz 1.89 * generic.lisp (mcvs-generic): Change how empty file argument list
1433     is handled. Rather than rewriting it to '(".") we do a proper
1434     map-prefix-lookup. Synchronizing and invoking CVS is elided
1435     if the resulting list of files to process is empty and the --nometa
1436     option is specified.
1437    
1438 kaz 1.87 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
1439    
1440 kaz 1.88 * branch.lisp (parse-sticky): New function.
1441     (read-cvs-entries): New function.
1442     (same-tag-check): New function.
1443     (what-tag-are-we-on): Renamed to what-are-we-sticky-to. Calls
1444     parse-sticky to return structured tag.
1445     (mcvs-merge): Make use of structured tags.
1446     (mcvs-list-branches): Make use of structured tags. Indicate
1447     when sandbox is inconsistently sticky.
1448    
1449     2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
1450    
1451 kaz 1.87 * remove.lisp (mcvs-remove): Corrected careless bracketing
1452     introduced on 2002-03-15 that rendered this function ineffective.
1453    
1454 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1455 kaz 1.82
1456 kaz 1.86 Absolute paths resolved against sandbox root.
1457    
1458     * posix.lisp (path-absolute-p): New function. Predicate to
1459     test whether a path is absolute.
1460    
1461     * mapping.lisp (in-sandbox-root-dir): sandbox-translate-paths
1462     function detects absolute path, and treats it as relative to
1463     sandbox root.
1464    
1465     2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1466    
1467 kaz 1.84 New switch command added, plus sticky tag related
1468     bugfixes and enhancement of mcvs list-branches.
1469    
1470     mcvs-main.lisp (*switch-options*): New constant.
1471     (*mcvs-command-table*): New entries.
1472     (*usage*): New help text.
1473    
1474     branch.lisp (what-branch-are-we-on): Function renamed to
1475     what-tag-are-we-on. Tests the first letter which is T or N; if
1476     it is not T, then it's not a branch tag. If there is a tag,
1477     it returns two values; the second value is NIL if it is not
1478     a branch tag, T otherwise.
1479     (mcvs-merge): Modified to use what-tag-are-we-on.
1480     (mcvs-list-branches): Show additional information about the
1481     current sticky tag.
1482     (mcvs-merge-wrapper): Fix wrong parenthesization introduced
1483     earlier today.
1484     (mcvs-switch-wrapper): New function.
1485    
1486 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1487 kaz 1.84
1488 kaz 1.83 * branch.lisp (branch-tag-check): Check reserved symbol HEAD.
1489    
1490 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
1491 kaz 1.83
1492 kaz 1.82 New command to list branches.
1493    
1494     * mcvs-main.lisp (*list-branches-options*): New constant.
1495     (*mcvs-command-table*): Entries for new command added.
1496     (*usage*): Help text added.
1497    
1498     * branch.lisp (mcvs-list-branches,
1499     mcvs-list-branches-wrapper): New functions.
1500    
1501 kaz 1.80 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
1502    
1503 kaz 1.81 * branch.lisp (where-is-the-repository): New function.
1504     (cvs-make-or-advance-tag): Pass down CVSROOT to cvs rtag using
1505     the -d global option.
1506    
1507     2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
1508    
1509 kaz 1.80 * branch.lisp (what-module-is-this): New function.
1510     (cvs-make-or-advance-tag): Use rtag rather than tag for tagging
1511     the branch being merged. This fixes the failure to merge added files.
1512     (mcvs-merge): Use mcvs-update rather than directly using cvs.
1513    
1514 kaz 1.78 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
1515    
1516 kaz 1.79 Implemented remerge command; redo a merge without moving
1517     around any tags.
1518    
1519     * branch.lisp (mcvs-merge): New keyword parameter remerge-p
1520     to indicate that a re-merge should be done, plus logic for
1521     doing so.
1522     (mcvs-remerge-wrapper): New function.
1523    
1524     * mcvs-main.lisp (*remerge-options*): New constant.
1525     (*mcvs-command-table*): New entry for remerge command.
1526    
1527     2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
1528    
1529 kaz 1.78 First cut at implementing more automated branching and merging.
1530    
1531     * mcvs-main.lisp (*branch-options*, *merge-options*): New constants.
1532     (*mcvs-command-table*): New entries for branch and merge commands.
1533     (*usage*): New help text.
1534    
1535     * branch.lisp: New file.
1536     (*branch-char*): New constant.
1537     (tags-from-cvs-log, what-branch-are-we-on, branch-tag-check,
1538     mcvs-branch, mcvs-branch-wrapper, cvs-make-or-advance-tag, mcvs-merge,
1539     mcvs-merge-wrapper): New functions.
1540    
1541 kaz 1.87 2002-04-01 Kaz Kylheku <kaz@ashi.footprints.net>
1542 kaz 1.77
1543     checkout.lisp (mcvs-checkout): Emit informational message
1544     when checkout completes, because it's not obvious what directory
1545     was just created.
1546    
1547 kaz 1.76 2002-02-38 Kaz Kylheku <kaz@ashi.footprints.net>
1548    
1549     Error checking added to mcvs move: verifies that all
1550     sources exist and are known to Meta-CVS.
1551    
1552     * move.lisp (source-check): New function.
1553     (simple-rename, simple-move-to-dir): Use new function.
1554    
1555 kaz 1.74 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
1556    
1557 kaz 1.75 * rcsparse.lisp: File renamed to rcs-utils.lisp.
1558     (rcs-delta): New slot, delta-hash.
1559     (rcs-make-delta-hash): New function.
1560     (rcs-parse): Calls rcs-make-delta-hash to set up new slot.
1561    
1562     * convert.lisp: require changed to match file rename.
1563    
1564     2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
1565    
1566 kaz 1.74 Some new macros for slot access.
1567    
1568     * slot-refs.lisp: New file.
1569     (with-slot-refs): New macro.
1570     (with-multi-slot-refs): New macro.
1571    
1572     * rcsparse.lisp (rcs-parse-newphrases, rcs-parse-admin,
1573     rcs-parse-delta): Replace uses
1574     of symbol-macrolet by with-slot-refs and with-multi-slot-refs.
1575    
1576 kaz 1.73 2002-03-19 Kaz Kylheku <kaz@ashi.footprints.net>
1577    
1578     Adding delta parsing to RCS parser.
1579    
1580     * rcsparse.lisp (rcs-delta): New struct.
1581     (rcs-file): New slot, deltas.
1582     (rcs-parse-newphrases): New function, factors out parsing of
1583     ``newphrases'' syntactic element out of rcs-parse-admin.
1584     (rcs-parse-admin): Use rcs-parse-newphrases.
1585     (rcs-parse-delta, rcs-parse-deltas): New functions.
1586     (rcs-parse): Parse both admin and deltas; store deltas in new
1587     rcs-file slot.
1588    
1589 kaz 1.72 2002-03-18 Kaz Kylheku <kaz@ashi.footprints.net>
1590    
1591     * posix.lisp (parse-posix-namestring): New function. Converts POSIX
1592     path to CL Path object.
1593 kaz 1.73
1594     * rcsparse.lisp: New file, implements RCS version file parser.
1595 kaz 1.72 (rcs-admin, rcs-file, rcs-token, rcs-token-stream): New structs.
1596     (rcs-peek-token, rcs-read-token): New generic functions.
1597     (rcs-extract-id-sym-or-num, rcs-extract-string,
1598     rcs-match-optional, rcs-match-token, rcs-parse, rcs-parse-admin,
1599     rcs-special-p): New functions.
1600    
1601     * convert.lisp (classify-tags): Work with association list rather
1602     than raw strings.
1603     (mcvs-convert): Use rcs-parse to extract tags. Fix call to
1604     mapping-generate name. Use parse-posix-namestring when opening
1605     version file. Generate informative chatter.
1606    
1607 kaz 1.69 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1608    
1609 kaz 1.71 * remove.lisp (mcvs-remove): More detailed error checking.
1610     Checks for remove attempts against MCVS/ area, removes of local
1611     files not versioned under Meta-CVS, and nonexistent files.
1612    
1613     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1614    
1615 kaz 1.70 * add.lisp (mcvs-add): Error message changed to tell user to use
1616     -R to add directory.
1617    
1618     * remove.lisp (mcvs-remove): New generalized boolean parameter
1619     indicates to do a recursive remove. This is controlled by the
1620     -R option which already exists. Behavior changed to not act
1621     on directories unless recursion is explicitly requested.
1622     (mcvs-remove-wrapper): Extract "R" option, pass down new boolean
1623     to mcvs-remove.
1624    
1625     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
1626    
1627 kaz 1.69 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
1628    
1629 kaz 1.66 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1630    
1631 kaz 1.68 * checkout.lisp (mcvs-checkout): Bugfix: must use checkout-dir, not
1632     module, when testing whether directory exists or was created properly.
1633    
1634     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1635    
1636 kaz 1.67 Update takes file arguments now.
1637    
1638     * update.lisp (mcvs-update): If filename arguments are given, then
1639     just call mcvs-generic to do the work, but suppress the operation on
1640     meta files. If no filename arguments are given, then update everything.
1641     If the -p option is present, no synchronization is needed, before or
1642     after.
1643     (mcvs-update-wrapper): Pass command arguments down to mcvs-update.
1644    
1645     * mcvs-main.lisp (*update-options*): Add "p" option.
1646    
1647     * generic.lisp (mcvs-generic): New keyword parameter need-sync-after,
1648     a generalized boolean which can tell the function to do a
1649     mapping-synchronize after executing the CVS command.
1650    
1651     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
1652    
1653 kaz 1.66 * filt.lisp (filt-select-map): Do allow a date and revision to be
1654     specified; the revision could be a branch tag.
1655    
1656 kaz 1.62 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1657    
1658 kaz 1.65 * mapping.lisp (malformed-map): New function.
1659     (mapping-dupe-check): Perform extra error checks when reading
1660     mapping, and turn them into a condition with a ``nice'' error message.
1661    
1662     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1663    
1664 kaz 1.64 * mcvs-filt.lisp (filt-select-map): Handle error gracefully
1665     when reading map. It's easy to give CVS is a nonexistent tag.
1666    
1667     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1668    
1669 kaz 1.63 The filt command takes arguments to select alternate revision
1670     of map.
1671    
1672     * mcvs-main.lisp (*filt-options*): New constant.
1673     (*mcvs-command-table*): Updated with new options.
1674     (mcvs-debug-shell): Restart name changed during debugging of filt
1675     changes.
1676    
1677     * filt.lisp (filt-select-map): New function. Loads either the
1678     local mapping, or retrieves an alternate mapping from CVS based
1679     on command line options.
1680     (mcvs-filt): Use filt-select-map rather than mapping-read.
1681    
1682     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1683    
1684 kaz 1.62 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
1685     metafiles.
1686    
1687 kaz 1.53 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1688    
1689 kaz 1.61 * import.lisp (mcvs-import): Create a .cvsignore file for ignoring
1690     MAP-LOCAL.
1691    
1692     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1693    
1694 kaz 1.60 Fix trailing slash bug in mcvs mv.
1695    
1696     * move.lisp (simple-move-to-dir): Canonicalize path after catenating
1697     destination and file base name. This nukes a double slash if
1698     we move to a name with a trailing slash.
1699     (move-guts): Treat a destination name that has a trailing slash
1700     as a directory, unless it exists already as a non-directory.
1701    
1702     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1703    
1704 kaz 1.59 * mcvs-main.lisp (*cvs-options*): Added "error-terminate" and
1705     "error-continue".
1706     (*usage*): Update and reformat help text.
1707     (mcvs-execute): Process "error-terminate" and "error-continue"
1708     options.
1709    
1710     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1711    
1712 kaz 1.58 * mapping.lisp (mapping-update): Messages related to moving,
1713     adding or removing files promoted to terse level, so only -Q
1714     can suppress them.
1715    
1716     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1717    
1718 kaz 1.57 * update.lisp (mcvs-update): Changing level of chatter messages.
1719     * move.lisp (mcvs-move): Likewise.
1720     * add.lisp (mcvs-add): Likewise.
1721     * remove.lisp (mcvs-remove): Likewise.
1722     * checkout.lisp (mcvs-checkout): Likewise.
1723     * generic.lisp (mcvs-generic): Likewise.
1724     * import.lisp (mcvs-import): Likewise.
1725     * mapping.lisp (mapping-dupe-check): Likewise.
1726     (mapping-update): Likewise.
1727    
1728     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1729    
1730 kaz 1.56 Support for -q, -Q and -e global options.
1731    
1732     * posix.lisp (*editor*): New special variable.
1733     (edit-file): Check *editor* variable; if not nil, use it.
1734    
1735     * mcvs-main.lisp (*usage*): Update help text.
1736     (mcvs-execute): Set *mcvs-chatter-level* according to -q or -Q.
1737     Set *editor* if -e is specified.
1738    
1739     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1740    
1741 kaz 1.55 * mcvs-main.lisp (*cvs-options*): Remove obsolete "a".
1742     (*cvs-options-arg*): Add missing "r".
1743     (*usage*): New constant, help text.
1744     (mcvs-execute): Process help and version command line options.
1745    
1746     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1747    
1748 kaz 1.54 * options.lisp (parse-opt): Make error messages more consistent.
1749    
1750     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1751    
1752 kaz 1.53 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
1753     the user might not care about the remaining unmatched list.
1754    
1755 kaz 1.49 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1756    
1757 kaz 1.52 * find-bind.lisp (find-bind): Documentation string change. Clarify
1758     that default values are substituted whenever a variable would
1759     otherwise be bound to the value NIL, even through an explicit
1760     match.
1761    
1762     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1763    
1764 kaz 1.51 Sane filtering of -d option in checkout.
1765    
1766     * find-bind.lisp (find-bind): Variable bindings can specify
1767     a third element, which provides a default value for any variables
1768     that turn out NIL.
1769    
1770     * checkout.lisp (mcvs-checkout): Filter out the -d dir option,
1771     and use it to override the name of the checkout directory,
1772     the way CVS checkout does it.
1773    
1774     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1775    
1776 kaz 1.50 Bugfix: mcvs add was not processing existing :ignore's in MCVS/TYPES.
1777    
1778     * add.lisp (mcvs-add): Use old types as well as new types
1779     to filter for ignores.
1780    
1781     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1782    
1783 kaz 1.49 * find-bind.lisp: New file.
1784     (find-bind-extract-vals): New function.
1785     (find-bind): New macro.
1786    
1787     * error.lisp (restart-destructure): Macro removed.
1788     (mcvs-error-handler): Uses generic find-bind instead of
1789     restart-destructure.
1790    
1791 kaz 1.43 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1792    
1793 kaz 1.48 * filt.lisp (mcvs-filt): Bugfix: do not stop processing line
1794     if F- file name is not found in hash table.
1795    
1796     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1797    
1798 kaz 1.47 Commit is handled through mcvs-generic, so it can take
1799     filename arguments, and honor --nometa.
1800    
1801     * commit.lisp: File removed.
1802     (mcvs-commit): Function removed.
1803     (mcvs-commit-wrapper): Moved to generic.lisp.
1804    
1805     * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp,
1806     changed to invoke mcvs-generic.
1807     (mcvs-generic): Only add TYPES file to list if it actually
1808     exists.
1809    
1810     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1811    
1812 kaz 1.46 New --nometa command line option.
1813    
1814     * mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
1815     (mcvs-execute): Filter global options to recognize
1816     Meta-CVS-specific ones.
1817    
1818     * options.lisp (*nometa-option*): New special variable.
1819     (filter-global-options): New function.
1820    
1821     * generic.lisp (mcvs-generic): Honor *nometa-option* special
1822     variable.
1823    
1824     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1825    
1826 kaz 1.45 * generic.lisp (mcvs-generic): Make sure TYPES file is
1827     included in list of files.
1828    
1829     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1830    
1831 kaz 1.44 * mcvs-main.lisp (*add-options*): Support -R option for add.
1832     Thus, recursive add works now.
1833    
1834     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1835    
1836 kaz 1.43 Fix mcvs filt so it handles suffixed F- files properly.
1837    
1838     * filt.lisp (make-filt-hash): New function.
1839     (mcvs-filt): After matching hex digits, also check for
1840     a suffix match.
1841    
1842 kaz 1.40 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1843    
1844 kaz 1.42 Support for file type keyword treatment under mcvs add.
1845    
1846     * add.lisp (mcvs-add): Restructured to build up list of new file
1847     suffixes, allow the user to edit the file which determines how
1848     they are treated, filter out ignored files and pass -k options
1849     to multiple cvs adds.
1850    
1851     * types.lisp (*mcvs-new-types*): New constant.
1852     (*types-comments*): Constant moved here from import.lisp.
1853     (types-remove-ignores): New function. Code factored out from
1854     mcvs-import.
1855     (types-let-user-edit): Likewise.
1856     (types-make-cvs-adds): New function.
1857    
1858     * import.lisp (*types-comments*): Constant removed. Moved to
1859     types.lisp
1860     (mcvs-import): Code factored out to new functions in types.lisp, which
1861     are also used by add.lisp.
1862    
1863     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1864    
1865 kaz 1.41 * print.lisp: New file.
1866     (print-assoc-list): New function.
1867     * types.lisp: Use print-assoc-list to nicely print the types.
1868     * import.lisp (mcvs-import): Don't bother getting user to
1869     edit the types if the type list is empty. In fact, don't
1870     even create the file.
1871    
1872     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1873    
1874     * add.lisp (mcvs-add): Use new form of mapping-generate-name.
1875    
1876     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1877    
1878 kaz 1.40 * import.lisp (mcvs-import): Fix broken restart for re-editing
1879     the types file.
1880     (*types-comments*): Drastically shorten the help text.
1881    
1882 kaz 1.38 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1883    
1884 kaz 1.39 Support for filetypes in import.
1885    
1886     * posix.lisp (suffix): Separator character parameter is optional;
1887     multiple occurences of character lead to one big suffix like
1888     ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but
1889     a hidden file like ".exrc".
1890     (edit-file): New function, brings up text editor for specified file.
1891    
1892     * clisp-linux.lisp (env-lookup): New function for environment
1893     variable lookup.
1894    
1895     * types.lisp: New source file.
1896     (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
1897     (types-read, types-write, types-sanity-check,
1898     types-to-import-wrapper-args): New functions.
1899    
1900     * import.lisp (*types-comments*): New constant.
1901     (mcvs-import): Restructured to build up list of file suffixes,
1902     allow the user to edit the file which determines how they
1903     are treated, filter out ignored files and pass -W options to cvs import
1904     to handle the rest. Failed cvs import is turned into restartable
1905     condition.
1906    
1907     * mapping.lisp (mapping-generate-name): Takes a suffix parameter.
1908     The F-files now carry a suffix obtained from the original file,
1909     because I have concluded that this was the only reasonable way
1910     to integrate with CVS.
1911    
1912     2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1913    
1914 kaz 1.38 * add.lisp (mcvs-add): Last change completely broke add due
1915     to not breaking out of the retry loop.
1916    
1917 kaz 1.36 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1918    
1919 kaz 1.37 * move.lisp (mcvs-move): If the mapping-update operation returns
1920     nil, or terminates by a non-local jump, restore the filemap.
1921     * mapping.lisp (mapping-update): When returning normally,
1922     return t. When returning after doing a rollback, return nil.
1923    
1924     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1925    
1926 kaz 1.36 * error.lisp (mcvs-error-handler): Bugfix. We were closing over
1927     a binding of the iteration variable of a dolist, which has only
1928     one binding over the entire loop.
1929    
1930     * mapping.lisp (mapping-update): Gathers up info all local
1931     clobbered files, and then throw the error. Provides restart
1932     which allows user to print the list of clobbered files, and
1933     a restart which allows the user to have those files clobbered.
1934    
1935     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1936    
1937     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for last bugfix.
1938    
1939 kaz 1.35 2002-02-11 Kaz Kylheku <kaz@ashi.footprints.net>
1940    
1941     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for bad
1942     destructuring-bind if there are no arguments.
1943    
1944 kaz 1.30 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1945    
1946 kaz 1.34 * mapping.lisp (mapping-difference): Reformatted documentation string.
1947     (mapping-update): Implemented a continue restart which rolls back
1948     the changes done to the local filesystem.
1949    
1950     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1951    
1952 kaz 1.31 * error.lisp (mcvs-error-handler): Rearranging the menu,
1953     so "T" is clumped with the main options, and any special restarts
1954 kaz 1.32 are clearly separated. Changed wording.
1955 kaz 1.31
1956     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1957    
1958 kaz 1.30 * update.lisp (mcvs-update): Re-print the "Invoking CVS" chatter
1959     if the user re-tries the error.
1960    
1961     * add.lisp (mcvs-add): CVS failure is now a restartable error;
1962 kaz 1.33 user can decide whether to roll back the effects or retry the
1963     CVS add, or terminate to keep the effects anyway despite
1964     the failed add.
1965 kaz 1.30
1966     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1967    
1968     * install.sh: Stop the script if there are compilation errors.
1969    
1970 kaz 1.24 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1971    
1972 kaz 1.29 * error.lisp (*mcvs-errors-occured-p*): New special variable.
1973     (mcvs-error-handler): Set *mcvs-errors-occured-p* to T.
1974     * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into
1975     account in computing termination status.
1976    
1977     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1978    
1979 kaz 1.28 * update.lisp: Remove spurious newlines from error messages.
1980     * add.lisp: Likewise.
1981     * options.lisp: Likewise.
1982     * mapping.lisp: Likewise.
1983    
1984     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1985    
1986 kaz 1.27 Adding some restarts around cvs update.
1987    
1988     * posix.lisp (execute-command-xargs): Bail with nil return
1989     value if any command line fails.
1990    
1991     * update.lisp (mcvs-update): Tests return value of execute-program
1992     and signal condition if it's nil. Provides a continue restart
1993     as well as a retry restart to try the command again.
1994    
1995     * error.lisp (mcvs-error-handler): Show retry restarts as
1996     a special menu item "R".
1997    
1998     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1999    
2000 kaz 1.26 Added a much improved error handling routine in anticipation
2001     of better use of restarts.
2002    
2003     * error.lisp: New file
2004     (restart-destructure): New macro.
2005     (*mcvs-error-treatment*): Special variable, moved here from
2006     mcvs-main.
2007     (mcvs-error-handler): New function.
2008    
2009     * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
2010     (mcvs-execute): Bind error to new mcvs-error-handler instad
2011     of mcvs-top-error-handler.
2012    
2013     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
2014    
2015 kaz 1.25 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
2016     for status command added.
2017    
2018     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
2019    
2020 kaz 1.24 Hooking conversion tool into command structure.
2021    
2022     * mcvs-main.lisp (*convert-options*): New constant.
2023     (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
2024     * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
2025     (mcvs-convert-wrapper): New function.
2026    
2027 kaz 1.22 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
2028    
2029 kaz 1.23 Beginning work on repository conversion utility.
2030    
2031     * convert.lisp: New file. Contains conversion utility
2032     to make an Meta-CVS repository from an ordinary CVS repository,
2033     while preserving all history, tags and branches.
2034     (remove-attic-component, classify-tags, read-tags,
2035     mcvs-convert): New functions.
2036    
2037     * posix.lisp (suffix): New function. Computes suffix of file.
2038     (execute-program-xargs): New optional parameter, for specifying
2039     fixed part added at the end of each generated command line.
2040    
2041     * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
2042     (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
2043     (mapping-generate-name): New key parameter no-dir for not adding
2044     the directory prefix.
2045    
2046     2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
2047    
2048 kaz 1.22 * checkout.lisp (mcvs-checkout): Ensure local mapping is
2049     sorted when written out, for easier comparisons.
2050    
2051 kaz 1.21 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
2052    
2053     * sync.lisp (synchronize-files): Return :dir symbol when either
2054     argument is a directory.
2055     * mapping.lisp (mapping-synchronize): Chatter output messages
2056     are shorter. Handles :dir return value from synchronize-files.
2057     (mapping-update): New sanity checks for moved and added
2058     files, to avoid clobbering local files. Removed redundant
2059     call to ensure-directories-exit in move logic, because
2060     synchronize-files will do it anyway. Chatter messages reordered
2061     to occur before their corresponding action is done.
2062    
2063     2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
2064    
2065     Improve error handling, and builtin ``debug shell''.
2066    
2067     * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
2068     can have new domain value, namely :decline.
2069     (mcvs-top-error-handler): Print error message when terminating
2070     non-restartable error. Handle new :decline treatment by
2071     simply returning.
2072     (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
2073     so that errors are caught by debugger.
2074    
2075 kaz 1.20 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
2076    
2077     * mapping.lisp (mapping-sort): Removed function.
2078     (mapping-write): Sort written map by F- file names,
2079     not by path names. This is far better for merging, because
2080     files stay in the same place when they are renamed.
2081    
2082 kaz 1.17 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
2083    
2084 kaz 1.19 Added status, log and annotate.
2085    
2086     * mcvs-main.lisp: (*log-options*, *status-options*,
2087     *annotate-options*): New constants.
2088     (*mcvs-command-table*): Add new entries.
2089    
2090     * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
2091     mcvs-annotate-wrapper): New functions.
2092    
2093     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
2094    
2095 kaz 1.18 Added tag command.
2096    
2097     * diff.lisp: File renamed to generic.lisp.
2098     (mcvs-diff): Function renamed to mcvs-generic.
2099    
2100     * generic.lisp (mcvs-generic): Function no longer dedicated to
2101     diffing only; takes CVS command to execute as an argument,
2102     also takes arguments and files as separate lists.
2103     (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
2104     (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
2105     tag command.
2106    
2107     * mcvs-main.lisp (*tag-options*): New constant.
2108     (*mcvs-command-table*): New entry for tag command.
2109    
2110     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
2111    
2112 kaz 1.17 Added workaround for operating system argument passing limitations,
2113     resembling the Unix xargs utility. Also, trimmed some fat
2114     from the basename function.
2115    
2116     * clisp-linux.lisp: (*argument-limit*): New constant added.
2117     (arglist-to-command-string): Function removed.
2118     (execute-program): Function removed.
2119     (shell-interpreter): New function, wrapper for CLISP's shell
2120     function, turns exit status into T (success) or NIL (failure).
2121    
2122     * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
2123     of execute-program.
2124    
2125     * posix.lisp (basename): Does not canonicalize path name. This
2126     turns out to be an unnecessary performance hit in some cases.
2127     (arglist-to-command-string): New function. Similar to what was
2128     removed from clisp-linux, but this one properly escapes all
2129     shell metacharacters.
2130     (execute-program): New function, calls shell-interpreter.
2131     (execute-program-xargs): New function. Takes two argument lists.
2132     Forms one or more command lines by combining the first argument list
2133     with one or more pieces of the second argument list, and
2134     executes each command. The length of the pieces is determined
2135     by the argument passing limit.
2136    
2137     * dirwalk.lisp (ensure-directories-gone): Add use of
2138     canonicalize-path because basename doesn't do it.
2139    
2140 kaz 1.12 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2141    
2142 kaz 1.16 Algorithmic efficiency improvements. No longer using
2143     abstract set operations to update file structure or find
2144     duplicates in the maps. Could still streamline the sorting.
2145    
2146     * mapping.lisp (mapping-sort): Express more succinctly using key.
2147     (mapping-dupe-check): Rewrite using loop over sorted lists.
2148     (mapping-difference): New function for computing mapping change.
2149     (mapping-update): Modify to use mapping-difference.
2150    
2151     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2152    
2153 kaz 1.15 * mapping.lisp (mapping-update): When moving files, ensure
2154     that the target is unlinked if it exists.
2155    
2156     * move.lisp (simple-rename): No longer do target unlinking
2157     here. Also bugfix: it wasn't handling renames of directories
2158     containing just one file.
2159    
2160     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2161    
2162 kaz 1.13 * mapping.lisp (mapping-dupe-check): New function for
2163     detecting duplicate objects or paths in a mapping.
2164     (mapping-sane-p): Function removed.
2165     (mapping-read): Use mapping-dupe-check to verify a map
2166     when asked by the sanity-check keyword.
2167     (mapping-update): Specify sanity check when reading MCVS/MAP.
2168    
2169 kaz 1.14 * checkout.lisp (mcvs-checkout): Checkout also performs
2170     sanity check.
2171    
2172 kaz 1.13 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
2173    
2174 kaz 1.12 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
2175     to establish proper termination status.
2176    
2177 kaz 1.8 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2178    
2179 kaz 1.10 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
2180     properly based on knowledge of each command's set of options.
2181     (parse-args): Function removed.
2182    
2183 kaz 1.11 * options.lisp (parse-opt): Correctly process long options with
2184     arguments. Argument is part of the string, separated by = symbol.
2185    
2186 kaz 1.10 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2187    
2188 kaz 1.9 * options.lisp (parse-opt): When multiple options characters are
2189     bunched up into one argument, and one of them other than the
2190     last one takes an argument, then the remaining ones are
2191     considered to constitute a string which is an argument to that
2192     option. For instance -y32 means -y 32, not -y -3 -2, assuming
2193     that y is an option that requires an argument.
2194    
2195     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2196    
2197     Top level handler terminates by non-local exit back to
2198     mcvs function, rather than by calling (exit).
2199    
2200     * mcvs-main.lisp (mcvs-top-error-handler): Restructured
2201     to call (throw 'mcvs-exit t).
2202     (mcvs-execute): Ensure that NIL is returned by normal exit.
2203     (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
2204     accordingly.
2205    
2206    
2207     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
2208    
2209 kaz 1.8 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
2210    
2211     * mapping.lisp (filemap-generate-name, filemap-sort,
2212     filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
2213     filemap-prefix-matches, filemap-object-lookup,
2214     filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
2215     filemap-rename-files, filemap-sane-p): Old names removed.
2216     (mapping-generate-name, mapping-sort,
2217     mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
2218     mapping-prefix-matches, mapping-object-lookup,
2219     mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
2220     mapping-rename-files, mapping-sane-p): New names created.
2221     (mapping-read, mapping-write, mapping-synchronize,
2222     mapping-update): Edit calls to renamed functions.
2223     * add.lisp (mcvs-add): Likewise.
2224     * diff.lisp (mcvs-diff): Likewise.
2225     * filt.lisp (mcvs-filt): Likewise.
2226     * import.lisp (mcvs-import): Likewise.
2227     * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
2228     * remove.lisp (mcvs-remove): Likewise.
2229    
2230 kaz 1.6 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2231    
2232 kaz 1.7 Factored out repeated code for reading and writing of the MAP and
2233     MAP-LOCAL files.
2234    
2235     * mapping.lisp (mapping-read, mapping-write): New functions.
2236     (mapping-synchronize, mapping-update): Use new functions.
2237     * move.lisp (mcvs-move): Likewise.
2238     * filt.lisp (mcvs-filt): Likewise.
2239     * add.lisp (mcvs-add): Likewise.
2240     * remove.lisp (mcvs-remove): Likewise.
2241     * checkout.lisp (mcvs-checkout): Likewise.
2242     * diff.lisp (mcvs-diff): Likewise.
2243     * import.lisp (mcvs-import): Likewise.
2244    
2245     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2246    
2247 kaz 1.6 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
2248     hard coding "MCVS" string.
2249    
2250     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
2251    
2252     * MCVS-PAPER: Renamed to Meta-CVS-PAPER
2253    
2254     * README: Change all references to MCVS to Meta-CVS, the
2255     new official name of the program.
2256     * add.lisp: Likewise
2257     * chatter.lisp: Likewise
2258     * checkout.lisp: Likewise
2259     * clisp-linux.lisp: Likewise
2260     * commit.lisp: Likewise
2261     * diff.lisp: Likewise
2262     * dirwalk.lisp: Likewise
2263     * filt.lisp: Likewise
2264     * import.lisp: Likewise
2265     * INSTALL: Likewise
2266     * mapping.lisp: Likewise
2267     * mcvs-main.lisp: Likewise
2268     * Meta-CVS-PAPER: Likewise
2269     * move.lisp: Likewise
2270     * options.lisp: Likewise
2271     * posix.lisp: Likewise
2272     * RELEASE-NOTES: Likewise
2273     * remove.lisp: Likewise
2274     * restart.lisp: Likewise
2275     * seqfuncs.lisp: Likewise
2276     * split.lisp: Likewise
2277     * sync.lisp: Likewise
2278     * system.lisp: Likewise
2279     * update.lisp: Likewise
2280    
2281 kaz 1.4 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
2282    
2283 kaz 1.5 * move.lisp (move-guts): test the actual filesystem as well
2284     as the map for existence of a directory or file. This makes
2285     the move operation behave better. Files can be moved to an
2286     existing directory that is not known to MCVS, and a file
2287     can properly clobber a target file that is not known to MCVS.
2288    
2289     * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
2290     methods for these generic functions for a NIL argument, such
2291     that they return NIL.
2292    
2293     2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
2294    
2295 kaz 1.4 * move.lisp (simple-move-to-dir): eliminated a bunch of code
2296     with the result that mcvs mv now works more like the Unix mv
2297     when moving a directory to another directory.
2298    
2299     * mcvs-main.lisp (mcvs-execute): fix bogus error message
2300     when options are given but no command.
2301    
2302     * README: don't use -z3 in example because this style of
2303     specifying an argument to an option doesn't work.
2304    
2305 kaz 1.1 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
2306    
2307     * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
2308     recursivep to be a generalized boolean variable. This allows
2309     mcvs add -R to work properly.
2310 kaz 1.2
2311     * mcvs-main.lisp (*cvs-command-options-arg*): add support
2312     for -u parameter, useful in cvs diff.
2313 kaz 1.3 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5