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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5