[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [cdt-dev] Flexible Project Structure - First gotcha with add/exclude children of FFS
|
Hello again,
I'd like to add a comment regarding team support and linked resources.
The way I see it, one of the major reason why customers want to have
flexible project structure is because a projects needs to build with
files located in different locations in a source control repository.
So if the user didn't have sources in a source control repository, it
wouldn't be that hard to simply move the files under the project
directory, as long as he doesn't need to share sources between projects.
So the usage of a source control repository is a major factor that
drives the user's requirement to have flexible project structure, so
there's little point of having team support working without flexible
project structure.
While the opposite is not necessarily true, I would guess that very few
customers are actually dependent on the Eclipse implementation of the
source control clients, since the user has typically native clients to
rely on.
That being said, if team support doesn't support linked resources,
independently of flexible project structure, that seems to me to be a
bug that needs to be fixed, instead of driving the design of the
flexible project structure.
Thanks.
Serge.
Serge Beauchamp wrote:
In addition, included to this email are some screenshots that
illustrate the different UIs implementing our design. (Group resources
are in purple).
Thanks.
Serge.
Serge Beauchamp wrote:
Hi everyone.
I work in the Core IDE team at Freescale, and I was informed that a
solution is being discussed to a set of issues that we have worked on
addressing on our side.
Basically, we wanted to provide in Eclipsethe same flexibility that
our customers had while using our previous IDE. The requirements to
fulfill were the following:
- Create a arbitrary complex project file structure, without being
limited by creating files or folders under the project directory. -
Easily build up the project structure, without having to go through a
set of wizards to build a flexible project structure.
- Create projects that are portable between computers, i.e. do not
depend on absolute paths in its structure definition.
- Easily view, change and correct linked resources in a project.
- Create projects that are portable without referring to any specific
workspace, and can be imported in a different workspace without
loosing any critical information.
The solution that we designed and implemented is the following:
- A new type a IFolder is implemented at the IResource layer, the
M_GROUP resource, which is a folder that doesn't exist in the local
file system. With mixing group resource (which is seen as a regular
IFolder from the API perspective) and linked resources, the user can
create arbitrarily complex project structure. The group resources
are persisted in the .project file. Only linked resources and other
groups can be created under a group.
Group resources are backward compatible as well. If the user tries
to import a project in which he has group resources created in an
non-group-enabled Eclipse, they will show automatically as regular
folders (but then folders are actually created under the project
directory).
- A new dialog is now visible to the user when he drag and drop files
from Windows Explorer or the CDT CView that let him choose whether he
would like to copy/move the file/resources over (the current Eclipse
behavior) or he would like to create a group/linked resource
structure. In the latter case, the user can select a variable to
which the linked resources path will be created relative to.
- The user can now create Path Variables in the project level
(previously only available at the workspace level). The user can
then define a set of paths that can be used to specify variable
relative path location for linked resources. Built-in variables
includes "PROJECT_LOC", "ENV", "WORKSPACE_LOC" and "ECLIPSE_HOME".
The user can specify macros similar to the CDT macro manager (such as
"${ENV-CVSROOT}/ide"), and external plugins can provide additional
variables through an extension point.
- The user can now change the linked resources location through the
properties info page.
- A tool is now available that allow the user to very easily in one
dialog all the linked resources in a project, sorted in 3 section
whether they are "broken" (their linked target doesn't exist), their
linked location is an absolute path, or "fixed". The user can then
easily correct the broken linked resources, change the project path
variables, and automatically convert any number of absolute path
resources into variables path resources.
- A lot of fixes have been done to the linked resource implementation
to handle properly moving variable relative linked resources between
projects with having their variables transfered automatically, etc,
etc...
- The project path relative changes are fully forward compatible with
other Eclipse distribution, but of course, if a project has linked
resources relative to a project variable, they will appear a simply
as broken links, the same as if currently the user moves a project
between two workspace and doesn't copy the workspace variables over.
Please let me know what you guys think, I'd be very interested to
hear how our design can fit with your's and how we can work to make
it available to you.
Thanks.
Serge.
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
------------------------------------------------------------------------
_______________________________________________
cdt-dev mailing list
cdt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/cdt-dev