Relative positions in the buildset

Andreas Pakulat apaku at gmx.de
Fri Jan 1 10:49:51 UTC 2010


On 01.01.10 13:34:00, Olivier J. G. wrote:
> There are a couple problems with the buildset:
> 1. The order of the BuildItems isn't preserved, they are simply added as
> soon as the project is finished loading

Thats because the information is stored inside the project.

> 2. The "automatically add loaded projects to buildset" option doesn't care
> if you have previously removed a project

Thats on purpose. If the option is enabled it always makes sure that a
loaded project is buildable by just hitting F8. If you don't want that,
then disable the option.

> Considering that the purpose of the buildset is to be able to build a list
> of specified projects in order, those two bugs are rather annoying.
> Since the only place where build item changes are stored is in the project
> where the build item originates, it would be a bit hackish and error prone
> for the project to store its items positions relative to the other project's
> items positions.
> It seems that the best way to fix this would be to save all the build items
> in the buildset to the session config, as well as keep a blacklist of
> removed items, so that when a project is loaded, the buildset model can
> check if it has any build items for that project, and add it (or not add it,
> in the case of blacklisted items), accordingly.

No, the storage inside the project was done on purpose so that the
buildset can be moved from .kdev4/foo.kdev4 into the upper foo.kdev4 and
hence be shared among developers.

In fact I only added ordering to the buildset because we have no
possibility to track inter-project dependencies currently (and
in-project deps are not exposed via API). So one needs to order the
stuff manually. Its not something that is supposed to stay forever.

So if you want to fix that I'd like to suggest simply storing the row
number with the item and re-order the items when a new one is inserted.

Andreas

-- 
Your fly might be open (but don't check it just now).




More information about the KDevelop-devel mailing list