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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5