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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.225 - (hide annotations)
Sat Nov 2 19:10:30 2002 UTC (11 years, 5 months ago) by kaz
Branch: MAIN
Changes since 1.224: +4 -0 lines
Merging from mcvs-1-0-branch.

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

  ViewVC Help
Powered by ViewVC 1.1.5