[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: How are (atomic) commits implemented?

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2005-07-18 17:43:56 CEST

[please keep this on the list]

On Jul 18, 2005, at 10:37 AM, Norbert Unterberg wrote:

> 2005/7/18, Ben Collins-Sussman <sussman@collab.net>:
>
>
>> 2. N different users can be 'writing' to separate transactions at
>> once. The only time anyone ever has to wait is the microsecond where
>> somebody's transaction is "promoted" to become the new HEAD
>> revision; that action needs to be serialized.
>>
>
> Can the commit still fail at this point? I am thinking about the
> situation where user A and B both commit the same file at the same
> time. From my observation I believed that svn usually rejects the
> commit before it starts transmitting all the data.

A and B never "commit the same file" at the same time. They commit
entire *transactions* at the same time, which is the set of *all*
changes.

What you're talking about above is a different behavior -- it's the
"on the fly" out of dateness checking that happens as the transaction
is being constructed. As soon as a client tries to modify a file
which is out-of-date with respect to HEAD, the whole transaction is
aborted. This happens long before the 'final' commit of the
transaction.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Jul 18 17:44:50 2005

This is an archived mail posted to the Subversion Dev mailing list.