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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.163 - (show annotations)
Fri Sep 6 03:19:07 2002 UTC (11 years, 7 months ago) by kaz
Branch: MAIN
Changes since 1.162: +15 -0 lines
Be transparent with respect to mapping entry property lists:
preserve unrecognized indicators and values.

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

  ViewVC Help
Powered by ViewVC 1.1.5