The Trunk: UpdateStream-ct.13.mcz

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

The Trunk: UpdateStream-ct.13.mcz

commits-2
Nicolas Cellier 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!


Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: UpdateStream-ct.13.mcz

Karl Ramberg


On Tue, 3 Mar 2020 at 23:18, <[hidden email]> wrote:
Nicolas Cellier 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].


Could this use isEmptyOrNil  ?

Best,
Karl

-       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!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: UpdateStream-ct.13.mcz

marcel.taeumel
Why does #conflictsWithUpdatedMethods return "nil" at all? Should always be an empty or non-empty collection.

Best,
Marcel

Am 04.03.2020 08:49:45 schrieb karl ramberg <[hidden email]>:



On Tue, 3 Mar 2020 at 23:18, <[hidden email]> wrote:
Nicolas Cellier 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].


Could this use isEmptyOrNil  ?

Best,
Karl

-       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!




Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: UpdateStream-ct.13.mcz

Nicolas Cellier
Hi Marcel,
agree, it's a quick-fix and would deserve more elegant design.
It return nil in case when user decided to abort some operation...

Le mer. 4 mars 2020 à 09:24, Marcel Taeumel <[hidden email]> a écrit :
Why does #conflictsWithUpdatedMethods return "nil" at all? Should always be an empty or non-empty collection.

Best,
Marcel

Am 04.03.2020 08:49:45 schrieb karl ramberg <[hidden email]>:



On Tue, 3 Mar 2020 at 23:18, <[hidden email]> wrote:
Nicolas Cellier 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].


Could this use isEmptyOrNil  ?

Best,
Karl

-       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!





Reply | Threaded
Open this post in threaded view
|

Re: The Trunk: UpdateStream-ct.13.mcz

marcel.taeumel
Hi Nicolas,

given the current use of #conflictsWithUpdatedMethods, there is no need to return "nil". I just changed that to "#()". Let's see how this works out. Maybe we could use a Notification for this to indicate whether the user cancelled the operation?

Best,
Marcel

Am 04.03.2020 09:30:04 schrieb Nicolas Cellier <[hidden email]>:

Hi Marcel,
agree, it's a quick-fix and would deserve more elegant design.
It return nil in case when user decided to abort some operation...

Le mer. 4 mars 2020 à 09:24, Marcel Taeumel <[hidden email]> a écrit :
Why does #conflictsWithUpdatedMethods return "nil" at all? Should always be an empty or non-empty collection.

Best,
Marcel

Am 04.03.2020 08:49:45 schrieb karl ramberg <[hidden email]>:



On Tue, 3 Mar 2020 at 23:18, <[hidden email]> wrote:
Nicolas Cellier 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].


Could this use isEmptyOrNil  ?

Best,
Karl

-       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!