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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5