[squeak-dev] The Trunk: UpdateStream-ct.13.mcz

commits at source.squeak.org commits at source.squeak.org
Thu Oct 1 13:53:02 UTC 2020


Marcel Taeumel uploaded a new version of UpdateStream to project The Trunk:
http://source.squeak.org/trunk/UpdateStream-ct.13.mcz

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

Name: UpdateStream-ct.13
Author: ct
Time: 21 December 2019, 1:00:30.046795 pm
UUID: 4f856f41-7ea6-c744-a765-4f5bdc635989
Ancestors: UpdateStream-mt.12

Fix a small bug when dropping a changeset without conflicts into the image, showing the "conflicts with updated methods" and then pressing "no"

=============== Diff against UpdateStream-mt.12 ===============

Item was changed:
  ----- Method: FilePackage class>>conflictsWithUpdatedMethods: (in category '*UpdateStream-instance creation') -----
  conflictsWithUpdatedMethods: fullName
  	| conflicts changeList |
  	conflicts := (self fromFileNamed: fullName) conflictsWithUpdatedMethods.
+ 	(conflicts isNil or: [conflicts isEmpty]) ifTrue: [^ self].
- 	conflicts isEmpty ifTrue: [^ self].
  	changeList := ChangeList new.
  	changeList
  		changes: conflicts
  		file: (FileDirectory default readOnlyFileNamed: fullName) close.
  	ChangeList 
  		open: changeList
  		name: 'Conflicts for ', (FileDirectory localNameFor: fullName)
  		multiSelect: true.!

Item was changed:
  ----- Method: FilePackage>>conflictsWithUpdatedMethods (in category '*UpdateStream-conflict checker') -----
  conflictsWithUpdatedMethods
  	"Check this package for conflicts with methods in the image which are in newer updates."
  
  	| localFileName stream updateNumberString updateNumber imageUpdateNumber updateNumberChangeSet conflicts fileStream |
+ 	
- 
  	localFileName := FileDirectory localNameFor: fullName.
  	stream := ReadStream on: sourceSystem.
  	stream upToAll: 'latest update: #'.
  	updateNumberString := stream upTo: $].
  	stream close.
  	
  	fileStream := FileStream readOnlyFileNamed: fullName.
  	(fileStream contentsOfEntireFile includes: Character linefeed)
  		ifTrue: [self notify:  'The changeset file ', localFileName, ' contains linefeeds.  Proceed if...
  you know that this is okay (e.g. the file contains raw binary data).'].
  	fileStream close.
+ 	
- 
  	updateNumberString isEmpty ifFalse:		"remove prepended junk, if any"
  		[updateNumberString := (updateNumberString findTokens: Character space) last].
  	updateNumberString asInteger ifNil:
  		[(self confirm: 'Error: ', localFileName, ' has no valid Latest Update number in its header.
  Do you want to enter an update number for this file?')
+ 			ifFalse: [^ nil]
- 			ifFalse: [^ self]
  			ifTrue: [updateNumberString := UIManager default
  						request: 'Please enter the estimated update number (e.g. 4332).']].
  	updateNumberString asInteger ifNil: [self inform: 'Conflict check cancelled.'. ^ self].
  	updateNumber := updateNumberString asInteger.
+ 	
- 
  	imageUpdateNumber := SystemVersion current highestUpdate.
  	updateNumber > imageUpdateNumber ifTrue:
  		[(self confirm: 'Warning: The update number for this file (#', updateNumberString, ')
  is greater than the highest update number for this image (#', imageUpdateNumber asString, ').
  This probably means you need to update your image.
  Should we proceed anyway as if the file update number is #', imageUpdateNumber asString, '?')
  			ifTrue:
  				[updateNumber := imageUpdateNumber.
  				updateNumberString := imageUpdateNumber asString]
+ 			ifFalse: [^ nil]].
+ 	
- 			ifFalse: [^ self]].
- 
  	updateNumberChangeSet := self findUpdateChangeSetMatching: updateNumber.
+ 	updateNumberChangeSet ifNil: [^ nil].
+ 	
- 	updateNumberChangeSet ifNil: [^ self].
- 
  	Smalltalk isMorphic ifTrue: [self currentWorld findATranscript: self currentEvent].
  	self class logCr; logCr; log: 'Checking ', localFileName, ' (#', updateNumberString, ') for method conflicts with changesets after ', updateNumberChangeSet name, ' ...'.
+ 	
- 
  	conflicts := OrderedCollection new.
  	self classes do: [:pseudoClass |
  		(Array with: pseudoClass with: pseudoClass metaClass) do: [:classOrMeta |
  			classOrMeta selectorsDo: [:selector | | conflict |
  				conflict := self
  							checkForMoreRecentUpdateThanChangeSet: updateNumberChangeSet
  							pseudoClass: classOrMeta
  							selector: selector.
  				conflict ifNotNil: [conflicts add: conflict].
  			].
  		].
  	].
  	self class logCr; log: conflicts size asString, (' conflict' asPluralBasedOn: conflicts), ' found.'; logCr.
  	self class closeLog.
  	^ conflicts!



More information about the Squeak-dev mailing list