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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5