Michael Grunert wrote:
On 08/13/2011 10:02 AM, Lester Caine wrote:
Looking back, the point that I was not explaining very well was the fact
that people seem to think that they need to create a fork into their
on-line account before cloning to the local copy. On the whole these are
not needed, and the 'sandbox' approach for sharing tangential work seems
better? Similarly extensions like apt have their own subrepo which can
be worked on independent to the bulk of the code base?
Just to throw in some comment, you did a really good job to confuse
people in this thread. In the beginning i really got the impression you
were totally against dvcs and now you praise them and argue in their
favor against people who want them too .. maybe i just misread some of
the mails but thats my overall impression so far ..
I don't have a problem with DVCS, just with projects ploughing into using git a
year ago when it was ( and still is ) not ready for those type of projects :(
It was a case of having to work with it at a time when cross platform tools were
not available, and subrepo's did not exist.
I have a nice working hg setup that works transparently from Linux and Windows
and runs in parallel with my Eclipse development platform. But even that still
has not restored some of the excellent tools that CVS and SVN provide in
Eclipse. MANY of the complaints about CVS and SVN were never a problem when one
used Eclipse. At some point I expect the same facilities to be restored to
Eclipse, but currently TortoiseHg runs in parallel neatly. I don't have to
switch between different tools on the different platforms.
About branching, tagging or developing using a DVCS, I can only
recommend to read the doc linked in this rfc:
http://nvie.com/posts/a-successful-git-branching-model/
It explains one model which has been proven to work pretty well.
This model is ideal for a main trunk. The major advantage to DVCS is
being able to work on things like PECL modules and even core extensions
in parallel to the main core. It is only recently that git and hg have
finally supported 'subrepo' and I see this as the ideal model for my own
work. I can create a superproject which just combines the extensions
(php and third party!) that I am using and almost manage them nicely.
There are still a few rough edges to this since neither git nor hg have
been convinced that it is an important requirement ... they don't use it
themselves which seems strange when their own code base has many third
party elements? I don't see 'feature branches' as the correct way to
handle what are essentially self contained elements?
So did you read the workflow document? I do have some doubt there ..
A "feature branch" does not refer to some self contained element you
could or even should place into a subrepo like a pecl extension or
module. A "feature branch" is meant for a distinct unit of work, like a
new feature or a bug fix that has to be merged with the main branch
sometime in the future anyways. As soon as this feature or bug fix has
been completed the feature branch dies/dries up .. which is obviously
bad in something like svn as those branches would clutter up the
repository but can be handled really good in dvcs as the new branches
are only local or in some loosely coupled public forks/clones and can be
pulled/pushed into the "main repo" as needed.
Again, I'm not explaining things very well ...
What will not work moving forward is a simple dump of the entire SVN history
into a single git repository. What is needed is a managed way to create a series
of subrepos for each of the packages that make up PHP. PECL and PEAR packages
then just become extra subrepos which are included or not in the superproject
trunk. The 'single repo' camp point to "feature branch" as a way of handling
that work in a single module without having to breaking up the repo, but to my
mind that is simply wrong? Starting from a point of separate repo's simply
allows a lot easier management of everything and we can work on areas that we
want to without having to clone the whole code base? Moving things in and out of
the core distribution is then just a matter of adding or removing the subrepo to
the master project.
just my 2 cents before i get a headache from this
I had that for 6 months until I realised that I could simply ignore git and run
everything via hg - using hggit :)
Moving to DVCS is not the problem. It's doing it in a way that works well for
PHP!
--
Lester Caine - G8HFL
-----------------------------
Contact - http://lsces.co.uk/wiki/?page=contact
L.S.Caine Electronic Services - http://lsces.co.uk
EnquirySolve - http://enquirysolve.com/
Model Engineers Digital Workshop - http://medw.co.uk//
Firebird - http://www.firebirdsql.org/index.php
--
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php