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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5