2017-03-30 16:42 GMT+02:00 Ben Coman <b...@openinworld.com>:

> On Thu, Mar 30, 2017 at 2:58 PM, Siemen Baader <siemenbaa...@gmail.com>
> wrote:
> > Below is a fileout of 'ConfigurationOfPharoJS'. I download new releases
> of
> > PharoJS as they become available. Recently I found a regression  - a
> method
> > 'PjApplication class >> playgroundWithoutLaunch' did not work any more.
> What
> > I wanted to do was to revert the whole project to an earlier version
> until
> > the method worked again - then look for the code that has been changed
> > between releases and find the bug.
> >
> > In practice, even the earliest version (version 1.0 - method #version10)
> did
> > have the bug and I could not roll back the project to earlier release
> states
> > because there is no metadate for them. But I'd still like to learn how
> to do
> > it, so let's just say I want to compare version 1.2 and 1.3:
> >
> > version12: spec
> > <version: '1.2' imports: #('0.1-baseline' )>
> >
> > version13: spec
> > <version: '1.3' imports: #('0.2-baseline' )>
> >
> >
> > I hope this makes sense. Thanks for helping me understand!
>
> You can only directly diff the Configurations themselves.
> I fairly sure you can't auto-diff the packages loaded by each
> configuration.
> This is a missing feature.  It would be nice to have something like
> the merge-diff,
> but there are probably other priorities.  Maybe the new git workflow
> will open some possibilities??
>

If you have a project-oriented way of committing to git (you commit both
the configuration and all the packages in one commit), then diffing via git
would work.

Current status on that feature is:

- BaselineOf and all related packages save in one commit can be done with
GitFileTree. I added an API for that and made a few experiments by
organising and saving projects via the Metacello registry (with GUI
support). I rolled back that extension in AltBrowser and I will reimplement
it soon in a different, better way.

- Iceberg ?

- ConfigurationOf ? The approach of storing a configurationOf inside a meta
repository makes implementing that harder.

Now, I think the tools would probably be able to get that to work over
Monticello with few changes, but they are a tad complex to implement, as in
loading two different configurationsOf and resolving related packages
(without loading them), and then changing the diff viewer to project all
differences between all classes of the two groups of packages. One thing to
remember is that complete packages, in multiple versions, can be loaded
simultaneously as Monticello models without disrupting the code currently
loaded and active in the image, as when you "browse" a Monticello package
on disk.

Thierry


>
> cheers -ben
>
>

Reply via email to