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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5