IWETHEY v. 0.3.0 | TODO
1,095 registered users | 0 active users | 0 LpH | Statistics
Login | Create New User
IWETHEY Banner

Welcome to IWETHEY!

New Here's the issue:
I would be willing to bet large sums that conflicts would not be an issue in practice.
The only reason they aren't here is because the locking system prevents it.

Let me explain: if people were allowed to have copies where they could change anything, we'd end up with a number of people who rarely updated. When someone finally did remember to update, there would be mass chaos. When you don't have to lock something, there is a tendency to just make the change and forget it. Eventually you update a large number of files. The result of this in practice is that your window of conflict goes up for all of the files you have changed, for the entire period between updates.

With a locking system, the tendency is to grab the file, make your change, and check it back in. The window of conflict for that piece is very very small.

In practice, the above has been borne out. During my recent porting stint, I have kept large numbers of files checked out for long periods of time; weeks for many of them. I have gotten a lot more requests that I unlock/finish with a file this past month or so than I ever have; the statistics I gave in the other post were from when I was using the system normally, not from porting. Porting efforts aren't normal as they touch large portions of the system at a time, and in tandem.

To sum up: non-locking systems with large numbers of developers will tend to widen the window of conflicts, as the effective contention period becomes much longer. Locking systems encourage short bursts of contention. I suppose an analogy would be a long running transaction vs. a short one.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New That behaviour issue is addressible
Get people in the habit of proactively updating at least daily. It isn't that hard to get them to do it. And it means that the possibility of conflict is addressed early and often. And if you choose not to do this you mainly create problems for yourself. :-)

For porting, create a branch and then run a command to detect conflicts every day. Similarly if you suspect that developers are not keeping good habits, you can run a cron job to find conflicts so you can come by and give them the speesh.

It can work. Many groups make it work for them. Bad developers can make it really suck, but they can do the same with any other source control system as well...

Cheers,
Ben
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
New That behaviour issue is addressible - in some orgs.
Get people in the habit of proactively updating at least daily.
Same issue. Daily window of multiple files vs. typically an hour window or so for a single file.

And if you choose not to do this you mainly create problems for yourself.
No, you create issues for the entire group as multiple files need to be reconciled before the project can be built.

For porting, create a branch and then run a command to detect conflicts every day.
Not feasible. I would have detected dozens of conflicts each day.

Similarly if you suspect that developers are not keeping good habits, you can run a cron job to find conflicts so you can come by and give them the speesh.
Easier said than done, and not in keeping with the culture we have here.

Many groups make it work for them.
Perhaps. Perhaps many groups make it work for them because they don't know any better. Not many groups have a code base consisting of 2M lines of code and 70 very active developers. Even large open source projects don't have the same level of activity that we do; people are working on this code base all day long for 8-12 hours a day. As a comparison, this is about twice as many loc as the gcc 3.2.1 C++ compiler, and nearly 30 times larger than Apache.
Regards,

-scott anderson

"Welcome to Rivendell, Mr. Anderson..."
New I'm not trying to convince you, honest
Part of what makes CVS work is that it is usually OK if multiple people edit the same file at the same time. Because usually people are editing unrelated parts of the file.

The claim that the person who keeps the file out loses is based on the fact that they can't checkin until they have noted and resolved the conflict. Most conflicts actually turn out to be easy to resolve. I believe that you can also arrange for some key people to be notified in the event of conflict so that you can be sure that people resolve it correctly.

As for the question of who makes it work and why, you have not described any conflict issue yet that makes me believe that CVS is unworkable for you. However I suspect that raw performance issues from some of CVS' algorithmic mistakes are a good reason for you not to use it.

Cheers,
Ben

PS The cron job that I mentioned is trivial to write. Whether your culture is such that people would take kindly to feedback is another story, but a group of developers that cannot give each other feedback is a group that is likely to wind up with climbing tension levels...
"good ideas and bad code build communities, the other three combinations do not"
- [link|http://archives.real-time.com/pipermail/cocoon-devel/2000-October/003023.html|Stefano Mazzocchi]
     Saying "I told you so" isn't nearly so satisfying ... - (drewk) - (34)
         My sympathies, Drew. - (a6l6e6x) - (24)
             What we came up with - (drewk) - (23)
                 VC++ or not, your boss is a moron. Get the heck outta there! -NT - (CRConrad)
                 Stupid. - (admin) - (21)
                     Oh, and ... - (drewk) - (20)
                         Actually that's how we work here. - (admin) - (19)
                             Would probably work here, too - (drewk) - (1)
                                 Gotcha. - (admin)
                             Same here - (jb4) - (16)
                                 the one we used in Siemens did - (boxley)
                                 That's the 'C' in CVS - (drewk) - (12)
                                     Impossible in some situations. - (admin) - (11)
                                         must be annoying to work for a sane/logical group :-) -NT - (boxley) - (3)
                                             Hee hee hee. - (admin) - (2)
                                                 Is your system available/useful to anyone else? - (drewk) - (1)
                                                     Available? I don't know? Useful? Partially. - (admin)
                                         I just wonder... - (Arkadiy) - (1)
                                             I've been here 1.5 years... - (admin)
                                         Possible in more situations than most would think - (ben_tilly) - (4)
                                             Here's the issue: - (admin) - (3)
                                                 That behaviour issue is addressible - (ben_tilly) - (2)
                                                     That behaviour issue is addressible - in some orgs. - (admin) - (1)
                                                         I'm not trying to convince you, honest - (ben_tilly)
                                 That's how we use CVS - (Arkadiy)
                                 Same now, used to be better - (gdaustin)
         I work solo on most projects... - (ChrisR) - (4)
             I think that's an underlying issue here - (drewk) - (3)
                 Dead code removal is a vital function. - (admin) - (2)
                     Agreed - (ChrisR) - (1)
                         We have both, would you like some of ours? -NT - (drewk)
         Speaking on a related topic... - (ben_tilly) - (2)
             Yup: We unplug the HP3000s - (drewk) - (1)
                 Better than you thought, huh? - (ben_tilly)
         Prototype folder - (orion)

I'm strong as Niagara / 'cause I takes Viagra / I'm Popeye the Sailor Man!
76 ms