[ On Tuesday, February 15, 2000 at 00:46:00 (-0000), Mike Little wrote: ]
> Subject: Re: CVS File Locking
>
> So you see, no-one has yet managed to prove that recursing upwards is dangerous in 
>other 
> than exceptional circumstances. But then other CVS commands are dangerous in 
> exceptional circumstances.

Just one minor clarification here: Although the act of searching
backward in each parent directory to discover if the current working
directory is a member of some valid CVS workspace is literally
recursion, what is meant in my proposal is very different from what is
traditionally thought of in the rest of CVS as "recursion".  I've been
trying (unsuccessfully) to avoid that word because it (perhaps
rightfully in this case) apparently gives the wrong impressions to some
people.

My 'cvs add' will not do anything beyond adding CVS administrative files
to any of the intervening parent directories between the current
directory and the first valid CVS working directory.  It will not
"recurse" within them.  It will still only do its actual operations
based solely on the command-line arguments it is given and do so
relative to exactly where you start it from.

The details of the proposal should make this abundantly clear but
perhaps a more visual example will help.  Say you're a couple of levels
within the top of the working directory and you have created a nice
little hierarchy of stuff you want to add, but at each level out there
are a bunch of similar directories that you don't yet want to touch, you
don't have to worry.  They won't be touched, even if you do "cvs add"
with no explicit arguments:

  module-top ---+--- CVS --------- {admin files}
                |
                +--- leavealone -- {more stuff}
                |
                +--- donttouch --- {more stuff}
                |
                +--- subdir1 ----+--- keepout ----- {more stuff}
                |                |
                                 +--- subdir2 ----+--- youarehere --
                                 |                |

PWD = .../module-top/subdir1/subdir2/youarehere

Only module-top/subdir1/CVS and module-top/subdir1/subdir2/CVS (and
their respecitve contents) will be created outside of "youarehere".
Inside "youarehere" a CVS directory would be created and all files
within which are candidates to be added would be added.  That's all.  No
danger.  Nothing irreversible.  Extremely simple and easy to figure out.
Entirely predictable.  The only CVS-style recursion that will happen
will be restricted to within "youarehere".

-- 
                                                        Greg A. Woods

+1 416 218-0098      VE3TCP      <[EMAIL PROTECTED]>      <robohack!woods>
Planix, Inc. <[EMAIL PROTECTED]>; Secrets of the Weird <[EMAIL PROTECTED]>

Reply via email to