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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5