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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.153 - (hide annotations)
Sun Aug 4 16:18:17 2002 UTC (11 years, 8 months ago) by kaz
Branch: MAIN
Changes since 1.152: +12 -0 lines
Fixes to get clean build from fresh checkout.

* code/unix-bindings/link.sh: Remove test for presence of unix.c;
this was causing the failure to add the unix module to the module
list, which caused it to generate an empty modules.h file under
code/unix-bindings-linking-set, resulting in a bad build of lisp.run.

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

  ViewVC Help
Powered by ViewVC 1.1.5