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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.157.2.5 - (hide annotations)
Sun Aug 25 19:13:48 2002 UTC (11 years, 7 months ago) by kaz
Branch: symlink-branch
Changes since 1.157.2.4: +5 -0 lines
* code/create.lisp (mcvs-create): Change to new mapping-entry data
* structure.

* code/filt.lisp (make-filt-hash, mcvs-filt): Change to new
mapping-entry data structure. Filt does not care about symlinks.
1 kaz 1.157.2.4 2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
2 kaz 1.157.2.2
3 kaz 1.157.2.4 * code/add.lisp (mcvs-add): Change to new mapping-entry data structure
4     and handle symbolic links.
5    
6 kaz 1.157.2.5 * code/create.lisp (mcvs-create): Likewise.
7    
8     * code/filt.lisp (make-filt-hash, mcvs-filt): Change to new
9     mapping-entry data structure. Filt does not care about symlinks.
10    
11 kaz 1.157.2.4 * code/types.lisp (types-remove-ignores, types-make-cvs-adds):
12     Change to new mapping-entry data structure.
13    
14     * code/mapping.lisp (mapping-generate-name): Renamed to
15     mapping-generate-id. Interface changes slightly.
16     (mapping-extract-kind): New function, factored out from mcvs-generic.
17     (mapping-update): Unlink existing symbolic link before
18     re-linking it.
19    
20     * code/convert.lisp (mcvs-convert): Use new name and interface
21     of mapping-generate-name function.
22    
23     * code/create.lisp (mcvs-create): Likewise.
24    
25     * code/generic.lisp (mcvs-generic): Code to extract :file
26     entries from map factored out to mapping-extract-kind.
27    
28    
29     2002-08-25 Kaz Kylheku <kaz@ashi.footprints.net>
30    
31     * code/generic.lisp (mcvs-generic): Use new mapping-entry data structure.
32 kaz 1.157.2.3 Filter out mapping entries which are other than of the :file type, so
33     we don't pass to CVS things it doesn't know about, like symbolic
34     links.
35    
36     2002-08-24 Kaz Kylheku <kaz@ashi.footprints.net>
37    
38 kaz 1.157.2.2 Support for symbolic links added to the mapping module. The format of
39     the map file has changed to accomodate this. The new format of the
40     list entries is (:keyword "id" "path" ...) where the keyword is either
41     :file or :symlink (for now, extensible obviously), "id" is a unique
42     identifier (for regular files, it is their MCVS/F-* name) and "path" is
43     the sandbox path. Other things can follow; for symlinks, there is a
44     string representing the symlink target. Internally, a new data type
45     called mapping-entry is used; this is a struct. So the functions which
46     read and write maps now convert between the struct format and the above
47     format.
48    
49     * code/unix-bindings/unix.lisp (unix-funcs:readlink): New function.
50    
51     * code/unix-bindings/impl.c (impl_readlink): New function.
52    
53     * code/clisp-unix.lisp (readlink-error): New condition.
54     (initialize-instance readlink-error): New method for
55     initialize-instance generic function, specialized for readlink-error.
56     (readlink): New function.
57    
58     * code/mapping.lisp (mapping-entry): New struct, with slots
59     file, id, path and target.
60     (mapping-same-object-p): Renamed to mapping-same-id-p.
61     (mapping-object-lookup, mapping-moved-p): Unused functions removed.
62     (mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
63     mapping-prefix-matches, mapping-same-path-p, mapping-rename-files,
64     mapping-removed-files): Functions updated to use the new data
65     structure.
66     (mapping-dupe-checks): Rewritten for new data structure, and to
67     use hashes rather than silly sorting.
68     (mapping-convert-old-style-in, mapping-convert-in,
69     mapping-convert-out): New functions.
70     (mapping-read): Handle new and old style representations,
71     handle conversion to internal representation.
72     (mapping-write): Convert to new-style external representation
73     before writing out.
74     (mapping-synchronize): Handle symbolic links. If a link is missing,
75     create it. If it's present but different from what it should be,
76     erase it and re-create it.
77     (mapping-update): Use new data structure. Handle symbolic links.
78    
79     * code/remove.lisp (mcvs-remove): Refer to new function
80     name, mapping-same-id-p.
81    
82 kaz 1.157.2.1 2002-08-23 Kaz Kylheku <kaz@ashi.footprints.net>
83    
84     * code/clisp-unix.lisp (link-error): New slot, kind. Holds
85     the string "symbolic" or "hard".
86     (initialize-instance link-error): Use new slot in constructing
87     message.
88     (link): Specify "hard" value for :kind slot of condition.
89     (symlink): New function.
90    
91     * code/clisp-linux.lisp: Likewise.
92    
93 kaz 1.156 2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
94    
95 kaz 1.157.2.1 * code/posix.lisp (execute-program): Function removed.
96     * code/clisp-linux.lisp (execute-program): Function added. Works
97 kaz 1.157 in terms of CLISP's run-program function rather than the shell
98     function, thus eliminating the need to build a command string
99     and escape shell characters.
100     * clisp-unix.lisp (excecute-program): Likewise.
101    
102     2002-08-17 Kaz Kylheku <kaz@ashi.footprints.net>
103    
104 kaz 1.157.2.1 * code/posix.lisp (edit-file): Function renamed to invoke-file-on,
105 kaz 1.156 because this name clashes with a standard Common Lisp symbol.
106 kaz 1.157.2.1 * code/types.lisp (types-let-user-edit): Updated to use new name.
107 kaz 1.156
108 kaz 1.155 2002-08-05 Kaz Kylheku <kaz@ashi.footprints.net>
109    
110     Use getcwd to to implement mcvs-locate.
111    
112     * code/unix-bindings/unix.lisp (getcwd): New call out,
113     invokes impl_getcwd.
114    
115     * code/unix-bindings/impl.c (impl_getcwd): New function,
116     use getcwd() to obtain current working directory, resizing dynamic
117     buffer if necessary to get the entire path.
118    
119     * code/clisp-unix.lisp (getcwd): New wrapper function.
120    
121     * code/dirwalk.lisp (go-up): Function removed.
122    
123     * code/mapping.lisp (mcvs-locate): Rewritten to obtain
124     path using getcwd, then try looking for MCVS directory
125     in successively shorter prefixes of that path.
126    
127 kaz 1.152 2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
128    
129 kaz 1.154 Working back support for CLISP 2.27.
130    
131     * code/install.sh: Bogus *null-pointer* hack is no longer added
132     to the generated mcvs script, since we have our own FFI functions for
133     doing the test.
134    
135     * code/unix-bindings/unix.lisp (unix-funcs:null-pointer-p): New
136     function, tests a C pointer for null, returns T or NIL.
137     * code/unix-bindings/impl.c (impl_null_pointer_p): New function,
138     C implementation of unix-funcs:null-pointer-p.
139    
140     * code/clisp-unix.lisp (pointer-null): New macro, uses
141     ffi:foreign-address-null under CLISP 2.28 or greater, or
142     unix-funcs:null-pointer-p, under an older CLISP.
143    
144     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
145    
146 kaz 1.153 Fixes to get clean build from fresh checkout.
147    
148     * code/unix-bindings/link.sh: Remove test for presence of unix.c;
149     this was causing the failure to add the unix module to the module
150     list, which caused it to generate an empty modules.h file under
151     code/unix-bindings-linking-set, resulting in a bad build of lisp.run.
152    
153     * code/unix-bindings/Makefile: Add ``clean'' target, so we
154     can do a make clean here.
155    
156     2002-08-04 Kaz Kylheku <kaz@ashi.footprints.net>
157    
158 kaz 1.152 Retargetting CVS with new system call bindings that are not GNU/Linux
159     specific.
160    
161     * code/install.sh: The way Meta-CVS is installed changes now.
162     The argument is now a prefix above a bin and lib directory.
163     Invokes clisp-link to build a new CLISP linking set in the
164     directory code/unix-bindings-linking-set. The lisp executable
165     (lisp.run) is copied to $TARGET/lib/clisp/meta-cvs/ and the Meta-CVS
166     memory image is also copied there under the name lispinit.mem.
167     The mcvs script is then generated in $TARGET/bin, correctly referring
168     to these images.
169    
170     * code/system.lisp: Choose the new clisp-unix module, if running
171     under a CLISP image which has the new bindings loaded. Otherwise fall
172     back on the old clisp-linux, which uses the linuxlibc6 module.
173    
174     * code/clisp-unix.lisp: New file, closely based on clisp-linux.lisp,
175     but targetting new bindings in the unix-funcs package.
176    
177     * code/clisp-link: New file. Script borrowed from CLISP distribution,
178     needed for building CLISP executables with custom modules added.
179    
180     * code/linkkit: New directory. This is needed by by clisp-link.
181     * code/linkkit/modules.c: Borrowed file from CLISP, needed
182     by clisp-link.
183     * code/linkkit/clisp.h: Likewise.
184     * code/linkkit/modules.d: Likewise.
185    
186     * code/unix-bindings: New directory. This is a module kit used
187     by clisp-link to extend the Lisp executable and memory image
188     with new C functions.
189    
190     * code/unix-bindings/link.sh: Definitions of variables needed
191     by clisp-link.
192    
193     * code/unix-bindings/unix.lisp: The glue module which defines the Lisp
194     interface to the external C functions. Most of the functions call
195     directly into the system's C library, but a few call to wrapper
196     functions. Compiling unix.lisp produces a unix.c file which is
197     compiled and linked into the CLISP executable, and a unix.fas which
198     contains the Lisp interface bits that are loaded as part of the Lisp
199     image.
200    
201     * code/unix-bindings/Makefile: Rules for compiling the module, invoked by clisp-link.
202    
203     * code/unix-bindings/impl.c: Some special functions that help
204     implement the binding.
205    
206 kaz 1.149 2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
207    
208 kaz 1.150 More changes to syntax of grab command. Now -A must be
209     specified to do a grab onto main trunk.
210    
211     * code/mcvs-main.lisp (*grab-options*): -A option added.
212    
213     * code/grab.lisp (mcvs-grab): Test for presence of -A
214     option. Check that either -A or -r is present, but not both.
215    
216     2002-07-31 Kaz Kylheku <kaz@ashi.footprints.net>
217    
218 kaz 1.149 Syntax of grab command changed. The branch is no longer
219     specified as an argument after the module name. Rather,
220     it is specified using the -r option.
221    
222     * code/mcvs-main.lisp (*grab-options*): -r added to list.
223    
224     * code/grab.lisp (mcvs-grab, mcvs-grab-wrapper): Argument
225     syntax change, support -r option.
226 kaz 1.152
227     * INSTALL: Instructions change, since building the GNU/Linux libc
228     into CLISP is no longer required.
229 kaz 1.149
230 kaz 1.147 2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
231    
232 kaz 1.148 * docs/meta-cvs.latex: Rewrote most of Introduction.
233    
234     2002-07-27 Kaz Kylheku <kaz@ashi.footprints.net>
235    
236 kaz 1.147 New scripts for building LaTeX document. These do the right thing
237     to minimize the number of times latex is run. Make proved useless.
238    
239     * docs/generate.sh: New file.
240     * docs/cleanup.sh: New file.
241    
242 kaz 1.146 2002-07-20 Kaz Kylheku <kaz@ashi.footprints.net>
243    
244     * INSTALL: Revising CLISP installation instructions to the
245     easier method using --build.
246    
247 kaz 1.145 2002-07-18 Kaz Kylheku <kaz@ashi.footprints.net>
248    
249     * README: Renaming file to QUICK-GUIDE.
250    
251     2002-07-17 Kaz Kylheku <kaz@ashi.footprints.net>
252 kaz 1.142
253 kaz 1.144 * code/generic.lisp (mcvs-generic): Support new keyword,
254     :no-fix-empty-file-list. Specifies that if no files are passed,
255     and the --metaonly option is not present, the CVS command is to be
256     executed without any file arguments.
257     (mcvs-commit-wrapper): Specify :no-fix-empty-file-list t when
258     calling mcvs-generic. Thus commit now has the behavior that
259     when it is passed no file arguments, it does a true global commit.
260    
261     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
262    
263 kaz 1.143 * code/restore.lisp (mcvs-restore): Work properly with
264     partial sandboxes; that is, move things to lost+found
265     directory at the top of the partial sandbox, rather than
266     the abstract root.
267    
268     2002-07-16 Kaz Kylheku <kaz@ashi.footprints.net>
269    
270 kaz 1.142 * code/mcvs-main.lisp (usage): Updated to describe restore
271     command.
272    
273 kaz 1.139 2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
274    
275 kaz 1.141 * code/grab.lisp (mcvs-grab): If there are only added files
276     or only removed files, don't bother scanning any files,
277     since there are no moves to compute.
278    
279     2002-07-14 Kaz Kylheku <kaz@ashi.footprints.net>
280    
281 kaz 1.140 * code/find-bind.lisp (vector-bind): New macro, binds symbols
282 kaz 1.139 to elements of a vector.
283     (find-bind-extract-vals): Rewrite using vectors. Fixes
284     a bug: the old version was not handling duplicate keys
285     properly.
286     (find-bind): Integrate with new find-bind-extract-vals.
287    
288 kaz 1.138 2002-07-11 Kaz Kylheku <kaz@ashi.footprints.net>
289    
290     Directory structure rearrangement; source files are moved
291     under code/ subdirectory. A documentation directory is added.
292    
293 kaz 1.133 2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
294    
295 kaz 1.137 * move.lisp (move-guts): When moving multiple sources to
296     a target directory, provide a restart to skip a bad source.
297    
298     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
299    
300 kaz 1.136 * seqfuncs.lisp (intersection-difference): Support a new
301     keyword parameter :squash-nil.
302    
303     * mapping.lisp (mapping-difference): Filter non-moved pairs
304     directly in intersection-difference call using :squash-nil,
305     eliminating the need to do a second remove-if pass.
306    
307     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
308    
309 kaz 1.135 * mapping.lisp (mapping-difference): Rewrite using
310     intersection-difference.
311    
312     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
313    
314 kaz 1.134 * grab.lisp (added-removed): Function removed.
315     (mcvs-grab): Use new intersection-difference function
316     instead of added-removed.
317    
318     2002-07-07 Kaz Kylheku <kaz@ashi.footprints.net>
319    
320 kaz 1.133 * seqfuncs.lisp (intersection-difference): New function.
321    
322 kaz 1.131 2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
323    
324 kaz 1.132 * grab.lisp (mcvs-grab): Upgraded to work with partial sandbox.
325     Extra parameter added to specify subdirectory. File analysis
326     is only done on visible files.
327     (mcvs-grab-wrapper): Take optional parameter to specify
328     subdirectory.
329    
330     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
331    
332     * mapping.lisp (mapping-update): If no-delete-removed is
333     true, nevertheless print the ``* removing...'' messages
334     to show that removal from the mapping is going on.
335    
336     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
337    
338     * remap.lisp (mcvs-remap): Remap only the visible sandbox,
339     and combine resulting map with the invisible portion.
340    
341     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
342    
343     * remove.lisp (mcvs-remove): Added path conversions to support
344     partial sandboxes.
345    
346     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
347    
348     * generic.lisp (mcvs-generic): Added path conversions to support
349     partial sandboxes.
350    
351     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
352    
353     * add.lisp (mcvs-add): Added path conversions to support
354     partial sandboxes.
355    
356     2002-07-06 Kaz Kylheku <kaz@ashi.footprints.net>
357    
358 kaz 1.131 * grab.lisp (mcvs-grab): Bugfix: determination of common words
359     was failing on small file sets because the min function was
360     used instead of the max to compute the threshold.
361 kaz 1.132
362     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
363    
364     * move.lisp (source-check): Use real source path for checking
365     against MCVS/ area.
366     (mcvs-move): Ditto for destination path.
367    
368     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
369    
370     * mapping.lisp (mapping-update): Make sure only those files
371     are processed which are visible in the sandbox. If a file
372     is moved out of or into visibility, this is indicated in the
373     diagnostic output.
374    
375     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
376    
377     * mapping.lisp (real-path-exists): Use path-prefix-equal, because
378     that handles all the tricky cases.
379     (abstract-to-real-path): Handle the case when abstract path
380     is the same as the path prefix, with or without the trailing
381     slash.
382    
383     2002-07-05 Kaz Kylheku <kaz@ashi.footprints.net>
384    
385     Start of experimental ``partial sandbox'' work.
386    
387     * mapping.lisp (*mcvs-displaced-name*, *mcvs-displaced*): New
388     constants, hold name of administrative file MCVS/DISPLACED which stores
389     the displaced path prefix.
390     (*displaced-path-prefix*): New special variable, holds displaced
391     path prefix read from MCVS/DISPLACED.
392     (*displaced-path-length*): New special variable, holds length
393     of string stored in *displaced-path-prefix*.
394     (real-path-exists, abstract-to-real-path, real-to-abstract-path):
395     New functions for mapping between actual sandbox path, and
396     the abstract sandbox path stored in the mapping.
397     (in-sandbox-root-dir): Macro modified to read *mcvs-displaced*
398     administrative file, and set up the new special variables.
399     (mapping-synchronize): Only operate on files that are present
400     in the sandbox; i.e. that have real paths corresponding to their
401     abstract paths. Convert to the real path when calling lower
402     level file manipulation functions.
403     (mapping-update): Likewise, but this conversion is not complete.
404     (displaced-path-read, displaced-path-write): New functions for
405     reading and writing MCVS/DISPLACED.
406    
407     * checkout.lisp (mcvs-checkout): One extra optional parameter.
408     Specifies the subdirectory for executing a partial checkout.
409     (mcvs-checkout-wrapper): Parse out optional parameter.
410    
411     * grab.lisp (mcvs-grab): For now, when calling mcvs-checkout,
412     specify the new parameter as nil. Eventually, grab will work
413     over partial checkouts.
414    
415     * move.lisp: Upgraded to work with partial sandboxes.
416     (source-check): Convert source parameter to real path for
417     existence check.
418     (move-guts): Convert destination parameter to real path before
419     invoking (stat ...) on it.
420     (mcvs-move): Map all path arguments to abstract paths.
421 kaz 1.131
422 kaz 1.130 2002-07-04 Kaz Kylheku <kaz@ashi.footprints.net>
423    
424     * find-bind.lisp (find-bind-extract-vals): Rewrite for
425     efficiency. No impact on Meta-CVS, just done for the sake of improving
426     the quality of this highly reusable code. There is specialized
427     code now depending on whether the input sequence is a list or
428     a vector. A single pass is made over the sequence, with multiple
429     passes over the search values. The sequence could be large,
430     whereas the list of search values is typically going to be small.
431     (find-bind): Modified to reflect slight interface change
432     in find-bind-extract-vals.
433    
434 kaz 1.129 2002-07-03 Kaz Kylheku <kaz@ashi.footprints.net>
435    
436     * mcvs-main.lisp (*usage*): Describe --meta and --metaonly options.
437    
438 kaz 1.127 2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
439    
440 kaz 1.128 * purge.lisp (mcvs-purge): Factor out code for computing
441     deleted files.
442    
443     * mapping.lisp (mapping-removed-files): New function, contains
444     code factored from mcvs-purge.
445    
446     * restore.lisp: New file.
447     (mcvs-restore, mcvs-restore-wrapper): New functions.
448    
449     2002-07-02 Kaz Kylheku <kaz@ashi.footprints.net>
450    
451 kaz 1.127 * checkout.lisp (mcvs-checkout): Don't delete the MCVS directory
452     of an existing checkout.
453    
454 kaz 1.125 2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
455    
456 kaz 1.126 Adding purge command.
457    
458     * mcvs-main.lisp (*purge-options*): New constant.
459     (*mcvs-command-table*): New entry.
460     (*usage*): Update.
461    
462     * purge.lisp: New file.
463     (mcvs-purge, mcvs-purge-wrapper): New functions.
464    
465     2002-07-01 Kaz Kylheku <kaz@ashi.footprints.net>
466    
467 kaz 1.125 Grab no longer synchronizes to recreate deleted files immediately
468     before blowing them away.
469    
470     * grab.lisp (mcvs-grab): Specify :no-sync t when calling mcvs-remove.
471    
472     * remove.lisp (mcvs-remove): Support new no-sync keyword. This tells
473     mcvs-remove that the files being removed from the mapping,
474     don't exist in the sandbox. So it's not necessary to call
475     mapping-synchronize, and mapping-update can be told via
476     :no-delete-removed t not to try to remove deleted files.
477    
478     * mapping.lisp (mapping-update): New no-delete-removed keyword
479     parameter.
480    
481 kaz 1.121 2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
482 kaz 1.120
483 kaz 1.123 * create.lisp (mcvs-create): Take out vendor branch parameter,
484     use "Created-by-Meta-CVS" as the vendor tag.
485     (mcvs-create-wrapper): Take out vendor branch parameter.
486    
487     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
488    
489 kaz 1.122 * generic.lisp (mcvs-tag-wrapper): This one needs to include
490     meta files by default.
491    
492     2002-06-29 Kaz Kylheku <kaz@ashi.footprints.net>
493    
494 kaz 1.120 Moving toward sane, user-friendly handling of meta-files.
495     Two new options are added --meta and --metaonly.
496     All reporting commands---diff, log, annotate---default to
497     not including the meta files. The update command remains special.
498     It does not include meta files if given filename arguments.
499     If invoked with no arguments, it does a global CVS up.
500     The commit command defaults to including the meta files.
501     The three options simply override default behavior.
502    
503 kaz 1.124 * options.lisp (*nometa-option*): Eliminated useless docstring.
504 kaz 1.120 (*meta-option*): New variable.
505     (*nometa-option*): New variable.
506     (filter-global-options): Clean rewrite using find-bind.
507    
508     * generic.lisp (mcvs-generic): New keyword parameters
509     default-include-meta-files, need-update-after. Implements new logic
510     related to the new options. Performs (mapping-update) if
511     need-update-after is true and metafiles were subject to cvs update.
512     (mcvs-commit-wrapper): Calls mcvs-generic with
513     :default-include-meta-files t.
514    
515     * update.lisp (mcvs-update): No longer overrides the *nometa-option*
516     special variable. Passes :need-update-after t to mcvs-generic.
517    
518     * mcvs-main.lisp (*cvs-options*): New options entered into list.
519    
520 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
521 kaz 1.114
522 kaz 1.119 * memoize.lisp (memoize-expander): Use ordinary hash for memoizing
523     monadic functions.
524    
525 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
526 kaz 1.119
527 kaz 1.117 Word comparisons are case-insensitive in mcvs grab now.
528     Also, common words are determined and eliminated from the correlation.
529     Common words are those that appear in at least 5 of the
530     added or removed files, or 20% of them, whichever is greater.
531    
532     Noticed some unnecessary use of string-lessp on F-file names in
533     mapping.lisp.
534    
535     * grab.lisp (read-word-hash): Use #'equalp test for case-insensitive
536     string comparisons.
537     (added-removed): Use string< instead of string-lessp for comparing
538     paths.
539     (determine-common-words, eliminate-common-words): New functions.
540 kaz 1.118 (move-candidates): Acceptance threshold reduced to 30%, since
541 kaz 1.117 elimination of common words reduces the similarity correlation.
542     (mcvs-grab): Use string< instead of string-lessp when sorting paths.
543     Do the common words computation.
544    
545     * mapping.lisp (mapping-dupe-check, mapping-write,
546     mapping-difference): Use string< instead of string-lessp.
547    
548 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
549 kaz 1.117
550 kaz 1.116 * memoize.lisp (factor-memo-labels): New function, rips apart
551     functions generated by memoize-expander, in order to factor
552     out the multi-hash defining let blocks.
553     (memoized-labels): Interface corrected. Also, use new function to
554     generate a labels block that allows for mutually recursive memoized
555     functions which preserve hash contents across arbitrarily mutually
556     recursive calls. This is done by enclosing the functions in one big
557     let block which binds all the hashes.
558    
559 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
560 kaz 1.116
561 kaz 1.115 * seqfuncs.lisp (lcs-list): Specify #'eq test for memoization
562     parameters.
563    
564 kaz 1.121 2002-06-28 Kaz Kylheku <kaz@ashi.footprints.net>
565 kaz 1.115
566 kaz 1.114 Adding some cool code: a multi-hash datatype which implements
567     multi-dimensional sparse arrays using a tree of hash tables,
568     and a function memoizer which uses multi hash to index on
569     function arguments.
570    
571     * multi-hash.lisp (multi-hash): New class.
572     (initialize-instance): New method on multi-hash.
573     (multi-hash-common-code): New macro.
574     (get-multi-hash, set-multi-hash): New functions.
575    
576     * memoize.lisp (define-memoized-function,
577     memoized-labels): New macros.
578     (remove-key-aux-rest strip-lambda-list, extract-tests,
579     remove-tests, memoize-expander): New functions.
580    
581     * seqfuncs.lisp (lcs-list): Function is now correctly
582     memoized using define-memoized-function.
583    
584 kaz 1.113 2002-06-26 Kaz Kylheku <kaz@ashi.footprints.net>
585    
586     * grab.lisp (read-word-hash): Memory use optimizations: use smaller
587     initial size for tokens; re-use the same token object when the
588     hash already contains a duplicate.
589     (correlate): Renamed to correlate-word-hashes.
590     (correlate-paths): New function; computes a confidence-reducing
591     factor based on the differences between two paths.
592     (move-candidates): Use correlate-paths to lower the confidence
593     for distant moves. This could help sort out ambiguities when
594     projects contain very similar or duplicate files which are subject
595     to parallel moves.
596    
597     * seqfuncs.lisp (lcs-list, lcs-vector,
598     longest-common-subsequence): New functions.
599    
600 kaz 1.112 2002-06-25 Kaz Kylheku <kaz@ashi.footprints.net>
601    
602     New feature: grab command. Takes snapshot of code and imports
603     it to a branch, trying to determine which of the added and
604     removed files are actually moves.
605    
606     * grab.lisp: New file.
607     (read-word-hash, word-hash-file, correlate, added-removed,
608     move-candidates, mcvs-grab, mcvs-grab-wrapper): New functions.
609    
610     * mcvs-main.lisp (*grab-options*): New constant.
611     (*mcvs-command-table*): New entry.
612     (*usage*): New text.
613    
614     * checkout.lisp (mcvs-checkout): Write out MAP-LOCAL even
615     if :no-generate t is specified.
616    
617 kaz 1.110 2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
618    
619 kaz 1.111 * checkout.lisp (mcvs-checkout): New key parameter, no-generate.
620     Tells the checkout function not to unpack the MCVS directory.
621     This will be useful when mcvs-checkout is used as a subfunction
622     of the new grab command. Failed CVS call is now turned into
623     an error. The MCVS subdirectory is *always* deleted, even if the
624     checkout did not create the checkout directory.
625    
626     2002-06-24 Kaz Kylheku <kaz@ashi.footprints.net>
627    
628 kaz 1.110 * dirwalk.lisp (dirwalk-fi): Bugfix: top call was not
629     passing down keyword parameters to recursive call.
630    
631 kaz 1.107 2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
632    
633 kaz 1.109 * posix.lisp (canonicalize-path): Use concatenate-string
634     instead of format.
635    
636     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
637    
638 kaz 1.108 * posix.lisp (parse-posix-namestring): Clean rewrite.
639    
640     2002-06-23 Kaz Kylheku <kaz@ashi.footprints.net>
641    
642 kaz 1.107 The ``import'' command is renamed to ``create''.
643    
644     * mcvs.main (*create-options*): Renamed to *import-options*.
645     (*mcvs-command-table*): Updated.
646     (*usage*): Updated.
647    
648     * import.lisp: File renamed to create.lisp.
649     (mcvs-import): Renamed to mcvs-create; some arguments renamed.
650     (mcvs-import-wrapper): Renamed to mcvs-create-wrapper.
651    
652     * README: Updated.
653    
654 kaz 1.104 2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
655    
656 kaz 1.106 * split.lisp (split-fields): Optimized to extract tokens directly
657     from the input string using subseq rather than construct them
658     character by character.
659 kaz 1.105
660     2002-06-22 Kaz Kylheku <kaz@ashi.footprints.net>
661    
662 kaz 1.104 * find-bind.lisp (find-bind): Use #'values instead of #'(lambda (x) x).
663    
664 kaz 1.102 2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
665    
666 kaz 1.103 * clisp-linux.sh (:clisp-old): Added to *features*
667     for CLISP 2.28 or higher.
668     (*null-pointer*): Only defined when :clisp-old is present.
669     (pointer-null): Use new ffi:foreign-pointer-null if :clisp-old
670     feature is not present.
671    
672     * install.sh: Don't do *null-pointer* workaround hack
673     unless :clisp-old feature is present in the memory image.
674    
675     2002-06-21 Kaz Kylheku <kaz@ashi.footprints.net>
676    
677 kaz 1.102 * types.lisp (types-make-cvs-adds): Serious bugfix. Forgot
678     to strip MCVS/ prefix from those F- files which don't match
679     any type entries. This caused cvs add to fail for unsuffixed
680     files.
681    
682 kaz 1.101 2002-06-08 Kaz Kylheku <kaz@ashi.footprints.net>
683    
684     * types.lisp (types-to-import-wrapper-args): Don't use backquote
685     template to generate a list that will be destructively catenated
686     by mapcan.
687    
688 kaz 1.100 2002-05-22 Kaz Kylheku <kaz@ashi.footprints.net>
689    
690     * checkout.lisp (mcvs-checkout): If a checkout directory is
691     created and then the CVS checkout fails, the directory is
692     then removed.
693    
694 kaz 1.97 2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
695    
696 kaz 1.100 * find-bind.lisp (find-bind-extract-vals, find-bind): Process default
697 kaz 1.99 values in find-bind-extract-vals, instead of in the expansion of
698     find-bind, thereby reducing some macro bloat.
699    
700     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
701    
702 kaz 1.98 * remap.lisp (mcvs-remap): Loads MAP as well as MAP-LOCAL.
703     If it the mappings differ, an error is signaled. The user can choose
704     to ignore the error, in which case MAP is clobbered.
705    
706     2002-05-20 Kaz Kylheku <kaz@ashi.footprints.net>
707    
708 kaz 1.97 Adding mcvs remap command.
709    
710     * dirwalk.lisp (dirwalk-fi, dirwalk, for-each-file-info): Default
711     behavior is now preorder (visit directory before its entries).
712     A keyword is provided to select the old postorder behavior.
713     A catch is provided in dirwalk-fi that allows the caller to
714     skip processing the currently traversed directory. The for-each-*
715     macros provide a local function called (skip) to do this.
716     (delete-recursive): This function depends on postorder behavior
717     in for-each-file-info, so it explicitly selects it now.
718    
719     * mcvs.lisp (*remap-options*): New constant.
720     (*mcvs-command-table*): Add entry for new function.
721     (*usage*): Describes new function.
722    
723     * remap.lisp: New file.
724     (mcvs-remap, mcvs-remap-wrapper): New functions.
725    
726 kaz 1.96 2002-05-15 Kaz Kylheku <kaz@ashi.footprints.net>
727    
728     * sync.lisp (synchronize-files): Signal an error when the two files
729     to be synchronized have the same time stamp. Provide two restarts
730     for doing the synchronization either way.
731    
732 kaz 1.95 2002-05-06 Kaz Kylheku <kaz@ashi.footprints.net>
733    
734     * mapping.lisp (in-sandbox-root-dir): Fix symbol macro
735     sandbox-down-path; it was referring to the (quote #:DOWNPATH-NNN)
736     rather than #:DOWNPATH-NNN.
737    
738 kaz 1.93 2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
739    
740 kaz 1.94 * import.lisp (mcvs-import): Specify -I ! argument to cvs import
741     so that it does not ignore any F- files.
742    
743     2002-05-04 Kaz Kylheku <kaz@ashi.footprints.net>
744    
745 kaz 1.93 * mapping.lisp (mapping-update): Provide restart that allows
746     user to ignore file removal error.
747    
748 kaz 1.92 2002-04-19 Kaz Kylheku <kaz@ashi.footprints.net>
749    
750     Porting to CMUCL.
751    
752     * system.lisp: Conditionally load new module cmucl-unix.
753    
754     * mapping.lisp (mapping-dupe-check, mapping-write,
755     mapping-difference): Fixes related to sort function; we were
756     relying on CLISP's preservation of the cons cell order.
757    
758     * cmucl-unix.lisp: New file.
759    
760 kaz 1.89 2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
761    
762 kaz 1.90 * checkout.lisp (mcvs-checkout): Allow -d to specify current
763     directory as the checkout directory. Do not complain if the
764 kaz 1.91 target directory exists, just try to use it anyway,
765     unless it is the root of an existing Meta-CVS sandbox. Use
766 kaz 1.90 the mapping-update function to update the sandbox.
767     These changes allow a Meta-CVS sandbox to blend with an existing
768     directory structure, a useful feature.
769    
770     2002-04-17 Kaz Kylheku <kaz@ashi.footprints.net>
771    
772 kaz 1.89 * generic.lisp (mcvs-generic): Change how empty file argument list
773     is handled. Rather than rewriting it to '(".") we do a proper
774     map-prefix-lookup. Synchronizing and invoking CVS is elided
775     if the resulting list of files to process is empty and the --nometa
776     option is specified.
777    
778 kaz 1.87 2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
779    
780 kaz 1.88 * branch.lisp (parse-sticky): New function.
781     (read-cvs-entries): New function.
782     (same-tag-check): New function.
783     (what-tag-are-we-on): Renamed to what-are-we-sticky-to. Calls
784     parse-sticky to return structured tag.
785     (mcvs-merge): Make use of structured tags.
786     (mcvs-list-branches): Make use of structured tags. Indicate
787     when sandbox is inconsistently sticky.
788    
789     2002-04-16 Kaz Kylheku <kaz@ashi.footprints.net>
790    
791 kaz 1.87 * remove.lisp (mcvs-remove): Corrected careless bracketing
792     introduced on 2002-03-15 that rendered this function ineffective.
793    
794 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
795 kaz 1.82
796 kaz 1.86 Absolute paths resolved against sandbox root.
797    
798     * posix.lisp (path-absolute-p): New function. Predicate to
799     test whether a path is absolute.
800    
801     * mapping.lisp (in-sandbox-root-dir): sandbox-translate-paths
802     function detects absolute path, and treats it as relative to
803     sandbox root.
804    
805     2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
806    
807 kaz 1.84 New switch command added, plus sticky tag related
808     bugfixes and enhancement of mcvs list-branches.
809    
810     mcvs-main.lisp (*switch-options*): New constant.
811     (*mcvs-command-table*): New entries.
812     (*usage*): New help text.
813    
814     branch.lisp (what-branch-are-we-on): Function renamed to
815     what-tag-are-we-on. Tests the first letter which is T or N; if
816     it is not T, then it's not a branch tag. If there is a tag,
817     it returns two values; the second value is NIL if it is not
818     a branch tag, T otherwise.
819     (mcvs-merge): Modified to use what-tag-are-we-on.
820     (mcvs-list-branches): Show additional information about the
821     current sticky tag.
822     (mcvs-merge-wrapper): Fix wrong parenthesization introduced
823     earlier today.
824     (mcvs-switch-wrapper): New function.
825    
826 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
827 kaz 1.84
828 kaz 1.83 * branch.lisp (branch-tag-check): Check reserved symbol HEAD.
829    
830 kaz 1.85 2002-04-04 Kaz Kylheku <kaz@ashi.footprints.net>
831 kaz 1.83
832 kaz 1.82 New command to list branches.
833    
834     * mcvs-main.lisp (*list-branches-options*): New constant.
835     (*mcvs-command-table*): Entries for new command added.
836     (*usage*): Help text added.
837    
838     * branch.lisp (mcvs-list-branches,
839     mcvs-list-branches-wrapper): New functions.
840    
841 kaz 1.80 2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
842    
843 kaz 1.81 * branch.lisp (where-is-the-repository): New function.
844     (cvs-make-or-advance-tag): Pass down CVSROOT to cvs rtag using
845     the -d global option.
846    
847     2002-04-03 Kaz Kylheku <kaz@ashi.footprints.net>
848    
849 kaz 1.80 * branch.lisp (what-module-is-this): New function.
850     (cvs-make-or-advance-tag): Use rtag rather than tag for tagging
851     the branch being merged. This fixes the failure to merge added files.
852     (mcvs-merge): Use mcvs-update rather than directly using cvs.
853    
854 kaz 1.78 2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
855    
856 kaz 1.79 Implemented remerge command; redo a merge without moving
857     around any tags.
858    
859     * branch.lisp (mcvs-merge): New keyword parameter remerge-p
860     to indicate that a re-merge should be done, plus logic for
861     doing so.
862     (mcvs-remerge-wrapper): New function.
863    
864     * mcvs-main.lisp (*remerge-options*): New constant.
865     (*mcvs-command-table*): New entry for remerge command.
866    
867     2002-04-02 Kaz Kylheku <kaz@ashi.footprints.net>
868    
869 kaz 1.78 First cut at implementing more automated branching and merging.
870    
871     * mcvs-main.lisp (*branch-options*, *merge-options*): New constants.
872     (*mcvs-command-table*): New entries for branch and merge commands.
873     (*usage*): New help text.
874    
875     * branch.lisp: New file.
876     (*branch-char*): New constant.
877     (tags-from-cvs-log, what-branch-are-we-on, branch-tag-check,
878     mcvs-branch, mcvs-branch-wrapper, cvs-make-or-advance-tag, mcvs-merge,
879     mcvs-merge-wrapper): New functions.
880    
881 kaz 1.87 2002-04-01 Kaz Kylheku <kaz@ashi.footprints.net>
882 kaz 1.77
883     checkout.lisp (mcvs-checkout): Emit informational message
884     when checkout completes, because it's not obvious what directory
885     was just created.
886    
887 kaz 1.76 2002-02-38 Kaz Kylheku <kaz@ashi.footprints.net>
888    
889     Error checking added to mcvs move: verifies that all
890     sources exist and are known to Meta-CVS.
891    
892     * move.lisp (source-check): New function.
893     (simple-rename, simple-move-to-dir): Use new function.
894    
895 kaz 1.74 2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
896    
897 kaz 1.75 * rcsparse.lisp: File renamed to rcs-utils.lisp.
898     (rcs-delta): New slot, delta-hash.
899     (rcs-make-delta-hash): New function.
900     (rcs-parse): Calls rcs-make-delta-hash to set up new slot.
901    
902     * convert.lisp: require changed to match file rename.
903    
904     2002-03-20 Kaz Kylheku <kaz@ashi.footprints.net>
905    
906 kaz 1.74 Some new macros for slot access.
907    
908     * slot-refs.lisp: New file.
909     (with-slot-refs): New macro.
910     (with-multi-slot-refs): New macro.
911    
912     * rcsparse.lisp (rcs-parse-newphrases, rcs-parse-admin,
913     rcs-parse-delta): Replace uses
914     of symbol-macrolet by with-slot-refs and with-multi-slot-refs.
915    
916 kaz 1.73 2002-03-19 Kaz Kylheku <kaz@ashi.footprints.net>
917    
918     Adding delta parsing to RCS parser.
919    
920     * rcsparse.lisp (rcs-delta): New struct.
921     (rcs-file): New slot, deltas.
922     (rcs-parse-newphrases): New function, factors out parsing of
923     ``newphrases'' syntactic element out of rcs-parse-admin.
924     (rcs-parse-admin): Use rcs-parse-newphrases.
925     (rcs-parse-delta, rcs-parse-deltas): New functions.
926     (rcs-parse): Parse both admin and deltas; store deltas in new
927     rcs-file slot.
928    
929 kaz 1.72 2002-03-18 Kaz Kylheku <kaz@ashi.footprints.net>
930    
931     * posix.lisp (parse-posix-namestring): New function. Converts POSIX
932     path to CL Path object.
933 kaz 1.73
934     * rcsparse.lisp: New file, implements RCS version file parser.
935 kaz 1.72 (rcs-admin, rcs-file, rcs-token, rcs-token-stream): New structs.
936     (rcs-peek-token, rcs-read-token): New generic functions.
937     (rcs-extract-id-sym-or-num, rcs-extract-string,
938     rcs-match-optional, rcs-match-token, rcs-parse, rcs-parse-admin,
939     rcs-special-p): New functions.
940    
941     * convert.lisp (classify-tags): Work with association list rather
942     than raw strings.
943     (mcvs-convert): Use rcs-parse to extract tags. Fix call to
944     mapping-generate name. Use parse-posix-namestring when opening
945     version file. Generate informative chatter.
946    
947 kaz 1.69 2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
948    
949 kaz 1.71 * remove.lisp (mcvs-remove): More detailed error checking.
950     Checks for remove attempts against MCVS/ area, removes of local
951     files not versioned under Meta-CVS, and nonexistent files.
952    
953     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
954    
955 kaz 1.70 * add.lisp (mcvs-add): Error message changed to tell user to use
956     -R to add directory.
957    
958     * remove.lisp (mcvs-remove): New generalized boolean parameter
959     indicates to do a recursive remove. This is controlled by the
960     -R option which already exists. Behavior changed to not act
961     on directories unless recursion is explicitly requested.
962     (mcvs-remove-wrapper): Extract "R" option, pass down new boolean
963     to mcvs-remove.
964    
965     2002-03-15 Kaz Kylheku <kaz@ashi.footprints.net>
966    
967 kaz 1.69 * remove.lisp (mcvs-remove-wrapper): Remove bogus error check.
968    
969 kaz 1.66 2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
970    
971 kaz 1.68 * checkout.lisp (mcvs-checkout): Bugfix: must use checkout-dir, not
972     module, when testing whether directory exists or was created properly.
973    
974     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
975    
976 kaz 1.67 Update takes file arguments now.
977    
978     * update.lisp (mcvs-update): If filename arguments are given, then
979     just call mcvs-generic to do the work, but suppress the operation on
980     meta files. If no filename arguments are given, then update everything.
981     If the -p option is present, no synchronization is needed, before or
982     after.
983     (mcvs-update-wrapper): Pass command arguments down to mcvs-update.
984    
985     * mcvs-main.lisp (*update-options*): Add "p" option.
986    
987     * generic.lisp (mcvs-generic): New keyword parameter need-sync-after,
988     a generalized boolean which can tell the function to do a
989     mapping-synchronize after executing the CVS command.
990    
991     2002-03-14 Kaz Kylheku <kaz@ashi.footprints.net>
992    
993 kaz 1.66 * filt.lisp (filt-select-map): Do allow a date and revision to be
994     specified; the revision could be a branch tag.
995    
996 kaz 1.62 2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
997    
998 kaz 1.65 * mapping.lisp (malformed-map): New function.
999     (mapping-dupe-check): Perform extra error checks when reading
1000     mapping, and turn them into a condition with a ``nice'' error message.
1001    
1002     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1003    
1004 kaz 1.64 * mcvs-filt.lisp (filt-select-map): Handle error gracefully
1005     when reading map. It's easy to give CVS is a nonexistent tag.
1006    
1007     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1008    
1009 kaz 1.63 The filt command takes arguments to select alternate revision
1010     of map.
1011    
1012     * mcvs-main.lisp (*filt-options*): New constant.
1013     (*mcvs-command-table*): Updated with new options.
1014     (mcvs-debug-shell): Restart name changed during debugging of filt
1015     changes.
1016    
1017     * filt.lisp (filt-select-map): New function. Loads either the
1018     local mapping, or retrieves an alternate mapping from CVS based
1019     on command line options.
1020     (mcvs-filt): Use filt-select-map rather than mapping-read.
1021    
1022     2002-03-13 Kaz Kylheku <kaz@ashi.footprints.net>
1023    
1024 kaz 1.62 * generic.lisp (mcvs-generic): Add .cvsignore to the list of
1025     metafiles.
1026    
1027 kaz 1.53 2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1028    
1029 kaz 1.61 * import.lisp (mcvs-import): Create a .cvsignore file for ignoring
1030     MAP-LOCAL.
1031    
1032     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1033    
1034 kaz 1.60 Fix trailing slash bug in mcvs mv.
1035    
1036     * move.lisp (simple-move-to-dir): Canonicalize path after catenating
1037     destination and file base name. This nukes a double slash if
1038     we move to a name with a trailing slash.
1039     (move-guts): Treat a destination name that has a trailing slash
1040     as a directory, unless it exists already as a non-directory.
1041    
1042     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1043    
1044 kaz 1.59 * mcvs-main.lisp (*cvs-options*): Added "error-terminate" and
1045     "error-continue".
1046     (*usage*): Update and reformat help text.
1047     (mcvs-execute): Process "error-terminate" and "error-continue"
1048     options.
1049    
1050     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1051    
1052 kaz 1.58 * mapping.lisp (mapping-update): Messages related to moving,
1053     adding or removing files promoted to terse level, so only -Q
1054     can suppress them.
1055    
1056     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1057    
1058 kaz 1.57 * update.lisp (mcvs-update): Changing level of chatter messages.
1059     * move.lisp (mcvs-move): Likewise.
1060     * add.lisp (mcvs-add): Likewise.
1061     * remove.lisp (mcvs-remove): Likewise.
1062     * checkout.lisp (mcvs-checkout): Likewise.
1063     * generic.lisp (mcvs-generic): Likewise.
1064     * import.lisp (mcvs-import): Likewise.
1065     * mapping.lisp (mapping-dupe-check): Likewise.
1066     (mapping-update): Likewise.
1067    
1068     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1069    
1070 kaz 1.56 Support for -q, -Q and -e global options.
1071    
1072     * posix.lisp (*editor*): New special variable.
1073     (edit-file): Check *editor* variable; if not nil, use it.
1074    
1075     * mcvs-main.lisp (*usage*): Update help text.
1076     (mcvs-execute): Set *mcvs-chatter-level* according to -q or -Q.
1077     Set *editor* if -e is specified.
1078    
1079     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1080    
1081 kaz 1.55 * mcvs-main.lisp (*cvs-options*): Remove obsolete "a".
1082     (*cvs-options-arg*): Add missing "r".
1083     (*usage*): New constant, help text.
1084     (mcvs-execute): Process help and version command line options.
1085    
1086     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1087    
1088 kaz 1.54 * options.lisp (parse-opt): Make error messages more consistent.
1089    
1090     2002-03-12 Kaz Kylheku <kaz@ashi.footprints.net>
1091    
1092 kaz 1.53 * find-bind.lisp (find-bind): Make rem-var optional; sometimes
1093     the user might not care about the remaining unmatched list.
1094    
1095 kaz 1.49 2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1096    
1097 kaz 1.52 * find-bind.lisp (find-bind): Documentation string change. Clarify
1098     that default values are substituted whenever a variable would
1099     otherwise be bound to the value NIL, even through an explicit
1100     match.
1101    
1102     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1103    
1104 kaz 1.51 Sane filtering of -d option in checkout.
1105    
1106     * find-bind.lisp (find-bind): Variable bindings can specify
1107     a third element, which provides a default value for any variables
1108     that turn out NIL.
1109    
1110     * checkout.lisp (mcvs-checkout): Filter out the -d dir option,
1111     and use it to override the name of the checkout directory,
1112     the way CVS checkout does it.
1113    
1114     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1115    
1116 kaz 1.50 Bugfix: mcvs add was not processing existing :ignore's in MCVS/TYPES.
1117    
1118     * add.lisp (mcvs-add): Use old types as well as new types
1119     to filter for ignores.
1120    
1121     2002-03-11 Kaz Kylheku <kaz@ashi.footprints.net>
1122    
1123 kaz 1.49 * find-bind.lisp: New file.
1124     (find-bind-extract-vals): New function.
1125     (find-bind): New macro.
1126    
1127     * error.lisp (restart-destructure): Macro removed.
1128     (mcvs-error-handler): Uses generic find-bind instead of
1129     restart-destructure.
1130    
1131 kaz 1.43 2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1132    
1133 kaz 1.48 * filt.lisp (mcvs-filt): Bugfix: do not stop processing line
1134     if F- file name is not found in hash table.
1135    
1136     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1137    
1138 kaz 1.47 Commit is handled through mcvs-generic, so it can take
1139     filename arguments, and honor --nometa.
1140    
1141     * commit.lisp: File removed.
1142     (mcvs-commit): Function removed.
1143     (mcvs-commit-wrapper): Moved to generic.lisp.
1144    
1145     * generic.lisp (mcvs-commit-wrapper): Moved from commit.lisp,
1146     changed to invoke mcvs-generic.
1147     (mcvs-generic): Only add TYPES file to list if it actually
1148     exists.
1149    
1150     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1151    
1152 kaz 1.46 New --nometa command line option.
1153    
1154     * mcvs-main.lisp (*cvs-options*): Add "nometa" to list.
1155     (mcvs-execute): Filter global options to recognize
1156     Meta-CVS-specific ones.
1157    
1158     * options.lisp (*nometa-option*): New special variable.
1159     (filter-global-options): New function.
1160    
1161     * generic.lisp (mcvs-generic): Honor *nometa-option* special
1162     variable.
1163    
1164     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1165    
1166 kaz 1.45 * generic.lisp (mcvs-generic): Make sure TYPES file is
1167     included in list of files.
1168    
1169     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1170    
1171 kaz 1.44 * mcvs-main.lisp (*add-options*): Support -R option for add.
1172     Thus, recursive add works now.
1173    
1174     2002-03-09 Kaz Kylheku <kaz@ashi.footprints.net>
1175    
1176 kaz 1.43 Fix mcvs filt so it handles suffixed F- files properly.
1177    
1178     * filt.lisp (make-filt-hash): New function.
1179     (mcvs-filt): After matching hex digits, also check for
1180     a suffix match.
1181    
1182 kaz 1.40 2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1183    
1184 kaz 1.42 Support for file type keyword treatment under mcvs add.
1185    
1186     * add.lisp (mcvs-add): Restructured to build up list of new file
1187     suffixes, allow the user to edit the file which determines how
1188     they are treated, filter out ignored files and pass -k options
1189     to multiple cvs adds.
1190    
1191     * types.lisp (*mcvs-new-types*): New constant.
1192     (*types-comments*): Constant moved here from import.lisp.
1193     (types-remove-ignores): New function. Code factored out from
1194     mcvs-import.
1195     (types-let-user-edit): Likewise.
1196     (types-make-cvs-adds): New function.
1197    
1198     * import.lisp (*types-comments*): Constant removed. Moved to
1199     types.lisp
1200     (mcvs-import): Code factored out to new functions in types.lisp, which
1201     are also used by add.lisp.
1202    
1203     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1204    
1205 kaz 1.41 * print.lisp: New file.
1206     (print-assoc-list): New function.
1207     * types.lisp: Use print-assoc-list to nicely print the types.
1208     * import.lisp (mcvs-import): Don't bother getting user to
1209     edit the types if the type list is empty. In fact, don't
1210     even create the file.
1211    
1212     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1213    
1214     * add.lisp (mcvs-add): Use new form of mapping-generate-name.
1215    
1216     2002-02-17 Kaz Kylheku <kaz@ashi.footprints.net>
1217    
1218 kaz 1.40 * import.lisp (mcvs-import): Fix broken restart for re-editing
1219     the types file.
1220     (*types-comments*): Drastically shorten the help text.
1221    
1222 kaz 1.38 2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1223    
1224 kaz 1.39 Support for filetypes in import.
1225    
1226     * posix.lisp (suffix): Separator character parameter is optional;
1227     multiple occurences of character lead to one big suffix like
1228     ".tar.gz" instead of ".gz". A leading dot means it's not a suffix but
1229     a hidden file like ".exrc".
1230     (edit-file): New function, brings up text editor for specified file.
1231    
1232     * clisp-linux.lisp (env-lookup): New function for environment
1233     variable lookup.
1234    
1235     * types.lisp: New source file.
1236     (*mcvs-types-name*, *mcvs-types*): New constants for TYPES filename.
1237     (types-read, types-write, types-sanity-check,
1238     types-to-import-wrapper-args): New functions.
1239    
1240     * import.lisp (*types-comments*): New constant.
1241     (mcvs-import): Restructured to build up list of file suffixes,
1242     allow the user to edit the file which determines how they
1243     are treated, filter out ignored files and pass -W options to cvs import
1244     to handle the rest. Failed cvs import is turned into restartable
1245     condition.
1246    
1247     * mapping.lisp (mapping-generate-name): Takes a suffix parameter.
1248     The F-files now carry a suffix obtained from the original file,
1249     because I have concluded that this was the only reasonable way
1250     to integrate with CVS.
1251    
1252     2002-02-16 Kaz Kylheku <kaz@ashi.footprints.net>
1253    
1254 kaz 1.38 * add.lisp (mcvs-add): Last change completely broke add due
1255     to not breaking out of the retry loop.
1256    
1257 kaz 1.36 2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1258    
1259 kaz 1.37 * move.lisp (mcvs-move): If the mapping-update operation returns
1260     nil, or terminates by a non-local jump, restore the filemap.
1261     * mapping.lisp (mapping-update): When returning normally,
1262     return t. When returning after doing a rollback, return nil.
1263    
1264     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1265    
1266 kaz 1.36 * error.lisp (mcvs-error-handler): Bugfix. We were closing over
1267     a binding of the iteration variable of a dolist, which has only
1268     one binding over the entire loop.
1269    
1270     * mapping.lisp (mapping-update): Gathers up info all local
1271     clobbered files, and then throw the error. Provides restart
1272     which allows user to print the list of clobbered files, and
1273     a restart which allows the user to have those files clobbered.
1274    
1275     2002-02-13 Kaz Kylheku <kaz@ashi.footprints.net>
1276    
1277     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for last bugfix.
1278    
1279 kaz 1.35 2002-02-11 Kaz Kylheku <kaz@ashi.footprints.net>
1280    
1281     * checkout.lisp (mcvs-checkout-wrapper): Bugfix for bad
1282     destructuring-bind if there are no arguments.
1283    
1284 kaz 1.30 2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1285    
1286 kaz 1.34 * mapping.lisp (mapping-difference): Reformatted documentation string.
1287     (mapping-update): Implemented a continue restart which rolls back
1288     the changes done to the local filesystem.
1289    
1290     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1291    
1292 kaz 1.31 * error.lisp (mcvs-error-handler): Rearranging the menu,
1293     so "T" is clumped with the main options, and any special restarts
1294 kaz 1.32 are clearly separated. Changed wording.
1295 kaz 1.31
1296     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1297    
1298 kaz 1.30 * update.lisp (mcvs-update): Re-print the "Invoking CVS" chatter
1299     if the user re-tries the error.
1300    
1301     * add.lisp (mcvs-add): CVS failure is now a restartable error;
1302 kaz 1.33 user can decide whether to roll back the effects or retry the
1303     CVS add, or terminate to keep the effects anyway despite
1304     the failed add.
1305 kaz 1.30
1306     2002-02-10 Kaz Kylheku <kaz@ashi.footprints.net>
1307    
1308     * install.sh: Stop the script if there are compilation errors.
1309    
1310 kaz 1.24 2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1311    
1312 kaz 1.29 * error.lisp (*mcvs-errors-occured-p*): New special variable.
1313     (mcvs-error-handler): Set *mcvs-errors-occured-p* to T.
1314     * mcvs-main.lisp (mcvs): Take *mcvs-errors-occured-p* into
1315     account in computing termination status.
1316    
1317     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1318    
1319 kaz 1.28 * update.lisp: Remove spurious newlines from error messages.
1320     * add.lisp: Likewise.
1321     * options.lisp: Likewise.
1322     * mapping.lisp: Likewise.
1323    
1324     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1325    
1326 kaz 1.27 Adding some restarts around cvs update.
1327    
1328     * posix.lisp (execute-command-xargs): Bail with nil return
1329     value if any command line fails.
1330    
1331     * update.lisp (mcvs-update): Tests return value of execute-program
1332     and signal condition if it's nil. Provides a continue restart
1333     as well as a retry restart to try the command again.
1334    
1335     * error.lisp (mcvs-error-handler): Show retry restarts as
1336     a special menu item "R".
1337    
1338     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1339    
1340 kaz 1.26 Added a much improved error handling routine in anticipation
1341     of better use of restarts.
1342    
1343     * error.lisp: New file
1344     (restart-destructure): New macro.
1345     (*mcvs-error-treatment*): Special variable, moved here from
1346     mcvs-main.
1347     (mcvs-error-handler): New function.
1348    
1349     * mcvs-main.lisp (mcvs-top-error-handler): Function removed.
1350     (mcvs-execute): Bind error to new mcvs-error-handler instad
1351     of mcvs-top-error-handler.
1352    
1353     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1354    
1355 kaz 1.25 * mcvs-main.lisp (*mcvs-command-table*): The "stat" abbreviation
1356     for status command added.
1357    
1358     2002-02-09 Kaz Kylheku <kaz@ashi.footprints.net>
1359    
1360 kaz 1.24 Hooking conversion tool into command structure.
1361    
1362     * mcvs-main.lisp (*convert-options*): New constant.
1363     (*mcvs-command-table*): New entry for mcvs-convert-wrapper.
1364     * convert.lisp (mcvs-convert): Fix reference to nonexistent variable.
1365     (mcvs-convert-wrapper): New function.
1366    
1367 kaz 1.22 2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
1368    
1369 kaz 1.23 Beginning work on repository conversion utility.
1370    
1371     * convert.lisp: New file. Contains conversion utility
1372     to make an Meta-CVS repository from an ordinary CVS repository,
1373     while preserving all history, tags and branches.
1374     (remove-attic-component, classify-tags, read-tags,
1375     mcvs-convert): New functions.
1376    
1377     * posix.lisp (suffix): New function. Computes suffix of file.
1378     (execute-program-xargs): New optional parameter, for specifying
1379     fixed part added at the end of each generated command line.
1380    
1381     * mapping.lisp (*mcvs-map-name*, *mcvs-local-map-name*): New constants.
1382     (*mcvs-map*, *mcvs-map-local*): Redefined in terms of new constants.
1383     (mapping-generate-name): New key parameter no-dir for not adding
1384     the directory prefix.
1385    
1386     2002-02-08 Kaz Kylheku <kaz@ashi.footprints.net>
1387    
1388 kaz 1.22 * checkout.lisp (mcvs-checkout): Ensure local mapping is
1389     sorted when written out, for easier comparisons.
1390    
1391 kaz 1.21 2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
1392    
1393     * sync.lisp (synchronize-files): Return :dir symbol when either
1394     argument is a directory.
1395     * mapping.lisp (mapping-synchronize): Chatter output messages
1396     are shorter. Handles :dir return value from synchronize-files.
1397     (mapping-update): New sanity checks for moved and added
1398     files, to avoid clobbering local files. Removed redundant
1399     call to ensure-directories-exit in move logic, because
1400     synchronize-files will do it anyway. Chatter messages reordered
1401     to occur before their corresponding action is done.
1402    
1403     2002-02-07 Kaz Kylheku <kaz@ashi.footprints.net>
1404    
1405     Improve error handling, and builtin ``debug shell''.
1406    
1407     * mcvs-main.lisp (*mcvs-error-treatment*): Special variable
1408     can have new domain value, namely :decline.
1409     (mcvs-top-error-handler): Print error message when terminating
1410     non-restartable error. Handle new :decline treatment by
1411     simply returning.
1412     (mcvs-debug-shell): Set *mcvs-error-treatment* to :decline
1413     so that errors are caught by debugger.
1414    
1415 kaz 1.20 2002-02-04 Kaz Kylheku <kaz@ashi.footprints.net>
1416    
1417     * mapping.lisp (mapping-sort): Removed function.
1418     (mapping-write): Sort written map by F- file names,
1419     not by path names. This is far better for merging, because
1420     files stay in the same place when they are renamed.
1421    
1422 kaz 1.17 2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1423    
1424 kaz 1.19 Added status, log and annotate.
1425    
1426     * mcvs-main.lisp: (*log-options*, *status-options*,
1427     *annotate-options*): New constants.
1428     (*mcvs-command-table*): Add new entries.
1429    
1430     * generic-lisp (mcvs-log-wrapper, mcvs-status-wrapper,
1431     mcvs-annotate-wrapper): New functions.
1432    
1433     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1434    
1435 kaz 1.18 Added tag command.
1436    
1437     * diff.lisp: File renamed to generic.lisp.
1438     (mcvs-diff): Function renamed to mcvs-generic.
1439    
1440     * generic.lisp (mcvs-generic): Function no longer dedicated to
1441     diffing only; takes CVS command to execute as an argument,
1442     also takes arguments and files as separate lists.
1443     (mcvs-diff-wrapper): Modified to invoke mcvs-generic properly.
1444     (mcvs-tag-wrapper): New function, uses mcvs-generic to implement
1445     tag command.
1446    
1447     * mcvs-main.lisp (*tag-options*): New constant.
1448     (*mcvs-command-table*): New entry for tag command.
1449    
1450     2002-02-03 Kaz Kylheku <kaz@ashi.footprints.net>
1451    
1452 kaz 1.17 Added workaround for operating system argument passing limitations,
1453     resembling the Unix xargs utility. Also, trimmed some fat
1454     from the basename function.
1455    
1456     * clisp-linux.lisp: (*argument-limit*): New constant added.
1457     (arglist-to-command-string): Function removed.
1458     (execute-program): Function removed.
1459     (shell-interpreter): New function, wrapper for CLISP's shell
1460     function, turns exit status into T (success) or NIL (failure).
1461    
1462     * diff.lisp (mcvs-diff): Uses execute-program-xargs instead
1463     of execute-program.
1464    
1465     * posix.lisp (basename): Does not canonicalize path name. This
1466     turns out to be an unnecessary performance hit in some cases.
1467     (arglist-to-command-string): New function. Similar to what was
1468     removed from clisp-linux, but this one properly escapes all
1469     shell metacharacters.
1470     (execute-program): New function, calls shell-interpreter.
1471     (execute-program-xargs): New function. Takes two argument lists.
1472     Forms one or more command lines by combining the first argument list
1473     with one or more pieces of the second argument list, and
1474     executes each command. The length of the pieces is determined
1475     by the argument passing limit.
1476    
1477     * dirwalk.lisp (ensure-directories-gone): Add use of
1478     canonicalize-path because basename doesn't do it.
1479    
1480 kaz 1.12 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
1481    
1482 kaz 1.16 Algorithmic efficiency improvements. No longer using
1483     abstract set operations to update file structure or find
1484     duplicates in the maps. Could still streamline the sorting.
1485    
1486     * mapping.lisp (mapping-sort): Express more succinctly using key.
1487     (mapping-dupe-check): Rewrite using loop over sorted lists.
1488     (mapping-difference): New function for computing mapping change.
1489     (mapping-update): Modify to use mapping-difference.
1490    
1491     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
1492    
1493 kaz 1.15 * mapping.lisp (mapping-update): When moving files, ensure
1494     that the target is unlinked if it exists.
1495    
1496     * move.lisp (simple-rename): No longer do target unlinking
1497     here. Also bugfix: it wasn't handling renames of directories
1498     containing just one file.
1499    
1500     2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
1501    
1502 kaz 1.13 * mapping.lisp (mapping-dupe-check): New function for
1503     detecting duplicate objects or paths in a mapping.
1504     (mapping-sane-p): Function removed.
1505     (mapping-read): Use mapping-dupe-check to verify a map
1506     when asked by the sanity-check keyword.
1507     (mapping-update): Specify sanity check when reading MCVS/MAP.
1508    
1509 kaz 1.14 * checkout.lisp (mcvs-checkout): Checkout also performs
1510     sanity check.
1511    
1512 kaz 1.13 2002-02-02 Kaz Kylheku <kaz@ashi.footprints.net>
1513    
1514 kaz 1.12 * mcvs-main.lisp (mcvs): Use CLISP's exit function correctly
1515     to establish proper termination status.
1516    
1517 kaz 1.8 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
1518    
1519 kaz 1.10 * mcvs-main.lisp (mcvs-execute): Parse command-specific options
1520     properly based on knowledge of each command's set of options.
1521     (parse-args): Function removed.
1522    
1523 kaz 1.11 * options.lisp (parse-opt): Correctly process long options with
1524     arguments. Argument is part of the string, separated by = symbol.
1525    
1526 kaz 1.10 2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
1527    
1528 kaz 1.9 * options.lisp (parse-opt): When multiple options characters are
1529     bunched up into one argument, and one of them other than the
1530     last one takes an argument, then the remaining ones are
1531     considered to constitute a string which is an argument to that
1532     option. For instance -y32 means -y 32, not -y -3 -2, assuming
1533     that y is an option that requires an argument.
1534    
1535     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
1536    
1537     Top level handler terminates by non-local exit back to
1538     mcvs function, rather than by calling (exit).
1539    
1540     * mcvs-main.lisp (mcvs-top-error-handler): Restructured
1541     to call (throw 'mcvs-exit t).
1542     (mcvs-execute): Ensure that NIL is returned by normal exit.
1543     (mcvs): Catches 'mcvs-exit throw, and calls (exit 0) or (exit 1)
1544     accordingly.
1545    
1546    
1547     2002-01-31 Kaz Kylheku <kaz@ashi.footprints.net>
1548    
1549 kaz 1.8 Renamed all ``filemap-'' functions to ``mapping-'' prefix.
1550    
1551     * mapping.lisp (filemap-generate-name, filemap-sort,
1552     filemap-extract-paths, filemap-lookup, filemap-prefix-lookup,
1553     filemap-prefix-matches, filemap-object-lookup,
1554     filemap-same-object-p, filemap-same-path-p, filemap-moved-p,
1555     filemap-rename-files, filemap-sane-p): Old names removed.
1556     (mapping-generate-name, mapping-sort,
1557     mapping-extract-paths, mapping-lookup, mapping-prefix-lookup,
1558     mapping-prefix-matches, mapping-object-lookup,
1559     mapping-same-object-p, mapping-same-path-p, mapping-moved-p,
1560     mapping-rename-files, mapping-sane-p): New names created.
1561     (mapping-read, mapping-write, mapping-synchronize,
1562     mapping-update): Edit calls to renamed functions.
1563     * add.lisp (mcvs-add): Likewise.
1564     * diff.lisp (mcvs-diff): Likewise.
1565     * filt.lisp (mcvs-filt): Likewise.
1566     * import.lisp (mcvs-import): Likewise.
1567     * move.lisp (simple-rename, simple-move-to-dir, move-guts): Likewise.
1568     * remove.lisp (mcvs-remove): Likewise.
1569    
1570 kaz 1.6 2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1571    
1572 kaz 1.7 Factored out repeated code for reading and writing of the MAP and
1573     MAP-LOCAL files.
1574    
1575     * mapping.lisp (mapping-read, mapping-write): New functions.
1576     (mapping-synchronize, mapping-update): Use new functions.
1577     * move.lisp (mcvs-move): Likewise.
1578     * filt.lisp (mcvs-filt): Likewise.
1579     * add.lisp (mcvs-add): Likewise.
1580     * remove.lisp (mcvs-remove): Likewise.
1581     * checkout.lisp (mcvs-checkout): Likewise.
1582     * diff.lisp (mcvs-diff): Likewise.
1583     * import.lisp (mcvs-import): Likewise.
1584    
1585     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1586    
1587 kaz 1.6 * filt.lisp (mcvs-filt): use *mcvs-dir* variable instead of
1588     hard coding "MCVS" string.
1589    
1590     2002-01-30 Kaz Kylheku <kaz@ashi.footprints.net>
1591    
1592     * MCVS-PAPER: Renamed to Meta-CVS-PAPER
1593    
1594     * README: Change all references to MCVS to Meta-CVS, the
1595     new official name of the program.
1596     * add.lisp: Likewise
1597     * chatter.lisp: Likewise
1598     * checkout.lisp: Likewise
1599     * clisp-linux.lisp: Likewise
1600     * commit.lisp: Likewise
1601     * diff.lisp: Likewise
1602     * dirwalk.lisp: Likewise
1603     * filt.lisp: Likewise
1604     * import.lisp: Likewise
1605     * INSTALL: Likewise
1606     * mapping.lisp: Likewise
1607     * mcvs-main.lisp: Likewise
1608     * Meta-CVS-PAPER: Likewise
1609     * move.lisp: Likewise
1610     * options.lisp: Likewise
1611     * posix.lisp: Likewise
1612     * RELEASE-NOTES: Likewise
1613     * remove.lisp: Likewise
1614     * restart.lisp: Likewise
1615     * seqfuncs.lisp: Likewise
1616     * split.lisp: Likewise
1617     * sync.lisp: Likewise
1618     * system.lisp: Likewise
1619     * update.lisp: Likewise
1620    
1621 kaz 1.4 2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
1622    
1623 kaz 1.5 * move.lisp (move-guts): test the actual filesystem as well
1624     as the map for existence of a directory or file. This makes
1625     the move operation behave better. Files can be moved to an
1626     existing directory that is not known to MCVS, and a file
1627     can properly clobber a target file that is not known to MCVS.
1628    
1629     * clisp-linux.lisp (directory-p, regular-p, symlink-p): define
1630     methods for these generic functions for a NIL argument, such
1631     that they return NIL.
1632    
1633     2002-01-28 Kaz Kylheku <kaz@ashi.footprints.net>
1634    
1635 kaz 1.4 * move.lisp (simple-move-to-dir): eliminated a bunch of code
1636     with the result that mcvs mv now works more like the Unix mv
1637     when moving a directory to another directory.
1638    
1639     * mcvs-main.lisp (mcvs-execute): fix bogus error message
1640     when options are given but no command.
1641    
1642     * README: don't use -z3 in example because this style of
1643     specifying an argument to an option doesn't work.
1644    
1645 kaz 1.1 2002-01-27 Kaz Kylheku <kaz@ashi.footprints.net>
1646    
1647     * add.lisp (mcvs-add): Remove bogus test for NIL or T; allow
1648     recursivep to be a generalized boolean variable. This allows
1649     mcvs add -R to work properly.
1650 kaz 1.2
1651     * mcvs-main.lisp (*cvs-command-options-arg*): add support
1652     for -u parameter, useful in cvs diff.
1653 kaz 1.3 (*mcvs-command-table*): Add "fi" shorthand for "filt".

  ViewVC Help
Powered by ViewVC 1.1.5