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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.162 - (hide annotations)
Fri Sep 6 02:17:27 2002 UTC (11 years, 7 months ago) by kaz
Branch: MAIN
Changes since 1.161: +31 -0 lines
Low level support for versioning executable bit.

* code/unix-bindings/unix.lisp (unix-funcs:chmod): New callout
function.

* code/clisp-unix.lisp (executable-p, make-executable,
make-non-executable): New generic functions.
(executable-p (file-info), make-executable (file-info),
make-executable (string), make-non-executable (file-info),
make-non-executable (string)): New methods.

* code/add.lisp (mcvs-add): Record whether new file is
executable or not, by setting executable slot in mapping-entry.

* code/create.lisp (mcvs-create): Likewise.

* code/sync.lisp (synchronize-files): New parameter,
should-be-executable, tells function which way to set
permissions after synchronizing files.

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

  ViewVC Help
Powered by ViewVC 1.1.5