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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5