Hi Peter,

I'm not sure how to answer all those cases (did I remember a conversation during PharoDays?).

Can you elaborate on a) and the failure? Because I remember looking at the ability to override conflicts in Metacello by just saying: onConflict: [:ex | ex allow ]

(for example:
Metacello new
  baseline: 'Metacello';
  repository: 'github://dalehenrich/metacello-work:master/repository';
  onConflict: [:ex | ex allow];
  load
)

But, overall, for such a need, I would see two approaches:

- a cache-type repository which overrides loads, as the MC package-cache is doing, based on package name and version (which is bad).

- Metacello overrides, which may already exist but I'm not knowledgeable enough.

Thierry

Le 21/03/2015 14:41, Peter Uhnák a écrit :
Hi,

I'm trying to load local package over git one...
basically:

Projects A and B.
A depends on B.
A loads B from its BaselineOfA, the reference points to github.

Now I have also local copy of B git repository, and I would like to
either
a) Override the load of B with local B (so the packages will point to
local instead of remote).
Currently it fails on MetacelloRepositorySpec>>hasNoLoadConflicts:
because each (local and git) repo points to different place.
This would be useful if I want to make change to B AFTER the project B
is already loaded.




b) Add all packages from B to local B repo (same as manually using "add
to package..." in Monticello Browser")
This will work only if both the repos have the same packages, so
probably not that useful. (i.e. no code differences)

c) Override the GitHub B repository in the BaselineOfA BEFORE the
project is loaded.
This would require some mapping in Monticello browser, I've seen
something like "repositoryOverrides:" but I don't know how it works.
This would be useful if I knew beforehand that I want to make changes
also to B.

So how would one go about this? Having option "c)" would be probably the
best; I can live without "a)". :)

Any pointers appreciated,
Peter


Reply via email to