This question has come up before and
I'm sure we had a page that talked about it but for the life of me I can't
find it now. Perhaps it got lost in the transition. In any
event, we'll put together a new one to reflect current realities. Here
is an outline.
- the current repo structure gives incubator
committers access to the "equinox-incubator" folder in the dev.eclipse.org/cvsroot/eclipse
repository. We'll call that the "incubator repo" even though
it is not really a repo on its own (see http://dev.eclipse.org/viewcvs/index.cgi/equinox-incubator/)
- in the incubator repo we currently
have a large number of plugin projects. In general the HEAD stream
of these projects contain copies of code from the main Eclipse repo and
the content for each work area is in branches off of these.
- this is a convenient structure because
it allows/encourages the work areas to stay in sync with the main code
base. Remember, the Equinox incubator is for investigating *changes*
to the main Equinox/Eclipse code base. As such, the work is destined
to be merged at some point. By working in branches off HEAD we just
need to periodically (e.g., every Milestone) update the code in head of
the various projects. Then the folks in each branch and merge from
HEAD into their branch and keep up to date.
- An alternative to this approach is
to have each incubator keep a copy of the projects they are affecting.
This is in some ways simpler (makes it easier ot archive when the
work is done) but increases the burden of keeping up with the main code
and basically means that people will not do it.
- For new bundles developed in an incubator,
we could have separate workarea dirs and put the projects in there. I
am tempted to say that there will be relatively few of these and so we
should just put them in the main incubator repo. This is simple,
flat, ... Work in these can go on in HEAD or in a branch off of an
initially empty HEAD project.
- in an effort to help newbies understand
where things are, each work area should document what projects are relevant
and what branch it is using. See the aspects work area for an example
of what I mean (http://eclipse.org/equinox/incubator/aspects)
I'll write this up in a more consumable
way and post for comment. Please give feedback here.
Thomas Watson <tjwatson@xxxxxxxxxx> Sent by: equinox-dev-bounces@xxxxxxxxxxx
10/24/2005 09:56 AM
Please respond to
Equinox development mailing list
Equinox development mailing
Re: [equinox-dev] New equinox
> Ah, now I understand this in more detail. Thanks a lot for your
> explanation and sorry for still being somewhat unoriented regarding
> code repository structures. Still a newbie in this area...
> But that brings up another question (from the newbie ;-): I understand
> that there might be code differences between the incubator area and
> HEAD. But is there any policy who/when/how to migrate changes from
> back into the incubator area?
> Thanks for the help!!!
No problem, I'm sure others on this list have the same questions. In
past when the incubator is active we have tried to update (or merge) the
code from HEAD into the incubator after each Milestone is released
from eclipse proper.
Sometimes this can be a time consuming task if there are many components.
In the past each incubator usually had a small set of bundles that they
were modifying. For example, investigating improvements to the OSGi
Framework only involves the org.eclipse.osgi project.
As more incubators get started I'm not sure what the best approach is to
merge the latest code back to the incubator. I hope each incubator
have a "lead" which can be responsible for merging the latest
their corresponding incubator projects. I think the contributors
incubator will have to be responsible for this merge because they are the
only ones that know what changes they have made and how best to merge any
new code from HEAD into their incubators.
equinox-dev mailing list