LWN.net Logo

Subversion considered obsolete

Subversion considered obsolete

Posted Apr 6, 2010 20:01 UTC (Tue) by iabervon (subscriber, #722)
In reply to: Subversion considered obsolete by vonbrand
Parent article: A proposed Subversion vision and roadmap

The use case for locking is when your development effort consists of files that can't be merged effectively (CAD is a common example) that various different people work on at different times. Locking is used as a machine-readable alternative to telling everybody in the company "I'm working on the fenders right now, don't work on them until I'm done" and "I'm done with the fenders" and trying to get everyone to notice when people have made these requests.

It's only relevant to projects where merge conflicts can't be resolved (and if you get a merge conflict, someone's work has to be thrown away and redone from scratch), where you want the person whose work would be wasted to do something else or take the afternoon off instead of wasting their time, but these are important cases in a number of industries that aren't software development.


(Log in to post comments)

Subversion considered obsolete

Posted Apr 7, 2010 1:10 UTC (Wed) by vonbrand (subscriber, #4458) [Link]

The git way to handle this is to have everybody work in their own area (no "I step on your toes" possible), and merge the finished products when the developer say it is done. As everybody can also freely take versions from anybody, this doesn't restrict work based on not-yet-accepted changes in any way (sanctioning a change as official is an administrative decision, as it should be, not one forced by the tool).

Subversion considered obsolete

Posted Apr 7, 2010 2:13 UTC (Wed) by iabervon (subscriber, #722) [Link]

But the thing is that there is no point in working on a part when someone else is working on it, because merging the results is harder than just starting over. I've dealt with situations where every time a hardware schematic changed, the engineer had to spend half a day rerouting the traces so they would fit, and if two people changed the schematic at the same time and rerouted the traces, neither of their layouts would be helpful in routing the merged schematics. Your version control system can't solve problems that your development environment can't solve, and the solution is to have locks such that the second engineer can work on something else instead of spending a day on work that doesn't contribute to the final result.

Subversion considered obsolete

Posted Apr 7, 2010 20:21 UTC (Wed) by vonbrand (subscriber, #4458) [Link]

OK, but this is a problem that no VCS can solve (because there is no reasonable way to merge separate modifications). Locking doesn't help either, in any case this requires administrative (workflow) coordination between people.

Subversion considered obsolete

Posted Apr 7, 2010 20:32 UTC (Wed) by foom (subscriber, #14868) [Link]

Maybe you don't understand what is meant by locking?

The advisory locking in SVN *is the implementation of* the administrative (workflow) coordination
between people.

Copyright © 2013, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds