-
Notifications
You must be signed in to change notification settings - Fork 43
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Trying to load a fork of a baseline after loading the original fails with error MetacelloConflictingProjectError #557
Comments
Actually I wonder if using #onConflictUseIncoming ; is a solution to this? Its not really a conflict - but I think the intent is to use the incoming version - perhaps someone might comment on this and advise. |
Just a note, but I don't think Pharo uses this project for it's Metacello code ... they "forked" Metacello several years ago and I'm not sure anyone else from the Pharo community is paying attention :) |
ah - well that makes 2 problems... oh dear |
... well I think I can answer the original question ... conflicts are conflicts in the Metacello specification so switching repositories is a "conflict" you have two choices when trying to force the use of a particular repository ... Metacello new
baseline: 'FileTree';
repository: 'filetree://', projectDirectory, '/filetree/repository';
lock. This lock should force the FileTree project to be loaded from Conflicts are intended to let you know when an attempt is made to load from a different repository than you are using ... locks are intended for you to state your preference and be done with it ... The thing I don't know is how Pharo deals with locks in the presence of Iceberg or what the current state of the Pharo Metacello implementation is ... |
If you load a metacello script in a pharo image (but assume this applies to all smalltalks) and then decide to fork that project, and you want to reload the fork - metacello insists on loading the original repository because the MetacelloProjectRepository>>registrationFor: aMetacelloProjectRegistration ifPresent: presentBlock ifAbsent: absentBlock
uses only the basline name to distinguish what to load
e.g. self baselineRegistry at: spec className ifPresent: [ :existing | ^ presentBlock value: existing ]
This means you can't easily load a different variant of the baseline. The key to the registroy should be name+repo name.
The text was updated successfully, but these errors were encountered: