[wp-hackers] Switching from SVN
wordpress at zed1.com
Fri Dec 10 15:54:15 UTC 2010
On 10 December 2010 15:21, Eric Mann <eric at eam.me> wrote:
> When I first started working with WordPress, I had no idea what version
> control was.
I think this is the biggest problem with all these discussions.
Understanding what a VCS is for, and why you need to use one, and what you
need to do with one, is fundamental.
That understanding should come first, before "how do I use the particular
Unfortunately most people want "what buttons do I press/commands do I type"
with no understanding of why. However, as soon as something goes awry, or a
message comes back that isn't in the 'script' people get lost and often
assume the tool is hard.
> I finally embraced Subversion during a client project. ...
> ... and I broke everything. ... I had to re-produce a lot of my
> work after that, and I was very burned out by the whole process.
Ouch! A painful way to learn that lesson.
> When I'm working entirely on my own, it's a good system. But, I joined a
> company about a year ago where multiple developers were working on the same
> codebases at the same time ... and all hell broke loose.
This comes down to team development discipline. Again the tool doesn't
really matter, the principals do. (And please don't anyone raises the ugly
subject of exclusive locking -- it doesn't work -- that's why none of the
modern VCSs encourage it).
> First we looked at Git because it seemed so powerful. It was, and I loved
> it. Every project we started (each of our projects has a separate issue
> similar to Trac) was a different branch.
But you could have done that in subversion (or CVS before that).
The key is understanding that you should work on a branch for all but the
most trivial changes, when working in a team environment. The next important
thing is regular and controlled merges.
The alternative is a gatekeeper model (which is what WordPress works on -
but for different reasons: cathedral versus bazaar)
This is where the git versus subversion argument for WordPress is
WordPress works on a cathedral model, so it doesn't matter how easy git and
it's friends are at doing branch merges (which is the only selling point I'm
hearing), there's no great advantage when the core commits are controlled by
the high priests (core committers).
By the way, I *don't* think that model should change. WordPress is as good
as it is *because* of the cathedral model. (But I do wish they would (learn
to) do branch merges for bug fixes instead of applying patches in two places
- but's that's just personal -- it irks me to see someone so talented
wasting their time doing something the software should do)
> The biggest complaints I have about SVN: branching/merging is a hassle and
> can't commit as I work on projects.
I think that's just down to experience and practice/discipline. I used to
manage up to 10 simultaneous branches of development for a 13 -person team
in CVS! Doing it in SVN would be a doddle!
More information about the wp-hackers