[Pkg] Monticello Public: Monticello.impl-mtf.578.mcz

squeak-dev-noreply at lists.squeakfoundation.org squeak-dev-noreply at lists.squeakfoundation.org
Tue Oct 7 23:35:18 UTC 2008


A new version of Monticello.impl was added to project Monticello Public:
http://www.squeaksource.com/mc/Monticello.impl-mtf.578.mcz

==================== Summary ====================

Name: Monticello.impl-mtf.578
Author: mtf
Time: 7 October 2008, 1:20:20 pm
UUID: 8fb1b304-95dd-4e84-9c6b-142c90a9ff0a
Ancestors: Monticello.impl-mtf.577

implemented MCPackage>>patchSnapshot, which will make diffs that fix bug 7208

=============== Diff against Monticello.impl-mtf.577 ===============

Item was added:
+ ----- Method: MCPackage>>patchSnapshot (in category 'patching') -----
+ patchSnapshot
+ 	^ MCImageBackedSnapshot fromDefinitions: (self snapshot definitions)!

Item was changed:
  ----- Method: MCPatch>>initializeWithBase:target: (in category 'intializing') -----
+ initializeWithBase: base target: target
+ "Generates operation from the given MCDefinitionIndexes"
+ 
- initializeWithBase: baseSnapshot target: targetSnapshot
- 	| base target |	
  	operations := OrderedCollection new.
- 	base := MCDefinitionIndex definitions: baseSnapshot definitions.
- 	target := MCDefinitionIndex definitions: targetSnapshot definitions.
  	
  	target definitions do:
  		[:t |
  		base
  			definitionLike: t
  			ifPresent: [:b | (b isSameRevisionAs: t) ifFalse: [operations add: (MCModification of: b to: t)]]
  			ifAbsent: [operations add: (MCAddition of: t)]]
  		displayingProgress: 'Diffing...'.
  		
  	base definitions do:
  		[:b |
  		target
  			definitionLike: b
  			ifPresent: [:t]
  			ifAbsent: [operations add: (MCRemoval of: b)]]		!

Item was changed:
  ----- Method: MCPatch class>>fromBase:target: (in category 'as yet unclassified') -----
  fromBase: baseSnapshot target: targetSnapshot
+ 	^ self new initializeWithBase: baseSnapshot definitionIndex
+ 		target: targetSnapshot definitionIndex!
- 	^ self new initializeWithBase: baseSnapshot target: targetSnapshot!

Item was added:
+ ----- Method: MCDefinition>>fromImage (in category 'converting') -----
+ fromImage
+ "Answer a copy of myself, but at the version that exists in the image. Answers nil if no such version exists"
+ 
+ 	^ nil!

Item was added:
+ ----- Method: MCImageBackedDefinitionIndex>>definitionLike:ifPresent:ifAbsent: (in category 'as yet unclassified') -----
+ definitionLike: aDefinition ifPresent: foundBlock ifAbsent: errorBlock
+ 	^ super definitionLike: aDefinition ifPresent: foundBlock
+ 		ifAbsent: [aDefinition fromImage ifNil: [errorBlock value]]!

Item was added:
+ ----- Method: MCClassDefinition>>fromImage (in category 'converting') -----
+ fromImage
+ 	^ self actualClass ifNotNil: [self actualClass asClassDefinition]!

Item was added:
+ ----- Method: MCImageBackedSnapshot>>definitionIndex (in category 'as yet unclassified') -----
+ definitionIndex
+ 	^ MCImageBackedDefinitionIndex definitions: definitions!

Item was added:
+ ----- Method: MCMethodDefinition>>fromImage (in category 'converting') -----
+ fromImage
+ 	| class |
+ 	class := self actualClass ifNil: [^ nil].
+ 	(class includesLocalSelector: selector) ifFalse: [^ nil].
+ 	^(MethodReference new setStandardClass: class methodSymbol: selector) asMethodDefinition!

Item was added:
+ MCDefinitionIndex subclass: #MCImageBackedDefinitionIndex
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Monticello-Patching'!
+ 
+ !MCImageBackedDefinitionIndex commentStamp: '<historical>' prior: 0!
+ When using definitionLike: ... I go to the image before giving up!

Item was added:
+ MCSnapshot subclass: #MCImageBackedSnapshot
+ 	instanceVariableNames: ''
+ 	classVariableNames: ''
+ 	poolDictionaries: ''
+ 	category: 'Monticello-Patching'!

Item was changed:
  ----- Method: MCMethodDefinition>>actualClassIn: (in category 'accessing') -----
  actualClassIn: anEnvironment
+ 	^ (theClass := anEnvironment classNamed: className)
+ 		ifNotNilDo: [:class | classIsMeta ifTrue: [class classSide] ifFalse: [class]]!
- 	^ theClass := anEnvironment at: className 
- 		ifPresent: [:class | classIsMeta ifTrue: [class classSide] ifFalse: [class]]!

Item was added:
+ ----- Method: MCSnapshot>>definitionIndex (in category 'patching') -----
+ definitionIndex
+ 	^ MCDefinitionIndex definitions: definitions!



More information about the Packages mailing list