Hi Dale,

2016-01-27 15:41 GMT+01:00 Dale Henrichs <dale.henrichs@gemtalksystems.com>:


On 1/27/16 12:03 AM, Thierry Goubier wrote:
Hi Dale,

then a question: how does one query a baselineOf or a configOf to retrieve the current project state (i.e. packages) loaded in the image?

Thierry

Thierry,

Good question:)

To start with in tODE I have a class TDMetacelloProjectRegistrationDefinition which is part of the following hierarchy:

Object
��TDDefinition
�� TDPackageBasedDefinition
�� ��TDAbstractProjectRegistrationDefinition
�� �� TDGitProjectRegistrationDefinition
�� �� TDMetacelloProjectRegistrationDefinition
�� �� ��TDMetacelloRegistrationDefinition
�� �� �� TDMetacelloBaselineRegistrationDefinition
�� �� �� TDMetacelloConfigurationRegistrationDefinition
�� �� �� TDMetacelloHybridRegistrationDefinition
�� �� ��TDMetacelloUnloadedProjectRegistrationDefinition

The method TDMetacelloProjectRegistrationDefinition>>workingCopies[1] calculates the list of MCWorkingCopy instances for the loaded packages associated with a project (including the configurationof or baselineof... or both).

The key Metacello methods called include:

�� MetacelloProjectRegistration>>projectVersion[2]
�� MetacelloMCVersion>>packages[3]
�� MetacelloPackageSpec>>workingCopy[4]
�� MetacelloMCProjectSpec>>projectPackage[5]

This is really the key information for doing all of the other operations for a "Project Browser" like "save all dirty packages and commit" and "give me diffs for all dirty packages in project"...

I was just asking that because I'd like to see that information merged as much as possible; separating concepts just strikes me as unneeded complexity, at least for baselines. Configurations are a bit different, since a configuration can snapshot multiple versions. But I'd really like to make it simple and obvious how to setup a project.

I'll make a few tries, and see what I can come up with. When I'll have the time :(

Thierry
��

Dale

[1] https://github.com/dalehenrich/tode/blob/master/repository/Topez-Server-Core.package/TDMetacelloProjectRegistrationDefinition.class/instance/workingCopies.st
[2] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-Core.package/MetacelloProjectRegistration.class/instance/projectVersion.st
[3] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-MC.package/MetacelloMCVersion.class/instance/packages.st
[4] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-MC.package/MetacelloPackageSpec.class/instance/workingCopy.st
[5] https://github.com/dalehenrich/metacello-work/blob/master/repository/Metacello-MC.package/MetacelloMCProjectSpec.class/instance/projectPackage.st