This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: CVS on savannah


Andrew Haley <aph@redhat.com> writes:

>  > Is this done in a way which ensures consistency? Is it safe to access the 
>  > mirror repository while the rsync is in progress? What happens if a checkin 
>  > is in progress on the parent repo while rsyncing the mirror?
> 
> It isn't possible to do this consistently, because CVS commits are not
> atomic.  It is always possible for a developer to check out an
> inconsistent repository.

That description is not precisely correct.  A CVS commit operation
locks all the relevant directories for write access before applying
any changes.  So a CVS commit operation is atomic in a meaningful
sense: it is atomic with respect to other commit operations.

A CVS read operation, on the other hand, locks one directory at a
time.  So when checking out multiple directories, it is possible for a
CVS commit to slip in and modify a set of directories in between
checkouts.

In other words, CVS commits are atomic, but cvs checkouts are not.

You are correct that it is always possible to check out an
inconsistent set of working directories.  That said, using unmodified
rsync can create inconsistencies within a single directory, which is
not possible with CVS.

Ian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]