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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

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

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

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

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

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

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

  ViewVC Help
Powered by ViewVC 1.1.5