[wp-hackers] Switching from SVN

Brian Layman bulk at thecodecave.com
Fri Dec 10 03:49:16 UTC 2010

On 12/9/2010 7:03 PM, Otto wrote:
> LOL! :-D
> I'm not against it, per se. I've just never understood git, really.
> That's all I'm saying. I find it confusing and weird. A good
> explanation of it might be helpful, but the ones I've seen are all
> confusing to me.
> -Otto

WordPress and future decisions aside, it really isn't surprising at all 
that you don't fully grok GIT.

I've only recently tried GIT with any intention of actual use, but it 
was like a glass of water in a desert. I started out in a completely 
different version control system and found that SVN had all of the 
fundamentals but all the advanced features were only there as stubs. 
  The fact that SVN is soooo popular is actually really sad because 
people who haven't been exposed to a full implementation are taught that 
all of the most powerful features of version control are kind of 
pointless. I would suspect that svn never had time to mature to the 
point of replacing the feature stubs before it became wildly popular and 
now it can't due to backwards compatibility concerns.  But who knows, 
maybe it was done deliberately.

For about a decade I used a version control system called StarTeam 
(owned by Starbase at the time, now Borland).  When I started with SVN, 
I was horrified to find that creating a tag was functionally equivalent 
to creating a branch!  In most every VCS a tag/label is just a pointer 
record saying "Version #.#.# consists of the check ins at this point in 
time or at this revision number." But look at what the tags of 3.0.0, 
3.0.1, 3.0.2 and 3.0.3 have done - they have produced four full 
additional sets of the entire code base because a dozen or two files 
changed.  Remember also that those tags are on top of the full copy of 
the code ala the 3.0 branch (which was a full copy of the trunk).  Why 
do we need 5 full copies of 3.0 taking up disk space because maybe two 
  dozen files changed. Compare that to a four extra database record 
consisting of a string label and a revision number, and the difference 
is obvious - the only copy of the code is the 3.0 branch itself (which 
could consist solely of a pointer to specific revision of the trunk).

Yes, it is all functional, but crudely so.  It only gets really horrible 
when you start looking same redundancy in the plugin repository.  An 
extra copy exists of every single release of every single plugin out 
there.  Doing a full check out of the plugin repository is horribly 
difficult and time consuming. On disk it probably takes of dozens of 
times more space than needed - if not more.

The merging of branches is equally rudimentary. The single time I tried 
to do it in SVN, what should have been an hour long process took most of 
a day.

IMHO SVN is great brute force tool and as a mockup of version control, 
it's fairly complete.  The fact that an open source solution existed at 
all 6 years ago was great. Kudos to CVS and SVN. The alternatives most 
all cost serious money.  However, faced with the same decision today, 
with all of the SVN replacements we have available, I doubt we'd choose SVN.


More information about the wp-hackers mailing list