+1 what Jeremiah said!

I've noticed that people who are accustomed to Subversion tend to go into
Git using the SVN branching mindset.  While that does technically work in
Git, it essentially misses the point.  To illustrate, let's say a person
from the 16th century travelled forward through time to today.  He's been
using lanterns and torches all his life to light dark rooms.  You then hand
him a flashlight, explaining that this new technology is far better.  This
time traveller then proceeds to dip the end of the flashlight in kerosene
and lights it on fire, using it as a torch.

Technically, that time traveller would be able to light the room that way,
but it would essentially negate the point of using a flashlight to begin
with.  Using Subversion branching practices in Git is basically the repo
version of dipping a flashlight in pitch and setting it ablaze.


I count myself lucky in that I started using Git before Subversion.  People
with that background often have an easier time at first because they aren't
burdened with having to un-learn a bunch of "bad habits."


If anyone is interested, I would encourage you to take a look at this:

http://nvie.com/posts/a-successful-git-branching-model/


This is a widely accepted and efficient branching model that I use on all
my projects.  Of course, in PHP's case, it would have to be tweaked to
account for parallel version development (i.e. phasing out 5.3 while
continuing to build 5.4), but that's essentially how it would work.  It
looks like that's also what Jeremiah was referring to (though please
correct me if I'm wrong).

And he is right in saying that it's not nearly as confusing as it looks.
 It's actually really simple once you've grasped the underlying concept.


What does everyone think of implementing an approach similar to this model?
 It would certainly make it much easier to manage in the long-run IMHO.

--Kris


On Sat, Mar 3, 2012 at 11:53 PM, <jeremiah.do...@gmail.com> wrote:

> Kris Craig <kris.cr...@gmail.com> writes:
>
> > Thanks for the update!
> >
> > Quick question:  As far as the branching model goes, are we going to
> stick
> > with the SVN-style of just having a branch for each release version and
> > dumping all the commits directly onto it, or do you plan on switching to
> a
> > more modern Git-style branching model of merging feature sub-branches
> into
> > the parent version branches?  Or has this issue not been discussed yet?
> >
> > --Kris
> >
> >
> > On Sat, Mar 3, 2012 at 1:58 PM, David Soria Parra <d...@php.net> wrote:
> >
>
> The "idiomatic" way to do this would be to have releases done as tags
> off of the master branch. Other than that, it makes a lot of sense to
> have a branch for major features / versions, and for people to develop
> specific features in their own branch, to rebase changes coming from
> parent branches onto working branches, and then to merge those into
> their respective parent branches after they're done.
>
> I swear that sounds much more complicated than it is. I personally think
> that php as a whole would *greatly* benefit from adopting this sort of
> development model -- it's likely that git-savvy new contributors will
> anyhow, and it makes accepting contributions a hell of a lot less
> painful.
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>

Reply via email to