[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.
-Brian
More information about the wp-hackers
mailing list