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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5