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 <emilio...@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

Reply via email to