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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.255 - (hide annotations)
Sun Mar 2 07:23:08 2003 UTC (11 years, 1 month ago) by kaz
Branch: MAIN
Changes since 1.254: +7 -0 lines
Merging from mcvs-1-0-branch.

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

  ViewVC Help
Powered by ViewVC 1.1.5