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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5