Closed LinqLover closed 3 years ago
The problem is because of the move of the filesystem repository to the squeak-smalltalk organization.
Let me check whether I find the image that contains the resolving do it...
Basically you can tell Metacello to resolve conflicts by loading the new source.
This I used to update Metacello which had a conflicting STON suddenly:
Metacello new
baseline: 'Metacello';
repository: 'github://Metacello/metacello:master/repository';
onConflictUseIncoming;
get;
load: #('default' 'Metacello-Help').!
Does that help?
Sorry for the late reply. Hm ... unfortunately not. When loading this, I get an UndefinedObject Error from `MCFileTreeStCypressReader >> #addClassAndMethodsDefinitionsFromEntry:
25 September 2020 3:36:55.346426 pm
VM: Win32 - Smalltalk
Image: Squeak6.0alpha [latest update: #19851]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Users\Christoph\OneDrive\Dokumente\Squeak
Trusted Dir C:\Users\Christoph\OneDrive\Dokumente\Squeak\Christoph
Untrusted Dir C:\Users\Christoph\OneDrive\Dokumente\My Squeak
UndefinedObject (Object) >> #doesNotUnderstand: #withSqueakLineEndings
Receiver: nil
Arguments and temporary variables:
aMessage: withSqueakLineEndings
exception: MessageNotUnderstood: UndefinedObject>>withSqueakLineEndings
resumeValue: nil
Receiver's instance variables:
nil
MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromEntry:
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
classEntry: a DirectoryEntryDirectory MetacelloToolBox.class
classDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sque...etc...
entries: {a DirectoryEntryDirectory class . a DirectoryEntryDirectory instance}...etc...
propertyEntry: nil
commentEntry: nil
classPropertiesDict: {nil . nil . a Dictionary()}
classComment: a MCFileTreeStCypressReader
methodPropertiesDict: nil
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
[] in MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromDirectory:
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
Array (SequenceableCollection) >> #do:
Receiver: {a DirectoryEntryDirectory MetacelloToolBox.class . a DirectoryEntryDirectory monticello.m...etc...
Arguments and temporary variables:
aBlock: [closure] in MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromDirectory:...etc...
index: 1
indexLimiT: 2
Receiver's instance variables:
{a DirectoryEntryDirectory MetacelloToolBox.class . a DirectoryEntryDirectory monticello.m...etc...
MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromDirectory:
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
aDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\g...etc...
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
MCFileTreeStCypressReader >> #loadDefinitions
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
entries: #()
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
MCFileTreeStCypressReader (MCVersionReader) >> #definitions
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
MCFileTreeStCypressReader (MCVersionReader) >> #snapshot
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
MCFileTreeStCypressReader >> #basicVersion
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
MCFileTreeStCypressReader (MCVersionReader) >> #version
Receiver: a MCFileTreeStCypressReader
Arguments and temporary variables:
Receiver's instance variables:
stream: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\githu...etc...
package: a MCPackage(Metacello-ToolBox)
info: a MCVersionInfo(Metacello-ToolBox-cypress.1)
definitions: an OrderedCollection()
dependencies: nil
stepChildren: nil
zip: nil
infoCache: nil
packageDirectory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Sq...etc...
packageProperties: nil
[] in MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
<<error during printing>
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
[] in MCGitHubRepository (MCFileBasedRepository) >> #versionReaderForFileNamed:do:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aString: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gith...etc...
aBlock: 'Metacello-ToolBox.package'
s: [closure] in MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:...etc...
class: MCFileTreeStCypressReader
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
MCGitHubRepository (MCFileTreeRepository) >> #readStreamForFileNamed:do:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aString: 'Metacello-ToolBox.package'
aBlock: [closure] in MCGitHubRepository (MCFileBasedRepository) >> #versionReaderForFileNamed:do:...etc...
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
MCGitHubRepository (MCFileBasedRepository) >> #versionReaderForFileNamed:do:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aString: 'Metacello-ToolBox.package'
aBlock: [closure] in MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:...etc...
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aString: 'Metacello-ToolBox.package'
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
[] in MCGitHubRepository (MCFileTreeRepository) >> #goferVersionFrom:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aVersionReference: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\S...etc...
packageDirectory: a MetacelloCachingGoferResolvedReference name: 'Metacello-Too...etc...
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
Array (SequenceableCollection) >> #collect:
Receiver: {DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\github-cache\Metacello#...etc...
Arguments and temporary variables:
aBlock: [closure] in MCGitHubRepository (MCFileTreeRepository) >> #goferVersionFrom:...etc...
newCollection: #(nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ni...etc...
index: 40
indexLimiT: 41
Receiver's instance variables:
{DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\github-cache\Metacello#...etc...
MCGitHubRepository (MCFileTreeRepository) >> #goferVersionFrom:
Receiver: a MCGitHubRepository(github://Metacello/metacello:master/repository)
Arguments and temporary variables:
aVersionReference: a MetacelloCachingGoferResolvedReference name: 'Metacello-To...etc...
Receiver's instance variables:
creationTemplate: nil
storeDiffs: nil
cache: nil
allFileNamesCache: nil
allVersionNamesCache: nil
directory: DosFileDirectory on 'C:\Users\Christoph\OneDrive\Dokumente\Squeak\gi...etc...
readonly: true
repositoryProperties: a Dictionary('packageExtension'->'.package' )
versionNameToFileNameMap: a Dictionary('BaselineOfMetacello-tobe.102'->'Baselin...etc...
cacheInvalidationFlag: nil
projectPath: 'Metacello/metacello'
projectVersion: 'master'
repoPath: 'repository'
projectVersionPattern: nil
MetacelloCachingGoferResolvedReference (GoferResolvedReference) >> #version
Receiver: a MetacelloCachingGoferResolvedReference name: 'Metacello-ToolBox-cypress.1'
Arguments and temporary variables:
Receiver's instance variables:
name: 'Metacello-ToolBox-cypress.1'
package: 'Metacello-ToolBox'
author: 'cypress'
branch: ''
versionNumber: 1
repository: a MCGitHubRepository(github://Metacello/metacello:master/repository...etc...
cachedVersion: nil
--- The full stack ---
UndefinedObject (Object) >> #doesNotUnderstand: #withSqueakLineEndings
MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromEntry:
[] in MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromDirectory:
Array (SequenceableCollection) >> #do:
MCFileTreeStCypressReader >> #addClassAndMethodDefinitionsFromDirectory:
MCFileTreeStCypressReader >> #loadDefinitions
MCFileTreeStCypressReader (MCVersionReader) >> #definitions
MCFileTreeStCypressReader (MCVersionReader) >> #snapshot
MCFileTreeStCypressReader >> #basicVersion
MCFileTreeStCypressReader (MCVersionReader) >> #version
[] in MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:
[] in MCGitHubRepository (MCFileBasedRepository) >> #versionReaderForFileNamed:do:
MCGitHubRepository (MCFileTreeRepository) >> #readStreamForFileNamed:do:
MCGitHubRepository (MCFileBasedRepository) >> #versionReaderForFileNamed:do:
MCGitHubRepository (MCFileBasedRepository) >> #loadVersionFromFileNamed:
[] in MCGitHubRepository (MCFileTreeRepository) >> #goferVersionFrom:
Array (SequenceableCollection) >> #collect:
MCGitHubRepository (MCFileTreeRepository) >> #goferVersionFrom:
MetacelloCachingGoferResolvedReference (GoferResolvedReference) >> #version
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
MetacelloCachingGoferResolvedReference >> #version
[] in [] in MetacelloFetchingMCSpecLoader >> #resolveDependencies:nearest:into:
OrderedCollection >> #do:
[] in MetacelloFetchingMCSpecLoader >> #resolveDependencies:nearest:into:
FullBlockClosure (BlockClosure) >> #on:do:
MetacelloFetchingMCSpecLoader >> #resolveDependencies:nearest:into:
[] in MetacelloFetchingMCSpecLoader >> #linearLoadPackageSpec:gofer:
[] in MetacelloSqueakPlatform >> #do:displaying:
[] in [] in MorphicUIManager >> #displayProgress:at:from:to:during:
FullBlockClosure (BlockClosure) >> #on:do:
[] in MorphicUIManager >> #displayProgress:at:from:to:during:
FullBlockClosure (BlockClosure) >> #ensure:
MorphicUIManager >> #displayProgress:at:from:to:during:
ProgressInitiationException >> #defaultResumeValue
ProgressInitiationException (Exception) >> #resume
ProgressInitiationException >> #defaultAction
UndefinedObject >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
Context >> #handleSignal:
ProgressInitiationException (Exception) >> #signal
ProgressInitiationException >> #display:at:from:to:during:
ProgressInitiationException class >> #display:at:from:to:during:
ByteString (String) >> #displayProgressAt:from:to:during:
MetacelloSqueakPlatform >> #do:displaying:
MetacelloFetchingMCSpecLoader >> #linearLoadPackageSpec:gofer:
MetacelloPackageSpec >> #loadUsing:gofer:
[] in MetacelloFetchingMCSpecLoader (MetacelloCommonMCSpecLoader) >> #linearLoadPackageSpecs:repositories:
OrderedCollection >> #do:
MetacelloFetchingMCSpecLoader (MetacelloCommonMCSpecLoader) >> #linearLoadPackageSpecs:repositories:
[] in MetacelloFetchingMCSpecLoader >> #linearLoadPackageSpecs:repositories:
FullBlockClosure (BlockClosure) >> #ensure:
MetacelloLoaderPolicy >> #pushLoadDirective:during:
MetacelloLoaderPolicy >> #pushLinearLoadDirectivesDuring:for:
MetacelloFetchingMCSpecLoader >> #linearLoadPackageSpecs:repositories:
MetacelloFetchingMCSpecLoader (MetacelloCommonMCSpecLoader) >> #load
MetacelloMCVersionSpecLoader >> #load
-- and more not shown --
What's the easiest way to reinstall Metacello from scratch? Can I simply unload it via Monticello or would this be a stupid idea? :-)
Does this help?
EDIT: sorry I already posted something similar before. Didn't remember. :-D
If you save your image before you unload it via Monticello, what can you break?
FYI, I just found out that the self-updater did not work as expected because I added my fork of Squot as the remote "origin". The self-updater has hardcoded this remote name so it tried to use Metacello instead. On it ...
New update, sorry for spamming: After cleaning up my working copy, I wanted to try https://github.com/hpi-swa/Squot/issues/285#issuecomment-692223340 again but Metacello is still broken at the moment due to http://forum.world.st/Metacello-broken-again-tp5121133p5122740.html.
I tried using the self-updater again, this time with the correct origin remote, I resolved all conflicts to use the remote version and confirmed all the warning messages from #258. After updating my image, my non-master branch kept being selected as the active branch, so I selected the master branch and said "switch to here and keep unsaved changes". Now my image has hang up with a filein cursor and a "MessageNotUnderstood: SquotObjectPatcher >> #nameOf:ifAbsent:" raised from SquotMutableObjectGraph >>#applyDiff:toStartObjectWith:
, so I cannot switch the branch.
Just mentioning all these errors in case you immediately know the reason for one of them. Otherwise, I will simply not update Squot again before Metacello is repaired ... 😅
Try to rename your "project" of Squot such that it does not have Squot in the name. That's what the self-updater looks for.
Switching of Squot itself is unfortunately tricky because loading the other branch might break the code that is on the stack at this moment. From which commit to which commit are you trying to go?
But you wrote "After updating my image", does that mean you already have updated Squot? And you just need to update that active branch pointer to tell the truth? Then right-click on the true branch and choose "Make this the current version".
@LinqLover Should we still change anything here? The only thing that comes to my mind is removing the check whether one has a working copy of Squot and instead always load with Metacello.
The only thing that comes to my mind is removing the check whether one has a working copy of Squot and instead always load with Metacello.
IIUC, this would make it even harder to resolve merge conflicts with your working copy? I would rather propose to offer to automatically clone Squot if not already done - but this is only a vague idea ...
I think if you have made modifications to Squot, you should not use the update anyway. Instead, fetch or pull from the Squot repository like with any other project.
If Squot is not already cloned, one also does not have a working copy of it that could have conflicts. And if it is not even loaded, there is no self-update button either. I do not think that an update should ever clone a repository for you.
If Squot is not already cloned, one also does not have a working copy of it that could have conflicts.
Disagreed. :-) Of course, not a working copy in the technical version, but I very often make some quick changes to arbitrary packages in my image (that were loaded using Metacello) and only later clone them via Squit if I need to contribute the changes back. This also applies to Squot itself. With this workflow, the self-updater currently would remove the changes in my image, wouldn't it?
I do not think that an update should ever clone a repository for you.
Not automatically, of course, but hypothetically, one could offer to the user to do so, optionally.
With this workflow, the self-updater currently would remove the changes in my image, wouldn't it?
Yes that is correct.
Not automatically, of course, but hypothetically, one could offer to the user to do so, optionally.
But honestly I do not want to maintain code for such rare cases. ;-)
Agreed. :-)
How could this happen and what am I supposed to resolve this issue? :-)
Edit: Probably related to Metacello/metacello#263? The method in which the exception is raised refers to that issue.