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"...

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

Reply via email to