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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5