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

RE: Avoiding unexpected Concurrent Development

From: Reedick, Andrew <jr9445_at_ATT.COM>
Date: Thu, 3 Apr 2008 09:11:39 -0500

Subversion is based on the copy-modify-merge paradigm, so it always
expects/assumes concurrent development.

http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.v
sn-models.copy-merge

http://svnbook.red-bean.com/en/1.4/svn.basic.vsn-models.html#svn.basic.v
sn-models.lock-unlock

 

If you really want to follow a lock-modify-unlock paradigm, use 'svn
lock' and put svn:needs-lock on every file. Obviously binary and other
unmergeable files should require a lock to work on.

http://svnbook.red-bean.com/en/1.4/svn.advanced.locking.html

Generally speaking, using the lock-modify-unlock model for text files is
considered pretty silly. If someone needs to work on a file, they need
to work on a file. Requiring them to wait on someone else is
inefficient, especially since merge tools have gotten better.

 

Long story short, you should get used to the idea of merging when using
Subversion (or any version control tool for that matter.) There's just
no way to avoid it w/o restricting everyone to serial development. Even
with serial development I've seen people overwrite another person's
checkin just because they were too impatient to wait to get a file lock
and then were too lazy/afraid to merge.

 

 

There's no way to tell if someone else is working on a file unless the
'svn:needs-lock' is on the file.

 

You can tell if someone has checked in a change to a file that you're
working on by using 'svn status -u'. However, that won't tell you if
someone else is actively working on the file but hasn't checked in their
changes yet.

 

You don't checkout from Subversion. Instead, a subversion checkout is
more like a 'get'. Everyone 'gets' a copy of the files, works on them,
and then resolves any merges upon checkin.

 

 

 

From: Alejandro Lopez Rama(correos) [mailto:alrlistas_at_gmail.com]
Sent: Thursday, April 03, 2008 9:51 AM
To: users_at_subversion.tigris.org
Subject: Avoiding unexpected Concurrent Development

 

We're testing subversion for our version control development. One thing
I've seen is Subversion informs that you have a collission in one
version with another version developed by other people.

I suppose this is because in Subversion you always have the whole
directory checked out, instead the only source you want to modify. Is
there a way to check out the only sources I want to use, and when I want
to check them out, know if someone else has checked it out before?

*****

The information transmitted is intended only for the person or entity to which it is addressed and may contain confidential, proprietary, and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon this information by persons or entities other than the intended recipient is prohibited. If you received this in error, please contact the sender and delete the material from all computers. GA621
Received on 2008-04-03 16:12:24 CEST

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