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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.154 - (hide annotations)
Sun Aug 4 18:15:18 2002 UTC (11 years, 8 months ago) by kaz
Branch: MAIN
CVS Tags: mcvs-0-21
Changes since 1.153: +17 -0 lines
Working back support for CLISP 2.27.

* code/install.sh: Bogus *null-pointer* hack is no longer added
to the generated mcvs script, since we have our own FFI functions for
doing the test.

* code/unix-bindings/unix.lisp (unix-funcs:null-pointer-p): New
function, tests a C pointer for null, returns T or NIL.
* code/unix-bindings/impl.c (impl_null_pointer_p): New function,
C implementation of unix-funcs:null-pointer-p.

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

  ViewVC Help
Powered by ViewVC 1.1.5