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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.233 - (hide annotations)
Sat Dec 14 05:35:06 2002 UTC (11 years, 4 months ago) by kaz
Branch: MAIN
Changes since 1.232: +6 -0 lines
Merging from mcvs-1-0-branch.

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

  ViewVC Help
Powered by ViewVC 1.1.5