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

Diff of /meta-cvs/F-0C9187C87304A15BD59A42657A3BE5A3

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.205 by kaz, Thu Oct 10 05:56:15 2002 UTC revision 1.205.2.95 by kaz, Wed Feb 4 07:42:12 2004 UTC
# Line 1  Line 1 
1    2004-02-03  Kaz Kylheku  <kaz@ashi.footprints.net>
2    
3            * docs/Meta-CVS-PAPER.txt: Revising and editing.
4    
5    2004-02-02  Kaz Kylheku  <kaz@ashi.footprints.net>
6    
7            * code/convert.lisp (mcvs-convert): Ensure that the converted
8            project has TYPES and .cvsignore files, not just a MAP, and that
9            these have all the branch and version tags.  This is important,
10            because users might end up independently adding these on branches
11            and end up with merge problems.
12    
13    2004-01-31  Kaz Kylheku  <kaz@ashi.footprints.net>
14    
15            * code/clisp-unix.lisp (current-dir-restore): An inner macro
16            called in-original-dir is now visible to the body enclosed in
17            current-dir-restore. This allows the current directory to be
18            temporarily escaped back to the original directory.
19    
20            * code/convert.lisp (mcvs-convert): Fixed to no longer assume
21            that the target directory is a sibling of the source.  The two can be
22            located anywhere.
23            (*convert-help*): Revise text.
24    
25    2004-01-31  Kaz Kylheku  <kaz@ashi.footprints.net>
26    
27            * code/remap.lisp (mcvs-remap): Provide a restart for continuing
28            in the case when an F- file is referenced in the MAP, but no
29            working copy of it exists.  By continuing through all these
30            errors, the MAP is cleaned of the nonexistent entries, which
31            provies a way to clean up after the naive ``mcvs convert''
32            algorithm.
33    
34            * code/convert.lisp (*convert-help*): Add text recommending the use
35            of ``mcvs remap'' to clean up.
36    
37    2004-01-31  Kaz Kylheku  <kaz@ashi.footprints.net>
38    
39            * code/convert.lisp (mcvs-convert): RCS files that are in an Attic
40            subdirectory in the source CVS project end up in the Attic
41            directory of the target Meta-CVS project.
42            (remove-attic-component): Return second value that indicates
43            whether the Attic component was stripped.
44    
45    2004-01-28  Kaz Kylheku  <kaz@ashi.footprints.net>
46    
47            * code/convert.lisp (mcvs-convert): Skip CVS directories.
48            In the repository, these contain things like watcher and editor lists,
49            which probably should not be be replicated in the Meta-CVS sandbox.
50            Sort the newly created MAP properly.
51            (remove-attic-component): If input is "Attic", produce ".".
52    
53    2004-01-28  Kaz Kylheku  <kaz@ashi.footprints.net>
54    
55            More convert-related changes.
56    
57            * code/mcvs-main.lisp (*mcvs-command-table*): Add *convert-help*.
58    
59            * code/convert.lisp (mcvs-convert): Bugfix: failure to increment
60            branch number by two to generate unique branch tags.
61            Bugfix: paths going into MAP must be canonicalized.
62            (*convert-help*): New string constant.
63    
64    2004-01-28  Kaz Kylheku  <kaz@ashi.footprints.net>
65    
66            Fixes to convert command to make it useable.
67    
68            * code/posix.lisp (suffix): Return dir name as additional value.
69            (execute-program-xargs): In the case that there are no variable
70            args passed, the fixed trailing args should still be passed
71            to the command.
72    
73            * code/convert.lisp (remove-attic-component): Rewrite with
74            different semantics.
75            (mcvs-convert): Fix path handling bug whereby basenames
76            instead of full paths were written to MAP file.
77            Don't call rcs to make tags when there are none.
78            Extra tracing to tell user what is going on.
79    
80    2004-01-26  Kaz Kylheku  <kaz@ashi.footprints.net>
81    
82            * code/grab.lisp (mcvs-grab): Bugfixes to repeated grab over
83            partial sandbox: abstract path instead of real path used for
84            reading new symbolic link targets, and execute permissions.
85    
86    2004-01-26  Kaz Kylheku  <kaz@ashi.footprints.net>
87    
88            * code/branch.lisp (equal-sticky): Add missing cases for handling
89            the valid tag value NIL.
90    
91    2004-01-08  Kaz Kylheku  <kaz@ashi.footprints.net>
92    
93            * code/link.lisp (*link-help*): Grammar fix.
94    
95    2004-01-08  Kaz Kylheku  <kaz@ashi.footprints.net>
96    
97            * code/options.lisp (process-cvs-options): Update
98            --version copyright message to 2004.
99    
100    2004-01-08  Kaz Kylheku  <kaz@ashi.footprints.net>
101    
102            Parsing directory sticky tag from CVS/Tag requires
103            slightly different logic from the sticky tags in CVS/Entries.
104            CVS/Entries doesn't distinguish branch and version
105            sticky tags.
106    
107            This change gets rid of the incorrect warning about
108            not all files being on the same tag when the working
109            copy is sticky to a version tag.
110    
111            * code/branch.lisp (parse-sticky): Function renamed to
112            parse-dir-sticky.
113            (parse-entries-sticky): New function.
114            (equal-sticky): New function.
115            (read-cvs-entries): Use parse-entries-sticky.
116            (same-tag-check): Use equal-sticky instead of equal.
117            (what-are-we-sticky-to): Use parse-dir-sticky.
118    
119    2004-01-08  Kaz Kylheku  <kaz@ashi.footprints.net>
120    
121            Cleanup.
122    
123            * code/grab.lisp (*grab-help*): Spelling error.
124    
125            * code/system.lisp: Require posix module before clisp-unix,
126            which wants it.
127    
128            * code/clisp-unix.lisp: Don't bother requiring posix,
129            since it comes from system.
130            Require "chatter" rather than "chatter.lisp"; this is why
131            were not getting the compiled version of this module
132            into the images.
133    
134    2004-01-08  Kaz Kylheku  <kaz@ashi.footprints.net>
135    
136            Upgrade to CLISP 2.32.
137    
138            * code/unix-bindings/unix.lisp: If the CLISP version is
139            newer than 2.31 then set the variables ffi::*output-c-functions*
140            and ffi::*output-c-variables* to get the old translator
141            behavior.
142    
143            * code/rcs-utils.lisp: We can't use #s read syntax for
144            specifying an rcs-token structure literal, because
145            we have not specialized make-load-form. This used to
146            work anyway but now breaks under CLISP 2.32.
147    
148    2003-07-15  Kaz Kylheku  <kaz@ashi.footprints.net>
149    
150            * code/mcvs-generic.lisp (mcvs-generic): Removed
151            the default-include-meta-files keyword parameter.
152            (mcvs-tag, mcvs-commit): Remove use of keyword parameter.
153            This fixes the silly behavior of including meta files
154            even when the command line specifies a file list.
155            Also, bugfix: *nometa-option* now works when
156            global-if-empty-file-list is true, and there are no files.
157    
158            * code/update.lisp (mcvs-update): Remove use of keyword
159            parameter in call to mcvs-generic.
160    
161    2003-07-06  Kaz Kylheku  <kaz@ashi.footprints.net>
162    
163            Based on a patch from Walter C. Pelissero <walter@pelissero.de>
164    
165            * code/mcvs-main.lisp (with-open-file-ignore-errors): New macro.
166            (mcvs-execute): Use new macro to properly handle opening the
167            controlling terminal when there are errors other than
168            the non-existence of the object.
169    
170    2003-06-12  Kaz Kylheku  <kaz@ashi.footprints.net>
171    
172            * code/mcvs-main.lisp (mcvs-help): Move some special declarations
173            out of the function to the top level.
174    
175    2003-05-25  Kaz Kylheku  <kaz@ashi.footprints.net>
176    
177            * code/filt.lisp (mcvs-filt-loop): Do not filter F- names that
178            are embedded in paths (preceded by a slash). This supersedes
179            the old behavior which was to avoid filtering F- names preceded
180            by "MCVS/".
181    
182    2003-04-30  Kaz Kylheku  <kaz@ashi.footprints.net>
183    
184            * code/generic.lisp (mcvs-generic): The after-synchronization
185            was going in both directions rather than just MCVS -> tree.
186    
187    2003-04-30  Kaz Kylheku  <kaz@ashi.footprints.net>
188    
189            * code/mcvs-main.lisp (mcvs-execute): If not able to open controlling
190            tty, emit some warning messages that interactive error handling is
191            disabled. This alerts users to problems, like missing /dev directory
192            on Cygwin.
193    
194    2003-04-24  Kaz Kylheku  <kaz@ashi.footprints.net>
195    
196            * docs/generate.sh: Use valid shell syntax for identifiers.
197    
198    2003-04-24  Kaz Kylheku  <kaz@ashi.footprints.net>
199    
200            * code/mcvs-main.lisp (mcvs-execute): Bugfix: add missing OPEN
201            option to avoid trying to create the controlling terminal device
202            if it does not exist, and yield NIL as expected.
203    
204    2003-04-23  Kaz Kylheku  <kaz@ashi.footprints.net>
205    
206            New commands, sync-from-cvs and sync-to-cvs.
207    
208            * code/mcvs-main.lisp (*sync-to-cvs-options*, *sync-from-cvs-options*):
209            New option constants.
210            (*mcvs-command-table*): New entries.
211            (*usage*): New help text.
212    
213            * code/generic.lisp (mcvs-generic): New keyword parameter
214            no-invoke-cvs.
215            (mcvs-sync-to-wrapper, mcvs-sync-from-wrapper): New functions.
216    
217    2003-04-23  Kaz Kylheku  <kaz@ashi.footprints.net>
218    
219            Improved error handling again in a flash of sanity. The whole
220            idea of ``bail'' as a restart is gone. All code which must perform
221            some complex cleanup action does so as part of normal unwinding.
222            And so termination becomes safe.
223    
224            * code/update.lisp (mcvs-update): Change bail restart to continue.
225    
226            * code/mcvs-main.lisp (*global-options*): Remove "error-bail".
227            (*usage*): Remove description of --error-bail.
228            (mcvs-execute): Bind *mcvs-error-treatment* to :terminate rather
229            than :bail if controlling TTY cannot be opened.
230    
231            * code/move.lisp (mcvs-move): Change "Undoing move" error message
232            to "Undoing changes to map".
233    
234            * code/add.lisp (mcvs-add): Get rid of bail restart; move cleanup
235            code into unwind-protect block.
236    
237            * code/error.lisp (*mcvs-error-treatment*): Touch up docstring.
238            (mcvs-error-handler): Remove anything having to do with :bail.
239            Change description of `T' command to suggest that it is safe.
240    
241            * code/options.lisp (filter-mcvs-options): Remove handling of
242            "error-bail" option.
243    
244            * code/mapping.lisp (mapping-update): Get rid of outermost
245            restart-case, which had just a bail restart. Replace it with
246            unwind-protect block which does exactly the same restoration.
247    
248    2003-04-22  Kaz Kylheku  <kaz@ashi.footprints.net>
249    
250            Improved error handling.  Use of tty for user interaction, plus
251            new global option for selecting non-interactive bail behavior.
252    
253            * code/mcvs-main.lisp (*global-options*): add --error-bail option.
254            (*usage*): Describe new option.
255            (mcvs-execute): Dynamically bind *interactive-error-io* variable
256            to a stream formed by opening the controlling tty.
257            Send error message to *error-output* rather than *standard-output*.
258    
259            * code/unix-bindings/unix.lisp (unix-funcs:ctermid): New function,
260            FFI interface to mcvs_ctermid.
261    
262            * code/unix-bindings/wrap.c (mcvs_ctermid): New function.
263    
264            * code/chatter.lisp (chatter): Chatter now goes to *error-output*
265            rather than *standard-output*.
266    
267            * code/error.lisp (*interactive-error-io*): New special variable,
268            holds stream open to controlling tty.
269            (mcvs-terminate): New function.
270            (mcvs-error-handler): Use *interactive-error-io* to print menu
271            and obtain user input. Support the :bail value of
272            *mcvs-error-treatment* Plus some cosmetic changes.
273    
274            * code/options.lisp (filter-mcvs-options): Support --error-bail option.
275    
276            * code/filt.lisp (mcvs-filt-loop): Bugfix, (read-line t ...)
277            should be (read-line *standard-input* ...) because t stands
278            for *terminal-io* rather than *standard-io*, unlike in the
279            format function!
280    
281            * code/rcs-utils.lisp (rcs-read-token): Read from *standard-input*
282            rather than *terminal-io*.
283    
284    
285    2003-04-21  Kaz Kylheku  <kaz@ashi.footprints.net>
286    
287            Slightly redesigned error handling protocol.
288    
289            * code/update.lisp (mcvs-update): Change continue restart to bail.
290    
291            * code/add.lisp (mcvs-add): Likewise.
292    
293            * code/error.lisp (mcvs-error-handler): Specially recognize two
294            additional restart symbols, bail and info. A bail restart performs
295            any rolling back and cleanup and terminates. Continuation is now
296            properly reserved for actions that proceed boldly to finish
297            the job, possibly irretrievably clobbering precious data.
298            The info restart is now a standard way to indicate that more
299            details about the error can be obtained, so this does not have
300            to be represented as a special action with an ad-hoc restart.
301    
302            * code/create.lisp (mcvs-create): Change show restart to info.
303    
304            * code/remap.lisp (mcvs-remap): Change ignore restart to continue.
305    
306            * code/mapping.lisp (mapping-update): Change ignore and do-clobber
307            restarts to continue, and print-clobbers restart to info.
308            Change continue restart to bail.
309    
310    2003-04-14  Kaz Kylheku  <kaz@ashi.footprints.net>
311    
312            New command, remote-filt.
313    
314            * code/mcvs-main.lisp (*remote-filt-options*): New option constant.
315            (*mcvs-command-table*): Entries for new command added.
316            (*usage*): Help text added.
317    
318            * code/filt.lisp (filt-select-map): New keyword parameter for
319            specifing repository module. CVS up -p or co -p command generated
320            accordingly. Also, little glitch fixed: the local case descends
321            into the MCVS directory, to avoid a warning message that occurs
322            when CVS is used in server mode.
323            (mcvs-filt-loop): New function, contains most of the old mcvs-filt
324            function body.
325            (mcvs-filt): Calls new mcvs-filt-loop to do actual filtering work.
326            (mcvs-remote-filt, mcvs-remote-filt-wrapper): New functions.
327    
328            * code/clisp-unix.lisp (with-input-from-program): Macro changed
329            to include debug tracing of the invoked command.
330    
331    2003-04-13  Kaz Kylheku  <kaz@ashi.footprints.net>
332    
333            * code/grab.lisp (read-word-hash): Convert each token to a simple
334            string object. This can save a lot of memory when large numbers
335            of files have to be analyzed.
336    
337    2003-04-12  Kaz Kylheku  <kaz@ashi.footprints.net>
338    
339            * code/mapping.lisp (mapping-read): Provide a restart for
340            file errors, which lets the user interactively substitute an
341            empty map if the file can't be read. This is intended to handle
342            the case when MCVS/MAP is missing; for example, the user
343            updated to a sticky date for which no revision of the MAP
344            exists. The effect of continuing will be that all files
345            will disappear.
346    
347    2003-04-12  Kaz Kylheku  <kaz@ashi.footprints.net>
348    
349            Revamped the synchronization logic. Synchronization now happens
350            in a specific direction.  For example, if we are doing a diff,
351            we just need to push changes from the tree to the MCVS directory,
352            not the other way around. Or: before an update or commit, we push from
353            the tree to MCVS, then after the update, in the other direction.
354    
355            * code/update.lisp (mcvs-update): The before update is done
356            in the :left direction only, and the after update in the :right.
357    
358            * code/move.lisp (mcvs-move): The just-in-case sync is done
359            in the :left direction only.
360    
361            * code/link.lisp (mcvs-link): Likewise.
362    
363            * code/remove.lisp (mcvs-remove): Likewise.
364    
365            * code/add.lisp (mcvs-add): Get rid of mapping-synchronize call;
366            it's completely unnecessary, since the new files are not even
367            in the MAP-LOCAL, and the add logic explicitly links them into
368            the MCVS directory.
369    
370            * code/generic.lisp (mcvs-generic): New keyword parameter,
371            need-sync-before. Before-synchronization done in :left direction,
372            after-synchronization in :right direction. Before-synchronization
373            is now not done by default; need-sync-before must be specified.
374            (mcvs-commit-wrapper): Specify before and after sync.
375            (mcvs-diff-wrapper, mcvs-status-wrapper,
376            mcvs-edit-wrapper): Explicitly specify before sync.
377            (mcvs-tag-wrapper, mcvs-annotate-wrapper): Implicitly specify no sync.
378            (mcvs-unedit-wrapper): Add before sync.
379    
380            * code/sync.lisp (synchronize-files):  New key parameter :direction,
381            values can be :left, :right or :either. Default is :either.
382            If the value is :left or :right, then a sync is done only in that
383            direction, otherwise the value :no-sync is returned.
384            Behavior change: if the left file is missing (F- file in MCVS
385            directory) it is not re-created, but rather :no-sync is returned.
386            Also, if both files exist, have the same timestamp, and are
387            distinct objects, if the direction is :left or :right, then
388            the appropriate restart is automatically chosen. So this will
389            do the right thing on filesystems where link() is performed by
390            copying, without bothering the user with the error.
391    
392            * code/mapping.lisp (mapping-synchronize): New :direction key
393            parameter, passed down to synchronize-filed. The new :no-sync
394            return value from synchronize-files is handled.
395            (mapping-update): Select the :right direction for synchronizing
396            moves, adds or rollbacks.
397    
398    2003-04-06  Kaz Kylheku  <kaz@ashi.footprints.net>
399    
400            * code/posix.lisp (execute-program-xargs): Fix again: perform
401            all of the split command lines, even if some of them fail.
402            The returned status is a logical AND combination; if all of the
403            subcommands succeeded then it's T, otherwise NIL.
404    
405    
406    2003-03-31  Kaz Kylheku  <kaz@ashi.footprints.net>
407    
408            * code/posix.lisp (execute-program-xargs): Bugfix: if program
409            execution fails, then bail out of the entire function, not just
410            the inner loop. Otherwise the program is wrongly run again,
411            on a bogus file list.
412    
413    2003-03-04  Kaz Kylheku  <kaz@ashi.footprints.net>
414    
415            * code/update.lisp (mcvs-update): Simplified restart code.
416    
417    2003-03-04  Kaz Kylheku  <kaz@ashi.footprints.net>
418    
419            * code/restart.lisp (parse-restart-case-keywords): New function.
420            (super-restart-case-expander): Some logic factored out
421            into new function.
422    
423    2003-03-03  Kaz Kylheku  <kaz@ashi.footprints.net>
424    
425            * code/mapping.lisp (mapping-update): Rewrite restart-bind
426            block using super-restart-case.
427    
428    2003-03-01  Kaz Kylheku  <kaz@ashi.footprints.net>
429    
430            * code/restart.lisp (super-restart-case-expander): Roll the
431            functionality of :report-format into :report.
432            (super-restart-case): Slight rearrangement of the tagbody
433            to eliminate the skip around the out-code.
434    
435    2003-03-01  Kaz Kylheku  <kaz@ashi.footprints.net>
436    
437            * code/restart.lisp (super-restart-case-expander): New function.
438            (super-restart-case): New macro.
439    
440            * code/create.lisp (mcvs-create): Rewrite a restart-bind
441            construct more succinctly using super-restart-case.
442    
443    2003-02-26  Kaz Kylheku  <kaz@ashi.footprints.net>
444    
445            * code/create.lisp (mcvs-create): After the TYPES file is
446            edited, scan the MCVS directory for unexpected files.
447            The intent is to detect text editor backups. If any are
448            found, some interactive error handling lets the user acknowledge
449            their deletion. If they are not deleted, then cvs import will
450            bring them into the repository. This behavior was discovered
451            by Johannes Grødem who suggested that it could be handled.
452    
453    2003-02-25  Kaz Kylheku  <kaz@ashi.footprints.net>
454    
455            * code/unix-bindings/wrap.c (mcvs_spawn): One more waitpid() bug!
456            The SIGCHLD signal handler was being set in the child process only,
457            so although we fixed the waitpid() behavior in the CVS child
458            process, we did not fix it in the Meta-CVS process. The ECHILD
459            problem was sporadically reproduced by Johannes Grødem on a fast
460            Athlon machine; it requires CVS to exit before Meta-CVS reaches
461            the waitpid() call.
462    
463    2003-02-24  Kaz Kylheku  <kaz@ashi.footprints.net>
464    
465            * code/options.lisp (format-opt): Some one-argument options of
466            CVS must appear as one command parameter, with no separation
467            between the option letter and the argument characters.
468            For example, ``cvs log -r foo::bar'' is invalid, it must
469            be ``cvs log -rfoo::bar''.  The format-opt function now
470            formats *all* one-letter options that have one argument
471            as one string.
472    
473    2003-02-23  Kaz Kylheku  <kaz@ashi.footprints.net>
474    
475            * code/mcvs-main.lisp (*usage*): Add help text for --up option.
476    
477    
478    2003-02-20  Kaz Kylheku  <kaz@ashi.footprints.net>
479    
480            Fix remaining occurences of SIG_IGN action for SIGCHLD being
481            passed to child processes.
482    
483            * code/unix-bindings/unix.lisp (unix-funcs:default-sigchld): New call
484            out function.
485    
486            * code/clisp-unix.lisp (with-input-from-program,
487            with-output-to-program): Call the new default-sigchild function
488            to set SIGCHILD signal handler to SIG_DFL just before creating
489            the pipe.
490    
491            * code/unix-bindings/wrap.c (mcvs_default_sigchld): New function.
492    
493    2003-02-12  Kaz Kylheku  <kaz@ashi.footprints.net>
494    
495            New --up option added for escaping out of nested sandboxes.
496    
497            * code/mcvs-main.lisp (*cvs-options*): Added "up" 1 arg option.
498    
499            * code/options.lisp (*nesting-escape-option*): New global,
500            default value 0.
501            (filter-mcvs-options): Filter new option, parse out and validate
502            integer argument.
503    
504            * code/mapping.lisp (mcvs-locate): When searching for MCVS
505            directory, skip N matches, where N is the value of
506            *nesting-escape-option*.
507    
508    2003-02-12  Kaz Kylheku  <kaz@ashi.footprints.net>
509    
510            * code/mcvs-main.lisp (*cvs-options*): Constant renamed
511            to *global-options*.
512    
513    2003-02-12  Kaz Kylheku  <kaz@ashi.footprints.net>
514    
515            * code/unix-bindings/wrap.c (mcvs-spawn): In the child process,
516            reset the signal handler for SIGCHLD to SIG_DFL before exec-ing
517            the new image. This is needed because CLISP set it to SIG_IGN,
518            which causes child reaping problems in spawned programs.
519            This should fix the ``No child processes'' problem when running
520            CVS from Meta-CVS.
521    
522    2003-02-11  Kaz Kylheku  <kaz@ashi.footprints.net>
523    
524            * code/memoize.lisp (remove-key-aux-rest, strip-lambda-list,
525            extract-tests, remove-tests, memoize-expander, factor-memo-labels,
526            define-memoized-function, memoized-labels): Documentation strings
527            added to this cryptic code.
528    
529    2003-02-02  Kaz Kylheku  <kaz@ashi.footprints.net>
530    
531            Make tag command work on whole tree if no arguments are given,
532            just like commit.
533    
534            * code/generic.lisp (mcvs-generic): no-fix-empty-filelist keyword
535            parameter renamed to global-if-empty-file-list, which more closely
536            reveals the purpose.
537            (mcvs-commit-wrapper): Use new keyword name.
538            (mcvs-tag-wrapper): Specify T value for :global-if-empty-filelist
539            argument, so the whole project is tagged by default if no arguments
540            are given.
541    
542    2003-02-01  Kaz Kylheku  <kaz@ashi.footprints.net>
543    
544            * code/unix-bindings/wrap.c (impl_spawn): Try waitpid again in a loop
545            while it returns -1, and errno is EINTR.
546            Reported by Johannes Grødem <johs@copyleft.no>.
547    
548    2003-01-30  Kaz Kylheku  <kaz@ashi.footprints.net>
549    
550            * code/posix.lisp: Move some (declaim inline) to the correct
551            location, before the function to be inlined.
552    
553            * code/clisp-unix.lisp: Likewise.
554            * code/cmucl-unix.lisp: Likewise.
555            * code/mapping.lisp: Likewise.
556    
557    2003-01-25  Kaz Kylheku  <kaz@ashi.footprints.net>
558    
559            * code/unix-bindings/wrap.c (mcvs_getcwd): If getcwd() returns
560            NULL, it only means that the buffer is too small if errno is also
561            set to ERANGE. This second condition was not being tested.
562            Reported by Johannes Grødem <johs@copyleft.no>.
563    
564            * code/clisp-unix.lisp (getcwd-error): New condition.
565            (initialize-instance (getcwd-error)): New method.
566            (getcwd): Raise getcwd-error condition if unix-funcs::getcwd
567            returns NIL.
568    
569    2003-01-15  Kaz Kylheku  <kaz@ashi.footprints.net>
570    
571            * code/unix-bindings/impl.c: File renamed to wrap.c.
572            (impl_null_pointer_p, impl_get_errno, impl_set_errno, impl_readdir,
573            impl_readlink, impl_stat, impl_lstat, impl_fstat, impl_getcwd,
574            impl_spawn): Prefix changed from ``impl_'' to ``mcvs_''.
575    
576            * code/unix-bindings/link.sh, code/unix-bindings/Makefile,
577            code/unix-bindings/unix.lisp: Updated accordingly.
578    
579    2003-01-13  Kaz Kylheku  <kaz@ashi.footprints.net>
580    
581            Support -k CVS option in merge and remerge commands.
582            Reported by Jamie Wellnitz.
583    
584            * code/mcvs-main.lisp (*merge-options*, *remerge-options*): Add
585            one argument -k option.
586    
587            * code/merge.lisp (mcvs-merge): Support extra argument for passing
588            command options. Pass them down to mcvs-update.
589            (mcvs-merge-wrapper, mcvs-remerge-wrapper): Don't ignore command
590            options but pass them to mcvs-merge.
591    
592    2003-01-13  Kaz Kylheku  <kaz@ashi.footprints.net>
593    
594            * code/install.sh: More fail-safe way to locate library directory;
595            works even when clisp executable is a symlink.  Thanks to Sam
596            Steingold, CLISP maintainer, for tip.
597    
598    2003-01-12  Kaz Kylheku  <kaz@ashi.footprints.net>
599    
600            Hard link sync optimization.
601    
602            * code/mapping.lisp (mapping-synchronize): New optional parameter,
603            specifies map to use instead of reading *map-local*.
604    
605            * code/mcvs-generic.lisp (mcvs-generic): Pass extra parameter to
606            mapping-synchronize to only sync the selected subset of files.
607    
608    2003-01-01  Kaz Kylheku  <kaz@ashi.footprints.net>
609    
610            * code/unix-bindings/impl.c (impl_spawn): For Cygwin, re-implemented
611            this function as a wrapper for the spawnvp function. The combination
612            of fork + execvp + waitpid does not work because waitpid is broken;
613            it waits for thep rocess, but then returns -1 and sets errno
614            to ECHILD.
615    
616    2002-12-27  Kaz Kylheku  <kaz@ashi.footprints.net>
617    
618            * code/options.lisp (process-cvs-options): The version number
619            now has three components.
620    
621    2002-12-13  Kaz Kylheku  <kaz@ashi.footprints.net>
622    
623            * code/install.sh: Now works under CLISP installations which
624            call the CLISP executable lisp.exe rather than lisp.run.
625            This is the case under Cygwin as of CLISP 2.30 or so.
626    
627    2002-12-03  Kaz Kylheku  <kaz@ashi.footprints.net>
628    
629            * code/sync.lisp (synchronize-files): Call exec-check using
630            file info object, rather than file name. This cuts in half
631            the number of calls to stat().
632    
633    2002-12-03  Kaz Kylheku  <kaz@ashi.footprints.net>
634    
635            Discontinuing use of CLISP's ext:run-program function in favor
636            of a new workalike which doesn't rely on the shell interpreter.
637    
638            * code/unix-bindings/unix.lisp (unix-funcs:spawn): New C call out
639            function (unix-funcs:run-program): New function, implemented using
640            spawn.
641    
642            * code/unix-bindings/impl.c (impl_spawn): New function; wraps
643            up fork, execvp and waitpid.
644    
645            * code/clisp-unix.lisp: Switch from ext:run-program to
646            unix-funcs:run-program.
647    
648    2002-11-20  Kaz Kylheku  <kaz@ashi.footprints.net>
649    
650            Some security fixes.  Funny I didn't think of this sooner!
651    
652            * code/types.lisp (types-read): Make sure *read-eval* is bound to
653            nil when calling READ.
654    
655            * code/mapping.lisp (mapping-read-raw-map, displaced-path-read):
656            Likewise.
657    
658    
659    2002-11-16  Kaz Kylheku  <kaz@ashi.footprints.net>
660    
661            * code/posix.lisp (invoke-editor-on): Honor the CVSEDITOR and VISUAL
662            environment variables, not just EDITOR.
663    
664    2002-11-09  Kaz Kylheku  <kaz@ashi.footprints.net>
665    
666            * code/link.lisp (mcvs-link): Revamped link command to behave properly
667            when the destination object is a directory. It must create the link in
668            that directory, rather than try to create a link with that name.
669            Plus handles various tricky cases. Trailing slash in destination name,
670            destination that is a directory within target directory, attempted
671            link creation in MCVS etc.
672    
673    2002-11-03  Kaz Kylheku  <kaz@ashi.footprints.net>
674    
675            More support for -n option.
676    
677            * code/mcvs-main.lisp (*usage*): Document -n option.
678    
679            * code/move.lisp (mcvs-move-wrapper): Remove bogus error check
680            for presence of global options.
681    
682            * code/options.lisp (honor-dry-run): New macro for conditionally
683            not executing some forms if it's a dry run, and logging some
684            debugging information.
685    
686            * code/sync.lisp (synchronize-files): Honor dry run.
687    
688            * code/mapping.lisp (mapping-synchronize, mapping-update): Likewise.
689    
690    2002-11-03  Kaz Kylheku  <kaz@ashi.footprints.net>
691    
692            Start of support for global option -n (dry run).
693    
694            * code/options.lisp (*dry-run-option*): New boolean variable.
695            (process-cvs-options): Look for -n and set *dry-run-option*.
696    
697            * code/types.lisp (types-write): Do not write file if *dry-run-option*
698            is true.
699    
700            * code/types.lisp (mapping-write): Likewise.
701    
702            * code/add.lisp (mcvs-add): When calling types-let-user-edit,
703            temporarily disable the dry run option, so that TYPES-NEW can
704            be written. When the dry run option is in effect, do not try
705            to cvs add the TYPES file.
706    
707    2002-11-03  Kaz Kylheku  <kaz@ashi.footprints.net>
708    
709            * code/branch.lisp (*branch-help*): New string constant.
710    
711            * code/mcvs-main.lisp (*mcvs-command-table*): *branch-help* hooked in.
712    
713    2002-11-02  Kaz Kylheku  <kaz@ashi.footprints.net>
714    
715            * code/mcvs-main (*args*, *options*): Unused variables removed.
716            (mcvs-execute): Global option processing code removed.
717    
718            * code/options.lisp (*print-usage*): New boolean variable; tells
719            mcvs-execute to print usage and terminate.
720            (filter-mcvs-options): New function. Does the job that
721            filter-global-options did.
722            (process-cvs-options): Does the global option processing that
723            was previously in mcvs-execute.
724            (filter-global-options): Now just calls filter-mcvs-options,
725            process-cvs-options.
726    
727    2002-11-02  Kaz Kylheku  <kaz@ashi.footprints.net>
728    
729            * INSTALL: Include caveat about GCC 3 problems.
730    
731    2002-10-30  Kaz Kylheku  <kaz@ashi.footprints.net>
732    
733            * code/prop.lisp (mcvs-prop): If there are no options specified,
734            don't do anything.
735    
736    2002-10-30  Kaz Kylheku  <kaz@ashi.footprints.net>
737    
738            * code/unix-bindings/unix.lisp: Rewrote defpackage to take only
739            selected symbols from CLISP's FFI package rather using the whole
740            thing. FFI, and the packages it uses, are moving targets.
741            The symbol def-c-call-out is interned in unix-funcs.
742            (unix-funcs:def-c-call-out): New internal macro. CLISP says that
743            ffi:def-c-call-out is obsolescent.
744    
745            * code/unix-bindings/Makefile: The ``clean'' target removes
746            unix.lib, not only unix.fas.
747    
748    2002-10-27  Kaz Kylheku  <kaz@ashi.footprints.net>
749    
750            Bugfix to the directory restructuring code. A clobbering
751            file add was not actually removing the clobbered file, but leaving
752            it up to the synchronization algorithm, so the time-stamp would
753            decide whether the local file gets clobbered by the repository one,
754            or whether it wins.
755    
756            * code/mapping.lisp (mapping-update): Logic for handling added
757            file ensures that a clobbered local file is removed first.
758    
759    2002-10-26  Kaz Kylheku  <kaz@ashi.footprints.net>
760    
761            New link command for creating symlinks.
762    
763            * mcvs-main.lisp (*link-options*): New option constant.
764            (*mcvs-command-table*): Entries for new command added.
765            (*usage*): Help text added.
766    
767            * link.lisp: New file.
768            (mcvs-link, mcvs-link-wrapper): New functions.
769    
770    2002-10-26  Kaz Kylheku  <kaz@ashi.footprints.net>
771    
772            * code/grab.lisp (*grab-help*): Rewritten.
773    
774            * code/checkout.lisp (*export-help*): Formatted for 80 columns.
775    
776    2002-10-26  Kaz Kylheku  <kaz@ashi.footprints.net>
777    
778            * code/mcvs-main.lisp (*usage*): Expand tabs to spaces.
779    
780            * code/add.lisp (*add-help*): Likewise.
781    
782            * code/remove.lisp (*remove-help*): Likewise.
783    
784            * code/create.lisp (*create-help*): Likewise.
785    
786    2002-10-26  Kaz Kylheku  <kaz@ashi.footprints.net>
787    
788            * code/purge.lisp (mcvs-purge): Get rid the processing of the
789            nonexistent -n option from purge code.  The global option -n does an
790            adequate job of implementing a dry run.
791    
792    2002-10-26  Kaz Kylheku  <kaz@ashi.footprints.net>
793    
794            * code/mapping.lisp (mapping-removed-files): Skip over the MCVS/CVS
795            directory, which can contain CVS-generated files with F- names and a ,t
796            suffix. These trip up the algorithm.
797    
798    2002-10-21  Kaz Kylheku  <kaz@ashi.footprints.net>
799    
800            Add help to move command.
801    
802            * code/mcvs-main.lisp (*mcvs-command-table*): Added *move-help*.
803    
804            * code/move.lisp (*mcvs-help*): New constant.
805    
806    2002-10-20  Kaz Kylheku  <kaz@ashi.footprints.net>
807    
808            Fix broken ``filt -r''.
809    
810            * code/mapping.lisp (mapping-read-raw-map): New function; reads
811            map from stream and does sanity check.
812            (mapping-read): Argument can be a filename or stream. Call to
813            mapping-read-raw-map to factor out common code for both cases.
814    
815            * code/filt.lisp (filt-select-map): This was still just
816            reading the raw structure from the cvs coprocess, which worked under
817            the old map format, when the internal and external representations
818            were the same. Now it calls mapping-read on the stream.
819    
820    2002-10-19  Kaz Kylheku  <kaz@ashi.footprints.net>
821    
822            * UPGRADE-EXISTING: New file.
823    
824    2002-10-19  Kaz Kylheku  <kaz@ashi.footprints.net>
825    
826            * code/mcvs-main.lisp: Clear out *modules* list before requiring
827            modules. This is needed so that mcvs-upgrade works, because there
828            is already a populated list in the Lisp image.
829    
830    2002-10-17  Kaz Kylheku  <kaz@ashi.footprints.net>
831    
832            Detect failure to start text editor.
833    
834            * code/posix.lisp (*editor*): Change name to *mcvs-editor*, due
835            to name-clash with a CLISP extension!
836    
837            * code/mcvs-main.lisp: Likewise.
838    
839            * code/types.lisp (types-let-user-edit): Provide an individual
840            restart-case block around the invocation of the text editor,
841            which lets the user re-try the editor.
842    
843    2002-10-14  Kaz Kylheku  <kaz@ashi.footprints.net>
844    
845            Compiler warning fix.
846    
847            * code/posix.lisp (*argument-limit*): Constant moved here.
848    
849            * code/clisp-unix.lisp (*argument-limit*): Constant removed.
850    
851            * code/cmucl-unix.lisp (*argument-limit*): Likewise.
852    
853    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
854    
855            * code/install.sh: generate a script called mcvs-upgrade.
856    
857    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
858    
859            * code/prop.lisp (mcvs-prop): Read *mcvs-map*, not *mcvs-map-local*.
860    
861    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
862    
863            * code/mcvs-main.lisp (*watchers-options*): New constant.
864            (*edit-options*): Likewise.
865            (*unedit-options*): Likewise.
866            (*editors-options*): Likewise.
867            (*mcvs-command-table*): Added watchers, edit unedit, and editors
868            commands.
869            (*usage*): Updated.
870    
871            * code/generic.lisp (mcvs-watchers-wrapper, mcvs-edit-wrapper,
872            mcvs-unedit-wrapper, mcvs-editors-wrapper): New functions.
873    
874    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
875    
876            * code/mcvs-main.lisp (*usage*): Describe export and watch commands.
877    
878    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
879    
880            * code/mcvs-main.lisp (*watch-options*): New constant.
881            (*mcvs-command-table*): New entry for watch command.
882    
883            * code/watch.lisp: New file.
884    
885    2002-10-13  Kaz Kylheku  <kaz@ashi.footprints.net>
886    
887            * code/mcvs-main.lisp (*export-options*): New constant.
888            (*mcvs-command-table*): New entries for export command.
889    
890            * code/checkout.lisp (mcvs-checkout): New keyword to specify export
891            behavior.  This causes cvs export to be run instead of checkout,
892            and the MCVS directory to be deleted after.
893            (mcvs-checkout-wrapper): Common function factored out into a flet.
894            (mcvs-export-wrapper): New function. Verifies that one of -D and -r
895            options is present, then runs mcvs-checkout, specifying export
896            behavior.
897    
898    2002-10-12  Kaz Kylheku  <kaz@ashi.footprints.net>
899    
900            * code/mcvs-main.lisp (*update-options*): Added -C option.
901    
902            * code/update.lisp (mcvs-update): Fall back on the mcvs-generic
903            if --metaonly or --nometa is specified to run CVS on specific
904            files.
905    
906    2002-10-12  Kaz Kylheku  <kaz@ashi.footprints.net>
907    
908            * code/filt.lisp (mcvs-filt): Do not filter F- names if
909            immediately preceded by MCVS/ prefix.
910    
911    2002-10-12  Kaz Kylheku  <kaz@ashi.footprints.net>
912    
913            * code/clisp-unix.lisp (execute-program): Provide debug traces
914            for command execution.
915    
916  2002-10-09  Kaz Kylheku  <kaz@ashi.footprints.net>  2002-10-09  Kaz Kylheku  <kaz@ashi.footprints.net>
917    
918          * code/add.lisp (*add-help*): Remove spurious text cut and pasted from          * code/add.lisp (*add-help*): Remove spurious text cut and pasted from
# Line 1144  Line 2059 
2059    
2060          The ``import'' command is renamed to ``create''.          The ``import'' command is renamed to ``create''.
2061    
2062          * mcvs.main (*create-options*): Renamed to *import-options*.          * mcvs-main.lisp (*create-options*): Renamed to *import-options*.
2063          (*mcvs-command-table*): Updated.          (*mcvs-command-table*): Updated.
2064          (*usage*): Updated.          (*usage*): Updated.
2065    

Legend:
Removed from v.1.205  
changed lines
  Added in v.1.205.2.95

  ViewVC Help
Powered by ViewVC 1.1.5