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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5