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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.147 - (show annotations)
Sun Jul 28 03:24:32 2002 UTC (11 years, 8 months ago) by kaz
Branch: MAIN
Changes since 1.146: +8 -0 lines
New scripts for building LaTeX document. These do the right thing
to minimize the number of times latex is run. Make proved useless.

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

  ViewVC Help
Powered by ViewVC 1.1.5