mmm, you may be having another problem elsewhere, because what I typed should be working (is how we enforce the load of new versions to run the tests, for example).

Esteban

On Apr 25 2022, at 11:30 pm, Emilio Oca <emiliooca@gmail.com> wrote:
Hi Esteban

Thanks for the hint. 
It is still not working. 
Even if I remove BaselineOfMyProject and MyProject. 
When it reloads, it doesn't loads the last version of head at github but the one that was already at the image.

I just want to update up to what is at gibhub head. Is there another way?

Best

Emilio

On Sat, Apr 23, 2022 at 1:56 AM Esteban Lorenzano <estebanlm@netc.eu> wrote:
Hi Emilio,

You need something like this:

  Metacello new
        repository: 'github://pharo-spec/Spec:Pharo10';
        baseline: 'Spec2';
        onConflict: [ :e | e useIncoming ];
        onUpgrade: [ :e | e useIncoming ];
        ignoreImage;
        load
ignoreImage, onConflict, onUpgrade.

BUT if your image already has a baseline for your project then Metacello will not reload it (hence your project may not be loaded correctly, since baseline may have changed).

In that case, I always execute before something like:

#( 'BaselineOfSpec2' 'BaselineOfSpecCore' ) do: [ :each |
(RPackageOrganizer default packageNamed: each ifAbsent: [ nil ])
ifNotNil: [ :aPackage | aPackage removeFromSystem ] ]

I ack this is hacky, but it works :)

Esteban

On Apr 23 2022, at 3:21 am, Emilio Oca <emiliooca@gmail.com> wrote:
Hi List

I need some help with Metacello, and may be git too

I would like to be able to, in a running headless image, load the last commit of a git repo

Something like
Metacello new baseline:'MyProject';
repository: 'github://myUser/MyProject:main/myProject';
load.
works just once and may open some dialogs

Something like this
[
[
Metacello new baseline:'MyProject';
repository: 'github://myUser/MyProject:main/myProject';
onConflictUseIncoming;
load.
] on: MetacelloSkipDirtyPackageLoad do: [ :ex | ex resume: false ].
] on: MCMergeOrLoadWarning do: [ :ex | ex load ].
Avoids the dialogs and alerts but the code is still not updated.

My intention is to be able to 'refresh' a running seaside image with its latest development version from a git repo (avoiding to personally reach the server and rebuild the docker image)
What am I missing?

Best

Emilio