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

Contents of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.5