Closed LinqLover closed 2 years ago
This is how my commit dialog looks like before merging into the current branch:
Interestingly, re-checking out the latest commit does not make this metadata diff disappear from my working copy. Discarding uncommited changes does not do so, either.
Funny. I cannot even commit these metadata diffs (I just tried) because there is a startDiff
which is nil
:
15 January 2022 6:05:36.868151 pm
VM: Win32 - Smalltalk
Image: Squeak6.0alpha [latest update: #21021]
SecurityManager state:
Restricted: false
FileAccess: true
SocketAccess: true
Working Dir C:\Users\Christoph\OneDrive\Dokumente\Squeak\squot-failures
Trusted Dir C:\Users\Christoph\OneDrive\Dokumente\Studium\S21_SS\Sonic Thinking\project\squeak\Christoph
Untrusted Dir C:\Users\Christoph\OneDrive\Dokumente\My Squeak
UndefinedObject(Object)>>doesNotUnderstand: #patch
Receiver: nil
Arguments and temporary variables:
aMessage: patch
exception: MessageNotUnderstood: UndefinedObject>>patch
resumeValue: nil
Receiver's instance variables:
nil
SquotCypressCodeSerializer>>writeDiff:
Receiver: a SquotCypressCodeSerializer
Arguments and temporary variables:
aSquotArtifactDiff: a SquotArtifactModification 'packages/RuntimeValueVisualization-Showcase.package...etc...
directory: git:/packages/RuntimeValueVisualization-Showcase.package
mcPatch: nil
newDefinitions: nil
classDefinitions: nil
missingClasses: nil
removedMethods: a Dictionary()
removedClasses: a Dictionary()
removedOthers: a Dictionary()
allClasses: nil
extensions: nil
allMethods: nil
Receiver's instance variables:
rootDirectory: git:/
definitions: an OrderedCollection()
fileTreeWriter: a MCFileTreeWriterWithSettableFileUtils
cypressWriter: a MCFileTreeStCypressWriterWithSettableFileUtils
fileUtils: a MCFileTreeFileSystemUtilsForSquot
currentDirectory: git:/packages/RuntimeValueVisualization-Showcase.package
SquotFileSystemStore>>patchOrdinary:
Receiver: a SquotFileSystemStore
Arguments and temporary variables:
anArtifactDiff: a SquotArtifactModification 'packages/RuntimeValueVisualization-Showcase.package...etc...
serializerClass: SquotCypressCodeSerializer
serializer: a SquotCypressCodeSerializer
storedArtifact: a SquotLazyArtifact('packages/RuntimeValueVisualization-Showcase.package...etc...
reference: nil
Receiver's instance variables:
deserializers: nil
directory: git:/
shouldStoreMetadata: true
tableOfContentsDuringTransaction: a SquotTableOfContentsFile
SquotFileSystemStore>>applyDiff:toObjectAt:
Receiver: a SquotFileSystemStore
Arguments and temporary variables:
aDiff: a SquotArtifactModification 'packages/RuntimeValueVisualization-Showcase.package...etc...
path: 'packages/RuntimeValueVisualization-Showcase.package'
reference: git:/packages/RuntimeValueVisualization-Showcase.package
Receiver's instance variables:
deserializers: nil
directory: git:/
shouldStoreMetadata: true
tableOfContentsDuringTransaction: a SquotTableOfContentsFile
SquotArtifactModification(SquotArtifactDiff)>>applyToContainer:
Receiver: a SquotArtifactModification 'packages/RuntimeValueVisualization-Showcase.package'
Arguments and temporary variables:
anObjectContainer: a SquotFileSystemStore
Receiver's instance variables:
left: a SquotLazyArtifact('packages/RuntimeValueVisualization-Showcase.package'...etc...
right: a SquotLazyArtifact('packages/RuntimeValueVisualization-Showcase.package...etc...
isLoadedInWorkingCopy: true
diffContent: a SquotObjectGraphDiff (0 changed objects)
metadataDiff: a SquotTrackedObjectMetadataDiff (1 changes)
topNodes: nil
willBeLoaded: true
SquotFileSystemStore>>applyDiff:
Receiver: a SquotFileSystemStore
Arguments and temporary variables:
anArtifactDiff: a SquotArtifactModification 'packages/RuntimeValueVisualization-Showcase.package...etc...
Receiver's instance variables:
deserializers: nil
directory: git:/
shouldStoreMetadata: true
tableOfContentsDuringTransaction: a SquotTableOfContentsFile
[] in SquotPatch>>privateApplyTo:diffsDoing:
Receiver: a SquotPatch (3 diffs)
Arguments and temporary variables:
anObjectContainer: a SquotFileSystemStore
aBlock: [closure] in SquotPatch>>applyTo:displayingProgress:
order: #('packages/RuntimeValueVisualization-Core.package' 'packages/RuntimeValueVisualization-Showcase.package...etc...
relevant: #('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
removed: #()
patchedArtifacts: a Dictionary()
newSnapshot: nil
each: 'packages/RuntimeValueVisualization-Showcase.package'
Receiver's instance variables:
base: a SquotSnapshot
patched: a SquotSnapshot
diffs: a Dictionary('packages/BaselineOfRuntimeValueVisualization.package'->a SquotArtifactModification...etc...
loadOrderDiff: a DiffPatch
[] in [] in Array(Collection)>>do:displayingProgress:every:
Receiver: #('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
Arguments and temporary variables:
aBlock: [closure] in SquotPatch>>privateApplyTo:diffsDoing:
aStringOrBlock: [closure] in [] in SquotFileSystemStore>>applyPatch:
msecs: 20
size: 3
labelBlock: [closure] in [] in SquotFileSystemStore>>applyPatch:
count: 0
oldLabel: 'Writing objects to files... packages/RuntimeValueVisualization-Showcase.package...etc...
lastUpdate: 3819719038768
bar: [closure] in SystemProgressMorph>>position:label:min:max:
each: 'packages/RuntimeValueVisualization-Showcase.package'
newLabel: 'Writing objects to files... packages/RuntimeValueVisualization-Showcase.package...etc...
Receiver's instance variables:
#('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
Array(SequenceableCollection)>>do:
Receiver: #('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
Arguments and temporary variables:
aBlock: [closure] in [] in Array(Collection)>>do:displayingProgress:every:
index: 1
indexLimiT: 3
Receiver's instance variables:
#('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
[] in Array(Collection)>>do:displayingProgress:every:
Receiver: #('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
Arguments and temporary variables:
aBlock: [closure] in SquotPatch>>privateApplyTo:diffsDoing:
aStringOrBlock: [closure] in [] in SquotFileSystemStore>>applyPatch:
msecs: 20
size: 3
labelBlock: [closure] in [] in SquotFileSystemStore>>applyPatch:
count: 0
oldLabel: 'Writing objects to files... packages/RuntimeValueVisualization-Showcase.package...etc...
lastUpdate: 3819719038768
bar: [closure] in SystemProgressMorph>>position:label:min:max:
Receiver's instance variables:
#('packages/RuntimeValueVisualization-Showcase.package' 'packages/RuntimeValueVisualization-Tools.package...etc...
[] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: ''
aPoint: 960@508
minVal: 0
maxVal: 3
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
progress: [closure] in SystemProgressMorph>>position:label:min:max:
result: nil
Receiver's instance variables:
builderClass: MorphicToolBuilder
FullBlockClosure(BlockClosure)>>on:do:
Receiver: [closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
exceptionOrExceptionSet: ProgressNotification
handlerAction: [closure] in [] in MorphicUIManager>>displayProgress:at:from:to:during:...etc...
handlerActive: true
handlerRearmed: false
Receiver's instance variables:
outerContext: [] in MorphicUIManager>>displayProgress:at:from:to:during:
startpcOrMethod: ([] in MorphicUIManager>>#displayProgress:at:from:to:during: "...etc...
numArgs: 0
receiver: a MorphicUIManager
[] in MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: ''
aPoint: 960@508
minVal: 0
maxVal: 3
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
progress: [closure] in SystemProgressMorph>>position:label:min:max:
result: nil
Receiver's instance variables:
builderClass: MorphicToolBuilder
FullBlockClosure(BlockClosure)>>ensure:
Receiver: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
Arguments and temporary variables:
aBlock: [closure] in MorphicUIManager>>displayProgress:at:from:to:during:
complete: nil
returnValue: nil
Receiver's instance variables:
outerContext: MorphicUIManager>>displayProgress:at:from:to:during:
startpcOrMethod: ([] in MorphicUIManager>>#displayProgress:at:from:to:during: "...etc...
numArgs: 0
receiver: a MorphicUIManager
MorphicUIManager>>displayProgress:at:from:to:during:
Receiver: a MorphicUIManager
Arguments and temporary variables:
titleString: ''
aPoint: 960@508
minVal: 0
maxVal: 3
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
progress: [closure] in SystemProgressMorph>>position:label:min:max:
result: nil
Receiver's instance variables:
builderClass: MorphicToolBuilder
ProgressInitiationException>>defaultResumeValue
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
maxVal: 3
minVal: 0
aPoint: 960@508
progressTitle: ''
ProgressInitiationException(Exception)>>resume
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
maxVal: 3
minVal: 0
aPoint: 960@508
progressTitle: ''
ProgressInitiationException>>defaultAction
Receiver: ProgressInitiationException:
Arguments and temporary variables:
Receiver's instance variables:
messageText: nil
tag: nil
signalContext: ProgressInitiationException(Exception)>>signal
handlerContext: nil
outerContext: nil
workBlock: [closure] in Array(Collection)>>do:displayingProgress:every:
maxVal: 3
minVal: 0
aPoint: 960@508
progressTitle: ''
UndefinedObject>>handleSignal:
Receiver: nil
Arguments and temporary variables:
exception: ProgressInitiationException:
Receiver's instance variables:
nil
--- The full stack ---
UndefinedObject(Object)>>doesNotUnderstand: #patch
SquotCypressCodeSerializer>>writeDiff:
SquotFileSystemStore>>patchOrdinary:
SquotFileSystemStore>>applyDiff:toObjectAt:
SquotArtifactModification(SquotArtifactDiff)>>applyToContainer:
SquotFileSystemStore>>applyDiff:
[] in SquotPatch>>privateApplyTo:diffsDoing:
[] in [] in Array(Collection)>>do:displayingProgress:every:
Array(SequenceableCollection)>>do:
[] in Array(Collection)>>do:displayingProgress:every:
[] 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:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
ByteString(String)>>displayProgressAt:from:to:during:
ByteString(String)>>displayProgressFrom:to:during:
Array(Collection)>>do:displayingProgress:every:
Array(Collection)>>do:displayingProgress:
SquotGUI class>>displayProgress:for:do:
SquotProgress>>display:for:do:
SquotProgress class>>display:for:do:
[] in SquotPatch>>applyTo:displayingProgress:
SquotPatch>>privateApplyTo:diffsDoing:
SquotPatch>>applyTo:displayingProgress:
[] in SquotFileSystemStore>>applyPatch:
FullBlockClosure(BlockClosure)>>ensure:
SquotFileSystemStore>>openTableOfContentsDuring:
SquotFileSystemStore>>applyPatch:
[] in SquitVersionBuilder>>buildVersion
[] in MorphicUIManager(UIManager)>>informUser:during:
[] 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:
ProgressInitiationException(Exception)>>signal
ProgressInitiationException>>display:at:from:to:during:
ProgressInitiationException class>>display:at:from:to:during:
SystemProgressMorph class>>informUserAt:during:
MorphicUIManager>>informUserDuring:
MorphicUIManager(UIManager)>>informUser:during:
SquotGUI class>>displayStatus:during:
SquotProgress>>displayStatus:during:
SquotProgress class>>displayStatus:during:
SquitVersionBuilder>>buildVersion
SquitRepository>>createNewVersionFromPatch:with:
SquitHistorian>>createNewVersionFromPatch:with:
[] in SquotInteractiveSave(SquotSaveOperation)>>createVersion
[] in GitCurrentUnitOfWork class(DynamicVariable class)>>value:during:
-- and more not shown --
(Again, the actual error was a broken promise only, I debugged the single steps to create this bug report)
Somehow managed to complete the merge with a lot of "return entered value" here and "remove key" there, but I don't have an actual idea what was going on there. The image is still available if you feel like reproducing the issue. :-)
Going from the bottom up: I committed something to prevent the MNU when there is no patch (if one were to commit only metadata changes).
For the ignoredInstanceVariables, that should only appear if something other than a package is reflected while working on this artifact. So I do not know why it appeared in your package artifact. While it does not hurt to have it among the metadata, if you want to get rid of this, you can "Explore SquotWorkingCopy" in the projects menu, and go to store -> additionalInfo -> your package and remove the key from the SquotTrackedObjectMetadata (which is a Dictionary) with an inspector:
Well, the ignoredInstanceVariables do hurt because the diff trees are not implemented for merges of metadata...
This is my entire merge dialog:
After pressing Accept in the dialog, the promise is broken with an "Error: Conflicts not resolved".
Evaluating the resolvedBlock defined in [] in SquotInteractiveMerge>>chooseChanges manually (debugging promises is so hard, sigh) yields this stack trace:
Bug Report
Container conflicts:
I wonder why this unresolved conflict did not appear in the merge dialog before.
In case you need it, I have snapshotted my image and can share it with you (
conflict not resolved.image
). :-)