[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: renaming under CVS

From: Noel Yap
Subject: Re: renaming under CVS
Date: Mon, 4 Mar 2002 10:46:13 -0800 (PST)

--- Paul Sander <address@hidden> wrote:
> Unfortunately, modules can overlap, which means that
> the new
> locking mechanism must have a granularity smaller
> than the
> module.
> Depending on how the mapping is done, especially if
> there's an
> attempt to preserve backward compatibility (and
> preserving CVS'
> existing directory-based locking in the repository)
> then you
> end up locking every directory that contains a ,v
> file that maps
> to a file in the user's sandbox, every time an
> update or commit
> is done.

Some more thoughts...

Each file and directory are mapped to a ,v archive
file.  The contents of the directory archive files are
the mappings of its elements and the types (eg file or
directory) of those elements.  The basenames of the
archive files will be hex representations of random
256-bit numbers generated with a "secure" version of
the Mersenne Twister algorithm.

Locking will occur on a per-repository basis. 
Permissions can still be done on a per-directory

Since the repository structure will no longer be
directory-based, module definitions like "module
path/to/module" won't be supported.

I think a transition from an old repository to the
above shouldn't be too bad assuming people don't have
complicated module definitions.  For those with a
complicated module definitions, a switch could be
provided to use the old style (the default would be to
support backward compatibility).  A tool can also be
provided to convert the old repo into a new repo.

Old clients will still work on new servers but since
the mappings will be done by the server, they'll be
slower than new clients.  New clients will store the
mappings within the CVS directories.  This implies
that the CS protocol will need to be extended in such
a way that a new server will recognize a new client. 
If the client can query the server for its version,
new clients can also work with old servers.

The command "cvs mv" will be added.  Upon checkin, a
mv command will checkin a new version of the archive
file(s) of the affected directory(ies).


Do You Yahoo!?
Yahoo! Sports - sign up for Fantasy Baseball

reply via email to

[Prev in Thread] Current Thread [Next in Thread]