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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.170 - (show annotations)
Sun Sep 8 20:34:51 2002 UTC (11 years, 7 months ago) by kaz
Branch: MAIN
CVS Tags: mcvs-0-24
Changes since 1.169: +8 -0 lines
Fix mistake dating back to April.

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

  ViewVC Help
Powered by ViewVC 1.1.5