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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.157.2.1 - (hide annotations)
Sat Aug 24 22:37:32 2002 UTC (11 years, 7 months ago) by kaz
Branch: symlink-branch
Changes since 1.157: +15 -4 lines
* code/clisp-unix.lisp (link-error): New slot, kind. Holds
the string "symbolic" or "hard".
(initialize-instance link-error): Use new slot in constructing
message.
(link): Specify "hard" value for :kind slot of condition.
(symlink): New function.

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

  ViewVC Help
Powered by ViewVC 1.1.5