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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5